Features
- Enhanced
tmesh2sparse Conversion API: Added pad, return_normals, and normal_mode support to conquer3d.conversion.tmesh2sparse, enabling one-line extraction of sparse grids, flood-fill SDFs, and CAD surface normals directly into Dual Contouring / DMC solvers.
- Comprehensive Documentation & Docstring Standardization: Standardized Google/NumPy-style docstrings across all 116 core source files (
.cu, .cuh, .cpp, .h, .py, and PyBind11 bindings) detailing algorithmic strategies, parameters, exceptions, and usage examples.
- Expanded Features Showcase & Benchmarks: Restructured
README.md with an exhaustive, wide features showcase across all 7 core modules, quickstarts, and empirical RTX 4090 performance benchmarks (~1.0B faces/s).
Refactors & Build
- Branding Alignment: Replaced all remaining legacy
geocutool references with conquer3d across module docstrings, Dockerfile, setup/lightning.sh, and README.md.
- Resilient Build Pipeline: Updated
CustomBuildExt in setup.py to gracefully handle pybind11_stubgen exceptions without failing package installation.
- PyPI & Distribution: Bumped package version to
0.6.0 and published conquer3d-0.6.0.tar.gz to PyPI.
Examples
import torch
from conquer3d.data.assets import Fandisk
from conquer3d.data_structure import TriangleMesh
from conquer3d.conversion import tmesh2sparse
from conquer3d.ops import dc
# 1. Load benchmark CAD model
fandisk = Fandisk()
v, f, _ = fandisk.get()
tmesh = TriangleMesh(v.cuda(), f.cuda().int())
# 2. Extract sparse grid, flood-fill SDFs, and exact CAD face normals in one call
grid_vertices, active_voxels, sdfs, grid_normals = tmesh2sparse(
tmesh,
res=[256, 256, 256],
pad=1,
sign_mode=3,
return_normals=True,
normal_mode=0
)
# 3. Extract sharp CAD mesh via Dual Contouring
verts, faces = dc(grid_vertices, active_voxels.int(), sdfs, grid_normals=grid_normals, iso=0.0)
print(f"Extracted Mesh: {verts.shape[0]:,} vertices, {faces.shape[0]:,} faces")