{
  "canonical_url": "https://crates.flyology.org/community/",
  "catalog": {
    "name": "community",
    "repository_url": "https://github.com/alire-project/alire-index",
    "revision": "115fc87e8336c66e54c19906bc3f10303cd88107"
  },
  "generated_at": "2026-10-06T11:22:10Z",
  "index": {
    "version": "1.4.0"
  },
  "package": {
    "catalog": "community",
    "description": "Create lithophane with Ada",
    "development_only": false,
    "latest_version": "1.0.0",
    "name": "lithophane",
    "selected_version": "1.0.0",
    "versions": [
      {
        "dependants": [],
        "dependencies": [
          {
            "catalog": "community",
            "condition": null,
            "name": "gid",
            "package": "gid",
            "provided_version": "14.0.0",
            "requirement": "^14.0.0",
            "resolved": true,
            "version": "14.0.0"
          },
          {
            "catalog": "community",
            "condition": null,
            "name": "getopt",
            "package": "getopt",
            "provided_version": "2.0.0",
            "requirement": "^2.0.0",
            "resolved": true,
            "version": "2.0.0"
          },
          {
            "catalog": "community",
            "condition": null,
            "name": "ada_toml",
            "package": "ada_toml",
            "provided_version": "0.5.0",
            "requirement": "~0.5.0",
            "resolved": true,
            "version": "0.5.0"
          }
        ],
        "development": false,
        "external": false,
        "manifest": {
          "authors": [
            "Simon Beàn"
          ],
          "build-switches": {
            "*": {
              "Ada_Version": "Ada2022"
            }
          },
          "depends-on": [
            {
              "gid": "^14.0.0"
            },
            {
              "getopt": "^2.0.0"
            },
            {
              "ada_toml": "~0.5.0"
            }
          ],
          "description": "Create lithophane with Ada",
          "executables": [
            "lithophane"
          ],
          "licenses": "MIT OR Apache-2.0 WITH LLVM-exception",
          "long-description": "Create [lithophane](https://en.wikipedia.org/wiki/Lithophane) of your favourite picture with Ada.\n\n**Build**\n```\nalr build\n```\n\n**Usage**\n```\nbin/lithophane [options] <input_file>\n```\n\n`<input_file>` is the picture to convert (any format supported by\n[GID](https://gen-img-dec.sourceforge.io): PNG, JPEG, BMP, GIF, TGA, ...).\n\n**Options**\n```\n-h --help\n-v --version\n-b --save-binary          (default)\n-a --save-ascii\n-m --save-3mf\n-p --save-pgm\n-o<name> --output-name=<name>\n-H<height> --height=<height>\n-B<border> --border=<border>\n--dimensions=<W>x<H>x<D>\n-f<filter> --filter <filter> [<n>]\n-c<file> --config=<file>\n```\n\n| Option | Description |\n| --- | --- |\n| `-h`, `--help` | print usage and exit |\n| `-v`, `--version` | print the program version and exit |\n| `-b`, `--save-binary` | write the lithophane as a binary STL file: `<output-name>.bin.stl` (this is the default output if no `-a`/`-b`/`-p` flag is given) |\n| `-a`, `--save-ascii` | write the lithophane as an ASCII STL file: `<output-name>.ascii.stl` |\n| `-m`, `--save-3mf` | write the lithophane as a 3MF file: `<output-name>.3mf` (a ZIP/OPC package with a welded, watertight mesh as `3D/3dmodel.model`) |\n| `-p`, `--save-pgm` | also dump the grayscale-converted image as a PGM file: `<output-name>.pgm` |\n| `-o<name>`, `--output-name=<name>` | base name used for every output file above (default: `test`) |\n| `-H<height>`, `--height=<height>` | target height of the lithophane |\n| `-B<border>`, `--border=<border>` | width, in pixels, of the border added around the image (default: `20`) |\n| `--dimensions=<W>x<H>x<D>` | target physical size **of the 3MF output**, in millimetres (3MF is unit-aware, STL is not). Each axis with a non-zero value is scaled to it exactly; an axis left empty or `0` follows the first constrained axis so the model keeps its proportions. `X`/`Y` are centred on the origin. Example: `--dimensions=100x100x1.5`, or `--dimensions=120x0x0` to set the width and let height and depth scale with it. |\n| `-f<filter>`, `--filter <filter> [<n>]` | image filter to apply before conversion; `<filter>` is one of `bartlett`, `gauss`, `square`, `sharpen`, `threshold`. The optional number `<n>` right after the filter name is the kernel size (an odd number, default `3`) for `bartlett`/`gauss`/`square`/`sharpen`, or the cut value `0..255` (default `128`) for `threshold`. |\n| `-c<file>`, `--config=<file>` | read options from a config file instead of (or in addition to) the command line; when given, it overrides any previous option |\n\nYou can combine `-a`, `-b`, `-m` and `-p`: each one adds its own output file,\nthey are not mutually exclusive.\n\nThe `<n>` argument is positional and optional, so both of these work:\n```\nbin/lithophane --filter gauss 5 doc/img/ada.logo.png\nbin/lithophane --filter threshold 200 doc/img/ada.logo.png\nbin/lithophane --filter sharpen doc/img/ada.logo.png\n```\n\n**Config file**\n\n`-c`/`--config` points to a TOML file such as [config.toml](doc/example/config.toml):\n```toml\ninput-name = \"foo.png\"\noutput-name = \"test\"\nfilter = \"threshold\"\nfilter_size = 3\nfilter_threshold = 128\nborder_size = 20\nsave-ascii = false\nsave-binary = true\nsave-3mf = false\nsave-pgm = true\nheight = 10\ndimensions = { width = 100.0, height = 100.0, depth = 1.5 }\n```\n\nEvery key is optional; a missing key keeps its default. `filter_size` must be a\npositive odd integer, `filter_threshold` must be in `0..255`, and `border_size`\nmust be a non-negative integer, otherwise the key is ignored. `dimensions` is an\ninline table (`width` / `height` / `depth`, in millimetres, applied to the 3MF\noutput); any sub-key may be omitted or set to `0` to leave that axis\nproportional. The config file is read at the point where `-c`/`--config`\nappears on the command line, so options placed *after* it still take effect.\n\n> [!NOTE]\n> `-f`/`--filter` and `-c`/`--config` are wired up: the selected filter (and its\n> size / threshold) is applied to the grayscale image before the STL is\n> generated, and the config file overrides the matching settings.\n> `-B`/`--border` is wired up too: it sets the white margin added around the\n> image before conversion. When no filter is selected, a threshold filter at mid-grey\n> (`128`) is applied by default.\n",
          "maintainers": [
            "Simon Beàn <smionean@gmail.com>"
          ],
          "maintainers-logins": [
            "smionean"
          ],
          "name": "lithophane",
          "origin": {
            "commit": "01e28ce1f09e3bbec6b73a8d76f02507e5703f9a",
            "url": "git+https://github.com/smionean/lithophane_ada.git"
          },
          "tags": [
            "3dprint",
            "lithophane",
            "lithography",
            "stl",
            "3mf"
          ],
          "version": "1.0.0",
          "website": "https://github.com/smionean/lithophane_ada"
        },
        "path": "index/li/lithophane/lithophane-1.0.0.toml",
        "version": "1.0.0"
      },
      {
        "dependants": [],
        "dependencies": [
          {
            "catalog": "community",
            "condition": null,
            "name": "gid",
            "package": "gid",
            "provided_version": "14.0.0",
            "requirement": "^14.0.0",
            "resolved": true,
            "version": "14.0.0"
          },
          {
            "catalog": "community",
            "condition": null,
            "name": "getopt",
            "package": "getopt",
            "provided_version": "2.0.0",
            "requirement": "^2.0.0",
            "resolved": true,
            "version": "2.0.0"
          }
        ],
        "development": false,
        "external": false,
        "manifest": {
          "authors": [
            "Simon Beàn"
          ],
          "build-switches": {
            "*": {
              "Ada_Version": "Ada2022"
            }
          },
          "depends-on": [
            {
              "gid": "^14.0.0"
            },
            {
              "getopt": "^2.0.0"
            }
          ],
          "description": "Create lithophane with Ada",
          "executables": [
            "lithophane"
          ],
          "licenses": "MIT OR Apache-2.0 WITH LLVM-exception",
          "long-description": "Create [lithophane](https://en.wikipedia.org/wiki/Lithophane) of your favourite picture with Ada.\n\n\n\n**Usage**\n```\nlithophane [options] <input_file>\n```\n\n`<input_file>` is the picture to convert (any format supported by\n[GID](https://gen-img-dec.sourceforge.io): PNG, JPEG, BMP, GIF, TGA, ...).\n\n**Options**\n```\n-h --help\n-v --version\n-b --save-binary          (default)\n-a --save-ascii\n-p --save-pgm\n-o<name> --output-name=<name>\n-H<height> --height=<height>\n-f<filter> --filter=<filter>\n-c<file> --config=<file>\n```\n\n| Option | Description |\n| --- | --- |\n| `-h`, `--help` | print usage and exit |\n| `-v`, `--version` | print the program version and exit |\n| `-b`, `--save-binary` | write the lithophane as a binary STL file: `<output-name>.bin.stl` (this is the default output if no `-a`/`-b`/`-p` flag is given) |\n| `-a`, `--save-ascii` | write the lithophane as an ASCII STL file: `<output-name>.ascii.stl` |\n| `-p`, `--save-pgm` | also dump the grayscale-converted image as a PGM file: `<output-name>.pgm` |\n| `-o<name>`, `--output-name=<name>` | base name used for every output file above (default: `test`) |\n| `-H<height>`, `--height=<height>` | target height of the lithophane |\n| `-f<filter>`, `--filter=<filter>` | image filter to apply before conversion |\n| `-c<file>`, `--config=<file>` | read options from a config file instead of (or in addition to) the command line; when given, it overrides any previous option |\n\nYou can combine `-a`, `-b` and `-p`: each one adds its own output file, they are\nnot mutually exclusive.\n\n**Config file**\n\n`-c`/`--config` points to a TOML file such as [config.toml](config.toml):\n```toml\ninput-name = \"foo.png\"\noutput-name = \"test\"\nfilter = \"threshold\"\nsave-ascii = false\nsave-binary = true\nsave-pgm = true\nheight = 10\n```\n\n> [!NOTE]\n> `-f`/`--filter`, `-H`/`--height` and `-c`/`--config` are already accepted on\n> the command line but are not wired up yet: filters, height scaling and the\n> config file are parsed but have no effect on the generated STL for now\n> (see TODO below). The only filter currently applied is a fixed threshold at\n> mid-grey, done automatically when saving to binary STL.\n",
          "maintainers": [
            "Simon Beàn <smionean@gmail.com>"
          ],
          "maintainers-logins": [
            "smionean"
          ],
          "name": "lithophane",
          "origin": {
            "commit": "c130d911bf25618d8def97581d34a20692f9e932",
            "url": "git+https://github.com/smionean/lithophane_ada.git"
          },
          "tags": [
            "3dprint",
            "lithophane",
            "lithography"
          ],
          "version": "0.1.1",
          "website": "https://github.com/smionean/lithophane_ada"
        },
        "path": "index/li/lithophane/lithophane-0.1.1.toml",
        "version": "0.1.1"
      },
      {
        "dependants": [],
        "dependencies": [
          {
            "catalog": "community",
            "condition": null,
            "name": "gid",
            "package": "gid",
            "provided_version": "14.0.0",
            "requirement": "^14.0.0",
            "resolved": true,
            "version": "14.0.0"
          },
          {
            "catalog": "community",
            "condition": null,
            "name": "getopt",
            "package": "getopt",
            "provided_version": "2.0.0",
            "requirement": "^2.0.0",
            "resolved": true,
            "version": "2.0.0"
          }
        ],
        "development": false,
        "external": false,
        "manifest": {
          "authors": [
            "Simon Bean"
          ],
          "build-switches": {
            "*": {
              "Ada_Version": "Ada2022"
            }
          },
          "depends-on": [
            {
              "gid": "^14.0.0"
            },
            {
              "getopt": "^2.0.0"
            }
          ],
          "description": "Lithophane generator with Ada",
          "executables": [
            "lithophane"
          ],
          "licenses": "MIT OR Apache-2.0 WITH LLVM-exception",
          "maintainers": [
            "Simon Bean <smionean@gmail.com>"
          ],
          "maintainers-logins": [
            "smionean"
          ],
          "name": "lithophane",
          "origin": {
            "commit": "f81a38295f0b866211babad4b71da5f473e60639",
            "url": "git+https://github.com/smionean/lithophane_ada.git"
          },
          "tags": [
            "3dprint",
            "lithophane",
            "lithography"
          ],
          "version": "0.1.0",
          "website": ""
        },
        "path": "index/li/lithophane/lithophane-0.1.0.toml",
        "version": "0.1.0"
      }
    ]
  },
  "schema_version": 4
}
