v1.1.15 — 3MF Consortium Integration, Gcode Toolpath & Universal 3D Preview
· 2 min read
3MF Consortium Integration
- lib3mf WASM (
@3mfconsortium/lib3mfv2.5.0) for spec-compliant 3MF file parsing - 3mfViewer from 3MFConsortium embedded as iframe viewer — full scene tree, materials, wireframe, beam lattice support
- 3MF file validation endpoint (
POST /api/library/validate)
Gcode Toolpath Viewer
- Server-side gcode parser extracts G0/G1 toolpath with per-layer colour gradient
- Automatic download from Moonraker HTTP API or Bambu FTPS
- Gzipped caching for instant repeat views
- Works for all printer types
Three.js Enhanced Viewer
- Three.js r183 vendored with OrbitControls
- Smooth shading, 3-point lighting, build plate grid
- Print progress clipping plane with per-layer vertex colours
Universal 3D Preview
/api/preview-3dresolves 3MF from: library, slicer uploads, history, printer FTPS/HTTP- Per-printer strategy via
printer-capabilities.js(Bambu FTPS, Moonraker HTTP, local files) - Falls back to gcode toolpath when no 3MF mesh available
- Extracts embedded gcode from Bambu
gcode.3mffiles
3D Preview Everywhere
- History — 3D button + upload/replace/delete linked 3MF files
- Library — 3mfViewer for all 3MF files
- Queue — 3D button on queued items
- Scheduler — 3D button on scheduled events
- Gallery — 3D button on gallery items
- Drag-and-drop 3MF upload when model unavailable
Printer Capabilities
- New
printer-capabilities.js— per-brand/model config for file access, camera, features - Model-specific overrides (P2S, A1, X1C, Snapmaker U1, Voron, Creality)
Auto 3MF Caching
- Background download from Bambu printer at print start
- Extracts model name and MakerWorld designId from 3MF metadata
- Non-blocking with 10s timeout
Infrastructure
- Removed deprecated
--experimental-sqliteflag (built-in since Node 22.5+) - Updated install.sh, uninstall.sh, Dockerfile, start.sh
- New data dirs:
library,model-cache,history-models,toolpath-cache - MIME types:
.wasm,.jpg,.jpeg,.gif,.webp - CSP:
unsafe-eval(WASM),worker-src blob:,frame-src 'self' - DB migration v112:
linked_3mfcolumn onprint_history - 6 npm dependencies (added
@3mfconsortium/lib3mf)
Full Changelog: https://github.com/skynett81/3dprintforge/compare/v1.1.14...v1.1.15
