- Projet open source qui compile OpenCascade en WebAssembly et l’intègre à Three.js pour offrir dans le navigateur une modélisation, une édition et un rendu 3D CAD à un niveau proche du natif
- Prend en charge diverses fonctions de modélisation CAD : création de formes 3D comme des boîtes, cylindres et solides de révolution, esquisse 2D, opérations booléennes, extrusion, loft, sweep, offset, etc.
- Propose des aides précises à la conception et à l’édition, avec snap sur objets/plans de travail, suivi des axes, détection automatique des points caractéristiques et guides visuels de tracking
- Inclut des fonctions d’édition avancées comme chanfrein/fillet/trim/découpage, déplacement/rotation/miroir, la mesure de longueurs/surfaces/volumes, la gestion de documents et l’import/export des formats standard de l’industrie (STEP, IGES, BREP)
- Offre une expérience utilisateur orientée usage professionnel, avec une interface de style bureautique, une gestion hiérarchique des assemblages, une interface multilingue (i18n, chinois et anglais pris en charge) et le contrôle du viewport/de la caméra
Vue d’ensemble
- Chili3D est une application de CAO 3D open source basée sur le navigateur, développée en TypeScript
- En convertissant OpenCascade (OCCT) en WebAssembly et en l’associant à Three.js, elle permet une modélisation/édition/rendu 3D haute performance directement sur le web, sans installation
Fonctionnalités principales
-
Outils de modélisation
- Formes 3D de base : création de boîtes, cylindres, cônes, sphères, pyramides, etc.
- Esquisse 2D : lignes, arcs, cercles, ellipses, rectangles, polygones, courbes de Bézier
- Opérations avancées : booléennes (union, différence, intersection), extrusion, révolution, sweep, loft, offset, création de sections
-
Snap et tracking de précision
- Snap sur objets : accrochage précis aux points caractéristiques géométriques comme les points, arêtes et faces
- Tracking des plans de travail/axes, détection automatique des points caractéristiques et guides visuels pour faciliter les alignements 3D complexes
-
Outils d’édition
- Arrondi des arêtes (fillet), chanfrein, trim, découpage, déplacement, rotation, miroir, etc. pour diverses opérations d’édition 3D/2D
- Édition avancée avec suppression de features, manipulation de sous-formes et décomposition d’objets composés
-
Mesure et documentation
- Mesure d’angles et de longueurs, calcul de longueur totale/surface/volume
- Création/enregistrement/chargement de documents, Undo/Redo complet, import/export STEP/IGES/BREP
-
Interface utilisateur
- Prise en charge d’une organisation des commandes de style bureautique, de la gestion hiérarchique des assemblages, de plans de travail dynamiques et de l’enregistrement des positions de viewport/caméra
- Interface multilingue (chinois et anglais), avec une structure i18n permettant d’ajouter d’autres langues
Stack technique
- Frontend : TypeScript, Three.js
- Moteur 3D : OpenCascade (WebAssembly)
- Build : Rspack, tests : Jest
État du développement open source
- Actuellement en phase alpha, avec une amélioration continue de l’API, des fonctionnalités et de la documentation
- Présence de breaking changes, documentation incomplète et certaines fonctionnalités essentielles encore non implémentées
Contribution et licence
- Les contributions open source sont bienvenues : code, bugs, retours, etc.
- Licence AGPL-3.0 (possibilité de demandes séparées pour un usage commercial)
1 commentaires
Avis Hacker News
Au début, en lisant la description, je pensais que ce serait juste un projet 3D un peu gadget, mais en l’essayant, ça a été une vraie surprise. C’est extrêmement rapide, et l’interface paraît assez intuitive même quand on vient d’autres outils. J’étais toujours frustré de ne pas pouvoir utiliser Fusion 360 sur OpenSUSE Tumbleweed, et j’ai l’impression que cet outil pourrait combler ce manque. Je suis reconnaissant dans ce contexte.
En voyant la partie « utilisation d’OpenCascade (OCCT) compilé en WebAssembly », je me suis demandé quel noyau géométrique avait été choisi. Les bibliothèques centrales de modélisation solide sont en pratique les mêmes depuis des dizaines d’années (Parasolid a presque 40 ans), et ça donne vraiment l’impression qu’en créer une nouvelle est extrêmement difficile.
Je manipule du BREP pour des usages SIG, et même avec de simples segments en 2D, on tombe sur des problèmes vraiment complexes. C’est un domaine où les cas particuliers sont innombrables. Un système de types aide énormément, donc s’il existe de l’open source basé sur Rust pour ce genre de travail, ça semble très prometteur. À titre indicatif, j’ai essayé de passer de Fusion 360 à FreeCAD 1.0, et même s’il y a encore très peu de projets, j’ai constaté que FreeCAD était devenu nettement plus rapide.
La structure mathématique fondamentale de la géométrie 3D a très peu changé depuis longtemps. Si le coût de licence de noyaux comme Parasolid ou ASICs n’est pas trop élevé, il n’y a pas vraiment de raison de recréer une nouvelle solution. Ces derniers temps, le marché continue de se consolider par acquisitions et fusions entre éditeurs de logiciels CAD/CAM comme Autodesk et Hexagon. OpenCASCADE aussi était à l’origine un logiciel commercial, mais il est passé en open source faute d’avoir acquis suffisamment de clients.
Il existe en réalité très peu de noyaux géométriques open source. Les plus visibles sont OpenCascade et CGAL, mais je me demande s’il y en a d’autres.
J’aimerais beaucoup lire davantage sur la manière de bien résoudre ce type de problèmes géométriques.
C’est impressionnant, mais on ne voit pas encore très bien comment des fonctions comme les constraints ou les sketches sont implémentées. Et le fait que ce soit sorti comme web app laisse un léger regret. Mais je prends ça comme un signe de l’évolution du secteur.
Du point de vue d’une école qui utilise des Chromebook, avoir ce genre de web app est une excellente chose. Si les élèves peuvent ensuite aller jusqu’à l’impression 3D, cela élargit énormément le choix des outils. En revanche, en tant qu’enseignant et parent, je m’inquiète du fait que des enfants qui n’ont connu que les Chromebook ne comprennent plus les applications locales, le système de fichiers, etc. Quand mon enfant fait une affiche, il cherche des images puis les copie-colle dans plusieurs outils web, mais si je lui explique que dans des applications desktop comme Affinity ou Photoshop on peut tout faire d’un coup, il n’accroche pas du tout, et c’est assez étrange.
Cette fonctionnalité n’existe pas encore dans la version actuelle, mais elle devrait être ajoutée plus tard sous forme de composants paramétriques.
Plutôt que de se focaliser sur l’aspect web app, il faut surtout insister sur l’importance de la conception paramétrique avec constraints, sketches, etc. Personnellement, je pense que c’est un élément clé pour qu’un programme de CAD soit pris au sérieux.
C’est un bon exemple du fait qu’un navigateur peut devenir aussi puissant qu’une application native. Le côté navigateur supprime la dépendance à l’OS, et facilite énormément l’ouverture et le partage de fichiers entre ingénieurs ou étudiants du monde entier. Sur les nouveaux ordinateurs portables, l’expérience est même parfois plus rapide qu’avec une application native. On peut commencer à dessiner en 30 secondes, sans inscription, e-mail, 2FA ni autre complication. Par rapport à la plupart des autres outils, il y a aussi des avantages sur le coût et sur plusieurs autres aspects. J’utilisais récemment SketchUp, AutoCAD et Revit, puis j’ai découvert cet outil, et ça me donne vraiment de l’espoir pour l’avenir.
Les noms de certains icônes d’outils m’ont paru un peu inhabituels et peu familiers. Par exemple, il faudrait les remplacer par des termes anglais plus courants en CAD, comme « Bessel », « pour corner » ou « From the cross section ». Pendant l’utilisation, la langue est soudainement passée au chinois, et comme il n’y avait pas de moyen simple de revenir à l’anglais, ça a été gênant.
Je trouve que c’est un excellent travail. C’est toujours réjouissant de voir apparaître un projet open source dans un domaine dominé par quelques acteurs comme Dassault ou Autodesk. J’attends aussi avec intérêt l’émergence d’un CAD contextuel reposant sur les LLM et d’autres usages de l’IA.
C’est vraiment impressionnant. Je cherchais depuis longtemps quelque chose de proche d’OnShape. Pour un outil comme ça, je serais tout à fait prêt à payer plusieurs centaines de dollars. Je trouve la licence OnShape trop chère, et dépenser plus de 1 000 dollars me paraît lourd.
En tant qu’employé d’OnShape, je pense que si l’usage réel n’est pas commercial et que les documents peuvent être publics, la version gratuite d’OnShape suffit largement. La stack technique qui permet aujourd’hui à OnShape d’assurer maintenance, extensibilité et performances est extrêmement complexe, et les coûts d’exploitation sont aussi importants.
Personnellement, je trouve aussi que l’offre gratuite d’OnShape est très généreuse.
J’aime beaucoup l’interface. J’aimerais vraiment que FreeCAD ait quelque chose de ce genre. Personnellement, je travaille plutôt avec une interface Python pour créer des modèles paramétriques, mais je trouve ce projet assez remarquable. Je me demande si le noyau CAD du projet Truck est destiné à être implémenté dans un CAD open source. Le projet actuel Truck paraît très prometteur.
CADmium est basé sur le noyau Truck. En revanche, CADmium n’a pas connu beaucoup d’activité depuis juin 2024 ; pour référence, voici le lien vers CADmium. Et il y a aussi le noyau Fornjot.
Je serais curieux de savoir plus précisément ce qui ne te plaît pas dans l’interface de FreeCAD.
Je trouve que c’est un projet vraiment bien réalisé. J’espère sincèrement qu’il continuera à évoluer. En particulier, comme EasyEDA l’a fait en coopérant avec des fabricants pour la production de PCB, j’aimerais qu’ils s’associent aussi à des imprimeurs 3D ou à des fabricants afin que l’utilisateur lambda puisse faire fabriquer son design en quelques clics.
Il est rare de voir un projet qui combine à ce point performance et qualité d’interface, donc je suis vraiment enthousiaste. Les programmes 3D à la fois intuitifs et visiblement agréables sont plus rares qu’on ne le pense, donc c’est un vrai plaisir. J’aimerais vraiment voir davantage de projets comme celui-ci à l’avenir.
L’interface me fait penser à un produit Microsoft, et je trouve cela plutôt positif. Je me demande en quoi vous estimez qu’il se différencie des outils 3D CAD classiques, et quelle a été votre motivation pour créer ce type d’outil.