CoolFace
Datasetpublic

macpaw-research/asset-alignment-reference-views

Asset Alignment Reference Views Companion dataset for the paper "Rigid 3D Object Alignment: Optimization vs. Feed-Forward Prediction". Multi-view renderings of correctly assembled source–target pairs: each row shows one asset already aligned onto its target object, rendered from 12 orbiting viewpoints with RGB and depth. Where asset-alignment-pairs-905k shows the asset misaligned and supplies the transformation that fixes it, this dataset shows the ground-truth assembled result.… See the full description on the dataset page: https://huggingface.co/datasets/macpaw-research/asset-alignment-reference-views.

sourceHugging Facemitupdated 28d agoView on Hugging Face
0likes564downloads
Dataset Card

Asset Alignment Reference Views

Companion dataset for the paper "Rigid 3D Object Alignment: Optimization vs. Feed-Forward Prediction".

Multi-view renderings of correctly assembled source–target pairs: each row shows one asset already aligned onto its target object, rendered from 12 orbiting viewpoints with RGB and depth.

Where `asset-alignment-pairs-905k` shows the asset misaligned and supplies the transformation that fixes it, this dataset shows the ground-truth assembled result.

The Dataset Viewer is disabled because depth is stored as float32 TIFF, which the viewer cannot process. The data itself is fine when loading with HF datasets.

Size

SplitRowsOn diskDownload
train57,524761.73 GB135.64 GB

One row per unique source–target configuration, 24 images each (12 RGB + 12 depth), averaging ~13 MB per row. The single train split holds reference views for all configurations, including those in the main dataset's validation and test splits — the split name reflects Parquet layout, not a train/eval partition.

Quick start

python
from datasets import load_dataset

ds = load_dataset("macpaw-research/asset-alignment-reference-views",
                  split="train", streaming=True)
sample = next(iter(ds))

Schema

FieldTypeDescription
asset_namestringScene / asset UUID, inherited from PartVerse-XL
part_idxint32Index of the part designated as the source in that scene
image_{PLANE}_{AZIMUTH}ImageRGB render of the assembled pair, 512×512
depth_{PLANE}_{AZIMUTH}Imagefloat32 depth for the same viewpoint, 512×512

RGB is 512×512 PNG (mode=RGB); depth is 512×512 float32 TIFF (mode=F). Every image_* column has a depth_* column at the identical viewpoint.

Camera geometry

Cameras orbit the assembled scene along two perpendicular planes, XY and ZY, which intersect along the Y axis. Each orbit is sampled at six angles, 60° apart: 30, 90, 150, 210, 270, 330 — giving 12 viewpoints per row.

  • `XY` — camera stays in the XY plane, orbiting about the Z axis
  • `ZY` — camera stays in the ZY plane, orbiting about the X axis

Joining with the main dataset

asset_name and part_idx are the same keys used in asset-alignment-pairs-905k, so a misaligned sample can be matched to its assembled reference:

python
key = (sample["asset_name"], sample["part_idx"])

Each row here corresponds to 16 rows in the main dataset, one per augmentation.

Depth

Depth is the Z pass, measuring distance along the camera view axis in scene units, from the same viewpoints as the corresponding RGB renders.

Background is `-1` where no geometry is visible, so mask it before use:

python
import numpy as np

d = np.asarray(sample["depth_XY_30"], dtype=np.float32)   # (512, 512)
mask = d >= 0                                             # True on geometry
valid = d[mask]

Licensing

Renders and depth maps are released under the MIT License.

The underlying geometry is not ours to license. This dataset derives from Objaverse-XL via PartVerse-XL; Objaverse-XL is distributed under ODC-By 1.0, which covers the database as a whole and does not license the individual 3D objects. Users are responsible for verifying per-object compliance for their intended use. Attribution to Objaverse-XL is required under ODC-By 1.0.