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

v1.1.14 — AdminLTE 4, CRM System & Achievement Landmarks

· 3 min read
SkyNett81
3DPrintForge utvikler

AdminLTE 4 Integration​

  • Complete HTML restructuring migrated to AdminLTE 4 framework
  • Treeview sidebar with Bootstrap Icons and proper section toggling
  • Modern UI with teal accent, gradient titles, hover glow effects
  • Improved dark theme with better text contrast

CRM System​

Full customer relationship management for print service businesses (requires GeekTech.no license):

  • Customers — CRUD with search, order history, revenue tracking
  • Orders — create from scratch or from print history, auto-cost calculation, status workflow (draft → pending → printing → completed → shipped)
  • Invoices — professional HTML invoice generation with company header, line items, tax/MVA, payment info, print-friendly
  • Business Settings — company info, org number, bank account, tax rate, payment terms
  • CRM Dashboard — revenue trend, orders by status, top customers, activity feed
  • 107 CRM keys translated to all 2 languages

Achievement Landmarks (18 World Landmarks)​

Legendary long-term goals based on real-world 1:1 scale 3D printing:

  • 🕰️ Prague Orloj (150 kg) · 🐲 Wawel Dragon (200 kg) · 🏯 Gyeongbokgung (400 kg)
  • 🏡 Dutch Windmill (600 kg) · 🏛️ Brandenburg Gate (800 kg) · ✝️ Cristo Redentor (1.2t)
  • ⚔️ Motherland Monument (1.5t) · 🏗️ Turning Torso (2.5t) · ⛵ Viking Ship (3t)
  • 🕌 Hagia Sophia (5t) · 🏛️ Budapest Parliament (6t) · ⛪ Sagrada Família (8t)
  • 🏟️ Colosseum (15t) · 🗽 Statue of Liberty (46t) · 🧱 Great Wall 1km (50t)
  • 🗼 Tokyo Tower (90t) · 🔔 Big Ben (120t) · 🗼 Eiffel Tower (180t)

AMS & Filament​

  • AMS humidity 5-level rating (Best/Good/OK/Poor/Bad) with temperature assessment
  • EXT spool shown inline with AMS spools, always visible when linked
  • Filament section redesigned with large spools, full info (brand, weight, temp, RFID)
  • Click on spool opens detail popup with material info
  • Live filament tracking during printing via cloud estimate fallback
  • Filament change time in cost estimator with visible counter

Dashboard Layout​

  • 2-column default optimized for 24–27" monitors
  • 3D/camera fills available space, filament/AMS compact below
  • Temperature/fans info in stats strip only (cards hidden)

Sound Notifications​

  • 9 configurable events with custom audio upload (MP3/OGG/WAV, max 10s)
  • Printer buzzer support via M300 G-code melodies
  • Countdown sound at 1 minute remaining

Activity Log​

  • Persistent timeline from all database tables (prints, errors, maintenance, notifications)
  • Accessible via #logs → Activity tab with type filters

Knowledge Base​

  • 5 new KB pages: ASA, PC, PVA/HIPS, Bambu Lab series, compatibility matrix
  • Filament material database with 15 materials, plate compatibility, drying info
  • All KB pages translated to 2 languages

Internationalization​

  • Complete i18n audit: 3,252 keys × 2 languages = 0 missing
  • Guided tour, achievements, CRM, material tips all fully translated
  • Auto-build docs on install and server start

Bug Fixes​

  • Sidebar works correctly with AdminLTE 4 treeview
  • Ctrl+Shift+R keeps you on current page
  • Camera fills card properly
  • Toast notifications in bottom-right, no longer blocking UI
  • HMS error codes show human-readable descriptions
  • Service worker uses network-first strategy (no stale cache)

v1.1.13 — Filament Tracking Accuracy & Complete i18n

· 2 min read
SkyNett81
3DPrintForge utvikler

Filament Tracking​

  • Consistent Math.min(AMS sensor, spool database) across all filament displays
  • EXT spool detection for P2S/A1 AMS Lite via MQTT mapping field
  • 4-tier filament tracking fallback: AMS diff → EXT direct → cloud estimate → duration estimate
  • Cloud estimate fetched at both print start and end (fixes server restart race condition)
  • Waste double-counting fix for failed/cancelled prints
  • Cost calculation properly handles failed prints without double-counting

AMS & Dashboard​

  • LIVE badge with pulse animation on filament card
  • Data source indicator showing AMS sensor vs database values
  • EXT spool shown correctly in filament ring, active filament panel, and AMS panel
  • _getActiveFilament() correctly reads EXT spool data from inventory

Maintenance Panel​

  • New nozzle types: Brass, HS01 (Bambu) with correct lifespans from knowledge base
  • New components: Z-axis, linear bearings, AMS, AMS sensors, filament drying
  • New "Guide" tab with maintenance cards linking to documentation
  • Recommended intervals, nozzle lifespan, and build plate lifespan tables

Internationalization​

  • Complete i18n: all 2 languages now have 100% coverage (2,944 keys)
  • 1,174+ missing keys translated per language across 45+ sections
  • Languages: nb, en, de, fr, es, it, ja, ko, nl, pl, pt-BR, sv, tr, uk, zh-CN, cs, hu

Other​

  • Ko-fi donation button in dashboard sidebar and documentation

Welcome to 3DPrintForge

· One min read
SkyNett81
3DPrintForge utvikler

3DPrintForge is a self-hosted dashboard for all your 3D printers. It connects directly to your printer via MQTT and gives you full control and overview.