Ein geistreicher Briefbeschwerer

Ein geistreicher Briefbeschwerer

tl;dr: Wenn man die Daten eines Hirn-MRT und einen 3D-Drucker hat, kann man sich ganz einfach ein Zweithirn drucken.

Wenn man – aus Gründen – ohnehin nach einem MRT-Scan (danke der Nachfrage, es war alles ok ;-) ) seine persönlichen 3D-Daten zum Mitnehmen auf CD gebrannt bekommt, steht natürlich die Frage im Raum, was man damit als Privatperson Schönes anstellen könnte. Zum reinen Betrachten der DICOM-Dateien steht eine große Menge an Software zur Verfügung, mir hat z.B. OsirisX recht gut gefallen.

Bei der Suche stolperte ich dann über FreeSurfer, ein Toolkit, das in der Lage ist, aus den MRT-Rohdaten (meines Wissens nach als Voxel gespeichert) die 3D-Volumeninformationen einzelner Gehirnstrukturen oder auch des gesamten Gehirns zu extrahieren. Diese lassen sich dann in das STL-Format konvertieren, mit denen man wiederum einen Slicer für den 3D-Druck füttern kann. Es ist also möglich, sich ein Modell seines Gehirns mit dem 3D-Drucker auszudrucken, als Zweck (wenn denn alles einen haben muss ;-) ) könnte man z.B. einen Briefbeschwerer an den Haaren herbeiziehen.

Installation der Software

dcm2niix

Um die MRT-Daten von dem DICOM-Format, dass ich auf der gebrannten CD mitbekommen hatte, in das NIfTI-Format umzuwandeln, gibt es das Tool dcm2niix, dass sich am Mac direkt über den Homebrew-Paketmanager installieren lässt:

$ brew install dcm2niix

FreeSurfer

Auch wenn es für HomeBrew bereits ein Paket für FreeSurfer gibt, ist es mir nicht gelungen, dieses zum Laufen zu bekommen, weil alle Binaries unsigniert installiert wurden und von Hand eine Ausnahme in den Sicherheitseinstellungen benötigen würden. Weil mir das zu mühsam war, habe ich dann direkt den PKG-Installer für macOS von FreeSurfer 7 verwendet, mit dem alles auf Anhieb geklappt hat.

Die Benutzung erfordert eine kostenlose Lizenz, die man hier anfordern kann. Die Lizenzdatei erhält man per Mail und muss sie dann unter dem Namen .licence in das FreeSurfer-Verzeichnis legen, in meinem Fall also nach /Applications/freesurfer/7.4.0 legen.

Modellerstellung

Zunächst habe ich die Daten von der CD in ein Verzeichnis DICOM auf meinem Desktop kopiert. Dort habe ich sie direkt mit dcm2niix in das NIfTI-Format umgewandelt:

❯ dcm2niix /Users/hoeni/Desktop/DICOM

Die FreeSurfer Anleitung schreibt, man solle als Datenbasis einen Scan mit T1-Wichtung verwenden. Ich habe mir also aus meinem DICOM-Verzeichnis aus den T1-Scans den größten herausgesucht (in der Hoffnung auf bestmögliche Auflösung): DICOM_t1_mprage_sag_p2_iso_20200902095549_12.nii.

Weil FreeSurfer versucht, seine Arbeitsdateien bei den Programmdaten abzulegen, was (zum Glück) mit einer System-Fehlermeldung abbricht, benötigen wir noch ein Arbeitsverzeichnis:

❯ mkdir ~/freesurfer

Jetzt ist alles vorbereitet für die Analyse:

❯ export SUBJECTS_DIR=/Users/hoeni/freesurfer
❯ export FREESURFER_HOME=/Applications/freesurfer/7.4.0
❯ recon-all -s mybrain -all -i /Users/hoeni/Desktop/DICOM/DICOM_t1_mprage_sag_p2_iso_20200902095549_12.nii

In meinem Falle (iMac, Intel i7 8/16 Kerne, 64 GB RAM) hat der Lauf etwa 4,5 Stunden gedauert. Danach findet man im Arbeitsverzeichnis im Unterverzeichnis surf die erzeugten 3D-Dateien lh.pial und rh.pial für die linke und rechte Gehirnhälfte. Diese kann man mit dem mitgelieferten mris_convert direkt in STL-Dateien für den 3D-Druck wandeln:

❯ mris_convert rh.pial rh.stl
Saving rh.stl as a surface in TKREGISTER space
❯ mris_convert lh.pial lh.stl
Saving lh.stl as a surface in TKREGISTER space

3D-Druck

Theoretisch könnte man die beiden Dateien in den Slicer (z.B. PrusaSlicer) laden und drucken. Damit man das Modell vernünftig drucken kann, müssen wir noch zwei Probleme lösen. Ich habe dafür AutoCAD Fusion 360 verwendet, weil ich mich damit bereits auskenne und nicht erst einarbeiten muss. Die beiden STLs der linken und rechten Gehirnhälfte kann ich direkt an der korrekten Position als Meshes laden:

Frisch importiere Meshes.

Innere Leerräume

Das Gitternetz enthält verschiedene innere Leerräume, die von außen zwar nicht sichtbar sind, aber für deren Wände eine große Menge an Material & Druckzeit verschwendet wird. Um die meisten davon zu füllen, erzeuge ich eine solide Halbkugel, die ich behutsam in der Mitte des Modells positioniere.

Falls jemand ein Tool kennt, das automatisch innere Leerräume in STL-Dateien oder Meshes allgemein schließen kann, bitte ich um eine kurze Nachricht, danke!

Auflagefläche

Die Auflagefläche auf dem Druckbett viel zu klein und unregelmäßig, um gut haften zu können. Außerdem ist eine ebene Auflagefläche als Basis sicher auch für das gedruckte Objekt stabiler. Dazu extrudiere ich aus der Grundfläche der Halbkugel noch einen kleinen Zylinder heraus, gerade weit genug, dass keine Teile des Gehirns auf der Druckplatte aufliegen (das klingt so nach Tarantino-Film ;-) ):

Der künstliche "Pfosten".

Der künstliche "Pfosten im Gehirn montiert".

Kombination

Um die einzelnen Teile zu einem Gesamtkörper verbinden zu können, braucht es leider in Fusion 360 etwas Überzeugungsarbeit, das Verschmelzen von Mesh- und Volumenkörpern ist nämlich derzeit nicht möglich.

Am einfachsten ist es daher, den Volumenkörper in einen Meshkörper zu wandeln. Im Bereich “Netz” kann unter “Erstellen” den Punkt “tesselieren” auswählen, der genau diese Konvertierung vornimmt. Jetzt kann ich die drei Körper (linke Gehirnhälfte, rechte Gehirnhälfte, Basis) miteinander zu einem großen Mesh verknüpfen. Fusion 360 scheint dafür ganz schön ackern zu müssen, mein Rechner war für einige Minuten intensiv damit beschäftigt.

Das neu entstandene Mesh muss dann noch mit der Funktion “Netz reparieren” in Ordnung gebracht werden, damit es beim Slicen keine bösen Überraschungen gibt.

Alles in Mesh gewandelt.

Slicen

Aus Fusion 360 kann der Körper jetzt im M3F-Format exportiert werden, das ich anschließend direkt in meinen Slicer laden kann.

Zum Verständnis für alle nicht-3D-Drucker: Diese Art 3D-Drucker, die ich benutze (FDM-Drucker) presst im Grunde einfach nur heißes Plastik durch eine frei bewegliche feine Düse. Dieses flüssige Plastik kann aber nur auf eine andere, darunterliegende Schicht gedruckt werden, nicht in die freie Luft, wo es abstürzen würde. Überhänge können (von Ausnahmen mit Tricks abgesehen) nicht damit gedruckt werden. Da die Überhänge in diesem Modell aber ganz erheblich sind, sind Stützstrukturen unumgänglich. Da die neuen organischen Supportstrukturen, die mit PrusaSlicer 2.6 Beta vorgestellt wurden, hier eine erhebliche Verbesserung gegenüber den herkömmlichen Stützen versprechen, werde ich sie hier gleich einmal ausprobieren.

Slicen mit organischen Stützen.

Nach dem Drucken musste ich leider feststellen, dass auch die organischen Supportstrukturen viel Arbeit beim Entfernen machen (wenn auch wohl nicht so viel wie die starren). Wahrscheinlich wäre das ein schönes Projekt für einen Resin-3D-Drucker. Das Ergebnis finde ich aber dennoch recht beeindruckend für die gewählte kleine Druckgröße und grobe Düse (0,4 mm). Bei Gelegenheit muss ich das noch einmal mit einem feineren Filament und der 0,25 mm-Düse drucken.

© 2024 Tobias Henöckl