Experiments and replay
Keep the conditions, inputs and results of each run together.
cmake --preset release
cmake --build --preset release
ctest --preset releaseCommands use the documented v0.4.0 source snapshot. Run them from the repository root. Installation instructions.
Inside a record
Select a file to see what it stores. This is the documented record structure.
Run provenance
metadata.jsonModel and artifact identifiers, SHA-256, runtime backend, compiler, build commit, seed and clock mode.
Controller replay
Replay restores the initial state and evaluates the controller against the inputs recorded during the experiment.
build/release/rail_replay experiments/exampleCheck integrity
Verify configuration, inputs and logs. Interrupted records without the completion checksum manifest are rejected.
Preserve precision
Actions and state use a 1e-9 tolerance. Status and flags must match exactly. Replay uses high-precision records.
Keep the environment
Retain the backend, toolchain and seed. Floating-point and random-distribution behavior can differ across platforms.
Separate hardware
Replay evaluates controller behavior under the recorded conditions. It sends no motion commands.
Read the outcome
A run ending at its step limit has a different meaning from successful docking or a runtime fault. Check summary.json for the result and events.jsonl for the sequence of events.
MAX_STEPS with exit code 1. A complete record can still be replayed.