Repository navigation
Release v0.7.9
Features
-
Differentiable Chamfer Distance (
conquer3d.ops):- Implemented analytical CUDA backward kernel
one_sided_chamfer_distance_backward_kerneland host dispatcherone_sided_chamfer_distance_backward. - Direct coalesced writes for query gradients $\nabla_{\mathbf{x}_i} = 2 g_i (\mathbf{x}i - \mathbf{y}{j^*(i)})$ with zero atomic contention.
- Hardware-accelerated
atomicAddfor reference point reaction gradients $\nabla_{\mathbf{y}k} = -\sum{i: j^*(i)=k} \nabla_{\mathbf{x}_i}$. - Support for both squared Euclidean (
$L_2^2$ ) and true Euclidean ($L_2$ ) distance metrics with division-by-zero clamping. - Python autograd integration via
_OneSidedChamferFunction(torch.autograd.Function)with dynamic conditional gradient checks (ctx.needs_input_grad) that bypass reference point atomic operations when targets are non-trainable ground truth. - Full bidirectional autograd propagation for
chamfer_distance(x, y).
- Implemented analytical CUDA backward kernel
-
Learnable SuperQuadrics Primitive Sets (
conquer3d.primitive):- Added
SuperQuadrics,compute_sq_sdf, andcompute_sq_unioninconquer3d/primitive/sq.pywith inside-outside functions, radial SDF distance approximations, and differentiable softmin multi-primitive assembly.
- Added
-
Binary Occupancy Queries (
conquer3d.data_structure):- Added optional
return_occparameter toTriangleMesh.query_pointsandMeshBVH.query_pointto return binary inside/outside occupancy masks (signed_distance < 0) alongside closest triangles and signed distances.
- Added optional
-
Documentation & Showcase Additions:
- Added nearest-neighbour and orientation repair interactive showcases.
- Reorganized bibliography cards and gallery layouts.
Refactors & Build
- Build System: Bumped package version to
0.7.9inpyproject.toml. - PyBind11 Extension: Added
one_sided_chamfer_distance_backwardwrapper withCHECK_INPUTvalidation inconquer3d/csrc/binds/ops/chamfer.cpp. - Version Manifest: Stabilized documentation version manifest and archived previous API reference releases.
Examples
- Differentiable Point Cloud Fitting (
examples/differentiable_fitting/chamfer.py):- Added an end-to-end differentiable fitting example deforming an initial 3D random solid ball (
create_random_points_ball) onto the Stanford Armadillo mesh surface (Armadillo) using Adam and Conquer3D's differentiable Chamfer distance. - Achieved 99.72% loss reduction in 0.65 seconds on GPU (~464 steps/sec) across 10,000 points.
- Added an end-to-end differentiable fitting example deforming an initial 3D random solid ball (