Expand description
§symbios-robot
Engine-agnostic robot interpretation layer for Symbios L-Systems.
This crate translates an L-System symbol sequence into a blueprint::RobotBlueprint —
a complete description of a robot’s topology (rigid bodies, joints, sensors) that decouples
the Genotype (L-System string) from the Phenotype (physics simulation).
§Quick start
ⓘ
use symbios::{SymbiosState, SymbolTable};
use symbios_robot::{RobotConfig, RobotInterpreter};
let mut interner = SymbolTable::new();
interner.intern("B").unwrap();
let mut interpreter = RobotInterpreter::new(RobotConfig::default());
interpreter.populate_standard_symbols(&interner);
let mut state = SymbiosState::new();
let b_id = interner.resolve_id("B").unwrap();
state.push(b_id, 0.0, &[1.0, 0.1, 0.1]).unwrap();
let blueprint = interpreter.build_blueprint(&state);
assert_eq!(blueprint.modules.len(), 1);§Modules
blueprint— Engine-agnostic data:blueprint::RobotBlueprint,blueprint::RobotModule,blueprint::ShapePrimitive,blueprint::JointDefinition,blueprint::JointType/blueprint::JointTypeKind,blueprint::AxisLimit,blueprint::EndEffector(addressed byblueprint::EndEffectorId),blueprint::SensorMount/blueprint::SensorType, and theblueprint::ModuleId/blueprint::MaterialIdaliases.interpreter—interpreter::RobotInterpreter(withinterpreter::RobotInterpreter::set_op,interpreter::RobotInterpreter::with_map, andinterpreter::RobotInterpreter::populate_standard_symbols) plusinterpreter::RobotConfig.turtle—turtle::RobotTurtleState,turtle::RobotOp, andturtle::ActiveJointConfig(the per-step state the interpreter threads through the symbol stream).
All public items in these modules are re-exported at the crate root.
Re-exports§
pub use blueprint::*;pub use interpreter::*;pub use turtle::*;
Modules§
- blueprint
- interpreter
- Interpreter that converts an L-System symbol sequence into a
RobotBlueprint. - turtle
- Turtle state and operations for robotic interpretation.