YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
CM-EVS Anonymous Code Release
This repository contains the anonymous code release for CM-EVS: Conflict-Minimized Efficient View Selection for Scalable 3D Scene Data Acquisition.
The release is intentionally organized around one primary review path:
Blender indoor .blend scenes
-> candidate generation
-> conflict-minimized view selection
-> selected ERP rendering
-> coverage, oracle-gap, and quality-audit outputs
HM3D/GLB and ScanNet++/PLY support is included as secondary adapters, but the first path reviewers should inspect is the Blender-indoor path.
Review-Ready Entry Points
| Purpose | Command |
|---|---|
| No-data smoke test | bash scripts/run_tiny.sh |
| Blender-indoor dry run | DRY_RUN=1 BLENDER=/path/to/blender INPUT_DIR=/path/to/blend_scenes bash scripts/run_blender_indoor.sh |
| Full Blender-indoor run | BLENDER=/path/to/blender INPUT_DIR=/path/to/blend_scenes bash scripts/run_blender_indoor.sh |
| Summarize Blender-indoor run | python3 scripts/summarize_blender_indoor_run.py --output-root outputs/blender_indoor |
| Anonymity check | bash scripts/check_anonymity.sh |
The smoke test is designed to run without private assets. The full Blender-indoor run requires local .blend scenes and a Blender executable.
Repository Layout
.
βββ pipelines/ # full scene pipelines; Blender indoor is the primary path
βββ scripts/ # review and reproduction entry points
βββ configs/ # default and source-specific configs
βββ core/ # ERP projection, tangent extraction, depth, and warping modules
βββ tools/ # semantic and navigability helpers
βββ utils/ # IO and pose utilities
βββ examples/ # tiny Blender-indoor-style metadata example
βββ metadata_examples/ # JSON schemas for candidate/selection logs
βββ data/ # local data mount point, not tracked
βββ third_party/ # optional external dependencies, not tracked
βββ results/ # generated result CSVs
Environment
conda env create -f environment.yml
conda activate cmevs
If Conda is unavailable:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Minimal Smoke Test
bash scripts/run_tiny.sh
Expected outputs:
outputs/tiny/metadata/candidates.jsonl
outputs/tiny/metadata/selected_viewpoints.json
outputs/tiny/metadata/per_step_log.jsonl
outputs/tiny/renders/
outputs/tiny/results/coverage_main.csv
outputs/tiny/results/oracle_validation.csv
outputs/tiny/results/audit_50_frames.csv
This test validates the repository wiring and metadata contracts. It is not intended to reproduce paper-scale numbers.
Paper Experiments
The driver scripts for the Β§6 evaluation experiments (fixed-budget coverage, oracle-gain validation, Ξ» sweep, cross-source robustness, downstream depth) are scheduled to be released alongside the camera-ready paper. The current release ships the algorithmic core (scripts/build_candidates.py, scripts/select_views.py, scripts/render_selected.py), the per-stage evaluation building blocks (scripts/evaluate_coverage.py, scripts/evaluate_oracle_gap.py, scripts/audit_quality.py), and the metadata-contract example through the smoke test. Reviewers can verify the algorithmic core end-to-end via the smoke test above.
Primary Full Run: Blender Indoor
Put .blend scenes under data/blender_indoor/, or point INPUT_DIR to another directory. Nested layouts are supported; the first subdirectory under INPUT_DIR is used as the scene name.
Dry run:
DRY_RUN=1 \
BLENDER=/path/to/blender \
INPUT_DIR=data/blender_indoor \
OUTPUT_ROOT=outputs/blender_indoor \
bash scripts/run_blender_indoor.sh
Full run:
BLENDER=/path/to/blender \
INPUT_DIR=data/blender_indoor \
OUTPUT_ROOT=outputs/blender_indoor \
NUM_FRAMES=30 \
RESOLUTION=2048,1024 \
bash scripts/run_blender_indoor.sh
Equivalent direct CLI:
export PYTHONPATH="$PWD:$PWD/pipelines:${PYTHONPATH:-}"
python3 pipelines/run_full_pipeline.py \
--blender /path/to/blender \
--input-dir data/blender_indoor \
--output-root outputs/blender_indoor \
--num-frames 30 \
--resolution 2048,1024 \
--grid-spacing 0.5 \
--min-frames 5 \
--stop-gain 0.08
Secondary Adapters
The repository also includes adapters for additional sources used in robustness analyses:
configs/blender_outdoor.yaml: generic.glb/.gltfscenes.configs/hm3d.yaml: HM3D-style.glb/.gltfscenes.configs/scannetpp.yaml: ScanNet++-style.plyscenes.
These adapters are provided for completeness, but the Blender-indoor route is the recommended first reviewer path.
Data and Checkpoints
This repository does not redistribute third-party scene assets, dataset files, or model checkpoints. Put local assets under data/ or pass absolute paths via CLI. The data/ directory is ignored by git.
Depth Pro is optional for ERPT-style depth fusion. If used, place it under:
third_party/ml-depth-pro/
third_party/ml-depth-pro/checkpoints/depth_pro.pt
Companion Dataset
The CM-EVS dataset (Blender indoor RGB-D panoramas, license-aware adapters for HM3D / ScanNet++ / OB3D / TartanGround, MLCommons Croissant metadata) is released as an anonymous Hugging Face dataset:
Dataset:
huggingface.co/datasets/anon-cmevs-2026/cmevs-erp-eval
The dataset card on that page includes the Datasheet, integrity-verification commands (shasum -a 256 -c SHA256SUMS), and the per-component license matrix. The Croissant manifest under dataset_metadata/croissant.json in this repository mirrors the dataset's metadata at release time.
Final Submission Check
Before uploading the code URL or zip:
bash scripts/run_tiny.sh
rm -rf outputs
bash scripts/check_anonymity.sh
The code is released under the MIT License for review. Dataset assets remain governed by their original licenses.