UStackUStack
Nova3D icon

Nova3D

Client open-source Nova3D pour générer des assets 3D modifiables et orientés pièces à partir de prompts texte ou d’images de référence via Blender Python.

Nova3D

Qu’est-ce que Nova3D ?

Nova3D est un client open-source pour nova3d.xyz qui génère des assets 3D sous forme de procédures de construction exécutables plutôt qu’un maillage unique fusionné. Il produit des scripts Python natifs Blender et renvoie un GLB structuré où les pièces sont nommées et individuellement adressables.

L’objectif principal de ce client est de se connecter à la pipeline Nova3D hébergée (par défaut) pour générer des sorties 3D modifiables et orientées pièces à partir de prompts texte ou d’images de référence.

Fonctionnalités principales

  • Sorties 3D modifiables et orientées pièces : La pipeline produit un GLB structuré avec des pièces nommées et individuellement adressables, conçu pour des éditions ciblées (ex. : changer une pièce sans régénérer tout).
  • Génération script-native (prompt-to-code / image-to-code) : Au lieu d’un style diffusion « image-to-3D » qui donne un maillage fusionné unique, Nova3D génère des scripts Python Blender représentant la procédure de construction.
  • Utilise le graphe de scène Blender comme représentation native : Le client aligne son modèle de sortie avec le graphe de scène Blender, qui supporte une hiérarchie logique et des workflows d’édition au niveau scène.
  • Workflow client agnostique modèle/LLM : Le harnais de génération peut basculer entre backends LLM via les paramètres (ex. : Claude 3.5, GPT-4o ou Gemini 1.5 Pro), avec validation/exécution gérée par la pipeline.
  • Éditeur viewport web intégré : Inclut un éditeur Three.js intégré avec outils de transformation, accrochage et édition de matériaux.
  • Guidage par image de référence : Permet d’attacher une photo pour guider la logique spatiale du script généré.
  • Cache local in-browser : Les modèles sont mis en cache dans le navigateur pour consulter l’historique même après expiration des URL distantes.

Comment utiliser Nova3D

  1. Lancer le client localement : Cloner le dépôt, installer les dépendances (flutter pub get), et démarrer l’UI web local.
    • Les notes de démarrage rapide indiquent que le port 5555 est requis pour l’autorisation de redirection OAuth.
  2. Se connecter : Ouvrir l’URL locale, puis se connecter avec Google ou Email.
  3. Ajouter une clé API dans les paramètres : Le client supporte l’ajout de clés API pour OpenAI, Anthropic ou Gemini.
  4. Fournir une entrée et générer : Saisir un prompt (et optionnellement attacher une image de référence) et lancer le flux de génération.
  5. Éditer et examiner les résultats : Utiliser l’éditeur viewport intégré pour transformations/accrochage/édition de matériaux, et s’appuyer sur le cache local pour revisiter les générations précédentes.

Pour déployer une build de production pour hébergement statique, le dépôt inclut une commande pour builder l’app web Flutter (flutter build web --release).

Cas d’usage

  • Génération d’assets modifiables pour workflows nécessitant hiérarchie : Générer des modèles 3D où les pièces sont nommées et parentées pour ajuster des composants individuels sans régénérer le résultat complet.
  • Idéation 3D pilotée par prompt ou photo : Utiliser des prompts texte ou attacher des images de référence pour influencer la logique spatiale des scripts de construction générés.
  • Itération matériaux avec workflow de mapping PBR : Travailler avec des sorties conçues pour supporter le mapping de matériaux plutôt que de s’appuyer sur des couleurs de vertex cuites.
  • Examen et ajustement rapide dans le navigateur : Utiliser l’éditeur viewport Three.js intégré (outils de transformation, accrochage et édition de matériaux) sans quitter le client.
  • Navigation locale des générations précédentes : Exploiter le cache in-browser pour conserver l’historique de visionnage même quand les URL distantes expirent.

FAQ

  • Nova3D produit-il un maillage unique fusionné ? Non. La pipeline produit un GLB structuré avec des pièces individuellement adressables, généré à partir de scripts Python natifs Blender.

  • Puis-je utiliser différents fournisseurs LLM ? Oui. Le client est agnostique modèle, avec paramètres permettant de basculer entre backends comme Claude 3.5, GPT-4o ou Gemini 1.5 Pro.

  • Quelle configuration locale pour la connexion ? Les notes de démarrage rapide indiquent que le port 5555 est requis pour l’autorisation de redirection OAuth, et avertissent spécifiquement que localhost:5555 peut causer l’échec de Google Sign-In en raison des politiques d’origine OAuth.

  • Où le client envoie-t-il les requêtes de génération par défaut ? Par défaut, il communique avec l’API hébergée nova3d.xyz. Un backend personnalisé peut être ciblé en définissant API_BASE_URL via --dart-define.

  • Y a-t-il un moyen d’influencer la génération avec une image ? Oui. Le client supporte les images de référence pour attacher une photo et guider la logique spatiale du script généré.

Alternatives

  • Outils de diffusion image-vers-3D qui génèrent un maillage unique fusionné : Ils se concentrent sur la production d’un résultat géométrique consolidé unique, contrairement aux sorties modifiables et orientées pièces de Nova3D.
  • Systèmes de type OpenSCAD/CSG axés sur la modélisation de solides : Les approches de cette catégorie privilégient les solides manifolds, mais peuvent sacrifier la flexibilité des formes organiques et la modificabilité détaillée de la hiérarchie/matériaux.
  • Outils prompt-vers-CAD ou CAD procéduraux : Si votre objectif principal est une construction procédurale modifiable, cherchez des outils qui supportent des workflows scriptés ou paramétriques plutôt que des sorties maillage purement génératives.
  • Outils autonomes de modélisation/édition 3D associés à des résultats procéduraux importables : Pour des workflows où vous utilisez déjà Blender ou d’autres outils DCC, vous pouvez traiter Nova3D comme l’étape de génération puis affiner les sorties dans un environnement de modélisation — bien que la différence clé soit la génération de scripts natifs Blender et la structure GLB orientée pièces de Nova3D.