Coffeescad: 3D-Druckmodellierung im Browser

Mit seinem Projekt Coffeescad will Mark Moissette nicht nur eine einfache Modellierungsanwendung für 3D-Drucker erstellen, sondern gleichzeitig Einsteigern das Programmieren näherbringen. Coffeescad verwendet Javascript und läuft in jedem Browser.

Artikel veröffentlicht am ,
Mark Moissette hat Coffeescad entworfen, eine CAD-Anwendung für den Browser.
Mark Moissette hat Coffeescad entworfen, eine CAD-Anwendung für den Browser. (Bild: Jörg Thoma/Golem.de)

Coffeescad heißt das Open-Source-Projekt, mit dem Mark Moissette das Erstellen von CAD-Zeichnungen in Browsern ermöglichen will. Die in Coffeescad erstellten 3D-Objekte werden in Coffeescript geschrieben, daher auch der Name. Das Berechnen und Rendern der Objekte übernimmt die Javascript-Engine in fast allen gängigen Browsern. "Coffeescad ist noch im Pre-Alpha-Stadium, und ich will noch weitere Funktionen hinzufügen. Das Schöne an Open-Source-Software ist, dass jeder sie benutzen darf. Das haben andere auch schon gemacht", sagt Moissette über sein Projekt.

  • Coffeescad
  • Coffeescad
  • Coffeescad
  • Eine Wasserpumpe, die in Coffeescad entworfen wurde
Eine Wasserpumpe, die in Coffeescad entworfen wurde

Gegenwärtig lässt sich Coffeescript weitgehend nur mit Code steuern. Für jedes 3D-Objekt müssen entsprechende Code-Objekte erstellt und mit Variablen gefüttert werden, die die Größe und Farbe des Objekts bestimmen. In einem Terminalfenster wird der Coffeescript-Code eingegeben, dessen Syntax ähnlich dem von Python ist. Der Coffeescad-Editor unterstützt unter anderem Syntaxhervorhebung und Qualitätskontrolle durch Linting. Änderungen am Code werden in Echtzeit im Browserfenster angezeigt.

CAD-Funktionen im Browser

Coffeescad beherrscht die wichtigsten CAD-Funktionen. So lassen sich die meisten gängigen Primitiven erstellen und damit Grundfunktionen wie Vereinigungen, Differenzen und Schnitte durchführen. "Mit Coffeescad lassen sich aber auch schon komplexe Modelle erstellen", sagt Moissette und zeigt einen Entwurf einer mehrteiligen Wasserpumpe, an der die Designer Simon Kirkby und Jonhatan Sorensen gearbeitet haben.

Der CSG-Kern (Constructive Solid Geometry) von Coffeescad stamme ursprünglich aus dem OpenJScad-Projekt, sei aber mittlerweile deutlich erweitert worden, erklärt Moissette weiter. "Der Funktionsumfang geht auch über den in ähnlichen Anwendungen wie Sketchup oder OpenSCAD hinaus, vor allem was die Kollaboration betrifft. Eine hochleistungsfähige CAD-Anwendung, wie AutoCAD, Catia oder Solidworks, soll es aber nicht werden. Ich will mich lieber auf die Modellierung für 3D-Drucker konzentrieren."

Gui geplant

"Momentan ist Coffeescad eher für Anwender gedacht, die bereits programmiert haben oder es lernen wollen", gibt Moissette zu. Als nächsten Schritt plant er die Umsetzung einer grafischen Oberfläche, die die Eingaben im Terminal ergänzen sollen. Er kooperiert dabei mit anderen Projekten, die seinen Kern bereits nutzen, etwa in dem Projekt Ultishaper von Erik de Bruijn von Ultimaker, das auf Onlinekollaboration setzt. Ultishaper und auch Moissette wollen mit der Benutzeroberfläche 3D-Design unerfahrenen Nutzern und selbst Kindern oder Jugendlichen zugänglich machen.

"Im Terminal-Fenster soll der in der Gui veränderte Code direkt angezeigt werden, denn Coffeescad ist für angehende Entwickler ein guter Einstieg in die Programmierung", sagt Moissette. Immerhin werde dort auch mit Grundlagen wie dem Erstellen von Objekten und mit Variablen gearbeitet. Außerdem biete das Terminal nach wie vor oftmals die schnellere und effektivere Eingabemöglichkeit.

Später mit Splicer

In Coffeescad erstellte Modelle lassen sich als herkömmliche STL-Dateien exportieren. Alternativ können sie im Json-Format abgespeichert und so über Webseiten auch anderen Anwendern zum Bearbeiten zur Verfügung gestellt werden. Die integrierte Javascript-Bibliothek Dropbox.js ermöglicht das direkte Speichern im Onlinespeicherdienst.

Moissette möchte später noch ein weiteres großes Projekt angehen: die Integration des Slicers in Coffeescad. Bereits jetzt arbeite er an einigen Funktionen, die die langwierigen und meist langsamen Berechnungen des Slicers abkürzen sollen, indem sie etwa bei der Erstellung eines Modells gleich auch das Füllmuster des 3D-Druckobjekts bestimmen. Damit ließen sich auch Objekte designen, die vorbestimmte Lücken haben, etwa für Kabel, die später in dem gedruckten Objekt integriert werden sollen. "Die Integration eines Slicers ist aber eine Mammutaufgabe, die ich vermutlich nicht alleine schaffe. Ich habe ja nebenbei auch einen Job. Ich hoffe, jemand hilft mir dabei."

Für die Darstellung von Objekten nutzt Coffeescad unter anderem die Javascript-Frameworks Backbone.js, Marionette.js und die 3D-Bibliothek Three.js. Der Code von Coffeescad ist unter der MIT-Lizenz auf Github erhältlich und kann in einer Onlinedemo ausprobiert werden.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
SU7
Xiaomi stellt elektrische Sportlimousine für 28.000 Euro vor

Xiaomi positioniert sein Elektroauto SU7 gegen das Tesla Model 3 und heizt den Preiskampf auf dem chinesischen Automarkt weiter an.

SU7: Xiaomi stellt elektrische Sportlimousine für 28.000 Euro vor
Artikel
  1. 20 Jahre Far Cry: Das deutsche Grafikwunder
    20 Jahre Far Cry
    Das deutsche Grafikwunder

    Mit Far Cry feierte der deutsche Entwickler Crytek 2004 ein viel beachtetes Debüt. Kann der Südsee-Shooter auch 20 Jahre später noch beeindrucken?
    Von Benedikt Plass-Fleßenkämper

  2. Apple: Neue iPads sollen sich wegen OLED-Displays verzögern
    Apple
    Neue iPads sollen sich wegen OLED-Displays verzögern

    Die neuen iPad Pro und iPad Air sollen später als erwartet auf den Markt kommen. Der Grund sind die OLED-Displays beim Pro-Modell.

  3. Softwareentwicklung: Events und APIs mit DDD entwerfen
    Softwareentwicklung
    Events und APIs mit DDD entwerfen

    Anforderungen an Software ändern sich schneller als je zuvor. Damit Entwickler da mitkommen, sollten sie Domain-driven Design nutzen. Wie das geht, zeigen wir an einem Beispiel.
    Von Annegret Junker

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • Prime: Filme leihen für 0,99€ • Super Sale bei Alternate • MindStar: CHERRY Xtrfy MZ1 RGB Wireless 79€ • Alternate: Corsair RM750x/RM850x 109,90€/124,90€, ADATA 64 GB DDR5-6000 206,89€, Bosch-Professional-Werkzeuge • Gratis-Zugaben PS5 Slim & Nintendo Switch OLED beim TV-Kauf [Werbung]
    •  /