Autres blogs
GrandpaCAD a été construit pour mon grand-père, un passionné d'impression 3D qui se battait avec les outils CAO compliqués. Mon objectif est de rendre la modélisation 3D aussi simple qu'une conversation. Convertir le langage naturel en géométrie précise et imprimable en 3D instantanément.
J'ai récemment tenté une migration de Blender vers OpenSCAD. Cet article fait suite à mon précédent sur la migration vers Blender, et il couvre les différentes méthodes que j'ai parcourues pour trouver une solution qui fonctionne vraiment pour la modélisation 3D pilotée par IA.
Si vous voulez voir comment les "cerveaux" de l'opération se comparent, consultez ma comparaison des modèles SOTA pour la génération 3D.
| Méthode | Utilisation de tokens | Fonctionnalités CAO | Meilleur cas d'usage |
|---|---|---|---|
| JSON | Faible | Zéro | Primitives simples uniquement |
| JSCad | Moyen | De base | Prototypes rapides, sans détails fins |
| Blender | Élevé | Un peu de CAO un peu d'organique | Formes simples, traitement de géométrie |
| OpenSCAD | Faible | Beaucoup de CAO | Ingénierie de précision, écrous, boulons... |
Au début, je pensais créer un schéma JSON personnalisé. L'idée était de faire produire à l'IA une liste d'unions, soustractions et autres opérations.
Ça a échoué immédiatement. J'ai réalisé que la meilleure interface pour un LLM est un langage de programmation. Vous avez besoin de math, de boucles et de logique pour construire quoi que ce soit de non-trivial. Si j'étais resté avec JSON, j'aurais été coincé à réimplémenter moi-même un ensemble complet de fonctionnalités CAO, ce qui est une entreprise massive et inutile.
L'approche suivante évidente était JSCad. Comme c'est une implémentation open-source de CAO en JavaScript, je pensais que ça me donnerait un ensemble de fonctionnalités complet. Je l'ai poussé à sa limite, mais ce n'est pas aussi complet qu'un logiciel CAO dédié.
Un exemple parfait est les chanfreins et les congés. JSCad ne supporte essentiellement que "l'inflation" du modèle pour créer ceux-ci. Ce n'est pas suffisant - je ne veux pas changer les dimensions réelles d'une pièce juste pour casser une arête vive.
J'ai ensuite essayé Blender, qui a l'ensemble d'outils le plus complet de tous les logiciels 3D open-source. Ça m'a permis d'aller beaucoup plus loin, mais ça a introduit deux problèmes majeurs :
J'ai aussi réalisé que modéliser des choses comme des écrous et boulons qui s'emboîtent réellement est étonnamment difficile dans Blender, même avec du scripting.
Après avoir partagé le projet, les gens ont souligné qu'OpenSCAD était mieux adapté pour les pièces fonctionnelles. J'ai récemment implémenté le support pour ça, et les résultats sont bien meilleurs et les modèles sont générés beaucoup plus rapidement.
OpenSCAD est déclaratif. Au lieu de dire à un curseur où se déplacer, vous décrivez l'état final. C'est beaucoup moins gourmand en tokens que l'approche impérative de Blender. Bien que la syntaxe OpenSCAD ne soit pas "standard" comme Python ou JS, ça n'a pas été un problème. J'ai construit un harnais qui peut automatiquement réparer le code si l'IA fait une erreur de syntaxe.
En exploitant des bibliothèques comme BOSL2, l'IA peut maintenant générer des filetages de qualité industrielle, des engrenages et des joints complexes avec juste quelques lignes de code.
| Méthode | Support logique | Qualité du maillage | Support CAO | Ajustements mécaniques |
|---|---|---|---|---|
| JSON | ❌ | ⚠️ | N/A | Extrêmement difficile |
| JSCad | ✅ | Correct | De base | Extrêmement difficile |
| Blender | ✅ | Souvent cassé | De base | Difficile |
| OpenSCAD | ✅ | Rarement cassé | Complet | Intégré/Facile |
Au final, mon objectif est de combiner ces outils. OpenSCAD est le gagnant clair pour les pièces fonctionnelles, écrous, boulons, et tout ce qui doit être imprimé en 3D avec précision.
Mais Blender fait toujours partie de l'infrastructure. Son ensemble de fonctionnalités est trop utile pour être abandonné. Nous l'utiliserons pour le rendu et éventuellement pour la modélisation "organique" - comme créer des figurines Dungeons & Dragons personnalisées - où la précision stricte de la CAO n'est pas aussi importante que l'esthétique visuelle.
Prêt à construire quelque chose de fonctionnel ? Essayez le nouveau moteur OpenSCAD maintenant