Aktives Projekt

Software-Projekt

NeoFab ScanLab

Browserbasierter 3D-Viewer zum Laden, Prüfen, Ausrichten und Exportieren von Scan-, CAD- und 3D-Druck-Meshes.

NeoFab ScanLab mit Modellliste, Datei-Upload und einem grünen 3D-Modell samt Bounding Box im Browser-Viewer

NeoFab ScanLab ist ein browserbasierter Viewer für 3D-Scans, CAD-Exporte und Mesh-Dateien aus dem 3D-Druck-Umfeld. Das Projekt kombiniert ein Python-/Flask-Backend mit three.js und WebGL im Browser. Modelle lassen sich lokal laden, interaktiv betrachten, geometrisch prüfen, neu ausrichten und in der aktuellen Orientierung wieder exportieren.

Ziel des Projekts

ScanLab begann als leichtgewichtiger Versuch, GLB- und glTF-Modelle ohne schwere Desktop-Anwendung im Browser darzustellen. Daraus ist ein technischer Prototyp für die Inspektion unterschiedlicher Mesh-Formate entstanden. Gleichzeitig dient das Projekt als Grundlage, um solche Funktionen später in die NeoFab-Umgebung zu integrieren.

Im Mittelpunkt stehen dabei die Fragen, wie sich große Scandaten performant darstellen lassen, welche Dateiformate sich zuverlässig im Browser verarbeiten lassen und welche Prüf- und Ausrichtungswerkzeuge vor der weiteren Verwendung in CAD oder Slicer wirklich hilfreich sind.

Aktueller Funktionsumfang

  • automatisch erkannte Beispielmodelle direkt aus dem Projekt laden
  • lokale Dateien per Dateiauswahl oder Drag-and-drop öffnen
  • STL, GLB, glTF, OBJ, PLY und 3MF darstellen
  • mehrteilige 3MF-Projektdateien mit ausgelagerten Modelldateien verarbeiten
  • Kamera automatisch auf das geladene Modell ausrichten und zurücksetzen
  • Dateigröße, Bounding Box und Dreiecksanzahl anzeigen
  • Bounding Box mit optionalen Maßbeschriftungen einblenden
  • Gitter, Achsen, Drahtgitter, Modellinformationen und Autorotation umschalten
  • zwischen glatter und flacher Schattierung wechseln
  • Modellfarbe, Farbfavoriten und verschiedene Lichtprofile einstellen
  • sichtbare Ansicht einschließlich Maßangaben als PNG exportieren
  • Modellflächen auswählen und auf XY-, XZ- oder YZ-Ebene ausrichten
  • Bounding Box an den Weltachsen ausrichten
  • das aktuell ausgerichtete Modell als STL oder OBJ exportieren

Unterstützte Formate und Grenzen

Format Aktueller Stand
GLB vollständig als robustes Einzeldateiformat unterstützt
glTF unterstützt; funktioniert am zuverlässigsten als vollständiger Asset-Satz
STL unterstützt
OBJ unterstützt
PLY Meshes mit Flächen werden unterstützt
3MF Mesh- und mehrteilige Projektdateien werden unterstützt

Reine PLY-Punktwolken ohne Flächen können derzeit noch nicht angezeigt werden. FBX wird ebenfalls noch nicht importiert. Einheiten und automatische Skalierung müssen bei Modellen aus unterschiedlichen Quellen weiterhin aufmerksam kontrolliert werden.

Typischer Ablauf

  1. Ein Beispielmodell auswählen oder eine lokale Mesh-Datei in den Browser ziehen.
  2. Modellinformationen, Dreiecksanzahl und Bounding-Box-Maße prüfen.
  3. Darstellung mit Farbe, Licht, Gitter, Achsen und Shading anpassen.
  4. Bei Bedarf eine Fläche auswählen und das Modell auf die gewünschte Ebene legen.
  5. Ausrichtung und Maße erneut kontrollieren.
  6. Screenshot oder ausgerichtetes Modell als STL beziehungsweise OBJ exportieren.

Projektstatus

Version 0.8.0 ist ein aktiver technischer Prototyp unter der Apache License 2.0. Der aktuelle Viewer deckt bereits wesentliche Lade-, Prüf-, Darstellungs- und Ausrichtungsfunktionen ab. Er ist jedoch noch keine vollständige Scan-Aufbereitungs- oder Vergleichslösung.

Auf der Roadmap stehen unter anderem Ladefortschritt, Einheiten- und Skalierungsoptionen, mehrere Modelle pro Szene, Schnittansichten, Mess- und Annotationswerkzeuge, Sitzungsimport und -export sowie ein späterer Scan-zu-CAD-Vergleich mit Abweichungsanalyse.

Technische Grundlage

  • Python und Flask für Backend und Bereitstellung
  • three.js und WebGL für die interaktive 3D-Darstellung
  • lokal eingebundene Loader für die unterstützten Mesh-Formate
  • Flask/Gunicorn sowie Installationsskripte für Debian 13 in einem Proxmox-LXC-Container
  • perspektivisch trimesh, MeshLab oder Blender für serverseitige Mesh-Verarbeitung

Quellcode, Installationsskripte, Beispieldateien und die vollständige Featureliste befinden sich im NeoFab-ScanLab-Repository.