conquer3d 0.7.7__tar.gz → 0.7.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. {conquer3d-0.7.7/conquer3d.egg-info → conquer3d-0.7.9}/PKG-INFO +8 -7
  2. {conquer3d-0.7.7 → conquer3d-0.7.9}/README.md +7 -6
  3. conquer3d-0.7.9/conquer3d/_C.pyi +1947 -0
  4. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/_C.so +0 -0
  5. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/conversion/tmesh.py +82 -23
  6. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/mesh_bvh.cpp +56 -6
  7. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/triangle_mesh.cpp +27 -6
  8. conquer3d-0.7.9/conquer3d/csrc/binds/ops/chamfer.cpp +185 -0
  9. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/bvh.cu +40 -101
  10. conquer3d-0.7.9/conquer3d/csrc/data_structure/bvh_traverse.cuh +82 -0
  11. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/mesh_bvh.cu +42 -131
  12. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/mesh_bvh.h +10 -3
  13. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/triangle_mesh.cu +98 -142
  14. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/triangle_mesh.h +14 -2
  15. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/chamfer.cu +129 -6
  16. conquer3d-0.7.9/conquer3d/csrc/ops/chamfer.h +67 -0
  17. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/flood_fill.cu +5 -126
  18. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/flood_fill_cf.cu +35 -178
  19. conquer3d-0.7.9/conquer3d/csrc/ops/flood_fill_common.cuh +129 -0
  20. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mc.cu +4 -108
  21. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mtg.cu +4 -103
  22. conquer3d-0.7.9/conquer3d/csrc/ops/voxel_classify.cuh +136 -0
  23. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/gs_aabb.cu +125 -181
  24. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/pgs_aabb.cu +79 -114
  25. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/distance.py +129 -58
  26. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/primitive/__init__.py +12 -1
  27. conquer3d-0.7.9/conquer3d/primitive/sq.py +647 -0
  28. {conquer3d-0.7.7 → conquer3d-0.7.9/conquer3d.egg-info}/PKG-INFO +8 -7
  29. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d.egg-info/SOURCES.txt +5 -1
  30. {conquer3d-0.7.7 → conquer3d-0.7.9}/pyproject.toml +1 -1
  31. conquer3d-0.7.7/conquer3d/_C.pyi +0 -1001
  32. conquer3d-0.7.7/conquer3d/csrc/binds/ops/chamfer.cpp +0 -87
  33. conquer3d-0.7.7/conquer3d/csrc/ops/chamfer.h +0 -37
  34. {conquer3d-0.7.7 → conquer3d-0.7.9}/LICENSE +0 -0
  35. {conquer3d-0.7.7 → conquer3d-0.7.9}/MANIFEST.in +0 -0
  36. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/__init__.py +0 -0
  37. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/conversion/__init__.py +0 -0
  38. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/conversion/grid.py +0 -0
  39. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/conversion/mesh.py +0 -0
  40. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/creation/__init__.py +0 -0
  41. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/creation/triangle_creation.py +0 -0
  42. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/creation/triangle_creation.cpp +0 -0
  43. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/bvh.cpp +0 -0
  44. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/grid.cpp +0 -0
  45. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/gs_bvh.cpp +0 -0
  46. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/kdtree.cpp +0 -0
  47. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/pgs_bvh.cpp +0 -0
  48. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/data_structure/zcurve.cpp +0 -0
  49. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/dc.cpp +0 -0
  50. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/dmc.cpp +0 -0
  51. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/flood_fill.cpp +0 -0
  52. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/flood_fill_cf.cpp +0 -0
  53. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/mc.cpp +0 -0
  54. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/mca.cpp +0 -0
  55. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/mt.cpp +0 -0
  56. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/mtg.cpp +0 -0
  57. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/ops/volint.cpp +0 -0
  58. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/primitive/gs.cpp +0 -0
  59. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/primitive/pgs.cpp +0 -0
  60. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/primitive/ray.cpp +0 -0
  61. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/binds/primitive/triangle.cpp +0 -0
  62. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/check.h +0 -0
  63. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/constants.h +0 -0
  64. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/creation/triangle_creation.h +0 -0
  65. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/bvh.h +0 -0
  66. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/grid.cu +0 -0
  67. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/grid.h +0 -0
  68. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/gs_bvh.h +0 -0
  69. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/kdtree.cu +0 -0
  70. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/kdtree.h +0 -0
  71. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/pgs_bvh.h +0 -0
  72. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/zcurve.cu +0 -0
  73. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/data_structure/zcurve.h +0 -0
  74. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/f2x2.h +0 -0
  75. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/f3x1.h +0 -0
  76. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/f3x3.h +0 -0
  77. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/f3x4.h +0 -0
  78. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/f4x1.h +0 -0
  79. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/f4x4.h +0 -0
  80. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/maths.h +0 -0
  81. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/ops.h +0 -0
  82. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/maths/qef.h +0 -0
  83. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/dc.cu +0 -0
  84. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/dc.h +0 -0
  85. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/dc_data.h +0 -0
  86. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/dmc.cu +0 -0
  87. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/dmc.h +0 -0
  88. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/dmc_data.h +0 -0
  89. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/flood_fill.h +0 -0
  90. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/flood_fill_cf.h +0 -0
  91. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mc.h +0 -0
  92. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mc_data.h +0 -0
  93. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mca.cu +0 -0
  94. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mca.h +0 -0
  95. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mca_data.h +0 -0
  96. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mt.cu +0 -0
  97. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mt.h +0 -0
  98. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mt_data.h +0 -0
  99. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mtg.h +0 -0
  100. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/mtg_data.h +0 -0
  101. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/volint.cu +0 -0
  102. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/ops/volint.h +0 -0
  103. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/aabb.h +0 -0
  104. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/edge.h +0 -0
  105. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/gs.cu +0 -0
  106. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/gs.h +0 -0
  107. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/gs_math.cuh +0 -0
  108. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/pgs.cu +0 -0
  109. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/pgs.h +0 -0
  110. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/pgs_math.cuh +0 -0
  111. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/ray.h +0 -0
  112. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/primitive/triangle.h +0 -0
  113. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/csrc/pybind.cpp +0 -0
  114. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/__init__.py +0 -0
  115. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/assets/__init__.py +0 -0
  116. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/assets/common.py +0 -0
  117. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/assets/iphigenia.py +0 -0
  118. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/collate/__init__.py +0 -0
  119. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/collate/mesh.py +0 -0
  120. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/collate/sparse_tensor.py +0 -0
  121. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/dataset/__init__.py +0 -0
  122. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/dataset/base_mesh.py +0 -0
  123. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/dataset/digit3d.py +0 -0
  124. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/dataset/digit3dmv.py +0 -0
  125. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/dataset/mesh.py +0 -0
  126. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/dataset/redwood.py +0 -0
  127. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/transform/__init__.py +0 -0
  128. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/transform/base.py +0 -0
  129. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/transform/ops.py +0 -0
  130. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data/transform/vertex.py +0 -0
  131. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data_structure/__init__.py +0 -0
  132. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data_structure/bmesh.py +0 -0
  133. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data_structure/grid.py +0 -0
  134. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/data_structure/sort.py +0 -0
  135. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/io/__init__.py +0 -0
  136. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/io/obj.py +0 -0
  137. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/io/off.py +0 -0
  138. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/io/ply.py +0 -0
  139. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/__init__.py +0 -0
  140. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/delaunay_triangulation.py +0 -0
  141. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/diff_marching_cubes.py +0 -0
  142. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/diff_marching_tetrahedra_grid.py +0 -0
  143. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/dpsr.py +0 -0
  144. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/dual_contouring.py +0 -0
  145. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/dual_marching_cubes.py +0 -0
  146. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/hermite.py +0 -0
  147. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/marching_cubes.py +0 -0
  148. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/marching_cubes_asymptotic.py +0 -0
  149. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/marching_tetrahedra.py +0 -0
  150. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/marching_tetrahedra_grid.py +0 -0
  151. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/ops/volint.py +0 -0
  152. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/primitive/gs.py +0 -0
  153. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d/primitive/pgs.py +0 -0
  154. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d.egg-info/dependency_links.txt +0 -0
  155. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d.egg-info/not-zip-safe +0 -0
  156. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d.egg-info/requires.txt +0 -0
  157. {conquer3d-0.7.7 → conquer3d-0.7.9}/conquer3d.egg-info/top_level.txt +0 -0
  158. {conquer3d-0.7.7 → conquer3d-0.7.9}/setup.cfg +0 -0
  159. {conquer3d-0.7.7 → conquer3d-0.7.9}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: conquer3d
3
- Version: 0.7.7
3
+ Version: 0.7.9
4
4
  Summary: Geometric Cuda Tool Box
5
5
  Author-email: Do Hoang Khoi <khoido8899@gmail.com>
6
6
  License-Expression: MIT
@@ -45,7 +45,7 @@ Dynamic: license-file
45
45
  [![Python Version](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white&style=for-the-badge)](https://www.python.org/)
46
46
  [![CUDA](https://img.shields.io/badge/CUDA-12.0%2B-76B900?logo=nvidia&logoColor=white&style=for-the-badge)](https://developer.nvidia.com/cuda-toolkit)
47
47
  [![PyTorch](https://img.shields.io/badge/PyTorch-2.0%2B-EE4C2C?logo=pytorch&logoColor=white&style=for-the-badge)](https://pytorch.org/)
48
- [![API Coverage](https://img.shields.io/badge/API_docs-1020_symbols_·_100%25-76B900?style=for-the-badge)](https://khoidoo.github.io/conquer3d/api/index.html)
48
+ [![API Coverage](https://img.shields.io/badge/API_docs-100%25_documented-76B900?style=for-the-badge)](https://khoidoo.github.io/conquer3d/api/index.html)
49
49
 
50
50
  <p align="center">
51
51
  <b><a href="https://khoidoo.github.io/conquer3d/">🌐 Website</a></b> •
@@ -102,11 +102,12 @@ on the **[showcase](https://khoidoo.github.io/conquer3d/)**.
102
102
 
103
103
  ### Isosurface extraction
104
104
 
105
- <img src="docs/assets/img/fig-algorithms.webp" alt="Five extractors on one signed distance field" width="100%">
105
+ <img src="docs/assets/img/fig-algorithms.webp" alt="Four extractors on one signed distance field" width="100%">
106
106
 
107
- One signed distance field on a 64³ narrow-band grid of 19,329 cells, meshed by five
108
- extractors, with the source mesh on the left. The lower row crops the crease where
109
- Marching Cubes and Dual Contouring disagree most.
107
+ One signed distance field on a 64³ narrow-band grid of 19,329 cells, meshed by four
108
+ extractors — Marching Cubes, MC Asymptotic, Dual Contouring and Dual Marching Cubes —
109
+ with the source mesh on the left. The lower row crops the crease where Marching Cubes
110
+ and Dual Contouring disagree most.
110
111
 
111
112
  ### Sharp features from Hermite data
112
113
 
@@ -175,7 +176,7 @@ on the **[benchmarks page](https://khoidoo.github.io/conquer3d/benchmarks.html)*
175
176
  pip install -U conquer3d
176
177
  ```
177
178
 
178
- Building from source, the full feature list, worked pipelines and the 1,020-symbol API
179
+ Building from source, the full feature list, worked pipelines and the complete API
179
180
  reference are on the **[documentation site](https://khoidoo.github.io/conquer3d/documentation.html)**.
180
181
 
181
182
  ---
@@ -12,7 +12,7 @@
12
12
  [![Python Version](https://img.shields.io/badge/Python-3.9%2B-3776AB?logo=python&logoColor=white&style=for-the-badge)](https://www.python.org/)
13
13
  [![CUDA](https://img.shields.io/badge/CUDA-12.0%2B-76B900?logo=nvidia&logoColor=white&style=for-the-badge)](https://developer.nvidia.com/cuda-toolkit)
14
14
  [![PyTorch](https://img.shields.io/badge/PyTorch-2.0%2B-EE4C2C?logo=pytorch&logoColor=white&style=for-the-badge)](https://pytorch.org/)
15
- [![API Coverage](https://img.shields.io/badge/API_docs-1020_symbols_·_100%25-76B900?style=for-the-badge)](https://khoidoo.github.io/conquer3d/api/index.html)
15
+ [![API Coverage](https://img.shields.io/badge/API_docs-100%25_documented-76B900?style=for-the-badge)](https://khoidoo.github.io/conquer3d/api/index.html)
16
16
 
17
17
  <p align="center">
18
18
  <b><a href="https://khoidoo.github.io/conquer3d/">🌐 Website</a></b> •
@@ -69,11 +69,12 @@ on the **[showcase](https://khoidoo.github.io/conquer3d/)**.
69
69
 
70
70
  ### Isosurface extraction
71
71
 
72
- <img src="docs/assets/img/fig-algorithms.webp" alt="Five extractors on one signed distance field" width="100%">
72
+ <img src="docs/assets/img/fig-algorithms.webp" alt="Four extractors on one signed distance field" width="100%">
73
73
 
74
- One signed distance field on a 64³ narrow-band grid of 19,329 cells, meshed by five
75
- extractors, with the source mesh on the left. The lower row crops the crease where
76
- Marching Cubes and Dual Contouring disagree most.
74
+ One signed distance field on a 64³ narrow-band grid of 19,329 cells, meshed by four
75
+ extractors — Marching Cubes, MC Asymptotic, Dual Contouring and Dual Marching Cubes —
76
+ with the source mesh on the left. The lower row crops the crease where Marching Cubes
77
+ and Dual Contouring disagree most.
77
78
 
78
79
  ### Sharp features from Hermite data
79
80
 
@@ -142,7 +143,7 @@ on the **[benchmarks page](https://khoidoo.github.io/conquer3d/benchmarks.html)*
142
143
  pip install -U conquer3d
143
144
  ```
144
145
 
145
- Building from source, the full feature list, worked pipelines and the 1,020-symbol API
146
+ Building from source, the full feature list, worked pipelines and the complete API
146
147
  reference are on the **[documentation site](https://khoidoo.github.io/conquer3d/documentation.html)**.
147
148
 
148
149
  ---