Skip to main content

v1.1.15 — 3MF Consortium Integration, Gcode Toolpath & Universal 3D Preview

· 2 min read
SkyNett81
3DPrintForge utvikler

3MF Consortium Integration

  • lib3mf WASM (@3mfconsortium/lib3mf v2.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-3d resolves 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.3mf files

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-sqlite flag (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_3mf column on print_history
  • 6 npm dependencies (added @3mfconsortium/lib3mf)

Full Changelog: https://github.com/skynett81/3dprintforge/compare/v1.1.14...v1.1.15