cmevs-code / README_REPRODUCE.md
anon-cmevs-2026's picture
Finalize team code attribution, release integrity and smoke-test correctness
4b8c78e verified
|
Raw History Blame Contribute Delete
4.27 kB

Reproduction guide

Available paths

Path Input Output and interpretation
bash scripts/run_tiny.sh Bundled synthetic JSONL Normalized example metadata, simulated renders and example metrics; no scene geometry
bash scripts/run_blender_indoor.sh Local .blend assets and Blender Native asset-based render/export pipeline
scripts/summarize_blender_indoor_run.py Native selected_frames.json outputs Inventory/summary of completed runs
scripts/select_views.py One scene's normalized candidates with precomputed covered_cells and conflict_prior Deterministic example set selection
scripts/evaluate_coverage.py Normalized candidates and selected IDs Fraction of valid-candidate cells covered; not automatically a 0.10-m world-voxel metric
scripts/evaluate_oracle_gap.py Normalized candidates with supplied oracle_gain annotations Correlations and annotated gaps; does not generate a render-all oracle
scripts/audit_quality.py Normalized simulated-render naming and selection metadata File signatures, array shape/size and basic pose structure; not visual/geometry quality

Tiny example

bash scripts/run_tiny.sh

This path uses Python 3.10+ and Bash only. Generated CSVs and logs remain under the output directory. Their values validate example wiring, not paper results. In the example selector, score = marginal covered-cell gain + 0.15 * supplied single-view probe coverage - lambda * supplied conflict prior. Those priors are static example annotations; this is not the paper's dynamic range-depth disagreement computation.

The example takes at most the supplied budget and may stop early for low gain. Candidate IDs must be unique; all records must describe one source/scene, and selected IDs must refer to valid candidates.

Asset-based Blender pipeline

DRY_RUN=1 BLENDER=/path/to/blender INPUT_DIR=/path/to/blend_scenes \
  bash scripts/run_blender_indoor.sh

After inspecting the planned scene list, omit DRY_RUN=1 to run. Blender and scene assets are required for rendering. Native outputs include per-scene selected_frames.json and final frame files, rather than the normalized metadata/selected_viewpoints.json used above. Do not pass native output directly to the normalized example scripts without a real conversion and the required annotations.

python3 scripts/summarize_blender_indoor_run.py \
  --output-root outputs/blender_indoor \
  --output outputs/blender_indoor/summary.csv

The current native Blender selector scores projected unoccupied pixels against an overlap penalty. Its default stopping and scoring parameters are implementation defaults. This path has not been established as the exact 900-scene or ERP-NVS protocol; see RELEASE_SCOPE.md.

Public data conventions

Use https://huggingface.co/datasets/CM-EVS-Dataset/cmevs-erp-eval for public frames. Pose JSONs contain absolute scene positions, a scalar-first rotation_quaternion and an explicit cam_to_world declaration. A world-to-camera rotation requires inversion/transposition, and translation must be derived in the same coordinate frame. The no-data example has simplified position/yaw poses and is not a production calibration sample.

The public frame manifest has reserved unpopulated curator columns; real candidate pools and per-step selection logs are not supplied for the hosted frames. Generated example logs do not fill that release gap.

Experimental coverage

Complete drivers, data selections and training settings for the paper's 900-scene baseline sweep, bootstrap intervals, ERP-adapted LVSM/LoRA training, Replica evaluation, and final oracle diagnostics are not included here. The outdoor re-encoding implementation is also not part of this code snapshot. Existing source configs or JSON schemas do not substitute for these components. No future release date is asserted by this repository.

Checks before publication

python3 -m unittest discover -s tests -v
bash scripts/run_tiny.sh
python3 scripts/check_release.py

These checks do not run Blender, licensed scenes, GPU training or paper-scale evaluation. Obtain external assets only through their official access paths and terms.