feat(P3): add GMSH Frontal-Delaunay tessellation engine
Introduces GMSH as an alternative to OCC BRepMesh for STEP→GLB tessellation. GMSH produces conforming meshes that eliminate fan triangles at cylinder seam edges — a structural limitation of OCC BRepMesh that cannot be fixed via deflection parameters. Changes: - render-worker/Dockerfile: install gmsh>=4.15.0 + libglu1-mesa + libxft2 - export_step_to_gltf.py: --tessellation_engine occ|gmsh CLI arg + _tessellate_with_gmsh() using BRep→GMSH→Poly_Triangulation write-back - admin.py: tessellation_engine setting (SETTINGS_DEFAULTS, SettingsOut, SettingsUpdate, validation) - export_glb.py: pass tessellation_engine to export_step_to_gltf.py CLI in both geometry and production GLB tasks - Admin.tsx: radio button UI for OCC vs GMSH selection Tested: 121 faces meshed, 0 BRepMesh fallback, 649K triangles on sample part. Clean seam edges for UV unwrap — GMSH respects B-rep periodic face boundaries. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -64,6 +64,12 @@ RUN pip3 install --no-cache-dir "cadquery>=2.4.0"
|
||||
# Install trimesh for STL→GLB geometry export (separate layer to avoid cache invalidation)
|
||||
RUN pip3 install --no-cache-dir "trimesh>=4.2.0"
|
||||
|
||||
# libGLU + libXft required by gmsh's shared library loader
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends libglu1-mesa libxft2 && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# GMSH for Frontal-Delaunay tessellation (alternative to OCC BRepMesh)
|
||||
RUN pip3 install --no-cache-dir "gmsh>=4.15.0"
|
||||
|
||||
# Copy render scripts
|
||||
COPY render-worker/scripts/ /render-scripts/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user