UniPhys-Bench Part 2 is the companion release of UniPhys-Bench, a human-verified benchmark comprising 1,927 heterogeneous articulated 3D objects across two releases. It jointly evaluates articulation semantics, articulation structure, part-level intrinsic physical properties, and object-level scale and mass.
This repository contains 454 evaluation-only articulated 3D objects held out from the UniPhys-40K source distribution. The primary UniPhys-Bench release is hosted separately and contains 1,473 articulated 3D objects provided by Manycore Tech.
| Articulated 3D Objects | Parts | Motion-Relevant Components |
|---|---|---|
| 1,927 | ~16K | ~5.5K |
| 454 in this companion release + 1,473 in the primary release | Across both releases | Across both releases |
The following benchmark-level examples visualize 3D assets and selected physical-grounding results across the complete UniPhys-Bench. Each row follows one articulated object from its original textured mesh through part decomposition and affordance grounding to the motion of all articulated parts. In the affordance view, redder parts indicate higher interactivity.
| Original Mesh | Part Decomposition | Affordance | Articulated Motion |
|---|---|---|---|
| Raw textured geometry | Part-level segmentation | Redder = more interactive | All articulated parts in motion |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
| Statistic | Value |
|---|---|
| Articulated objects in this repository | 454 |
| Entity ID range | UPB_00000000βUPB_00000453 |
| Role | Companion release |
The complete benchmark used in the paper contains 1,927 articulated 3D objects and is hosted as two independent releases:
| Release | Contents | Objects | Entity IDs |
|---|---|---|---|
| UniPhys-Bench | Manycore-provided assets | 1,473 | UPB_00000454βUPB_00001926 |
| UniPhys-Bench Part 2 | Evaluation-only assets held out from the UniPhys-40K source distribution | 454 | UPB_00000000βUPB_00000453 |
The two releases use the same annotation schema and evaluation protocol. They
are hosted separately so that each repository can state the provenance and
terms applicable to the assets it contains. The Part 2 numbering starts at
UPB_00000000 because these are the original globally unique benchmark IDs;
the entities must not be renumbered.
The benchmark covers diverse object categories, structural complexities, part granularities, modeling styles, scales, masses, materials, and articulation patterns.
The assets in this repository are evaluation-only entities held out from the UniPhys-40K source distribution. The source collection draws on Objaverse-Sketchfab, HSSD, 3D-FUTURE, ABO, and PartNet. Its curation uses TRELLIS-500K quality-filtered asset lists for the first four sources and aligns PartNet components with ShapeNet meshes to recover appearance.
The UniPhys pipeline first produces articulation and physical-property annotations. Human annotators then inspect and correct joint type, axis, pivot, motion range, motion-dependent part groupings, and intrinsic physical-property plausibility for motion-relevant components.
| Task | Inputs | Ground truth |
|---|---|---|
| Part-level intrinsic physical grounding | object and target-part geometry | part identity, semantic descriptions, material, density, Young's modulus, hardness, Poisson's ratio, friction, graspability, and affordance |
| Kinematic parameter grounding | object and target-part geometry | prismatic/revolute joint type, axis, pivot, and motion range |
| Articulation structure grounding | object and target-part geometry plus candidate-part metadata | IDs of parts that move together with the target part |
| Object-level physical grounding | complete-object geometry | object identity, category, dimensions, and mass |
Part-property units follow the paper: density is in g/cm^3, Young's modulus
in GPa, hardness in HV, and Poisson's ratio and friction are unitless.
Object dimensions are [L, W, H] in centimeters and mass is in kilograms.
Affordance is scored from 1 to 10, with smaller values indicating higher
affordance.
Motion labels use B for prismatic translation and C for revolute rotation.
The broader part-level annotations additionally use A for contact-only and
D for rigid or fixed parts.
Each benchmark object is stored in one UPB_<id> directory. For example:
UPB_00000000/
βββ annotations/
β βββ object.json
β βββ part_2.json
β βββ part_3.json
β βββ ...
βββ full_model/
β βββ model.obj
β βββ material.mtl
β βββ material_0.png
βββ meta_data.json
βββ model.urdf
βββ parts/
β βββ part_2.obj
β βββ part_3.obj
β βββ material and texture files
β βββ ...
βββ plys/
βββ model.ply
βββ 2.ply
βββ 3.ply
βββ ...
| Path | Description |
|---|---|
parts/part_<id>.obj | Decomposed part mesh, with its available MTL and texture assets. |
full_model/model.obj | Complete object OBJ produced by concatenating all released part meshes. |
plys/model.ply | Point cloud for the complete object. |
plys/<id>.ply | Part point cloud aligned with parts/part_<id>.obj. |
annotations/object.json | Object identity, category, real-world dimensions, and mass. |
annotations/part_<id>.json | Part semantics, intrinsic physical properties, articulation parameters, and dependency group. |
meta_data.json | Entity provenance, object summary, geometry metadata, and annotation version. |
model.urdf | Articulated assembly of all released parts using the annotated joints and motion parameters. |
The same numeric part ID is used by part_<id>.obj, <id>.ply, and
part_<id>.json, so geometry and annotations can be joined without an
additional mapping file.
model.urdf assembles all parts and encodes the annotated joint types and
motion parameters. During export, the mesh is rescaled using the annotated
object dimensions so that the assembled asset has a real physical size. URDF
geometry uses meters, while annotations/object.json stores dimensions in
centimeters.
[!IMPORTANT] The released URDF provides the articulated geometry and kinematic assembly, but intrinsic physical properties are not written into the URDF. Density, friction, mass, and other physical values should be read from the JSON annotations and assigned as needed for the target simulator and experiment.
meta_data.json stores the original source reference and released entity
summary:
{
"id": "UPB_00000000",
"source": {
"dataset": "ABO",
"original_id": "B00XBC3BF0",
"license_ref": "ABO"
},
"object": {
"category": "Furniture/SeatingFurniture",
"object_name": "Executive Office Chair"
},
"geometry": {
"asset_type": "decomposed_parts",
"num_parts": 18,
"format": "obj"
},
"annotation": {
"version": "v1.0"
}
}
Each annotations/part_<id>.json contains the part description, intrinsic
physical properties, motion type, joint parameters, and motion dependency:
{
"index": {
"type_name": "default",
"entity": "UPB_00000000",
"label": "3"
},
"part_level": {
"part_name": "Front Seat Trim Bar",
"affordance": 2,
"graspable": false,
"basic_description": "Slim ABS trim piece at the front edge of the seat.",
"functional_description": "Covers a seam and provides a finished edge.",
"movement_description": "Revolute; attached to the seat base.",
"grasp_description": "Grasp the handle of the bar."
},
"basic_info": {
"material": "metal/Steel",
"density": 7.85,
"young": 200.0,
"hardness": 180.0,
"poisson": 0.3,
"friction": 0.45
},
"kinematic_info": {
"motion_types": ["C"],
"motion_info": {
"dependency": [3],
"C": {
"axis": [-1.0, 0.0, 0.0],
"pos": [-0.02277967, 0.38144422, -0.02326505],
"range": [0.0, 0.785],
"damping": 0.03
}
}
}
}
motion_info.dependency lists the part IDs that move together. For movable
parts, B contains prismatic parameters and C contains revolute parameters;
axis, pos, range, and damping describe the corresponding joint.
range is the [lower, upper] motion interval; for a revolute (C) joint,
both limits are rotation angles expressed in radians.
annotations/object.json contains the object identity and global physical
properties:
{
"object_name": "Executive Office Chair",
"category": "Furniture/SeatingFurniture",
"volume": [70.0, 68.0, 110.0],
"mass": 15.5
}
volume is [length, width, height] in centimeters and mass is in
kilograms.
Download this companion release:
hf download \
breezexian/UniPhys-Bench-Part2 \
--repo-type dataset \
--local-dir data/UniPhys-Bench-Part2
Generate model-ready point clouds:
python pre_process/generate_npzs.py \
--data_root data/UniPhys-Bench-Part2 \
--output_dir data/UniPhys-Bench-Part2-processed/npzs
Generate one inference manifest for each evaluation task:
python pre_process/generate_jsons_for_inference.py \
--data_root data/UniPhys-Bench-Part2 \
--npz_dir data/UniPhys-Bench-Part2-processed/npzs \
--output_dir data/UniPhys-Bench-Part2-processed/manifests
The command writes:
manifests/
βββ intrinsic_physics_part.json
βββ intrinsic_physics_object.json
βββ kinematic_parameters.json
βββ articulation_structure.json
Each sample keeps its complete benchmark annotation. UniPhysGen inference
embeds that record as source_sample, which the evaluation package reads as
ground truth.
To reproduce results on the complete benchmark of 1,927 articulated objects, also download the primary UniPhys-Bench release and evaluate both releases with the same protocol. Keep the original entity IDs when preparing a combined data root.
The paper reports the following metrics:
| Category | Metrics |
|---|---|
| Kinematic parameters | joint-type accuracy, axis angular error in degrees, pivot-to-ground-truth-axis distance, and motion-range mIoU |
| Articulation structure | set mIoU and micro-F1 over motion-coupled part IDs |
| Material properties | material-category accuracy, density ALDE, and friction MAE |
| Object scale and mass | ALDE and MnRE for dimensions and mass |
| Affordance | MAE over the 1-10 affordance score |
Kinematic parameters are evaluated on ground-truth movable parts, separating
parameter estimation from movable-part identification. Axis directions a and
-a are treated as the same articulation axis. Pivot error is measured in a
shared AABB-normalized object frame as point-to-ground-truth-axis distance.
Motion ranges are canonicalized to unsigned intervals before computing IoU.
Run the four evaluators on prediction JSON files or directories of per-sample records:
python -m eval intrinsic_physics_part PREDICTIONS \
--output intrinsic_physics_part_metrics.json
python -m eval intrinsic_physics_object PREDICTIONS \
--output intrinsic_physics_object_metrics.json
python -m eval kinematic_parameters PREDICTIONS \
--output kinematic_parameters_metrics.json
python -m eval articulation_structure PREDICTIONS \
--output articulation_structure_metrics.json
See the UniPhysGen README for the complete inference workflow and checkpoint commands.
UniPhys-Bench Part 2 is intended for research evaluation of unified physical grounding, including articulation reasoning, physical-property estimation, simulation-ready asset construction, embodied AI, and robotics simulation. It is an evaluation benchmark and should not be mixed into UniPhysGen training or model-selection data.
The complete contents of this releaseβincluding assets, annotations, metadata, derived representations, and dataset organizationβare licensed under CC BY-NC 4.0. Commercial use is not permitted. See LICENSE_UNIPHYS_BENCH_PART2 for the release-specific license notice and attribution information.
Use source.dataset, source.original_id, and source.license_ref in each
entity's meta_data.json to retain provenance. Retain required creator credits,
license notices, and modification notices when sharing the data.
@article{li2026uniphysgen,
title = {UniPhysGen: Unified Physical Grounding for Simulation-Ready 3D Assets},
author = {Li, Xian and Wei, Rong and Yang, Lujie and Huang, Haolin and Fang, Junyuan and Tang, Siliang and Xiao, Jun and Tang, Rui and Li, Juncheng},
journal = {arXiv preprint arXiv:2607.13586},
year = {2026}
}
8 commits
UniPhys-Bench Part 2 is the companion release of UniPhys-Bench, a human-verified benchmark comprising 1,927 heterogeneous articulated 3D objects across two releases. It jointly evaluates articulation semantics, articulation structure, part-level intrinsic physical properties, and object-level scale and mass.
This repository contains 454 evaluation-only articulated 3D objects held out from the UniPhys-40K source distribution. The primary UniPhys-Bench release is hosted separately and contains 1,473 articulated 3D objects provided by Manycore Tech.
| Articulated 3D Objects | Parts | Motion-Relevant Components |
|---|---|---|
| 1,927 | ~16K | ~5.5K |
| 454 in this companion release + 1,473 in the primary release | Across both releases | Across both releases |
The following benchmark-level examples visualize 3D assets and selected physical-grounding results across the complete UniPhys-Bench. Each row follows one articulated object from its original textured mesh through part decomposition and affordance grounding to the motion of all articulated parts. In the affordance view, redder parts indicate higher interactivity.
| Original Mesh | Part Decomposition | Affordance | Articulated Motion |
|---|---|---|---|
| Raw textured geometry | Part-level segmentation | Redder = more interactive | All articulated parts in motion |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
| Statistic | Value |
|---|---|
| Articulated objects in this repository | 454 |
| Entity ID range | UPB_00000000βUPB_00000453 |
| Role | Companion release |
The complete benchmark used in the paper contains 1,927 articulated 3D objects and is hosted as two independent releases:
| Release | Contents | Objects | Entity IDs |
|---|---|---|---|
| UniPhys-Bench | Manycore-provided assets | 1,473 | UPB_00000454βUPB_00001926 |
| UniPhys-Bench Part 2 | Evaluation-only assets held out from the UniPhys-40K source distribution | 454 | UPB_00000000βUPB_00000453 |
The two releases use the same annotation schema and evaluation protocol. They
are hosted separately so that each repository can state the provenance and
terms applicable to the assets it contains. The Part 2 numbering starts at
UPB_00000000 because these are the original globally unique benchmark IDs;
the entities must not be renumbered.
The benchmark covers diverse object categories, structural complexities, part granularities, modeling styles, scales, masses, materials, and articulation patterns.
The assets in this repository are evaluation-only entities held out from the UniPhys-40K source distribution. The source collection draws on Objaverse-Sketchfab, HSSD, 3D-FUTURE, ABO, and PartNet. Its curation uses TRELLIS-500K quality-filtered asset lists for the first four sources and aligns PartNet components with ShapeNet meshes to recover appearance.
The UniPhys pipeline first produces articulation and physical-property annotations. Human annotators then inspect and correct joint type, axis, pivot, motion range, motion-dependent part groupings, and intrinsic physical-property plausibility for motion-relevant components.
| Task | Inputs | Ground truth |
|---|---|---|
| Part-level intrinsic physical grounding | object and target-part geometry | part identity, semantic descriptions, material, density, Young's modulus, hardness, Poisson's ratio, friction, graspability, and affordance |
| Kinematic parameter grounding | object and target-part geometry | prismatic/revolute joint type, axis, pivot, and motion range |
| Articulation structure grounding | object and target-part geometry plus candidate-part metadata | IDs of parts that move together with the target part |
| Object-level physical grounding | complete-object geometry | object identity, category, dimensions, and mass |
Part-property units follow the paper: density is in g/cm^3, Young's modulus
in GPa, hardness in HV, and Poisson's ratio and friction are unitless.
Object dimensions are [L, W, H] in centimeters and mass is in kilograms.
Affordance is scored from 1 to 10, with smaller values indicating higher
affordance.
Motion labels use B for prismatic translation and C for revolute rotation.
The broader part-level annotations additionally use A for contact-only and
D for rigid or fixed parts.
Each benchmark object is stored in one UPB_<id> directory. For example:
UPB_00000000/
βββ annotations/
β βββ object.json
β βββ part_2.json
β βββ part_3.json
β βββ ...
βββ full_model/
β βββ model.obj
β βββ material.mtl
β βββ material_0.png
βββ meta_data.json
βββ model.urdf
βββ parts/
β βββ part_2.obj
β βββ part_3.obj
β βββ material and texture files
β βββ ...
βββ plys/
βββ model.ply
βββ 2.ply
βββ 3.ply
βββ ...
| Path | Description |
|---|---|
parts/part_<id>.obj | Decomposed part mesh, with its available MTL and texture assets. |
full_model/model.obj | Complete object OBJ produced by concatenating all released part meshes. |
plys/model.ply | Point cloud for the complete object. |
plys/<id>.ply | Part point cloud aligned with parts/part_<id>.obj. |
annotations/object.json | Object identity, category, real-world dimensions, and mass. |
annotations/part_<id>.json | Part semantics, intrinsic physical properties, articulation parameters, and dependency group. |
meta_data.json | Entity provenance, object summary, geometry metadata, and annotation version. |
model.urdf | Articulated assembly of all released parts using the annotated joints and motion parameters. |
The same numeric part ID is used by part_<id>.obj, <id>.ply, and
part_<id>.json, so geometry and annotations can be joined without an
additional mapping file.
model.urdf assembles all parts and encodes the annotated joint types and
motion parameters. During export, the mesh is rescaled using the annotated
object dimensions so that the assembled asset has a real physical size. URDF
geometry uses meters, while annotations/object.json stores dimensions in
centimeters.
[!IMPORTANT] The released URDF provides the articulated geometry and kinematic assembly, but intrinsic physical properties are not written into the URDF. Density, friction, mass, and other physical values should be read from the JSON annotations and assigned as needed for the target simulator and experiment.
meta_data.json stores the original source reference and released entity
summary:
{
"id": "UPB_00000000",
"source": {
"dataset": "ABO",
"original_id": "B00XBC3BF0",
"license_ref": "ABO"
},
"object": {
"category": "Furniture/SeatingFurniture",
"object_name": "Executive Office Chair"
},
"geometry": {
"asset_type": "decomposed_parts",
"num_parts": 18,
"format": "obj"
},
"annotation": {
"version": "v1.0"
}
}
Each annotations/part_<id>.json contains the part description, intrinsic
physical properties, motion type, joint parameters, and motion dependency:
{
"index": {
"type_name": "default",
"entity": "UPB_00000000",
"label": "3"
},
"part_level": {
"part_name": "Front Seat Trim Bar",
"affordance": 2,
"graspable": false,
"basic_description": "Slim ABS trim piece at the front edge of the seat.",
"functional_description": "Covers a seam and provides a finished edge.",
"movement_description": "Revolute; attached to the seat base.",
"grasp_description": "Grasp the handle of the bar."
},
"basic_info": {
"material": "metal/Steel",
"density": 7.85,
"young": 200.0,
"hardness": 180.0,
"poisson": 0.3,
"friction": 0.45
},
"kinematic_info": {
"motion_types": ["C"],
"motion_info": {
"dependency": [3],
"C": {
"axis": [-1.0, 0.0, 0.0],
"pos": [-0.02277967, 0.38144422, -0.02326505],
"range": [0.0, 0.785],
"damping": 0.03
}
}
}
}
motion_info.dependency lists the part IDs that move together. For movable
parts, B contains prismatic parameters and C contains revolute parameters;
axis, pos, range, and damping describe the corresponding joint.
range is the [lower, upper] motion interval; for a revolute (C) joint,
both limits are rotation angles expressed in radians.
annotations/object.json contains the object identity and global physical
properties:
{
"object_name": "Executive Office Chair",
"category": "Furniture/SeatingFurniture",
"volume": [70.0, 68.0, 110.0],
"mass": 15.5
}
volume is [length, width, height] in centimeters and mass is in
kilograms.
Download this companion release:
hf download \
breezexian/UniPhys-Bench-Part2 \
--repo-type dataset \
--local-dir data/UniPhys-Bench-Part2
Generate model-ready point clouds:
python pre_process/generate_npzs.py \
--data_root data/UniPhys-Bench-Part2 \
--output_dir data/UniPhys-Bench-Part2-processed/npzs
Generate one inference manifest for each evaluation task:
python pre_process/generate_jsons_for_inference.py \
--data_root data/UniPhys-Bench-Part2 \
--npz_dir data/UniPhys-Bench-Part2-processed/npzs \
--output_dir data/UniPhys-Bench-Part2-processed/manifests
The command writes:
manifests/
βββ intrinsic_physics_part.json
βββ intrinsic_physics_object.json
βββ kinematic_parameters.json
βββ articulation_structure.json
Each sample keeps its complete benchmark annotation. UniPhysGen inference
embeds that record as source_sample, which the evaluation package reads as
ground truth.
To reproduce results on the complete benchmark of 1,927 articulated objects, also download the primary UniPhys-Bench release and evaluate both releases with the same protocol. Keep the original entity IDs when preparing a combined data root.
The paper reports the following metrics:
| Category | Metrics |
|---|---|
| Kinematic parameters | joint-type accuracy, axis angular error in degrees, pivot-to-ground-truth-axis distance, and motion-range mIoU |
| Articulation structure | set mIoU and micro-F1 over motion-coupled part IDs |
| Material properties | material-category accuracy, density ALDE, and friction MAE |
| Object scale and mass | ALDE and MnRE for dimensions and mass |
| Affordance | MAE over the 1-10 affordance score |
Kinematic parameters are evaluated on ground-truth movable parts, separating
parameter estimation from movable-part identification. Axis directions a and
-a are treated as the same articulation axis. Pivot error is measured in a
shared AABB-normalized object frame as point-to-ground-truth-axis distance.
Motion ranges are canonicalized to unsigned intervals before computing IoU.
Run the four evaluators on prediction JSON files or directories of per-sample records:
python -m eval intrinsic_physics_part PREDICTIONS \
--output intrinsic_physics_part_metrics.json
python -m eval intrinsic_physics_object PREDICTIONS \
--output intrinsic_physics_object_metrics.json
python -m eval kinematic_parameters PREDICTIONS \
--output kinematic_parameters_metrics.json
python -m eval articulation_structure PREDICTIONS \
--output articulation_structure_metrics.json
See the UniPhysGen README for the complete inference workflow and checkpoint commands.
UniPhys-Bench Part 2 is intended for research evaluation of unified physical grounding, including articulation reasoning, physical-property estimation, simulation-ready asset construction, embodied AI, and robotics simulation. It is an evaluation benchmark and should not be mixed into UniPhysGen training or model-selection data.
The complete contents of this releaseβincluding assets, annotations, metadata, derived representations, and dataset organizationβare licensed under CC BY-NC 4.0. Commercial use is not permitted. See LICENSE_UNIPHYS_BENCH_PART2 for the release-specific license notice and attribution information.
Use source.dataset, source.original_id, and source.license_ref in each
entity's meta_data.json to retain provenance. Retain required creator credits,
license notices, and modification notices when sharing the data.
@article{li2026uniphysgen,
title = {UniPhysGen: Unified Physical Grounding for Simulation-Ready 3D Assets},
author = {Li, Xian and Wei, Rong and Yang, Lujie and Huang, Haolin and Fang, Junyuan and Tang, Siliang and Xiao, Jun and Tang, Rui and Li, Juncheng},
journal = {arXiv preprint arXiv:2607.13586},
year = {2026}
}
8 commits