| Crates.io | symbios |
| lib.rs | symbios |
| version | 1.0.1 |
| created_at | 2026-01-10 15:56:33.106921+00 |
| updated_at | 2026-01-24 14:40:38.549449+00 |
| description | A derivation engine for L-Systems (ABOP compliant). |
| homepage | |
| repository | https://github.com/TheJanusStream/symbios |
| max_upload_size | |
| id | 2034373 |
| size | 178,013 |
A Sovereign Derivation Engine for Parametric L-Systems.
Symbios is a pure-Rust, zero-dependency (core), high-performance engine for generating Lindenmayer Systems. It is designed for "Sovereign" applications where the logic must run locally, deterministically, and safely (e.g., WASM environments, embedded simulation).
It fully implements the syntax and semantics described in The Algorithmic Beauty of Plants (Prusinkiewicz & Lindenmayer, 1990).
(k,l)-systems, arithmetic guards A(x) : x > 5 -> ..., and variable binding.rand_pcg) ensures reproducible procedural generation.[dependencies]
symbios = "1.0.1"
use symbios::System;
fn main() {
let mut sys = System::new();
// 1. Define Rules (ABOP Syntax)
// A module 'A' with parameter 'x' grows if 'x' is small
sys.add_rule("A(x) : x < 10 -> A(x + 1) B(x)").unwrap();
// 2. Set Axiom
sys.set_axiom("A(0)").unwrap();
// 3. Derive
sys.derive(5).unwrap();
// 4. Inspect
println!("{}", sys.state.display(&sys.interner));
}
Symbios uses a flat memory arena for parameters and u16 symbol interning.
See PERFORMANCE.md for detailed benchmarks and optimization tips.
See examples/ for complete working examples:
MIT