Skip to main content

Crate braid_sim

Crate braid_sim 

Source
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: a sim.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-camera flydra_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 Scenario and serialize it to the flydra XML format that Braid loads.
harness
Generate the on-disk artifacts a full braid-run needs to run a scenario: the synthetic calibration (flydra XML) and a Braid configuration TOML wiring up the sim camera 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.toml scenario 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.