|
Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
|
Related: 01_core_philosophy.md | 03_signal_backplane.md | 13_configuration.md
If the simulation is flat, how do we handle multiple vehicles? Or a "Rocket" with "Stages"?
Entities are Virtual. They are nothing more than a standardized Namespace Prefix in the Signal Backplane.
We don't have a class Rocket containing class Stage. We have a config file that generates components with prefixes:
The "Separation" logic is just a component that monitors Stage1 signals and affects Stage2 signals. It doesn't need to "own" them.
Examples:
| Benefit | Description |
|---|---|
| No pointer surgery | Moving a component is just a string rename |
| Flat registry | All signals queryable with glob patterns |
| Implicit grouping | Falcon9.* queries all signals for that entity |
| No ownership hierarchy | Components can read/write any signal (by permission) |
While entities are virtual at runtime, they can be defined in configuration for human ergonomics:
At load time, this is flattened into individual components with namespaced signals.
See 13_configuration.md for full entity definition syntax.