CommunityBildgithub.com

max-model: Idee -> verifiziertes, druckbares Teil

Ideen-zu-druckbarem-3D-Modell-Studio für FDM-Drucker. Nutze es bei Anfragen wie „modelliere / entwerfe / mache mir ein <Ding> zum Drucken“, „3D-modelliere dies“, „CAD dies“, „individuelle Halterung/Gehäuse/Halter/Adapter/Deckel/Bügel“, „Fidget-Spielzeug“, „druckfertig montiert“, „etwas, das sich bewegt“, „Flexi-<Tier>“, „Figur / Statue / Maskottchen von <X>“, „Text zu 3D“, „Gridfinity“, „Einsatz für mein <Ding>“, „dies für mein Bett teilen“, „wird das drucken?“, „kalibriere meinen Drucker“, „sieh es in AR“, „setz meinen Namen drauf“, „füge einen Schlüsselbandhalter hinzu“, „füge Magnete hinzu“, „repariere dünne Wände“, „skaliere es auf meinen Kopf“, „mach mir eine Kiste“, „Schlüsselanhänger“, „Schild“, „Handy-Ständer“, „Lithophanie“, „max model“, „/max-model“ oder „forge“. Code-CAD (build123d/OpenSCAD/bpy) + MechKit-verifizierte Mechanismen + lokales Text-zu-3D + Flexify + Preflight-Fehlerprognose; übergibt ein verifiziertes STL an deinen Slicer.

Was ist max-model: Idee -> verifiziertes, druckbares Teil?

max-model ist eine umfassende KI-Agent-Fertigkeit, die entwickelt wurde, um Ideen und Beschreibungen in druckfertige, verifizierte 3D-Modelle für FDM-Drucker umzuwandeln. Sie unterstützt zahlreiche Anwendungsfälle, darunter das Erstellen von benutzerdefinierten Teilen über Code-CAD (build123d, OpenSCAD, Blender Python), das Remixen heruntergeladener STLs, das Verwenden lokaler Text-zu-3D-Pipelines für organische Figuren, das Erstellen beweglicher Mechanismen (z. B. Getriebe, Klappmesser, Flexi-Gelenke) mit dem MechKit-Modul, das Packen von Bauplatten mit mehreren Teilen sowie die Integration von Preflight-Prüfungen, die Druckprobleme vorhersagen. Die Fertigkeit folgt einem strengen, benchmarkgestützten Arbeitsablauf (erreicht 0,96 Voxel-IoU für genau spezifizierte Teile), bei dem zuerst ein Lastenheft mit Zahlen erstellt wird, dann in kleinen Schritten gebaut, über Looks-Scores validiert und schließlich ein verifiziertes STL oder 3MF an einen Slicer übergeben wird. Sie unterstützt Druckerprofile (Bett, Düse, Schichthöhe), enthält eine Kalibrierungsmatrix für bewegliche Passungen und bietet AR-Vorschaufunktionen. Die Fertigkeit legt Wert auf Benennung (jeder Iterationsschritt wird gespeichert), Metriken vor Behauptungen (auf Werkzeugausgaben gestützte Geometrie) und eine strikte Trennung zwischen dem Modellieren im CAD-Backend und dem Slicen im bevorzugten Slicer des Benutzers.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/marklkasdorf-del/max-model/tree/HEAD

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht max-model: Idee -> verifiziertes, druckbares Teil?

Die Anfrage: Was auch immer der Benutzer nach /max-model eingegeben hat (oder das beschriebene Ding). FORGE = das Verzeichnis dieser Fertigkeit (z. B. ~/.claude/skills/max-model); alle Pfade unten sind relativ dazu. Ein CLI: $FORGE/bin/forge <cmd> (Liste am Ende). Umgebungen (siehe README): CAD-Venv $FORGE/.venv-cad (build123d, trimesh, manifold3d, usd-core, opencv, sdf; Überschreiben mit FORGE_CAD_PY), optionale KI-Venv $FORGE/.venv-ai (torch, diffusers, CLIP; Überschreiben mit FORGE_AI_PY) für text3d und looks. Drucker: knowledge/printer.json (Bett, Düse, Schicht; Beispiele in knowledge/printers/). Das Slicen ist Sache des Slicers des Benutzers: forge endet mit einem verifizierten STL plus Preflight-Urteil (Stützen an/aus). Ein optionaler slicer_cmd-Hook erlaubt es forge, Druckzeit und Gramm zu melden.

Was der Benchmark vom 2026-10-17 zeigte (knowledge/benchmark-2026-10-17.md): Exakte Teile aus einer vollständigen Spezifikation erreichen 0,96 Voxel-IoU gegenüber dem echten STEP für vollständig spezifizierte Teile, aber nur 0,41–0,82, wo Details geschätzt wurden; druckfertig montierte Mechanismen bestanden Bewegungssimulationen beim ersten Bau ohne verschweißte Spalte (noch nicht durch echte Drucke auf dem Drucker des Autors validiert); das AUSSEHEN ikonischer/organischer Dinge ist die Schwachstelle bei händischer Modellierung (ein händisch modelliertes Helm kam als Ei heraus). Die text3d/looks/remix-Pipelines existieren, um diese Schwachstelle mit Werkzeugen statt Willenskraft abzudecken: Referenzdurchlauf + Looks-Score, lokales Text->3D für organische Figuren, Flexify auf Sculpts, Finden-und-Remixen für ikonische Requisiten.

Regeln, die nie gebogen werden

  1. Zahlen zuerst, Bilder zweitens. Keine Behauptung über Geometrie, es sei denn, sie stammt aus der Ausgabe eines Werkzeugs (verify/selftest/preflight/grade JSON) oder einem Render, den du in dieser Iteration gelesen hast. Niemals ein STL aus dem Gedächtnis beschreiben.
  2. Spezifikation vor Modell für kundenspezifische Teile: zuerst spec.md + spec.json mit numerischen Erfolgskriterien.
  3. Eine Änderung pro Iteration, behalte jedes iter_NN/, maximal 6 pro Phase, dann neu planen.
  4. Alles, was sich bewegt, wird mit einem bestandenen Selbsttest ausgeliefert (Kollisionsfreie Bewegung + Muss-Klemmen-Kontrolle + gemessene Spalte). Keine Ausnahmen; es ist der Grund, warum Mechanismen die Stärke dieser Fertigkeit sind.
  5. Jeder Druck erhält forge preflight vor dem Slicen, und sein Urteil entscheidet über Stützen. NO-GO = Geometrie/Ausrichtung zuerst reparieren. Druckfertig montierte / Mehrkörperteile erhalten auch forge export <stl> und du übergibst das 3MF, nicht das STL: Die automatischen Stützen eines Slicers füllen die Lücken und verschweißen die Teile (der erste Druck von CYCLO-11 starb so), und ein STL kann nicht „Stützen aus“ transportieren.
  6. Umgebung: Blender, OpenSCAD und GPU-Torch (text3d, looks) können in manchen Agent-Sandboxen, die die GPU verstecken, abstürzen (Blender exit 139). Wenn ein Schritt mit Segfault fehlschlägt, führe ihn außerhalb der Sandbox aus. Reines Python (build123d, manifold3d, trimesh) läuft überall.
  7. Berichte Meilensteine kurz (gewählter Weg, erster Render, druckbereit mit Zeit/Gramm/Urteil, Hindernis): eine Zeile pro Meilenstein, sage, was der Benutzer entscheiden muss. Sende Schlüsselbilder (sheet.png, poster.png) und AR-Dateien, wenn der Kanal Dateien unterstützt.
  8. Niemals einen Druck starten oder Geld ausgeben ohne ausdrückliches OK des Benutzers. Heruntergeladene Modelle: Respektiere die Lizenz (CC BY-NC = kein Verkauf).

Sitzungsstart (30 Sekunden)

ls $FORGE/knowledge/; cat $FORGE/knowledge/{fit-log.md,lessons.md,printer.json}; $FORGE/bin/forge fit show
$FORGE/bin/forge doctor                # rote Linie -> beheben oder melden vor dem Modellieren

Wenn forge fit show sagt, dass pip_gap noch [R] ist (Forschungstandard, nicht an diesem Drucker gemessen): einmal erwähnen, dass die Fit Card (forge mech build fitcard, etwa eine Stunde, ~16 g) jedes bewegliche Teil kalibriert, und anbieten, sie zu drucken.


PHASE 0 — WEG (wähle die Pipeline, nicht den Hammer)

Erster Treffer gewinnt. Teile dem Benutzer den Weg in einer Zeile mit.

Er möchteWegWerkzeuge
einen DOWNLOAD ändern: Name/Text darauf, Schlüsselbandhalter, Magnete, dickere Wände, auf Kopfgröße skalieren, flachen Boden, spiegelnREMIX (herunterladen, dann verbessern)`forge remix text
ein praktisches Ding aus den Zahlen des Benutzers: Kiste (Schiebe-/Druckdeckel), Namens-Schlüsselanhänger, Schild, Handy-Ständer, Halter für einen Gegenstand, LithophanieMAKE (Generatoren; Abstände aus fit.json; Kisten sind bewegungsgeprüft)`forge make box
viele Kopien / ein ganzes Projekt in einem Druck (Verkauf)PLATE (packt das Bett, Kosten pro Stück)`forge plate <stl...> --fill
ein berühmtes existierendes Ding (Filmhelm, Requisite, beliebtes Spielzeug, Gehäuse für ein beliebtes Gerät)FIND (durchsuche selbst eine Modellseite wie Printables/Thingiverse), dann REMIX (skalieren, teilen, Magnete, anpassen)Websuche, forge split, forge preflight --orient
einen ORIGINALEN tragbaren Helm („einen Helm, den niemand sonst hat“)TEXT3D --helmet: Nackenausschnitt, auf einen von dir angegebenen Kopf skaliert (Standard 160x190 + Polster), 3 mm Schale, Gesichtsplatte + 4 Magnetpinsel, Naht-nach-unten-Schnitteforge text3d "<Stil> helm" --helmet
etwas, das sich bewegt (Fidget-Spielzeug, Scharnier, Zahnräder, Gyroskop, Klappmesser, Durchsteckmechanismus, Klicker)MECHKIT, wenn ein Modul passt, sonst mit der Mech-API modellierenforge mech list/build, lib/mechkit/core.py
ein Flexi-Tiereinen SDF-Körper entwerfen (lib/sculpt.py) oder ein Sculpt nehmen (Modellseite/text3d) -> FLEXIFYforge flexify, forge sculpt
eine Figur / Maskottchen / Kreatur / StatueTEXT3D (lokal, kostenlos, ~3,5 Min.) oder finden; beide anbietenforge text3d "<Idee>" [--base NAME]
ein kundenspezifisch passendes Funktionsteil (Halterung, Halter, Adapter, Gehäuse für den Gegenstand des Benutzers)MODELL (Phasen 1-6 unten)build123d-Bahn, forge run, forge parts-find
Schubladen organisieren / einen Einsatz für einen GegenstandGRIDFINITY (+ PHOTOFIT für eine genaue Aussparung)forge gridfinity, forge photofit
zu groß für das BettTEILEN mit Stiften + Nahtmarkierungenforge split
„Wird das drucken / warum ist es fehlgeschlagen“PREFLIGHT (+ Heatmap)forge preflight, forge heat
es vorführen / verkaufenSHOWCASE + ARforge showcase, forge ar

Ehrliche Qualitätsnotizen zur Wegwahl (gemessen vom Autor, 2026-10-17): text3d-Figuren sind klar erkennbar (Axolotl, Drache, Geister-Maskottchen, Hai), aber feine Details sind bei 60 mm weich und sie brauchen Stützen; Flexi-aus-Text via Relief ist klobig (dünne Beine verschmelzen) -> bevorzuge einen SDF-entworfenen Körper oder ein menschliches Sculpt für Flexis; händisch modellierte organische Formen sehen immer noch wie Klumpen aus -> niemals einen Helm/Charakter von Hand modellieren, FIND+REMIX oder TEXT3D verwenden.

PHASE 1 — LASTENHEFT (kundenspezifische Teile): Spezifikation mit Zahlen

  1. Alles, was der Benutzer dir bereits über das genaue Objekt gesagt hat (Gerätemodell, Maße, Fotos). 1b. REFERENZDURCHLAUF für alles mit einem Namen: Suche 6–9 Referenzbilder / am besten bewertete Designs des echten Dings, SCHAU sie an; schreibe „## Form“ in spec.md (Proportionen, 2–3 charakteristische Merkmale, welche Variante). Das Überspringen hat aus dem Benchmark-Klappmesser einen flachen Stock und aus dem Spiral-Fidget das falsche Spielzeug gemacht.
  2. Abmessungen: schlage sie nach, niemals aus dem Gedächtnis (Benchmark: Riemenscheibe 0,41 IoU). forge parts-find "<Teil>" [--download] + forge step2stl; Datenblätter per Webabruf; Websuche nach Referenzbildern. Quellen in spec.md angeben. Für ein Objekt, das der Benutzer besitzt und das nicht nachgeschlagen werden kann: PHOTOFIT (forge photofit mat -> drucke die Kalibrierungsmatte mit 100% -> Foto -> Kontur auf ~0,3 mm genau) ist besser, als nach Messschieberwerten zu fragen.
  3. Frage den Benutzer nur, was nicht gefunden werden kann: EINE Nachricht, <= 4 Fragen, jede mit einem Standardwert.
  4. Schreibe out/<name>/spec.md + spec.json (Vorlagen/). Schätzungen für Passflächen sind als estimate markiert.
  5. Poste „Spezifikation fertig: -- OK zu bauen?“; bei geringem Risiko mit den angegebenen Standardwerten weitermachen.

PHASE 2 — BAHN + PLAN

BahnVerwendung für
b123d (Standard)funktionale/bemaßte/passkritische Teile, Gehäuse, MechKit-Module
scadtriviale Teile oder ein BOSL2-Primitiv (Gewinde)
sdf (lib/sculpt.py)organische Körper, die du selbst entwirfst: glatte Vereinigungen, flache Basis, immer wasserdicht (Gecko-Rezept)
mesh (lib/meshkit.py, manifold3d)Bearbeiten von Downloads/KI-Meshes, große Boolesche Operationen, Flexify, Teilen (OCC erstickt an 100k-Dreiecks-Sculpts)
bpyRenderings, Voxel-Remesh, textlastige Kunst
Plane in Kommentaren am Anfang der Teildatei: Funktionen als Funktionen, Parameterblock in mm, Abstände aus fit.get("pip_gap"/"slide_gap"/...) (niemals 0,3 hartcodieren), Ursprung Bottom-Centre auf Z=0, Druckausrichtung von Anfang an entworfen (größte flache Fläche nach unten, Überhänge <= 45, Brücken < 18, Wände >= 2,0), Bau-Reihenfolge, Assert-Liste.

PHASE 3 — IN KLEINEN SCHRITTEN BAUEN

Pro Iteration: eine Änderung -> forge run part.py --lane <bahn> --spec spec.json --name <name> -> lies verify.json/REPORT.md (hat sich Volumen/BBox um das geändert, was die Änderung bewirken sollte? keine Änderung = fallengelassene Boolesche Operation) -> lies sheet.png einmal -> Kritik -> nächste Änderung.

  • Bewegliche Teile = die Mech-API (lib/mechkit/core.py): Mech(name, parts, fixed, [Motion(name, drive, [Move...], control=[...])]) -> selftest() überstreicht jede Pose, führt die Muss-Klemmen-Kontrolle entlang ihres gesamten Pfades aus, misst Spalte exakt. Kollisionssicher durch Konstruktion schlägt Prüfung: Bögen/Kugeln, die auf dem Drehpunkt zentriert sind, halten den Spalt konstant (Gyroskop, Flexi-Gelenke); halte den Bewegungsraum jedes beweglichen Teils auf seiner eigenen Seite einer Ebene (Klappmesser-Drehpunkte). Zahnräder: lib/gears.py. Gemessen, nicht deklariert: forge mech ratio <name> [--motion M --driven PART --driver PART] bringt den Mechanismus in eine Position, befreit den Ausgang und halbiert das Intervall bis zum kontaktfreien Intervall -> gemessenes Übersetzungsverhältnis + Spiel (ratio.json, exit 3, wenn es vom deklarierten Übersetzungsverhältnis abweicht). Zykloidengetriebe: forge mech build cyclo11 (lib/cycloid.py exaktes Profil + Hinterschneidungsprüfung). Studio-Renderings: forge showcase <dir> --style studio --still hero|cutaway|exploded, --ghost, --annotate.
  • Preflight in der Schleife für alles mit Überhängen: forge preflight out/<name>/<name>.stl.
  • Benannte Objekte: Looks-Score nach der Mechanik-Prüfung: forge looks out/<name>/<name>.stl --target "<Ding>" (CLIP auf sauberen Renderings; validiert: es hat menschlich > v2 > v1 Klappmesser eingestuft). < 30% = iteriere FORM (Proportionen, charakteristische Merkmale), nicht Mechanik. Vergleiche v1 vs. v2 damit, anstatt zu raten.
  • Harte Regeln: niemals aus einer Ansicht beurteilen; Überlappungs-Cutter 0,05 mm (koplanare Flächen hinterlassen Nulldicken-Häute, die Pins VERSCHWEISSEN: gemessener Spalt 0,0 statt 0,3); gleicher Fehler zweimal -> drucke Unterteil-Zahlen und diagnostiziere neu; maximal 6 Iterationen, dann neu planen oder zu FIND wechseln. Beende, wenn verify jeden Spezifikationsschlüssel besteht, selftest besteht (Beweger), preflight GO/GO+SUPPORTS ist, visuelle Checkliste alle ja.

PHASE 4 — PASSUNG

  • Kalibrierung zuerst: druckfertig montierte Spalte stammen aus fit.json. Bis pip_gap [V] ist, trägt jedes PIP-Design eine PREFLIGHT-VORSICHT. Die Fit Card misst pip_gap (Spinner .15-.40) und pip_vgap (Scharniere .25-.45) in einem Druck: frage danach „kleinste Zahl, die sich nach festem Drehen frei dreht?“ -> forge fit set pip_gap <n> --from "fitcard <Datum>" (und pip_vgap). Jeder MechKit-/flexify-/gridfinity-Build liest es automatisch.
  • Passende Teile / Teile um den Gegenstand des Benutzers: Zusammenbau-Posen-Prüfung bin/verify --assembly a.stl b.stl --clearance <passung> --move-b=x,y,z; Dummy des Objekts aus photofit/parts-find.
  • Coupon nur für eine Grenzflächentyp, den die Fit Card nicht abdeckt (Gewinde, Schnappverbindungen, Pressverbindungen) oder geschätzte Maße: <= 10 Min., 3 Varianten, erhabene Beschriftungen.

PHASE 5 — DRUCKVORBEREITUNG + ÜBERGABE

  1. forge preflight <stl> [--slice] -> Urteil + Stützenentscheidung. Organische/geneigte Teile: forge preflight <stl> --orient (versucht Neigungen; ein Helm wollte ~20 Grad). forge heat <stl> erstellt die rot/gelbe Stützen-Heatmap, um sie ihm zu zeigen.
  2. Stützen = Entscheidung des Preflights: GO -> aus; GO+SUPPORTS -> ein/auto; NO-GO -> zuerst reparieren (messerartiger Kontakt, verschweißte Spalte, passt nicht -> forge split). „SUPPORTS: OFF (erforderlich)“ = Auto-Stützen-Falle (eine flache Unterseite < 30 Grad von der Horizontalen liegt < 2 mm über einem ANDEREN Körper; support_angle / support_trap_gap im Druckerprofil): Stützen müssen AUS bleiben, sonst verschweißen sie den Spalt. 2b. Immer, bevor eine druckfertig montierte / Mehrkörperdatei an einen Benutzer übergeben wird: forge preflight <stl> dann forge export <stl> (folgt automatisch dem Urteil; Name endet auf _SUPPORTS-OFF.3mf / _SUPPORTS-ON.3mf). Gib ihm das 3MF und sage: Öffne diese Datei, prüfe, ob das Support-Kästchen mit dem Dateinamen übereinstimmt, ändere nichts anderes. Wenn Preflight NO-GO ist, weil es Stützen braucht UND Stützen verschweißen würden, repariere die Geometrie (fase flache Unterseiten auf 45 Grad, richte neu aus) vor dem Exportieren.
  3. Slicen das exportierte 3MF (oder das STL für einfache Einkörperteile) in DEINEM bevorzugten Slicer mit der Stützenentscheidung aus Schritt 2 und deinem normalen Profil; forge setzt nur das Stützen-Kontrollkästchen, über das 3MF. (Optional: setze slicer_cmd in knowledge/printer.json, damit preflight --slice / plate --slice Zeit und Gramm melden.)
  4. Zeige dem Benutzer: Sheet oder Showcase-Poster + Zeit/Gramm (wenn der Hook gesetzt ist) + Urteil + einzeiliges Rezept. Biete forge ar <stl> an (USDZ: öffnet als echte Größe auf iPhone/Vision Pro; GLB für Quest), wenn Größe/Passung die Frage ist.
  5. Niemals einen Druck ohne das OK des Benutzers starten: „Bett frei? Starte , ~, g.“
  6. Melde „ druckbereit: , g, .“ Verkauf? forge showcase <dir> schreibt mp4/gif + listing.md (Kosten, vorgeschlagener Preis, Lizenzhinweis).

PHASE 6 — RÜCKMELDUNG + LERNEN

  1. Eine Zeile nachdem es gedruckt wurde: „Was war falsch? (Passung / Aussehen / Festigkeit / Druckqualität / nichts)“. Lies jedes Foto.
  2. Spalte -> forge fit set ... (+ eine Zeile in fit-log.md). Andere Zahlen -> fit-log.md / print-tolerances.md [V].
  3. 1–3 Zeilen in knowledge/lessons.md (Datum · Projekt · Lektion · Phase). Neue Technik -> knowledge/<Thema>.md (<= 40 Zeilen, ausführbarer Ausschnitt).
  4. Hinterlasse part.py + Spezifikation erneut ausführbar. Biete eine benachbarte Idee an (Shop-Brain), ohne sie zu starten.
  5. Jede Änderung an Fertigkeit/Werkzeug -> tests/run_suite.sh (bekannte-Antwort-Prüfungen) und, für Fähigkeitsbehauptungen, den Benchmark (forge grade, forge looks) -- beweise, dass es besser geworden ist.

Der Werkzeugkasten (forge <cmd>)

Führe mit...

Verwandte Skills