CoolFace
Datasetpublic

izhleba/hypersim-frustum-completion

Hypersim Frustum Point Completion A large-scale indoor point-cloud completion dataset derived from Hypersim. Each record simulates a partially observed room: one real camera view provides context, while a synthetic nearby “missing camera” frustum hides part of the scene. Models are trained to infer the masked region from visible points. Why this dataset exists. Real 3D capture — whether from depth sensors, multi-view reconstruction, or neural fields — routinely produces… See the full description on the dataset page: https://huggingface.co/datasets/izhleba/hypersim-frustum-completion.

sourceHugging Facecc-by-sa-3.0updated 3mo agoView on Hugging Face
2likes9.6kdownloads
Dataset Card

Hypersim Frustum Point Completion

A large-scale indoor point-cloud completion dataset derived from Hypersim. Each record simulates a partially observed room: one real camera view provides context, while a synthetic nearby “missing camera” frustum hides part of the scene. Models are trained to infer the masked region from visible points.

Why this dataset exists. Real 3D capture — whether from depth sensors, multi-view reconstruction, or neural fields — routinely produces incomplete geometry: occlusions, limited baselines, and out-of-frustum regions leave holes. Supervised completion methods need paired examples of what was seen and what was missing, with ground-truth geometry and appearance. Hypersim provides photorealistic indoor scenes with dense per-pixel 3D position, RGB, and normals; this release turns those renders into ~57k completion tuples with explicit visible/masked splits, signed-distance supervision to the missing region, and both camera poses.

Dataset at a glance

PropertyValue
SourceHypersim (457 public scenes)
Records~57k .npz files (train / val / test per scene)
Points per record8,192
Channelsxyz (float32, meters), rgb (uint8), normal (float32, world-space)
Masking5–40% of context points hidden by a synthetic frustum
Variants per frame20 accepted missing-camera poses
LicenseCC-BY-SA 3.0 (derivative of Hypersim)

Layout

Scene directories sit at the repository root (one folder per Hypersim scene):

text
ai_002_001/
├── manifest.csv          # one row per record (split, mask stats, …)
├── stats.json            # per-scene aggregates
└── records/
    ├── ai_002_001__f0000_v00.npz
    └── ...
repro/                    # scripts + loader to rebuild from Hypersim
├── configs/hypersim_all_scenes.txt
├── scripts/
├── prob3d/
└── requirements.txt

Record schema (.npz)

KeyShapeDtypeDescription
xyz(N, 3)float32World-space positions (meters)
rgb(N, 3)uint8Source-pixel RGB
normal(N, 3)float32World-space GT normals
is_visible(N,)boolTrue if point is outside the missing frustum
region_sdf(N,)float32Signed distance to missing-frustum boundary (+ inside)
region_descriptor(6,)float32Missing-frustum AABB centroid + half-extents
context_w2c(4, 4)float64Context camera world-to-camera (OpenCV)
missing_w2c(4, 4)float64Synthetic missing-camera world-to-camera
intrinsics(8,)float32fx, fy, cx, cy, W, H, znear, zfar
metaobjectdictscene, frame, variant, split, mask fractions, seed

Splits (per scene, frame-index based): test every 10th frame; val at frames 5, 15, 25, …; remaining frames are train.

Quick start (PyTorch loader)

bash
cd repro
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export PYTHONPATH=$(pwd)
python
from pathlib import Path
from prob3d.training.dataset import FrustumCompletionDataset

# Point at the dataset root (parent of scene folders)
root = Path("..")  # repo root when cwd is repro/
ds = FrustumCompletionDataset(root, split="train")
sample = ds[0]
print(sample["xyz"].shape, sample["rgb"].shape, sample["is_visible"].sum())

Visible points are the model input; masked points (~is_visible) are the completion target.

Held-out scenes

For strict train/val isolation, ten scenes are recommended as a physical holdout (repro/docs/HOLDOUT_SCENES.json, seed 0). Move them out of the training root before training:

bash
cd repro
PYTHONPATH=$(pwd) python scripts/make_holdout_split.py \
    --dataset-root .. \
    --holdout-dir ../holdout_10scenes \
    --n 10 --seed 0

Reproduce from Hypersim

The full pipeline downloads public Hypersim scene zips from Apple's CDN, extracts geometry, and builds records:

bash
cd repro
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

bash scripts/prepare_full_dataset.sh \
    --out-dir /path/to/completion_dataset \
    --workers 4

Single-scene smoke test:

bash
PYTHONPATH=$(pwd) python scripts/prepare_completion_dataset.py \
    --scene-dir /path/to/raw/hypersim/ai_002_001 \
    --out-dir /tmp/ai_002_001 \
    --with-normals

Validate one prepared scene:

bash
PYTHONPATH=$(pwd) python scripts/validate_completion_scene.py /tmp/ai_002_001

Generation parameters (full release)

ParameterValue
n_points8192
n_variants20 per frame
mask_min_frac / mask_max_frac0.05 / 0.40
z_near / z_far0.2 / 8.0 m
Texture subsampling7×7 luminance std-dev, 5% floor
seed0
val_frame_stride / test_frame_stride10 / 10

Attribution

This dataset is a derivative work of the Hypersim Dataset (Roberts et al., Apple), licensed under CC-BY-SA 3.0.

Please cite Hypersim:

bibtex
@inproceedings{roberts:2021,
  author    = {Mike Roberts and Jason Ramapuram and
               Artur Szlam and Gabriel Synnaeve and
               Soumith Chintala and Pushmeet Kohli},
  title     = {{Hypersim}: A Photorealistic Synthetic Dataset for Holistic Indoor Scene Understanding},
  booktitle = {ICCV},
  year      = {2021}
}

Scene assets originate from Evermotion Archinteriors volumes (see the Hypersim paper and repository for details).

Suggested Hugging Face metadata

Use these when creating the dataset repository (some are already in the YAML header above):

  • Title: Hypersim Frustum Point Completion
  • Description: Indoor point-cloud completion tuples from Hypersim with xyz, RGB, normals, and synthetic missing-camera masks. ~57k records across 457 scenes for training models that inpaint occluded 3D regions.
  • License: cc-by-sa-3.0
  • Tags: hypersim, point-cloud, 3d-completion, indoor-scenes, normals
izhleba/hypersim-frustum-completion · CoolFace