Skip to content

Is the part-data watertight? #8

@zhao-yiqun

Description

@zhao-yiqun

Dear author,

Thanks for sharing such a great benchmark. I meet some issue when trying to use the part-level data. I randomly loaded some sample from the downloaded mesh, however, when I tried to use the following code:

import numpy as np
import io
import os
import trimesh

Load npz file

npz_path = "path/to/mesh.npz"
output_dir = "path/to/output"
os.makedirs(output_dir, exist_ok=True)

data = np.load(npz_path)
print(f"Keys: {list(data.keys())}")

Extract and save each mesh as PLY file

for key in data.keys():
# Convert bytes array to trimesh object
ply_bytes = data[key].tobytes()
mesh = trimesh.load(io.BytesIO(ply_bytes), file_type='ply')
print(f" - {key}: vertices={len(mesh.vertices)}, faces={len(mesh.faces)}")

# Save as PLY file
save_path = os.path.join(output_dir, key)
mesh.export(save_path)

to load the mesh and check the watertight property.
The output is like following:

[NOT watertight] 0028965bd9f7e03eea6979c5cd784846af3d573071da1900c5f829f35b0373da.npz

  • full.ply: vertices=440417, faces=883094, NOT watertight
  • part_0.ply: vertices=218286, faces=437340, NOT watertight
  • part_1.ply: vertices=198967, faces=398744, NOT watertight
  • part_2.ply: vertices=188646, faces=378038, NOT watertight
  • part_3.ply: vertices=241089, faces=483146, NOT watertight

[NOT watertight] 003efd23e5acbd446374ead3c63bb0c173b3f4afaf1f44ce93b0bc485cbafa9d.npz

  • full.ply: vertices=237261, faces=475272, NOT watertight
  • part_0.ply: vertices=30901, faces=61896, NOT watertight
  • part_1.ply: vertices=36600, faces=73308, watertight
  • part_2.ply: vertices=20648, faces=41404, NOT watertight
  • part_3.ply: vertices=26236, faces=52556, NOT watertight
  • part_4.ply: vertices=6322, faces=12650, watertight
  • part_5.ply: vertices=3220, faces=6448, watertight
  • part_6.ply: vertices=18615, faces=37320, NOT watertight
  • part_7.ply: vertices=11141, faces=22330, NOT watertight
  • part_8.ply: vertices=9047, faces=18128, NOT watertight
  • part_9.ply: vertices=3285, faces=6578, watertight
  • part_10.ply: vertices=2788, faces=5580, watertight
  • part_11.ply: vertices=11141, faces=22318, NOT watertight
  • part_12.ply: vertices=9051, faces=18140, watertight
  • part_13.ply: vertices=3290, faces=6590, watertight
  • part_14.ply: vertices=2789, faces=5578, watertight
  • part_15.ply: vertices=6323, faces=12660, watertight
  • part_16.ply: vertices=3222, faces=6450, watertight
  • part_17.ply: vertices=18610, faces=37286, NOT watertight
  • part_18.ply: vertices=26235, faces=52564, NOT watertight
  • part_19.ply: vertices=24906, faces=50014, NOT watertight
  • part_20.ply: vertices=11316, faces=22694, NOT watertight
  • part_21.ply: vertices=11901, faces=23842, NOT watertight
  • part_22.ply: vertices=18365, faces=36864, NOT watertight
  • part_23.ply: vertices=3948, faces=7934, NOT watertight
  • part_24.ply: vertices=3947, faces=7914, NOT watertight
  • part_25.ply: vertices=4332, faces=8702, watertight
  • part_26.ply: vertices=2790, faces=5590, NOT watertight
  • part_27.ply: vertices=2904, faces=5812, watertight
  • part_28.ply: vertices=2790, faces=5594, watertight
  • part_29.ply: vertices=2903, faces=5806, watertight
  • part_30.ply: vertices=6045, faces=12108, NOT watertight
  • part_31.ply: vertices=6045, faces=12146, NOT watertight
  • part_32.ply: vertices=2254, faces=4526, NOT watertight
  • part_33.ply: vertices=2254, faces=4524, NOT watertight

There are still many parts which are not watertight. Could you please give me some suggestions about how to fix this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions