Avancé·3 min·11 juillet 2026

FreeCAD tourne dans ton navigateur (oui, vraiment)

🎧 Résumé audio0:00 / 0:00
Un CAO paramétrique 3D complet — 2 millions de lignes de code — compilé en WebAssembly et lancé en 4 jours par une IA.
FreeCAD tourne dans ton navigateur (oui, vraiment)

Pourquoi ça compte pour toi

Si tu travailles en conception 3D, en ingénierie ou en architecture, ça change la donne : plus besoin d'installer FreeCAD, plus de poids sur ta machine. Ouvre un onglet, tu as un outil professionnel. C'est aussi une preuve brute des capacités actuelles de l'IA à résoudre des problèmes techniques énormes — ici, convertir une application de bureau de 1,5 million de lignes C++ en une appli web fonctionnelle.

Ce qu'il faut retenir

  • 1.FreeCAD complet (tous les 17+ ateliers) s'exécute dans le navigateur via WASM
  • 2.Premier chargement ~96 MB (mis en cache ensuite) ; nécessite Chrome/Edge 137+ (Firefox/Safari ne prennent pas encore en charge JSPI)
  • 3.L'IA (Fable) a piloté le portage en 4 jours, 48 prompts documentés publiquement
  • 4.Défis techniques majeurs : lier CPython, PySide6, OpenCASCADE et Coin3D en un seul module ; émuler l'OpenGL legacy en WebGL2

Tu galères avec le jargon ?

Lis la version réécrite en mode débutant — toutes les idées, sans le jargon.

Comment 2 millions de lignes se retrouvent dans un onglet

FreeCAD, c'est pas un script léger. C'est OpenCASCADE (le kernel CAO industriel), Coin3D (le moteur de rendu 3D), CPython 3.14 embarqué, PySide6 (les bindings Qt pour Python), VTK pour l'analyse par éléments finis, et 17+ ateliers spécialisés — Part, Sketcher, PartDesign, CAM, BIM, etc. Tout ça compilé statiquement en un seul module WebAssembly de 196 MB aux côtés de Qt 6.11.

Les trois murs rencontrés (et franchis)

1. Les dialogues modaux et JSPI

FreeCAD est criblé de dialogues bloquants : 185 en C++, 156 en Python. En JavaScript, les dialogues sont asynchrones (tu dois utiliser des callbacks). La solution ? WebAssembly JSPI (JavaScript Promise Integration) — une spec récente qui suspend la pile wasm pendant qu'une promesse attend. Ça a forcé à compiler Qt from scratch plutôt que d'utiliser une version pré-compilée.

2. OpenGL legacy en WebGL2

Coin3D utilise un OpenGL des années 1990 : matrix stacks, glBegin/glVertex, client vertex arrays. WebGL2 n'a rien de ça. La solution : un émulateur sur mesure de ~900 lignes (WasmGLFixedFunc) qui implémente exactement le sous-ensemble utilisé par Coin, avec des stacks de matrices côté CPU et un programme GLSL ES unique pour l'ombrage. Puis est arrivé le problème de compositing : Qt compose les widgets GL en enveloppant la texture du framebuffer dans le contexte window, mais les contextes WebGL ne partagent rien. D'où un framebuffer hors-écran rendu puis relu et transmis au compositing raster habituel.

3. Les bugs fantômes du rendu

La partie vraiment détaillée : des solides invisibles (parce que glGetDoublev(GL_DEPTH_CLEAR_VALUE) était stubbé à 0, vidant le depth buffer au plan proche) ; des erreurs INVALID_ENUM (Coin interrogeait les enums legacy que WebGL rejette) ; les pièces devenant blanches pendant la sélection à la souris (l'overlay rubber-band captait un framebuffer vide). Et la plus vicieuse : les scratch VBOs de l'émulateur restaient bindés après un draw, alors la capture suivante les prenait pour les buffers de Coin, lisant les vertices depuis la mauvaise mémoire. Résultat : le rendu affichait un champ de points au lieu de triangles. Correctif : suivre les buffers propres de l'émulateur et les ignorer lors de la capture.

Pourquoi c'est marquant

C'est pas juste un portage technique. C'est une démonstration qu'une IA moderne peut piloter la traduction d'une base de code énorme et complexe — avec ses dépendances croisées, ses bugs subtils, ses problèmes de compilation croisée — sans humain qui recode ligne par ligne. Les 48 prompts sont tous publics. Si tu doutes de la façon dont l'IA a attaqué chaque problème, tu peux les relire dans l'ordre.

Et concrètement pour toi ?

Choisis ton profil — la lecture de l'article change selon qui tu es.

🔭 Curieux

Pour toi, l'histoire vraie c'est : une IA a fait en 4 jours ce qu'une équipe humaine aurait mis des mois à faire. Ça montre où les outils IA excelling vraiment — les problèmes *hyper spécialisés* avec une pile technique claire, pas la généralité.

Essayer maintenant

Lancer FreeCAD en ligne

Newsletters Noésis

3 minutes d'IA dans ta boîte mail, chaque matin.

Rejoins les francophones qui comprennent, essaient et progressent avec l'IA. Choisis ce que tu veux recevoir. Désabonnement en 1 clic.

Explorer les thèmes de cet article :