{"id":21396691,"url":"https://github.com/hypesio/unity-l-system-parsing-and-interpretation-tool","last_synced_at":"2026-05-20T10:12:49.693Z","repository":{"id":114516960,"uuid":"470646413","full_name":"Hypesio/Unity-L-System-Parsing-and-Interpretation-Tool","owner":"Hypesio","description":"Easy to use Unity tool to parse and interprete L-System grammar","archived":false,"fork":false,"pushed_at":"2022-10-07T16:30:33.000Z","size":25142,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T14:49:26.654Z","etag":null,"topics":["destruction","l-system","unity","unity3d-plugin","vegetation"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hypesio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-03-16T15:39:59.000Z","updated_at":"2023-05-17T15:07:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"f327d3b7-0302-4a11-9425-2176a120bb7a","html_url":"https://github.com/Hypesio/Unity-L-System-Parsing-and-Interpretation-Tool","commit_stats":{"total_commits":19,"total_committers":2,"mean_commits":9.5,"dds":"0.21052631578947367","last_synced_commit":"ff375bada2dc3ce628bacafbd28d2e952492dbf5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Hypesio/Unity-L-System-Parsing-and-Interpretation-Tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypesio%2FUnity-L-System-Parsing-and-Interpretation-Tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypesio%2FUnity-L-System-Parsing-and-Interpretation-Tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypesio%2FUnity-L-System-Parsing-and-Interpretation-Tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypesio%2FUnity-L-System-Parsing-and-Interpretation-Tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hypesio","download_url":"https://codeload.github.com/Hypesio/Unity-L-System-Parsing-and-Interpretation-Tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hypesio%2FUnity-L-System-Parsing-and-Interpretation-Tool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264250927,"owners_count":23579597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["destruction","l-system","unity","unity3d-plugin","vegetation"],"created_at":"2024-11-22T14:28:38.472Z","updated_at":"2026-05-20T10:12:44.662Z","avatar_url":"https://github.com/Hypesio.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unity L-System parsing and interpretation tool\n\nThe goal of this project is to have a tool to parse and interprete L-System grammar that is easy to use and combine for any usage.\n\n### Parsing progress : \n- :heavy_check_mark: Simple grammar \n- :heavy_check_mark: Stochastic grammar (probability)\n- :heavy_check_mark: Parametrical grammar \n- :heavy_check_mark: Defines variables \n- :heavy_multiplication_x: Context sensitive grammar\n\n## Vegetation Generation and destruction :deciduous_tree: :boom:\nThe only system actually available with this L-System tool can generate vegetation following the guidelines written in the paper *The Algorithmic Beauty of Plants* written by P. Prusinkiewicz, A. Lindenmayer.\n\nThe script allows to easily change rules and parameters. You can load or save preset using scriptables objects and save an object generated as a prefab in one click.\n\n### Improvement coming to vegetation generation \n- :heavy_plus_sign: Include shapes\n- :heavy_plus_sign: Textures\n\n#### Generation examples\nSimple bush and flower made with simple grammar  |  Trees made with parametrical grammar | Growing plant\n:-------------------------:|:-------------------------:|:-------------------------:|\n![LSystemSimpleBushAndFlower](https://user-images.githubusercontent.com/47392735/163389813-a0c39662-63bd-4677-9032-1b85d1dd15eb.jpg)  |  ![LSystem4SimpleTrees](https://user-images.githubusercontent.com/47392735/163389843-925a31c2-94c8-4307-8f7e-340ba729236f.jpg) | \u003cvideo src=\"https://user-images.githubusercontent.com/47392735/194599425-5ae65cd9-6bde-4c34-a58d-e263f1b54b9b.mp4\"/\u003e\n\n#### Destruction \nFrom the vegetation generation a data-tree will be made to represent the data. Each node represent a cylinder and hold triangles and vertex informations. It allows to easily find the node of a specific triangle when we hit the vegetation with a raycast. It doesn't \"cut\" the vegetation but will break at the closest previous intersection in the vegetation. It offers fast and simple way to break vegetation into pieces. \nBefore destruction  |  After destruction | Video of the process\n:-------------------------:|:-------------------------:|:-------------------------:\n \u003cimg src=\"https://user-images.githubusercontent.com/47392735/163392054-1f1031e4-085c-4f89-a525-198d2dff4116.jpg\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/47392735/163392063-5bbc6888-e06d-4fa7-8283-7cd0dc086c43.jpg\" /\u003e | \u003cvideo src=\"https://user-images.githubusercontent.com/47392735/194599945-9b376569-f59a-4d6c-a967-301c59ec29f0.mp4\" width=\"50\" height=\"50\"/\u003e\n \n ## How to use parser for your own scripts\n```csharp\n    public int nbIteration;\n    public string axiom;\n    [SerializeField] public Rule[] rules;\n    public Define[] defines;\n \n    public string GenerateSomething()\n    {\n       string sentenceGenerated = GrammarInterpretation.ApplyGrammar(rules, defines, axiom, nbIteration);\n       // ... Do your stuff with the sentence generated\n    }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypesio%2Funity-l-system-parsing-and-interpretation-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypesio%2Funity-l-system-parsing-and-interpretation-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypesio%2Funity-l-system-parsing-and-interpretation-tool/lists"}