Expand description
Simulation core for end-to-end testing of Braid’s live 3D tracking.
This crate is the shared simulation core. It provides:
scenario::Scenario: asim.toml-deserializable description of the simulated world (arena, cameras, insects, blob rendering, frame rate).world::World: a deterministic ground-truth model — insect 3D positions are a pure function of time, so independent fake-camera processes can each reconstruct the same world for a given synchronized frame.calibration::build_calibration: generate a synthetic multi-cameraflydra_mvg::FlydraMultiCameraSystem(and serialize it to the flydra XML that Braid loads) so the same calibration is used to project ground truth and to reconstruct it.projection: project a 3D point into each camera’s distorted pixel, with field-of-view culling.
Re-exports§
pub use scenario::Scenario;pub use world::InsectState;pub use world::World;
Modules§
- calibration
- Generate a synthetic multi-camera calibration from a
Scenarioand serialize it to the flydra XML format that Braid loads. - harness
- Generate the on-disk artifacts a full
braid-runneeds to run a scenario: the synthetic calibration (flydra XML) and a Braid configuration TOML wiring up thesimcamera backend. - projection
- Project 3D ground-truth points into each camera’s distorted pixel, with field-of-view culling.
- render
- Render insects as Gaussian blobs into a Mono8 image that the real flydra-feature-detector reliably localizes.
- scenario
- The
sim.tomlscenario schema: the single source of truth for a simulated run (arena, cameras, insects, blob rendering, frame rate). - score
- Oracle for the simulation harness: summarize the 3D tracks in a
.braidz, and compare a live recording against an offline retrack of the same file. - truth
- Ground-truth oracle for the simulation harness.
- world
- The deterministic ground-truth world: insect 3D positions as a pure function of time.