zeyuanyin/Dome-Objaverse
Dome-Objaverse Multi-view renders of 83,296 Objaverse objects — 48 views each, on a camera dome of 4 elevations × 12 azimuths. The 48 views in order: three azimuth rings at elevations 0°, 30° and 60°, plus a top-down ring at 90°. The highlighted camera on the dome is the one that took the image on the left. Rendering is the computationally demanding bottleneck of multi-view 3D datasets — typically over 100,000 CPU… See the full description on the dataset page: https://huggingface.co/datasets/zeyuanyin/Dome-Objaverse.
<div align="center">
Dome-Objaverse
Multi-view renders of 83,296 Objaverse objects — 48 views each, on a camera dome of 4 elevations × 12 azimuths.
<p align="center"> <a href="https://huggingface.co/datasets/zeyuanyin/Dome-Objaverse"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Dataset-FFD21E?style=for-the-badge&logoColor=black" alt="Hugging Face Dataset"></a> <a href="https://zeyuanyin.github.io/Dome-Objaverse/"><img src="https://img.shields.io/badge/%F0%9F%8C%90%20Viewer%20Website-Online%20Demo-2f6df6?style=for-the-badge" alt="Viewer Website"></a> <a href="https://github.com/zeyuanyin/Dome-Objaverse"><img src="https://img.shields.io/badge/GitHub-Code-181717?style=for-the-badge&logo=github" alt="GitHub Code"></a> </p>

The 48 views in order: three azimuth rings at elevations 0°, 30° and 60°, plus a top-down ring at 90°. The highlighted camera on the dome is the one that took the image on the left.
</div>
Rendering is the computationally demanding bottleneck of multi-view 3D datasets — typically over 100,000 CPU core hours for 83k objects. Our rendered pixels already exist: 512×512 RGBA plus per-view normal and depth maps, ~1.5 TB for the primary split and freely downloadable, each object paired with its Objaverse UID and a Cap3D caption. Dome is literal for the primary dome_objaverse split: all cameras sit on the upper hemisphere (elevations 0° to 90°). The accompanying gobjaverse_parquet split preserves GObjaverse's original trajectory, which dips to elevation −90° (see "Splits & Metadata" below).
- License: CC-BY-4.0, ~1.5 TB for the primary split, parquet-packaged.
- Viewer: zeyuanyin.github.io/Dome-Objaverse — search all 83,296 captions, browse every view, and see interactive 3D fused point clouds in-browser before downloading anything.
- Code: loading/decoding scripts, the rendering pipeline, and full schema docs live at github.com/zeyuanyin/Dome-Objaverse.
Comparison with other Objaverse render sets
Two things distinguish Dome-Objaverse: a regular, fully-specified camera grid (four rings of identical 12-step azimuth sweeps, every view addressable by view_id), and the fact that the pixels are actually published rather than left to the user to render.
Splits & Metadata
Both splits cover the exact same 83,296 objects with zero missing objects.
- `dome_objaverse`:
view_id0–11 / 12–23 / 24–35 / 36–47 are elevation0°/30°/60°/90°respectively, each a 12-step azimuth sweep0°, 30°, ..., 330°. - `gobjaverse_parquet`: camera parameters are read dynamically per-view from the embedded
00000.json...00039.jsonmetadata files.
metadata/objects.parquet (5 MB, ships in this repo) is the join table, 83,296 rows with 100% coverage. The columns you'll actually use: object_id (e.g. "0/10228"), objaverse_uid, glb_path, caption, camera_distance. It also carries group_id/index_id (the two halves of object_id) and sheet_id/sheet_pos (internal thumbnail-sheet coordinates used only by the web viewer) — safe to ignore for training. Legacy per-field JSON files (camera_distances.json, gobjaverse_index_to_objaverse.json, text_captions_cap3d.json, cobj_done_list.json) are also included; their content is already consolidated into objects.parquet.
Rendering
Full config in pipeline/2-render/blender_script.py; a decode example is in pipeline/4-usage/load_views.py. Two things that will silently produce wrong results if assumed otherwise:
- ⚠️ Camera distance is per object,
1.50–2.00(seecamera_distanceinobjects.parquet), not a fixed constant. - ⚠️ `nd_png` (16-bit normal + depth) channel order is reversed: R = normal z, G = normal y, B = normal x, alpha = depth (
alpha / 65535 × 5.0, planar along the camera axis). Usecv2.imdecode(..., cv2.IMREAD_UNCHANGED), not PIL — it silently downcasts to 8-bit.
License
Code in this repository is Apache-2.0 (see LICENSE), matching AI2's objaverse-rendering, which render/ derives from. The rendered image data on Hugging Face is CC-BY-4.0. Individual Objaverse source meshes carry their own licenses — use objaverse_uid in metadata/objects.parquet to look them up.
Attribution
- Source meshes: Objaverse (Allen Institute for AI / AI2).
- Original camera convention and the 280k render set: GObjaverse / RichDreamer.
- The curated 83k-object subset comes from ashawkey/objaverse_filter.
- Captions: Cap3D.
- Rendering scripts derive from AI2's objaverse-rendering (Apache-2.0; see
pipeline/2-render/LICENSE).
Please also cite the original Objaverse / GObjaverse sources and state which split(s) you used.
Citation
This dataset is an extension of our NeurIPS 2025 publication, TRIM: Scalable 3D Gaussian Diffusion Inference with Temporal and Spatial Trimming. If you find it helpful, please consider citing:
@inproceedings{
Yin2025TRIM,
title={{TRIM}: Scalable 3D Gaussian Diffusion Inference with Temporal and Spatial Trimming},
author={Yin, Zeyuan and Liu, Xiaoming},
booktitle={The Thirty-ninth Annual Conference on Neural Information Processing Systems (NeurIPS)},
year={2025}
}