RVDLAB

Experiments and replay

Keep the conditions, inputs and results of each run together.

Build
cmake --preset release
cmake --build --preset release
ctest --preset release

Commands 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.

experiments/example/

Run provenance

metadata.json

Model 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.

Replay a record
build/release/rail_replay experiments/example

Check 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.

The minimal 12-step example typically reports MAX_STEPS with exit code 1. A complete record can still be replayed.