Reproducibility guide¶
Levels of reproduction¶
The dependency-free core, the simulator tier, and the real-model tier have different requirements and must not be conflated.
| Level | Hardware | External assets | Expected evidence |
|---|---|---|---|
| CPU core | Python 3.11–3.13 CPU | none | 72+ tests, toy reports, video/control and closed-loop studies |
| LIBERO-CF-Mini | Linux GPU renderer | pinned LIBERO checkout/assets | exact restore, repeated/order-reversed branches, checksummed images/states |
| StarWAM | RTX-class CUDA GPU | pinned StarWAM, Wan2.2 and LIBERO files | cached action matrix, execution index, structured report |
CPU reproduction¶
git clone https://github.com/myheart521/WAMProbe.git
cd WAMProbe
git checkout <release-tag-or-commit>
python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'
ruff format --check .
ruff check .
mypy
pytest --cov=wamprobe --cov-report=term-missing --cov-fail-under=85
wamprobe demo --benchmark pointmass --contexts 12 --seed 7 \
--output runs/pointmass-reproduction
wamprobe video-control-study --contexts 12 --seed 7 \
--output runs/video-control-reproduction
wamprobe closed-loop-study --contexts 12 --seed 7 --execute-prefix 1 \
--resamples 1000 --output runs/closed-loop-reproduction
Compare generated video/control and closed-loop JSON files byte-for-byte with the committed
examples. The canonical SHA256 values are 1de2009f...cf4 and 19d2a010...89b3.
Simulator and real-model reproduction¶
Follow the isolated environment recipes in environments/libero/README.md and
environments/starwam/README.md. Run wamprobe doctor --verify-hashes before importing
upstream model code. The release evidence manifest pins upstream revisions, configuration
files, committed reports, and the locally retained prediction/execution index hashes.
Generated RGB, simulator state, model weights and raw predictions remain outside Git. Their reports contain hashes and explicit availability labels; absence is an error, not a reason to synthesize substitute results. Candidate-action metrics remain skipped for the released StarWAM interface because it accepts observations and emits an action chunk, not an action-conditioned future for each proposed candidate.
Candidate package reproduction¶
Run scripts/build_release_candidate.py from a clean commit. A valid candidate has two
byte-reproducible distributions, a release-manifest.json, a passing offline clean-wheel
install, and matching evidence hashes. See
release/README.md.
Maintainer acceptance and optional independent reports¶
The v0.1.0 release uses a documented maintainer clean-install check as its package
acceptance gate. The report must record the Git tag, operating system, Python version,
install command, exact smoke command, exit status, output JSON SHA256, elapsed time, and
any deviation. Issue #2 preserves the public record.
Independent reports remain welcome as additional evidence. A template is provided in
EXTERNAL_REPRODUCTION_TEMPLATE.md. A maintainer-run
check must always be labeled as maintainer evidence and never described as independent.