CommunityBildgithub.com

CAD-Studio-Renderings

Verwenden Sie dies, um CAD-Dateien (STEP/IGES) in Produktaufnahmen, transparente PNGs oder ein 3D-Web-Embedding umzuwandeln.

Was ist CAD-Studio-Renderings?

Diese Fähigkeit verwandelt CAD-Baugruppen (STEP/IGES) in fotorealistische Studioaufnahmen, transparente Freisteller, Drehteller-Videos und einen selbst gehosteten 3D-Viewer mit AR-Funktion für Mobilgeräte – alles mit einem einzigen Befehl und komplett lokal auf Ihrem Rechner. Der Befehl `python3 studio.py model.step --name "Produktname"` startet den gesamten Workflow; die GPU übernimmt das Rendering ohne KI-Bildgenerierung, sodass die Pixel die echte Geometrie abbilden. Die Fähigkeit unterstützt Claude Code (über das Plugin-Ökosystem) und andere Agenten, indem sie das Skill-Verzeichnis mit der `SKILL.md`-Datei referenzieren. Sie umfasst automatische Materialerkennung (mit anpassbaren JSON-Regeln), Vorschau-Modus, detaillierte Kontrollmöglichkeiten (Beleuchtung, Kameraperspektiven, Explosionsansichten) und ein statisches, extern abhängigkeitsfreies Embed-Paket (`embed/`). Nutzer müssen lediglich Blender 4.2+ (`blender --version`), `uv` und optional `ffmpeg` für Videos installieren; die erste Ausführung lädt automatisch eine CAD-Bibliothek und ein HDRI herunter.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/abchiaravalle/cad-studio-renders/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 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-renders in ~/.claude/skills/cad-studio-renders zu 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

  1. Materialien vor dem Rendern zuweisen. CAD-Dateien enthalten selten echte Oberflächen.
    python3 "${CLAUDE_SKILL_DIR}/scripts/studio.py" model.step --map-only
    
    Lesen Sie die Tabelle. Jedes Teil zeigt seine Voreinstellung und den Grund. Zeilen, die mit (prüfen) enden, sind Schätzungen. Korrigieren Sie falsche mit einer Regeln-Datei (nächster Abschnitt) und führen Sie --map-only erneut aus, bis alles stimmt.
  2. Vorschau (ca. 10 s): --preview rendert 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.
  3. 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.
  4. 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

FlagWirkung
--shots hero,front,side,top,iso,back,square,hero_low,detailWelche Kamera-Perspektiven (assets/presets/shots.json)
--lighting studio_soft / high_key / dramatic / hdri_onlyBeleuchtungs-Setup (assets/presets/lighting.json)
--backdrop 0.42 oder --backdrop "#1d1f22"Hintergrundgrau oder -farbe
--size 4000 --aspect 16:9Ausgabegröße und -format
--samples 768Mehr Samples = sauberere glänzende Details, längere Renderzeit
--exposure 0.3, --light-scale 1.2, --env-scale 0.8Helligkeit
--hdri photo_studio_01 oder --hdri mein.exr, --hdri-rotation 40Reflexionsumgebung
--dof 0 / --dof 2Hintergrundunschärfe aus / weniger Unschärfe
--bevel-scale 0Kantenverrundung ausschalten (Verrundung macht CAD real)
`--detail-target "spindelfutter"mit--shots detail`
--no-transparent, --no-backdrop, --no-embed, --no-blendAusgaben überspringen
--clayGrauer Clay-Durchgang (Licht-/Formprüfung, Design-Reviews)
--passesMultilayer-EXR: Tiefe, Normalen, AO, Nebel, Cryptomatte (Objekt- + Material-ID)
--exploded 0.4Explosionsansicht (Teile vom Zentrum weggeschoben; offset_mm-Regeln überschreiben)
--turntable [--turntable-transparent]360° MP4 + WebM (optional mit Alphakanal) + PNG-Einzelbilder
--up yHochachse 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 Materialien
  • assets/<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 (oder y, -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.json hinzufü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_LabelSequence verschoben). Der CAD-Reader fixiert cadquery-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 web für Vorschauen; Endrenderings funktionieren weiterhin, benötigen aber RAM (ca. 1 GB pro 2M Dreiecke in Blender).

Überprüfung vor Übergabe

  1. Ö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).
  2. Öffnen Sie das transparente PNG über einem dunklen und einem hellen Hintergrund: Saubere Kanten, Schatten nur unter dem Produkt.
  3. 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.
  4. Wenn materials_map.json immer noch Zeilen mit prüfen enthä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-Export
  • scripts/package_embed.py: Das selbst gehostete Viewer-Paket
  • assets/presets/*.json: Materialien, Beleuchtungs-Setups, Kamera-Perspektiven
  • examples/make_demo_model.py: Erstellt den Demo-Schraubstock (originale Geometrie, CC0)

Verwandte Skills