Que fait cli-anything-blender ?
Une interface en ligne de commande (CLI) avec état pour l'édition de scènes 3D, suivant les mêmes modèles que la CLI GIMP. Utilise un format de description de scène JSON avec génération de script bpy pour le rendu Blender.
Installation
Cette CLI est installée dans le cadre du paquet cli-anything-blender :
pip install cli-anything-blender
Prérequis :
- Python 3.10+
- Blender (>= 4.2) doit être installé sur votre système
Utilisation
Commandes de base
# Afficher l'aide
cli-anything-blender --help
# Démarrer le mode REPL interactif
cli-anything-blender
# Créer un nouveau projet de scène
cli-anything-blender scene new -o scene.blend-cli.json
# Exécuter avec sortie JSON (pour consommation par agent)
cli-anything-blender --json --project scene.blend-cli.json scene info
Mode REPL
Lorsqu'elle est invoquée sans sous-commande, la CLI entre dans une session REPL interactive :
cli-anything-blender
# Saisir les commandes de manière interactive avec complétion par tabulation et historique
Groupes de commandes
Scène
Commandes de gestion de scène.
| Commande | Description |
|---|---|
new | Créer une nouvelle scène |
open | Ouvrir une scène existante |
save | Sauvegarder la scène courante |
info | Afficher les informations de la scène |
profiles | Lister les profils de scène disponibles |
json | Afficher le JSON brut de la scène |
Groupe Objet
Commandes de gestion des objets 3D.
| Commande | Description |
|---|---|
add | Ajouter un objet primitif 3D |
remove | Supprimer un objet par son index |
duplicate | Dupliquer un objet |
transform | Transformer un objet (translation, rotation, mise à l'échelle) |
set | Définir une propriété d'objet (nom, visibilité, position, rotation, échelle, parent) |
list | Lister tous les objets |
get | Obtenir des informations détaillées sur un objet |
Matériau
Commandes de gestion des matériaux.
| Commande | Description |
|---|---|
create | Créer un nouveau matériau |
assign | Assigner un matériau à un objet |
set | Définir une propriété de matériau (couleur, métallique, rugosité, spéculaire, alpha, etc.) |
list | Lister tous les matériaux |
get | Obtenir des informations détaillées sur un matériau |
Groupe Modificateur
Commandes de gestion des modificateurs.
| Commande | Description |
|---|---|
list-available | Lister tous les modificateurs disponibles |
info | Afficher les détails d'un modificateur |
add | Ajouter un modificateur à un objet |
remove | Supprimer un modificateur par son index |
set | Définir un paramètre de modificateur |
list | Lister les modificateurs d'un objet |
Caméra
Commandes de gestion des caméras.
| Commande | Description |
|---|---|
add | Ajouter une caméra à la scène |
set | Définir une propriété de caméra |
set-active | Définir la caméra active |
list | Lister toutes les caméras |
Lumière
Commandes de gestion des lumières.
| Commande | Description |
|---|---|
add | Ajouter une lumière à la scène |
set | Définir une propriété de lumière |
list | Lister toutes les lumières |
Animation
Commandes d'animation et d'images clés.
| Commande | Description |
|---|---|
keyframe | Définir une image clé sur un objet |
remove-keyframe | Supprimer une image clé d'un objet |
frame-range | Définir la plage d'images de l'animation |
fps | Définir les FPS de l'animation |
list-keyframes | Lister les images clés d'un objet |
Groupe Rendu
Commandes de paramètres de rendu et de sortie.
| Commande | Description |
|---|---|
settings | Configurer les paramètres de rendu |
info | Afficher les paramètres de rendu courants |
presets | Lister les préréglages de rendu disponibles |
execute | Effectuer le rendu de la scène (génère un script bpy) |
script | Générer le script bpy sans effectuer le rendu |
Aperçu
Commandes de capture d'aperçu en temps réel et de session d'aperçu en direct.
| Commande | Description |
|---|---|
preview recipes | Lister les recettes d'aperçu disponibles |
preview capture | Effectuer le rendu d'un lot d'aperçus pour la scène active |
preview latest | Retourner le dernier lot d'aperçus existant |
preview live start | Démarrer une session d'aperçu en direct et publier le premier lot |
preview live push | Publier un lot actualisé dans la session en direct |
preview live status | Lire l'état actuel de la session en direct sans effectuer de rendu |
preview live stop | Arrêter la session en direct sans supprimer les artefacts |
Artefacts typiques du lot pour la recette quick :
hero.pngissu du rendu d'aperçu réel Eeveeworkbench.pngissu du rendu réel Blender Workbench
Les sessions en direct persistent :
session.jsonen tant qu'état mutable de la session- des répertoires de lots immuables
trajectory.jsoncomme historique d'ajout aux commandes et aux aperçus
Côté visualisation :
cli-hub previews inspect <lot-ou-session>cli-hub previews html <lot-ou-session> -o page.htmlcli-hub previews watch <répertoire-de-session> --opencli-hub previews open <lot-ou-session>
Session
Commandes de gestion de session.
| Commande | Description |
|---|---|
status | Afficher l'état de la session |
undo | Annuler la dernière opération |
redo | Rétablir la dernière opération annulée |
history | Afficher l'historique des annulations |
Exemples
Créer un nouveau projet
Créer un nouveau fichier de projet de scène Blender.
cli-anything-blender scene new -o monscene.blend-cli.json
# Ou avec sortie JSON pour une utilisation programmatique
cli-anything-blender --json scene new -o monscene.blend-cli.json
Session REPL interactive
Démarrer une session interactive avec support d'annulation/rétablissement.
cli-anything-blender
# Saisir les commandes de manière interactive
# Utiliser 'help' pour voir les commandes disponibles
# Utiliser 'undo' et 'redo' pour la navigation dans l'historique
Gestion d'état
La CLI maintient l'état de la session avec :
- Annulation/Rétablissement : Jusqu'à 50 niveaux d'historique
- Persistance du projet : Sauvegarder/charger l'état du projet au format JSON
- Suivi de session : Suivre les modifications et les changements
Formats de sortie
Toutes les commandes prennent en charge deux modes de sortie :
- Lisible par l'humain (par défaut) : Tableaux, couleurs, texte formaté
- Lisible par la machine (drapeau
--json) : JSON structuré pour consommation par un agent
# Sortie humaine
cli-anything-blender --project scene.blend-cli.json scene info
# Sortie JSON pour les agents
cli-anything-blender --json --project scene.blend-cli.json scene info
Flux de travail avec aperçu
Utilisez les aperçus Blender lorsque l'agent a besoin de points de contrôle visuels fiables :
# Lister les recettes d'aperçu
cli-anything-blender --project scene.blend-cli.json preview recipes
# Capturer un lot d'aperçus réel
cli-anything-blender --json --project scene.blend-cli.json preview capture --recipe quick
# Démarrer une boucle d'aperçu en direct
cli-anything-blender --json --project scene.blend-cli.json preview live start --recipe quick --mode poll --source-poll-ms 500
# Interroger l'état actuel de la session en direct sans effectuer de rendu
cli-anything-blender --json --project scene.blend-cli.json preview live status --recipe quick
Pour les agents, preview capture --json retourne les métadonnées du lot ainsi que les chemins des fichiers artefacts. preview live status --json retourne les métadonnées de session ainsi qu'un trajectory_summary compact.
Pour les agents IA
Lors de l'utilisation de cette CLI de manière programmatique :
- Utilisez toujours le drapeau
--jsonpour une sortie interprétable - Vérifiez les codes de retour - 0 pour succès, non nul pour les erreurs
- Analysez stderr pour les messages d'erreur en cas d'échec
- OBLIGATOIRE : Utilisez des chemins absolus pour toutes les opérations sur fichiers (rendu, fichiers de projet). Les chemins relatifs sont sujets à des échecs en exécution en arrière-plan.
- Utilisez
preview captureoupreview live ...pour la vérification visuelle au lieu de déduire la qualité de la scène à partir du seul JSON - Lisez les chemins d'artefacts retournés tels que
hero.pngetworkbench.png; la charge utile JSON référence les fichiers, elle n'incorpore pas d'octets d'image - Considérez
_bundle_dircomme un seul instantané ; pour un historique en direct stable, utilisez_session_dirplus_trajectory_path - Utilisez
cli-hub previews ...uniquement pour inspecter/ouvrir des aperçus existants ; la génération d'aperçus se fait toujours viacli-anything-blender preview ...
Plus d'informations
- Documentation complète : Voir README.md dans le paquet
- Couverture de tests : Voir TEST.md dans le paquet
- Méthodologie : Voir HARNESS.md dans le paquet cli-anything-plugin
Version
1.0.0