Skip to content

Latest commit

 

History

History
66 lines (49 loc) · 2.51 KB

File metadata and controls

66 lines (49 loc) · 2.51 KB

Data & Preprocessing

HiTOPS is geometry-only — it fits superquadrics to a mesh and assigns mesh faces to them. There are no trained weights; everything is optimization / geometry processing at run time.

1. Input meshes

The pipeline expects watertight triangle meshes, normalized internally to [-0.5, 0.5]^3. The SDF stage (hitops/sdf/build_adaptive_sdf.py) requires a watertight (manifold, hole-free) mesh to produce a correct TSDF.

Batch runners expect this on-disk layout:

<mesh_root>/<shard>/<uid>/full.ply        # run_batch_sqfit.py
<mesh_dir>/<uid>/full.ply                  # run_batch_mapper.py

Making meshes watertight

hitops/preprocess/to_watertight_mesh.py converts raw meshes to watertight ones via diffusable marching cubes. It needs the optional GPU stack:

pip install -e ".[preprocess]"
# cubvh is installed from source:
pip install git+https://github.com/ashawkey/cubvh

Requires torch, diso, point-cloud-utils, cubvh.

2. Datasets used in the paper

Dataset Use Source
HY3D-Bench (part) main mesh-mapping eval (mIoU / RI / VoI / SC) (fill in)
PartObjaverse-Tiny cross-dataset eval https://github.com/Pointcept/SAMPart3D (PartObjaverse-Tiny)
PartNet cross-dataset eval https://partnet.cs.stanford.edu
3DCompat cross-dataset eval https://3dcompat-dataset.org

Ground-truth part labels are supplied per-dataset (instance / semantic), to be compared against the predicted per-face labels (face_labels_v8.npy). Metric scripts are not part of this release yet and will be added in a follow-up.

3. Output layout

For each <uid>, the batch pipeline writes:

<output_root>/<uid>/
    adaptive_map_v4/<uid>_adaptive_map_v4.npz   # octree multi-res block map
    sdf_vol/<uid>_sdf_vol.npz                    # TSDF volume (reusable)
    sq_fit_v20/{post_sq_*.ply, final_sq_model.ply, ...}   # fitted superquadrics
    curv_seg_v4/face_labels.npy                  # curvature atoms (mapper input)
    mesh_mapping_v8/{face_labels_v8.npy, mesh_mapped_v8.ply, report.json}
    full.ply                                     # copy of input mesh
    summary.json

The adaptive_map_v4/ and sdf_vol/ artifacts depend only on the input mesh and can be reused across fitter configurations.

Note: on-disk subdirectory names keep their original version suffixes (sq_fit_v20, mesh_mapping_v8, …) so existing outputs and the resume logic stay compatible; the Python modules themselves are version-suffix free.