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.
Dataset Card for PartScan#

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.
Paper: PinPoint3D: Fine-Grained 3D Part Segmentation from a Few Clicks (Zhang et al., SUSTech)
Repo: https://github.com/Quit123/PinPoint3D
Project Page: https://pinpoint3d.online/
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 |
|---|---|---|
|
string |
Scene identifier, e.g. |
|
string |
Fragment suffix within the scene, e.g. |
|
int |
Total number of points in the scan |
|
list(int) |
Distinct part labels present (excluding |
|
int |
Number of points with a valid ( |
|
float |
Fraction of points with label |
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.