{
  "canonical_url": "https://crates.flyology.org/community/",
  "catalog": {
    "name": "community",
    "repository_url": "https://github.com/alire-project/alire-index",
    "revision": "cd12c6aa35b7d6483841517305d57ba167ec78d0"
  },
  "generated_at": "2026-08-23T04:55:42Z",
  "index": {
    "version": "1.4.0"
  },
  "package": {
    "catalog": "community",
    "description": "L-Systems editor in Ada",
    "development_only": false,
    "latest_version": "1.0.0",
    "name": "lsystem_editor",
    "selected_version": "1.0.0",
    "versions": [
      {
        "dependants": [],
        "dependencies": [
          {
            "catalog": "community",
            "condition": null,
            "name": "gtkada",
            "package": "gtkada",
            "provided_version": "25.0.1",
            "requirement": "^25.0.1",
            "resolved": true,
            "version": "25.0.1"
          },
          {
            "catalog": "community",
            "condition": null,
            "name": "resources",
            "package": "resources",
            "provided_version": "0.1.0",
            "requirement": "~0.1.0",
            "resolved": true,
            "version": "0.1.0"
          }
        ],
        "development": false,
        "external": false,
        "manifest": {
          "authors": [
            "Heziode"
          ],
          "depends-on": [
            {
              "gtkada": "^25.0.1",
              "resources": "~0.1.0"
            }
          ],
          "description": "L-Systems editor in Ada",
          "executables": [
            "lsystem-editor"
          ],
          "licenses": "MIT",
          "long-description": "<img src=\"https://github.com/Heziode/lsystem-editor/blob/master/share/lsystem_editor/ressources/icon.png?raw=true\" alt=\"App Icon\">\n\n# L-System Editor\n\n<img src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License\">\n\nA comprehensive graphical and command-line editor for creating, manipulating, and visualizing Lindenmayer systems (L-systems).\n\nThis project was initially developed as part of a university project.\n\n## What are L-Systems?\n\nL-systems (Lindenmayer systems) are a type of formal grammar introduced by biologist Aristid Lindenmayer in 1968. They are particularly useful for modeling plant growth and generating fractals. An L-system consists of:\n\n- An **alphabet** of symbols that can be used to make strings\n- An **axiom** (initial string) to start with\n- A set of **production rules** that expand each symbol into a larger string of symbols\n\nThrough recursive application of these rules, complex structures can be generated from simple initial conditions.\n\n## Features\n\n- **Interactive GUI** for creating and editing L-systems\n- **Command-line interface** for batch processing and automated workflows\n- **Real-time visualization** of the L-system at different development levels\n- **Export capabilities** to PS (PostScript) format for now\n- **Customizable rendering** with adjustable parameters (colors, margins, dimensions)\n- **Save and load** L-system definitions using `.ls` files\n\n## Installation\n\n### Using Alire (recommended)\n\n```\nalr install lsystem_editor\n```\n\n### From Source\n\n1. Ensure you have Ada and GtkAda installed. This project depends on GNAT Lib.\n2. Clone the repository: `git clone https://github.com/Heziode/lsystem-editor.git`\n3. Build with Alire: `alr build` or manually with `make`\n\n## Usage\n\n### GUI Mode\n\nLaunch the graphical interface:\n\n```\n./bin/lsystem_editor\n# Or\nalr run\n```\n\nThe GUI offers:\n- A text editor area for defining L-system rules\n- Controls to adjust the development level\n- Real-time visualization of the L-system\n- Export options\n- Customization of colors and rendering parameters\n\n### Command-Line Mode\n\nFor automated processing or batch operations:\n\n```\nlsystem_editor --no-gui [OPTIONS]\n```\n\n#### Command-Line Options\n\n| Option | Long Form | Description |\n|--------|-----------|-------------|\n| `-i` | `--input=FILE` | Input file containing an L-system definition |\n| `-o` | `--output=FILE` | Output file to store an L-system definition |\n| `-e` | `--export=FORMAT` | Export format for the L-system representation |\n| `-p` | `--export-file=FILE` | Output file for the exported representation |\n| `-d` | `--develop=N` | Number of development steps to apply |\n| `-w` | `--width=N` | Width of the output representation |\n| `-h` | `--height=N` | Height of the output representation |\n| `-b` | `--background-color=COLOR` | Background color in hex format (e.g., #AABBCC) |\n| `-f` | `--foreground-color=COLOR` | Foreground color in hex format (e.g., #AABBCC) |\n| `-mt` | `--margin-top=N` | Top margin for rendering |\n| `-mr` | `--margin-right=N` | Right margin for rendering |\n| `-mb` | `--margin-bottom=N` | Bottom margin for rendering |\n| `-ml` | `--margin-left=N` | Left margin for rendering |\n\n## L-System File Format\n\nL-system definitions are stored in `.ls` files with the following syntax:\n\n```\n<angle> [angle in degrees]\n<axiom> [initial string]\n<rules>\n[symbol] [replacement string]\n[symbol] [replacement string]\n...\n</rules>\n```\n\n### Example L-System: Koch Curve\n\n```\n60.0\n-F++F++F\nF F-F++F-F\n```\n\nWhere:\n- `F` means \"draw forward\"\n- `+` means \"turn left by angle\"\n- `-` means \"turn right by angle\"\n\n## Controls in GUI Mode\n\n- **Text Editor**: Define and edit your L-system\n- **Validate Button**: Check if your L-system definition is valid\n- **Level Spinner**: Adjust the development level\n- **Color Controls**: Change foreground and background colors\n- **Export Options**: Save visualizations\n\n## License\n\nL-System Editor is distributed under the MIT License.\n\nCopyright (c) 2018 Quentin Dauprat (Heziode)\n\nSee the [LICENSE](https://github.com/Heziode/lsystem-editor/blob/master/LICENSE) file for full details.\n",
          "maintainers": [
            "Heziode <heziode@protonmail.com>"
          ],
          "maintainers-logins": [
            "heziode"
          ],
          "name": "lsystem_editor",
          "origin": {
            "commit": "b01f05b870b2eb91e95f4868e259d9208afdbe34",
            "url": "git+https://github.com/Heziode/lsystem-editor"
          },
          "project-files": [
            "LSystem_Editor.gpr"
          ],
          "tags": [
            "gtk",
            "gtk3",
            "ada",
            "l-systems",
            "gtkada",
            "l-system",
            "editor",
            "gui"
          ],
          "version": "1.0.0",
          "website": "https://github.com/Heziode/lsystem-editor"
        },
        "path": "index/ls/lsystem_editor/lsystem_editor-1.0.0.toml",
        "version": "1.0.0"
      }
    ]
  },
  "schema_version": 4
}
