Was macht CAD-Studio-Renderings?
Wandeln Sie eine CAD-Baugruppe in alles um, was eine Produktseite braucht: fotorealistische Studioaufnahmen, transparente Freisteller, ein Drehteller-Video und einen selbst gehosteten 3D-Viewer mit AR-Funktion für Mobilgeräte. Ein kompletter Durchlauf ist ein einziger Befehl, und alles läuft lokal. Die GPU übernimmt das Rendering; es kommt keine KI-Bildgenerierung zum Einsatz, daher stellen die Pixel die echte Geometrie dar.
python3 "${CLAUDE_SKILL_DIR}/scripts/studio.py" model.step --name "Produktname"
${CLAUDE_SKILL_DIR} ist das Verzeichnis dieses Skills (Claude Code füllt es aus). Verwenden Sie bei anderen Agenten das Verzeichnis, in dem sich diese SKILL.md-Datei befindet. Alle unten angegebenen Skriptpfade sind relativ zu diesem Verzeichnis.
Wann verwenden
- "Rendere diese STEP-Datei", "Erstelle Produktaufnahmen / Packshots aus CAD", "Fotorealistisches Rendering dieses Teils"
- "Setze ein 3D-Modell dieses Produkts auf unsere Website", "Mache es drehbar", "AR-Ansicht des Produkts"
- "Transparentes PNG des Produkts", "Freisteller für den Katalog", "Drehteller-Video"
- Ein 3D-Künstler möchte eine bearbeitbare Blender-Szene, um sie von Hand fertigzustellen
Nicht für diesen Skill: Modellieren eines Teils von Grund auf (CAD-Werkzeug verwenden), Bildgenerierung aus einer Textaufforderung oder Rendern einer Szene, die kein Produkt ist (Innenräume, Charaktere).
Installieren dieses Skills
- Claude Code, Terminal:
claude plugin install cad-studio-renders --marketplace abchiaravalle/cad-studio-renders - Claude Code, Desktop-App: Bitten Sie Claude,
https://github.com/abchiaravalle/cad-studio-rendersin~/.claude/skills/cad-studio-renderszu klonen (Desktop-App und Terminal lesen dieses Verzeichnis). - Jeder andere Agent: Legen Sie dieses Verzeichnis dort ab, wo der Agent
SKILL.md-Verzeichnisse lädt.
Voraussetzungen (zuerst prüfen)
blender --version # 4.2 oder neuer. Falls fehlend: https://www.blender.org/download/
uv --version # Liest die CAD-Datei. Falls fehlend: https://docs.astral.sh/uv/
ffmpeg -version # Nur für --turntable Videos erforderlich
Falls Blender installiert, aber nicht im PATH ist, setzen Sie BLENDER=/pfad/zu/blender. Eine GPU (Apple Silicon, NVIDIA, AMD) beschleunigt Renderings um das 5- bis 20-fache; CPU funktioniert, ist aber langsamer. Der erste Lauf lädt eine CAD-Bibliothek (~60 MB) und ein Studio-HDRI (24 MB, CC0) in ~/.cache/cad-studio-renders/ herunter.
Arbeitsablauf
- Materialien vor dem Rendern zuweisen. CAD-Dateien enthalten selten echte Oberflächen.
Lesen Sie die Tabelle. Jedes Teil zeigt seine Voreinstellung und den Grund. Zeilen, die mitpython3 "${CLAUDE_SKILL_DIR}/scripts/studio.py" model.step --map-only(prüfen)enden, sind Schätzungen. Korrigieren Sie falsche mit einer Regeln-Datei (nächster Abschnitt) und führen Sie--map-onlyerneut aus, bis alles stimmt. - Vorschau (ca. 10 s):
--previewrendert einen 1000 px Entwurf. Betrachten Sie ihn, bevor Sie Minuten für die Endfassung aufwenden. Prüfen Sie: richtige Ausrichtung, korrekte Montage (nichts schwebend), Bildausschnitt, Materialien. - Endfassung: Entfernen Sie
--preview. Die Standardeinstellungen erzeugen eine 2400 px Hero-Aufnahme mit Hintergrund, dieselbe Aufnahme als transparentes PNG, eine bearbeitbare.blend-Datei und das Web-Embed-Paket. - Prüfen Sie die Ausgabe in voller Größe (zoomen Sie in die detailreichste Region), bevor Sie sie übergeben.
Materialien korrigieren: Die Regeln-Datei
{"rules": [
{"match": "rahmen|basis", "preset": "pulverbeschichtet", "color": "#2b2f33"},
{"match": "^Abdeckung", "preset": "kunststoff_strukturiert"},
{"match": "motor", "preset": "motorgehäuse"},
{"match": "logoschild", "preset": "eloxiert_farbe", "color": "#c8102e"},
{"match": "spindel", "preset": "stahl_poliert", "params": {"roughness": 0.05}},
{"match": "schutzgitter", "hide": true},
{"match": "portal", "offset_mm": [0, 0, 80]}
]}
match ist ein nicht case-sensitiver Regex, der gegen den Teilenamen, den Instanznamen und den Montagepfad getestet wird. Die erste übereinstimmende Regel gewinnt. params überschreibt jeden Voreinstellungswert (Roughness, Metallicity, Beschichtung, Anisotropie, Fase, Bump...). offset_mm setzt die Position dieses Teils in der Explosionsansicht. Voreinstellungen befinden sich in assets/presets/materials.json; fügen Sie dort neue hinzu.
Ohne Regeln verwendet der automatische Mapper in dieser Reihenfolge: Schlüsselwörter im Teilenamen (Verbindungselemente, Lager, Linearschienen, Kugelgewindetriebe, Motoren, Gummi, Glas...), dann die CAD-Farbe (gesättigte Farben werden zu Lack, Teile mit derselben Farbe erhalten dieselbe Oberfläche), dann die Größe.
Wichtige Optionen
| Flag | Wirkung |
|---|---|
--shots hero,front,side,top,iso,back,square,hero_low,detail | Welche Kamera-Perspektiven (assets/presets/shots.json) |
--lighting studio_soft / high_key / dramatic / hdri_only | Beleuchtungs-Setup (assets/presets/lighting.json) |
--backdrop 0.42 oder --backdrop "#1d1f22" | Hintergrundgrau oder -farbe |
--size 4000 --aspect 16:9 | Ausgabegröße und -format |
--samples 768 | Mehr Samples = sauberere glänzende Details, längere Renderzeit |
--exposure 0.3, --light-scale 1.2, --env-scale 0.8 | Helligkeit |
--hdri photo_studio_01 oder --hdri mein.exr, --hdri-rotation 40 | Reflexionsumgebung |
--dof 0 / --dof 2 | Hintergrundunschärfe aus / weniger Unschärfe |
--bevel-scale 0 | Kantenverrundung ausschalten (Verrundung macht CAD real) |
| `--detail-target "spindel | futter"mit--shots detail` |
--no-transparent, --no-backdrop, --no-embed, --no-blend | Ausgaben überspringen |
--clay | Grauer Clay-Durchgang (Licht-/Formprüfung, Design-Reviews) |
--passes | Multilayer-EXR: Tiefe, Normalen, AO, Nebel, Cryptomatte (Objekt- + Material-ID) |
--exploded 0.4 | Explosionsansicht (Teile vom Zentrum weggeschoben; offset_mm-Regeln überschreiben) |
--turntable [--turntable-transparent] | 360° MP4 + WebM (optional mit Alphakanal) + PNG-Einzelbilder |
--up y | Hochachse erzwingen, falls die automatische Erkennung falsch liegt |
Ausgabe
<modell>_studio/
hero.png 16-Bit, auf Studio-Hintergrund
hero_transparent.png 16-Bit RGBA, weicher Kontaktschatten bleibt erhalten (--shadow none zum Entfernen)
hero_clay.png, hero_exploded.png, hero_passes.exr (auf Anfrage)
<slug>_turntable.mp4 / .webm, turntable_frames/ (auf Anfrage)
<slug>_scene.blend Lichter, Kameras, Materialien, Hintergrund, Texturen eingepackt
materials_map.json jedes Teil -> Voreinstellung + Grund (bearbeiten und erneut ausführen mit --rules)
manifest.json Einstellungen, Zeiten, Dateiliste mit Größen und Hashes
embed/ selbst gehostetes 3D-Viewer-Paket (siehe unten)
Die .blend-Datei ist für die manuelle Nachbearbeitung ausgelegt. Sammlungen: Product (ein Empty pro Teil, damit Teile einzeln bewegt oder animiert werden können) und Studio (Hintergrund, Lichter, Kameras). Jede Kamera ist an einen Zeitleisten-Marker gebunden, sodass das Durchblättern der Zeitleiste die Aufnahmen wechselt. Materialien sind einfache Principled-BSDF-Knotenbäume. Kantenverrundung erfolgt über einen Bevel-Shader-Knoten, sodass die Geometrie exakt bleibt.
Das Embed-Paket
embed/ ist vollständig statisch und macht null externe Anfragen. Es enthält gebündelt Google <model-viewer> (Apache-2.0) und den Draco-Decoder. Laden Sie das Verzeichnis irgendwo hoch und fügen Sie snippet.html ein, oder verwenden Sie einen Iframe mit embed.html. Es enthält:
assets/<slug>.glb: Draco-komprimiert, mit auf die Renderings abgestimmten Materialienassets/<slug>.usdz: iPhone/iPad-AR via Quick Look- ein Poster-Bild
- das Studio-HDRI für Reflexionen
index.html: eine Demoseite mit Kopier-Buttons und Render-Downloads
Hinweise zum Hosten auf WordPress, Shopify, Webflow und anderen Plattformen finden Sie in embed/README.md.
Fallstricke (jeder ist während der Entwicklung aufgetreten)
- Modell auf der Seite oder kopfüber. SolidWorks, Inventor, Creo und Fusion standardmäßig Y-up; die meisten anderen sind Z-up. Der Konverter liest den STEP-Header zur Schätzung und gibt die Schätzung aus (
up axis: Y (geschrieben von Solidworks)). Falls falsch, übergeben Sie--up z(odery,-y,x...). - Teile driften auseinander / "versehentlich explodiert". Die Ursache war doppelt angewendete Montagetransformationen. Der Szenen-Builder prüft nun, ob das Gruppieren von Teilen die Geometrie verschiebt, und bricht ab, wenn dies der Fall wäre. Wenn Sie den Szenen-Code bearbeiten, behalten Sie diese Prüfung bei.
- Flaches, künstlich aussehendes Metall. Meist Beleuchtung, nicht Materialien: Keine Umgebung bedeutet nichts, was Metall reflektieren kann. Behalten Sie auch bei Flächenlichtern ein HDRI aktiviert (
--env-scale, nicht 0). - Ausgewaschenes erstes Rendering. Die Lichtleistung wird an die Modellgröße angepasst; wenn Sie benutzerdefinierte Lichter in
lighting.jsonhinzufügen, ist die Leistung pro (Modellradius in Metern)² skaliert. Beginnen Sie niedrig und verwenden Sie--preview. - Falsche Material-Schätzung. Kryptische Teilenamen (
P-0042,ASSY_7_REV2, transliterierte nicht-englische Namen) umgehen das Schlüsselwort-Matching und fallen auf Farbe/Größe zurück. Dies wird durch(prüfen)-Markierungen angezeigt. Schreiben Sie Regeln für diese Teile. - OCP 8 hat den Reader kaputt gemacht (
TDF_LabelSequenceverschoben). Der CAD-Reader fixiertcadquery-ocp-novtk<8. Entfernen Sie die Fixierung nicht ohne erneutes Testen. - Webmodell sieht anders aus als das Rendering. glTF kann keine prozeduralen Bumps, Fasen oder Rauschtexturen für Rauheit transportieren, daher erhält das Webmodell nur die Basiswerte. Das ist zu erwarten; das Poster-Bild ist das echte Rendering.
- Große Baugruppen (>5M Dreiecke): Verwenden Sie
--quality webfür Vorschauen; Endrenderings funktionieren weiterhin, benötigen aber RAM (ca. 1 GB pro 2M Dreiecke in Blender).
Überprüfung vor Übergabe
- Öffnen Sie das Hero-PNG bei 100 % und überprüfen Sie die dichteste Region: Keine schwarzen Flächen, keine Facettierung an Kurven, keine Fireflies (weiße Punkte).
- Öffnen Sie das transparente PNG über einem dunklen und einem hellen Hintergrund: Saubere Kanten, Schatten nur unter dem Produkt.
- Stellen Sie
embed/lokal bereit (python3 -m http.server -d embed 8000), öffnen Sie es und bestätigen Sie, dass das Modell lädt, sich dreht und keine Konsolenfehler auftreten. Prüfen Sie es auf einem Telefon, wenn AR relevant ist. - Wenn
materials_map.jsonimmer noch Zeilen mitprüfenenthält, geben Sie dies bei der Übergabe an.
Dateien
scripts/studio.py: Einstiegspunkt (CLI oben)scripts/cad_to_glb.py: STEP/IGES/BREP nach glTF mit Montagenamen und CAD-Farben (uv-Skript)scripts/automap.py: Teile-zu-Material-Entscheidungen (reines Python, einzeln ausführbar)scripts/blender_studio.py: Szene, Materialien, Lichter, Kameras, Renderings, .blend, Web-Exportscripts/package_embed.py: Das selbst gehostete Viewer-Paketassets/presets/*.json: Materialien, Beleuchtungs-Setups, Kamera-Perspektivenexamples/make_demo_model.py: Erstellt den Demo-Schraubstock (originale Geometrie, CC0)