c1e9a86996
Replace trimesh-only GLB export with Blender headless pipeline using export_gltf.py. The viewer GLB and downloadable GLB now receive: - Material substitution via the Schaeffler asset library (.blend) - OCC-derived sharp edge data (sharp_edge_midpoints from mesh_attributes) marked as Blender sharp edges before export Material map is resolved via resolve_material_map() to convert aliases (e.g. "Steel--Stahl" → "SCHAEFFLER_010101_Steel-Bare") before passing to Blender. Old gltf_geometry MediaAsset is replaced on each run to avoid stale records accumulating. Trimesh kept as fallback if Blender binary unavailable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>