Skip to content

seonghunn/pdmc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel Dual Marching Cube for Intersection-free Mesh

parallel, Intersection-free iso-surface extraction module used in PaMO

Installation

Requirements: torch (must be compatible with CUDA version), trimesh

pip install pdmc

Quick Start

You can effortlessly try the following command. The generated results are saved in out/.

python test/example.py

Usage

Firstly you should build an iso-surface extractor as follows:

from pdmc import DMC
dmc = DMC(dtype=torch.float32).cuda() # or dtype=torch.float64

Then use its forward function to generate a single mesh:

verts, faces = dmc(sdf, isovalue=0.0, return_quads=False, normalize=True)

Input

  • sdf: queries SDF values on the grid vertices (see the test/example.py for how to create the grid), ([N, N, N, 3])
  • normalize: whether to normalize the output vertices, default=True. If set to True, the vertices are normalized to [0, 1]. When False, the vertices remain unnormalized as [0, dim-1],
  • return_quads: whether return quad meshes; If set to True, the function returns quad meshes ([F, 4]).

Output

  • verts: mesh vertices within the range of [0, 1] or [0, dim-1]. ([V, 3])
  • faces: mesh face indices (starting from 0). ([F, 3]).

Reference

Differentiable Iso-Surface Extraction Package (DISO)

Cite

If you use pdmc or PaMO in your research, please cite:

@inproceedings{oh2025pamo,
  title={PaMO: Parallel Mesh Optimization for Intersection-Free Low-Poly Modeling on the GPU},
  author={Oh, Seonghun and Yuan, Xiaodi and Wei, Xinyue and Shi, Ruoxi and Xiang, Fanbo and Liu, Minghua and Su, Hao},
  booktitle={Computer Graphics Forum},
  pages={e70267},
  year={2025},
  organization={Wiley Online Library}
}

About

Parallel Dual Marching Cubes for Intersection-free Mesh

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published