CommunityBildgithub.com

TraX22/blender-modellierung

Erstellt und bearbeitet 3D-Modelle im Blender des Benutzers über eine Blender-Verbindung (offizieller BlenderLab-Server): Szene inspizieren, bpy-Code in kleinen, verifizierten Schritten schreiben, maßstabsgetreu, saubere Benennung, Modifikatoren und Überprüfung des Ergebnisses mit Viewport-Screenshots. Verwende dies, wenn der Benutzer darum bittet, ein Objekt oder eine Szene in Blender zu modellieren, zu erstellen, zu reparieren oder zu ändern oder ein 3D-Modell aus einer Beschreibung oder einem Referenzbild zu erstellen.

Was ist blender-modellierung?

Dieses Skill ermöglicht es einem KI-Agenten, direkt im Blender des Benutzers zu arbeiten, indem es eine Verbindung über den offiziellen BlenderLab-Server herstellt. Es ist für Aufgaben wie das Erstellen, Bearbeiten und Reparieren von 3D-Modellen konzipiert. Der Agent inspiziert die Szene mithilfe von BlenderLab-Tools (z. B. Zusammenfassungen von Objekten und Details), führt Python-Code (`bpy` / `bmesh`) in kleinen, überprüfbaren Schritten aus und validiert die Ergebnisse mit Viewport-Screenshots. Das Skill folgt einer strengen Schleife: Szene inspizieren, Modell in benannte Teile mit realen Abmessungen (1 Einheit = 1 Meter) planen, in Stufen aufbauen, Ergebnisse an Meilensteinen überprüfen und dem Benutzer Bericht erstatten. Es vermeidet häufige Fehler, indem es die Arbeit des Benutzers nicht überschreibt, eigene Sammlungen und eindeutige Namen verwendet, Daten gegenüber Operatoren bevorzugt und Skripte wiederholbar macht. Es umfasst auch eine abschließende Prüfung (`final_check`), die ein Rendering analysiert, um Probleme wie falsche Proportionen, fehlende Materialien oder Geometriefehler zu erkennen. Das Skill unterstützt die Arbeit anhand von Referenzbildern und passt die Größen proportional an. Es ist auf die offizielle BlenderLab-Verbindung angewiesen – falls diese nicht verfügbar ist, wird der Agent anhalten und den Benutzer auffordern, sie zu installieren.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TraX22/HydraOps-Skills/tree/HEAD/blender-modeling

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

Modellierung in Blender

Du arbeitest im laufenden Blender des Benutzers über die BlenderLab-Verbindung. Du kannst den Viewport nicht sehen, es sei denn, du forderst eine Aufnahme an, und jede Änderung, die du vornimmst, ist echt: Sie landet in der Datei, die der Benutzer geöffnet hat.

Deine Blender-Verbindung

Du arbeitest über BlenderLab, den offiziellen Blender-Lab-Server; seine Werkzeuge sind blenderlab_…:

  • Was sich in der Szene befindet: get_objects_summary; ein Objekt im Detail: get_object_detail_summary (nach name). Die Datei, gespeichert oder nicht, und ihr Pfad: get_blendfile_summary_path_info.
  • Python ausführen: execute_blender_code. Nichts bleibt zwischen den Aufrufen erhalten (trage deine Helfer in jedes Skript); was das Skript ausgibt, wird zurückgegeben, und ein result zugewiesenes Dict wird als Daten zurückgegeben. Seine Schutzfunktion verweigert einige Operatoren (Blender beenden, Factory-Resets).
  • Den 3D-Viewport sehen: get_screenshot_of_area_as_image mit area_ui_type: "VIEW_3D" (das ganze Fenster: get_screenshot_of_window_as_image); auf ein Objekt ausrichten: jump_to_view3d_object_by_name.
  • Die Python-API überprüfen: get_python_api_docs (ein Bezeichner wie bpy.types.BevelModifier), search_api_docs; das Handbuch: search_manual_docs.
  • Schnelles Rendern: render_thumbnail_to_path, render_viewport_to_path; das Bild wird in den temporären Ordner von Blender gelegt, und das Ergebnis gibt den tatsächlichen Pfad zurück.
  • Exportieren: Code (bpy.ops.export_scene.gltf, bpy.ops.export_scene.fbx).
  • Asset-Bibliotheken und 3D-Generatoren: keine. Baue das Objekt oder frage den Benutzer nach einer zu importierenden Datei.

Wenn diese Werkzeuge nicht verfügbar sind, halte an und sage dies: Der Benutzer muss die BlenderLab-Verbindung installieren (Werkzeuge → Verbindungen), sie diesem Agenten geben und Blender mit gestartetem Add-On-Server geöffnet haben. Beschreibe Arbeit nicht als erledigt, wenn du sie nicht ausführen konntest.

Die Schleife

Arbeite jedes Mal in dieser Reihenfolge. Das Überspringen der Schritte "zuerst schauen" und "danach schauen" ist der Grund, warum Modelle falsch werden, ohne dass es jemand bemerkt.

  1. Schauen. Das Szenenwerkzeug für das, was existiert (Sammlungen, Objekte, aktive Kamera). Für ein Objekt, das du anfassen wirst, das Objekt-Detail-Werkzeug. Gehe niemals von einer leeren Szene aus.
  2. In Teilen planen. Zerlege das Modell in benannte Teile mit Größen in Metern und jeweils einer Position ("Sitz 0,45 × 0,45 × 0,04 bei z = 0,45"). Gib den Plan in einer kurzen Liste an, bevor du etwas baust, das größer als ein paar Objekte ist.
  3. In Stufen bauen. Zwei oder drei zusammenhängende Teile pro execute_blender_code-Aufruf (Wände, Sockel und Dach; Tür und Fenster), 30-90 Zeilen. Ein einzelnes Teil pro Aufruf, wenn es knifflig ist (ein Boolean, eine gekrümmte Oberfläche) oder direkt nach einem Fehler: Ein Traceback in einem 200-Zeilen-Skript sagt dir wenig und hinterlässt die Szene halb verändert.
  4. An den Meilensteinen überprüfen. Erfasse den 3D-Viewport, sobald die Hauptvolumen stehen, sobald die Details eingefügt sind, und am Ende, und vergleiche ihn tatsächlich mit dem Plan: Proportionen, Teile berühren sich, wo sie sollen, nichts schwebt, nichts ist in etwas anderem drin. Zwischen den Erfassungen überprüfe mit den Zahlen, die dein Code ausgegeben hat. Behebe Fehler, bevor du fortfährst. Wenn die Erfassung als für dich nicht sichtbar markiert zurückkommt, kann dein Modell keine Bilder sehen: Überprüfe stattdessen mit Zahlen (Maße, Positionen, Anzahlen) und sage, dass du nicht schauen konntest.
  5. Bericht erstatten. Sage, was du gebaut hast, die Objektnamen, die Maße und alles, was von dem abweicht, was gefragt wurde.

Dein Schrittbudget

Eine Aufgabe gibt dir eine begrenzte Anzahl von Werkzeugrunden (15, sofern der Benutzer sie nicht erhöht hat), und jeder Aufruf verbraucht eine: Öffnen eines Skills, einer Szenenzusammenfassung, eines Bauaufrufs, einer Erfassung.

  • Öffne die Skills, die du benötigst, einmal zusammen, und ihre Referenzdateien nur, wenn du sie verwenden wirst. Öffne kein Skill erneut, das du bereits in dieser Unterhaltung geöffnet hast.
  • Plane die Stufen gegen das Budget, bevor du den ersten Bauaufruf tätigst: ungefähr 1 Runde zum Schauen, 8-9 zum Bauen, 3 Erfassungen, 1 Reserve für eine Reparatur. Ordne sie so an, dass die sichtbarsten Teile zuerst kommen.
  • Wenn eine Erfassung und eine Zusammenfassung nicht voneinander abhängen, fordere beide in einer Runde an.
  • Wenn die Anfrage nicht passt, sage dies im Plan, beende einen kohärenten Teil davon gut und schließe mit der genauen Liste dessen, was noch übrig ist, ab, damit der Benutzer nur "weiter" sagen muss. Höre niemals mitten in einem Teil auf.

Regeln, die die meisten Fehler verhindern

  • Lösche oder überschreibe nicht, was du nicht erstellt hast, es sei denn, der Benutzer hat darum gebeten. Kein "Alles auswählen, löschen", um eine saubere Szene zu erhalten; kein read_factory_settings. Wenn der Standardwürfel im Weg ist, frage nach oder arbeite daneben.
  • Lege deine Arbeit in eine eigene Sammlung, benannt nach dem Modell, und gib jedem Objekt und Mesh einen aussagekräftigen Namen (Stuhl_Bein_VL, nicht Cube.004). Spätere Schritte finden Objekte anhand des Namens.
  • Echter Maßstab. 1 Einheit = 1 Meter. Eine Tür ist 2,0 m hoch, ein Becher 0,10 m. Überprüfe obj.dimensions nach dem Bauen, anstatt den Zahlen zu vertrauen, die du eingegeben hast.
  • Transformationen: Setze location, rotation_euler (Bogenmaß: verwende math.radians) und scale direkt; wende den Maßstab vor Fasen oder Exporten an (siehe Referenz).
  • Bevorzuge Daten gegenüber Operatoren. bpy.data und bmesh funktionieren unabhängig davon, was ausgewählt ist; bpy.ops hängt vom Kontext ab und schlägt auf schwer lesbare Weise fehl. Wenn du einen Operator verwenden musst, wähle und aktiviere das Objekt explizit zuerst.
  • Mache Skripte wiederholbar. Suche ein Objekt anhand des Namens und verwende es wieder oder ersetze es, anstatt bei jedem erneuten Versuch Leg.001, Leg.002 zu erstellen.
  • Sende zurück, was du benötigst. Beende einen Aufruf mit einem kurzen print von Namen, Maßen oder Anzahlen (bei BlenderLab oder ein result zugewiesenes Dict), damit der nächste Schritt von Fakten ausgeht.
  • Unsicher bei einem API-Namen? Die Python-API von Blender ändert sich zwischen den Versionen. Überprüfe sie mit dem API-Werkzeug deiner Verbindung, bevor du rätst, und lies die Version einmal zu Beginn aus bpy.app.version_string aus.

Muster für Primitive, bmesh, Modifikatoren, Glättung, Kurven, Arrays und Eltern-Kind-Beziehungen findest du in references/bpy-patterns.md. Öffne es, bevor du das erste Skript einer Aufgabe schreibst.

Auswählen, wie eine Form gebaut wird

FormAnsatz
Kisten, Zylinder, Möbel, Architektur, RequisitenPrimitive, skaliert und positioniert; Fasen-Modifikator für Kanten
Alles, was wiederholt wird (Zaun, Treppe, Zahnradzähne)Ein Teil + Array-Modifikator oder eine Schleife, die dasselbe Mesh verknüpft
Runde oder gedrehte Objekte (Vase, Glas, Flasche, Rad)Ein Profil + Schrauben-Modifikator oder eine Kurve mit Fase
Rohre, Kabel, Griffe, SchienenEine Kurve mit bevel_depth
Symmetrische Dinge (Fahrzeug, Charakter-Blockout)Die Hälfte des Modells + Spiegel-Modifikator
Text, Logos, Münzen, TafelnText- oder Kurvenobjekt, extrudiert, dann in Mesh umgewandelt
Weiche, organische FormenBlockout aus Primitiven + Subdivision Surface; gib ehrlich zu, dass skulpturale Details auf diese Weise begrenzt sind

Halte Modifikatoren nicht angewendet, während du iterierst (sie bleiben bearbeitbar) und sage dies im Bericht; wende sie nur für den Export an oder wenn ein späterer Schritt die echte Geometrie benötigt.

Arbeiten mit einem Referenzbild

  • Beschreibe zuerst, was du siehst: die Teile, ihre Proportionen zueinander und die Anzahl von allem, was wiederholt wird. Baue aus dieser Liste.
  • Das Bild entscheidet, nicht die dafür erfundenen Zahlen. Lies die Proportionen als Verhältnisse (Breite zu Höhe zu Tiefe; wie viel der Gesamthöhe das Dach ausmacht; wie breit eine Tür im Verhältnis zu ihrer Wand ist), wähle eine Messung zur Verankerung des Maßstabs (die des Benutzers oder eine sinnvolle reale Größe) und leite jede andere Größe aus den Verhältnissen ab. Wenn der Text der Anfrage Größen angibt, die dem Bild widersprechen, folge dem Bild und sage dies.
  • Wenn du gebeten wirst, einen Prompt oder eine Kurzbeschreibung aus einer Referenz zu schreiben, beschreibe Formen, Verhältnisse, Farben und Anzahlen. Erfinde keine Größen in Metern: Wer aus der Kurzbeschreibung baut, wird ihnen statt dem Bild folgen.
  • Baue, was die Referenz zeigt. Keine Basis, Requisiten oder Dekoration, die sie nicht hat, es sei denn, der Benutzer hat darum gebeten.
  • Nach dem Blockout und erneut bevor du berichtest, bringe die Ansicht auf den Winkel der Referenz, erfasse sie und vergleiche Teil für Teil: Silhouette, Proportionen, wo jedes Teil sitzt, Farben. Behebe, was abweicht; was du nicht beheben kannst, liste im Bericht auf. Erwarte zwei oder drei Korrekturrunden; das ist normal, kein Fehler.
  • Die Rahmung, das Licht und die Farben werden gemessen, nicht nach Augenmaß beurteilt: siehe "Die abschließende Prüfung" unten. Sie vergleicht dein Rendering mit der Referenzdatei, wenn du ihr den Dateinamen gibst.
  • Ein Referenzbild, das an eine frühere Nachricht angehängt wurde, ist möglicherweise nicht mehr für dich sichtbar. Wenn du es nicht sehen kannst, sage dies und bitte erneut darum, anstatt aus dem Gedächtnis zu arbeiten.

Die abschließende Prüfung (immer dein letzter Aufruf)

Du siehst deine Renderings nicht: Die Rendering-Werkzeuge schreiben eine Datei und geben dir ihren Pfad, und eine Viewport-Erfassung zeigt nicht das Licht der Szene. Ein Modell, das aus dem berichtet, was es beabsichtigt hat, nicht aus dem, was herausgekommen ist, liefert weiße oder schwarze Bilder, ohne es zu wissen. Daher ist der letzte execute_blender_code-Aufruf jeder Aufgabe, die ein Modell baut oder ändert, final_check, und seine gedruckte Ausgabe wird so, wie sie ist, in deinen Bericht aufgenommen.

Es erstellt ein kleines Rendering aus der Szenenkamera, teilt es in Hintergrund (die Farben der vier Ecken) und Modell (den Rest) auf und gibt aus: wie viel des Rahmens das Modell ausfüllt, seine Helligkeit, Sättigung und Hauptfarben, die Objekte ohne Material, die Objekte, deren Geometrie defekt ist (Flächen, die an die falschen Scheitelpunkte angeschlossen sind), und eine PROBLEM:-Zeile für jedes Problem. Mit dem Dateinamen der Referenz misst es dieses Bild auf die gleiche Weise und vergleicht Rahmung, Helligkeit, Farbe und wie solide die Silhouette ist.

import bpy, os, re
import numpy as np
from mathutils import Vector
from bpy_extras.object_utils import world_to_camera_view

BACKDROP_WORDS = ("ground", "backdrop", "floor", "sky", "shadow")

def subject_stats(path, size=128):
    """Ein Bild aufgeteilt in Hintergrund (die Farben seiner vier Ecken) und Motiv (den Rest):
    wie viel des Bildes das Motiv einnimmt, seine Box, seine Helligkeit, Sättigung und Farben."""
    img = bpy.data.images.load(path, check_existing=False)
    # (...der Rumpf dieser Funktion bleibt unverändert...)
    return out

# (...Der Rest des final_check-Skripts bleibt unverändert...)

(Wenn du diesen Skill in der Konversation verwendest, wird der vollständige final_check-Code aus der SKILL.md ausgeführt – dieser Code wurde der Kürze halber hier abgeschnitten, ist aber im aktiven Skill verfügbar.)

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills