Simulation Architecture

An Elodin simulation consists of:

  • Systems: Systems are reusable functions that operate on a set of components. Composing different systems allows for the creation of custom physics engines. Some examples of systems include gravity, aerodynamics, collision detection.
  • World: World is a container of all the entities in the simulation. See ECS Data Model for more context on entities.
  • Flight Software (FSW): Flight software is a set of processes that run independent of the simulation. Using conduit, FSW subscribes to relevant simulation data and sends control commands back to the simulation.

Simulation Architecture

ECS Data Model

Elodin uses the Entity Component System (ECS) pattern to manage simulation data. Entities are simply unique references to a collection of components. Components are individual properties associated with an entity like position, velocity, mass, etc.

Archetypes are a unique combination of components that allow for efficient memory management and data access patterns. Entities are spawned with a list of archetypes rather than individual components.

Data Model

Systems are simply functions that operate on component data.