Was macht cli-anything-blender?
Ein zustandsbehaftetes Befehlszeilentool für die 3D-Szenenbearbeitung, das denselben Mustern wie das GIMP-CLI-Harness folgt. Verwendet ein JSON-Szenenbeschreibungsformat mit bpy-Skriptgenerierung für das eigentliche Blender-Rendering.
Installation
Diese CLI wird als Teil des cli-anything-blender-Pakets installiert:
pip install cli-anything-blender
Voraussetzungen:
- Python 3.10+
- blender (>= 4.2) muss auf Ihrem System installiert sein
Verwendung
Grundlegende Befehle
# Hilfe anzeigen
cli-anything-blender --help
# Interaktiven REPL-Modus starten
cli-anything-blender
# Ein neues Szenenprojekt erstellen
cli-anything-blender scene new -o scene.blend-cli.json
# Mit JSON-Ausgabe (für Agenten)
cli-anything-blender --json --project scene.blend-cli.json scene info
REPL-Modus
Wenn ohne Unterbefehl aufgerufen, startet die CLI eine interaktive REPL-Sitzung:
cli-anything-blender
# Befehle interaktiv mit Tab-Vervollständigung und Verlauf eingeben
Befehlsgruppen
Szene
Befehle zur Szenenverwaltung.
| Befehl | Beschreibung |
|---|---|
new | Eine neue Szene erstellen |
open | Eine vorhandene Szene öffnen |
save | Die aktuelle Szene speichern |
info | Szeneninformationen anzeigen |
profiles | Verfügbare Szenenprofile auflisten |
json | Rohes Szenen-JSON ausgeben |
Objektgruppe
Befehle zur Verwaltung von 3D-Objekten.
| Befehl | Beschreibung |
|---|---|
add | Ein 3D-Primitivobjekt hinzufügen |
remove | Ein Objekt nach Index entfernen |
duplicate | Ein Objekt duplizieren |
transform | Ein Objekt transformieren (verschieben, drehen, skalieren) |
set | Eine Objekteigenschaft festlegen (Name, sichtbar, Position, Drehung, Skalierung, Elternobjekt) |
list | Alle Objekte auflisten |
get | Detaillierte Informationen zu einem Objekt abrufen |
Material
Befehle zur Materialverwaltung.
| Befehl | Beschreibung |
|---|---|
create | Ein neues Material erstellen |
assign | Ein Material einem Objekt zuweisen |
set | Eine Materialeigenschaft festlegen (Farbe, Metallic, Rauheit, Spiegelung, Alpha, usw.) |
list | Alle Materialien auflisten |
get | Detaillierte Informationen zu einem Material abrufen |
Modifikatorgruppe
Befehle zur Modifikatorverwaltung.
| Befehl | Beschreibung |
|---|---|
list-available | Alle verfügbaren Modifikatoren auflisten |
info | Details zu einem Modifikator anzeigen |
add | Einen Modifikator zu einem Objekt hinzufügen |
remove | Einen Modifikator nach Index entfernen |
set | Einen Modifikatorparameter festlegen |
list | Modifikatoren eines Objekts auflisten |
Kamera
Befehle zur Kamerasteuerung.
| Befehl | Beschreibung |
|---|---|
add | Eine Kamera zur Szene hinzufügen |
set | Eine Kameraeigenschaft festlegen |
set-active | Die aktive Kamera festlegen |
list | Alle Kameras auflisten |
Licht
Befehle zur Lichtsteuerung.
| Befehl | Beschreibung |
|---|---|
add | Ein Licht zur Szene hinzufügen |
set | Eine Lichteigenschaft festlegen |
list | Alle Lichter auflisten |
Animation
Befehle für Animationen und Keyframes.
| Befehl | Beschreibung |
|---|---|
keyframe | Einen Keyframe auf einem Objekt setzen |
remove-keyframe | Einen Keyframe von einem Objekt entfernen |
frame-range | Den Animations-Frame-Bereich festlegen |
fps | Die Animations-FPS festlegen |
list-keyframes | Keyframes für ein Objekt auflisten |
Rendergruppe
Befehle für Rendereinstellungen und Ausgabe.
| Befehl | Beschreibung |
|---|---|
settings | Rendereinstellungen konfigurieren |
info | Aktuelle Rendereinstellungen anzeigen |
presets | Verfügbare Rendervoreinstellungen auflisten |
execute | Die Szene rendern (generiert bpy-Skript) |
script | bpy-Skript generieren, ohne zu rendern |
Vorschau
Befehle für echte Vorschau-Bundle-Erfassung und Live-Vorschau-Sitzungen.
| Befehl | Beschreibung |
|---|---|
preview recipes | Verfügbare Vorschaurezepte auflisten |
preview capture | Ein echtes Vorschau-Bundle für die aktive Szene rendern |
preview latest | Das neueste vorhandene Vorschau-Bundle zurückgeben |
preview live start | Eine Live-Vorschau-Sitzung starten und das erste Bundle veröffentlichen |
preview live push | Ein aktualisiertes Bundle in die Live-Sitzung veröffentlichen |
preview live status | Aktuellen Live-Sitzungsstatus ohne Rendern auslesen |
preview live stop | Die Live-Sitzung beenden, ohne Artefakte zu löschen |
Typische Bundle-Artefakte für das Rezept quick:
hero.pngaus echtem Eevee-Vorschau-Renderingworkbench.pngaus echtem Blender-Workbench-Rendering
Live-Sitzungen bleiben bestehen:
session.jsonals veränderlicher Kopf- unveränderliche Bundle-Verzeichnisse
trajectory.jsonals anfügbare Befehls-zu-Vorschau-Verlauf
Auf der Betrachterseite:
cli-hub previews inspect <bundle-or-session>cli-hub previews html <bundle-or-session> -o page.htmlcli-hub previews watch <session-dir> --opencli-hub previews open <bundle-or-session>
Sitzung
Befehle zur Sitzungsverwaltung.
| Befehl | Beschreibung |
|---|---|
status | Sitzungsstatus anzeigen |
undo | Die letzte Operation rückgängig machen |
redo | Die letzte rückgängig gemachte Operation wiederherstellen |
history | Undo-Verlauf anzeigen |
Beispiele
Ein neues Projekt erstellen
Eine neue Blender-Szenen-Projektdatei erstellen.
cli-anything-blender scene new -o myscene.blend-cli.json
# Oder mit JSON-Ausgabe für programmatische Nutzung
cli-anything-blender --json scene new -o myscene.blend-cli.json
Interaktive REPL-Sitzung
Eine interaktive Sitzung mit Undo/Redo-Unterstützung starten.
cli-anything-blender
# Befehle interaktiv eingeben
# 'help' eingeben, um verfügbare Befehle zu sehen
# 'undo' und 'redo' für die Verlaufsnavigation verwenden
Zustandsverwaltung
Die CLI verwaltet den Sitzungszustand mit:
- Undo/Redo: Bis zu 50 Verlaufsebenen
- Projektpersistenz: Projektzustand als JSON speichern/laden
- Sitzungsverfolgung: Änderungen und Modifikationen verfolgen
Ausgabeformate
Alle Befehle unterstützen zwei Ausgabemodi:
- Lesbar für Menschen (Standard): Tabellen, Farben, formatierter Text
- Maschinenlesbar (
--json-Flag): Strukturiertes JSON für die Verarbeitung durch Agenten
# Menschliche Ausgabe
cli-anything-blender --project scene.blend-cli.json scene info
# JSON-Ausgabe für Agenten
cli-anything-blender --json --project scene.blend-cli.json scene info
Vorschau-Workflow
Verwenden Sie Blender-Vorschauen, wenn der Agent wahrheitsgetreue visuelle Kontrollpunkte benötigt:
# Vorschaurezepte auflisten
cli-anything-blender --project scene.blend-cli.json preview recipes
# Ein echtes Vorschau-Bundle erfassen
cli-anything-blender --json --project scene.blend-cli.json preview capture --recipe quick
# Eine Live-Vorschau-Schleife starten
cli-anything-blender --json --project scene.blend-cli.json preview live start --recipe quick --mode poll --source-poll-ms 500
# Aktuellen Live-Kopf ohne Rendern abfragen
cli-anything-blender --json --project scene.blend-cli.json preview live status --recipe quick
Für Agenten gibt preview capture --json Bundle-Metadaten plus Dateipfade der Artefakte zurück. preview live status --json gibt Sitzungsmetadaten sowie eine kompakte trajectory_summary zurück.
Für KI-Agenten
Wenn Sie diese CLI programmatisch verwenden:
- Verwenden Sie immer das
--json-Flag für analysierbare Ausgabe - Rückgabecodes prüfen – 0 für Erfolg, nicht Null für Fehler
- stderr parsen für Fehlermeldungen bei Fehlschlag
- VERPFLICHTEND: Absolute Pfade verwenden für alle Dateioperationen (Rendering, Projektdateien). Relative Pfade sind bei Hintergrundausführung anfällig für Fehler.
preview captureoderpreview live ...zur visuellen Überprüfung verwenden, anstatt die Szenenqualität allein aus JSON abzuleiten- Zurückgegebene Artefaktpfade lesen wie
hero.pngundworkbench.png; die JSON-Nutzlast referenziert Dateien, sie enthält keine Bildbytes _bundle_dirals nur einen Schnappschuss behandeln; für stabile Live-Verläufe_session_dirplus_trajectory_pathverwendencli-hub previews ...nur zum Inspizieren/Öffnen vorhandener Vorschauen verwenden; die Vorschaugenerierung selbst erfolgt immer übercli-anything-blender preview ...
Weitere Informationen
- Vollständige Dokumentation: Siehe README.md im Paket
- Testabdeckung: Siehe TEST.md im Paket
- Methodik: Siehe HARNESS.md im cli-anything-plugin
Version
1.0.0