Note

This is a Hugging Face dataset. For large datasets, ensure huggingface_hub>=1.1.3 to avoid rate limits. Learn more in the Hugging Face integration docs.

Hugging Face

Dataset Card for PartScan#

image/png

FiftyOne

Fine-grained 3D part segmentation is crucial for embodied AI systems that must interact with specific functional components of an object (e.g. a drawer handle rather than the whole cabinet). Acquiring dense, part-level 3D annotations is a major bottleneck, so PinPoint3D introduces a 3D data-synthesis pipeline that produces a large-scale, scene-level dataset with dense part annotations on sparse, real-world-style scans.

partscan has been parsed as a FiftyOne 3D point cloud dataset of scene-level scans with dense, per-point part-level annotations. It is the synthesized dataset introduced for PinPoint3D, a framework for fine-grained, multi-granularity 3D part segmentation from a few user clicks. Each sample is a colored point cloud of one scene fragment, rendered in the FiftyOne App’s 3D viewer.

Installation#

If you haven’t already, install FiftyOne:

pip install -U fiftyone

Usage#

import fiftyone as fo
from huggingface_hub import snapshot_download


# Download the dataset snapshot to the current working directory

snapshot_download(
    repo_id="Voxel51/partscan", 
    local_dir=".", 
    repo_type="dataset"
    )

# Load dataset from current directory using FiftyOne's native format
dataset = fo.Dataset.from_dir(
    dataset_dir=".",  # Current directory contains the dataset files
    dataset_type=fo.types.FiftyOneDataset,  # Specify FiftyOne dataset format
    name="PartScan"  # Assign a name to the dataset for identification
)

# Launch the App
session = fo.launch_app(dataset)

Dataset Details#

Dataset Description#

This FiftyOne dataset wraps each scan as an .fo3d point-cloud scene (fo3d.PlyMesh, is_point_cloud=True), so the per-point RGB color is rendered directly in the App’s interactive 3D viewer. Scene/fragment identifiers follow the ScanNet-style sceneXXXX_YY naming convention.


FiftyOne Dataset Structure#

Dataset name: partscan

Media type: 3d

Summary#

Property

Value

Samples (scan fragments)

1,509

Unique scenes

707

Fragments per scene

1–7

Per-point data (in each PLY)#

Each point carries x, y, z coordinates, red, green, blue color, and a label part ID. A label of -1 denotes an unlabeled / ignore point.

Sample-level fields#

Field

Type

Description

scene_id

string

Scene identifier, e.g. scene0002

fragment

string

Fragment suffix within the scene, e.g. 01

num_points

int

Total number of points in the scan

unique_labels

list(int)

Distinct part labels present (excluding -1)

num_labeled_points

int

Number of points with a valid (!= -1) label

ignore_fraction

float

Fraction of points with label -1 (unlabeled)

Citation#

@article{zhang2025pinpoint3d,
  title   = {PinPoint3D: Fine-Grained 3D Part Segmentation from a Few Clicks},
  author  = {Zhang, Bojun and Ye, Hangjian and Zheng, Hao and Huang, Jianzheng and Lin, Zhengyu and Guo, Zhenhong and Zheng, Feng},
  journal = {arXiv preprint arXiv:2509.25970},
  year    = {2025}
}

License#

Please refer to the PinPoint3D project for the source dataset’s licensing terms.