CADFather : un agent vision-langage qui coordonne des outils pour reconstruire une CAO paramétrique à partir de maillages

Published · AI Daily — AI-assisted deep research, methodology & disclosure

CADFather est un agent qui reconstruit des programmes de CAO paramétriques modifiables à partir de maillages 3D, sans entraînement supplémentaire. Un assistant vision-langage Qwen3.8-27B inspecte les rendus et répartit le travail entre trois outils : propositions apprises de CADENA-RL, propositions géométriques algorithmiques et optimisation numérique des paramètres, tout en gardant le meilleur résultat valide. Sur les jeux de test complets de DeepCAD, Fusion360 et MCB, il annonce zéro sortie invalide et un IoU moyen de 0,987, 0,976 et 0,913, au-dessus de CADENA-RL avec échantillonnage. Sur BenchCAD, l'IoU voxel atteint 0,968 pour environ 0,046 dollar par pièce.

Contexte : du maillage au programme CAO modifiable

Un maillage décrit une forme, mais il n'enregistre pas la façon dont elle a été construite. Quand une pièce n'existe que sous forme de scan ou de maillage hérité, l'ingénieur ne peut pas modifier un diamètre d'alésage ou une épaisseur de paroi, faute d'historique de construction. CADFather s'attaque à ce problème de rétro-ingénierie. À partir d'un maillage cible, il restitue un programme de CAO paramétrique exécutable, cohérent et modifiable. L'article vient de l'Université d'État de Moscou, de l'Université d'Innopolis et du laboratoire FusionBrain. Il porte la référence arXiv 2610.09127, déposé le 6 octobre 2026, et le code est public sur GitHub (kulibinai/CADFather).

Chaque méthode existante a un point fort et un point faible. CAD-Recode, cadrille et CADEvolve produisent un programme complet en une passe. CADReasoner révise un programme complet à partir des écarts observés. CADENA ajoute une opération à la fois. CADFit combine ajustement géométrique et recherche par optimisation. L'observation centrale de l'article est simple : aucune source unique d'opérations ne fonctionne aussi bien pour toutes les géométries et à tous les stades de la reconstruction. Un modèle appris propose des opérations plausibles, mais peut oublier une caractéristique ou se tromper de cotes. Une construction algorithmique déduit les opérations directement de la géométrie cible. L'optimisation numérique affine les cotes d'un programme déjà proche. La vraie question devient donc : à chaque étape, quel candidat développer, et avec quel outil ?

Architecture : un assistant vision-langage et trois outils

CADFather est un agent qui ne demande aucun entraînement supplémentaire. L'assistant est Qwen3.8-27B avec des poids FP8 et la réflexion explicite désactivée. Le générateur d'opérations appris est le point de contrôle CADENA-RL, servi en bfloat16. Les deux modèles restent gelés. Tous les outils écrivent la même représentation, le DSL de CADENA fondé sur CadQuery. Ainsi, un candidat produit par un outil peut être prolongé ou affiné par un autre.

Les trois outils ont des rôles nets. Premier outil, la génération de propositions apprises : pour un programme parent, une requête renvoie n opérations suivantes possibles. L'assistant choisit n, avec un maximum de 32 par appel. Deuxième outil, la génération algorithmique : elle ajuste la géométrie sur le maillage cible, sans modèle appris. Sur le point de départ vide, elle vérifie si la pièce est un corps de révolution. Sinon, elle coupe la cible par des plans, traite chaque section comme une esquisse et cherche la profondeur sur laquelle cette esquisse suit la surface cible. Elle écarte les extrusions qui apportent peu au recouvrement. Sur un candidat existant, elle compare candidat et cible, repère la matière manquante et la matière en trop, puis construit des extrusions pour la première et des coupes pour la seconde. Elle renvoie une liste classée, quatre propositions par appel. Troisième outil, l'optimisation des paramètres : elle ne change que les valeurs et conserve les opérations. Les paramètres libres sont les coordonnées d'esquisse, les rayons et les profondeurs d'extrusion.

La boucle de décision et le groupe de candidats

Pour chaque pièce, le système tient un groupe de candidats. Chaque entrée stocke son identifiant, son parent, l'outil source, le programme, le maillage, le nombre d'opérations, la validité et les mesures. Prolonger un candidat crée un enfant et ne réécrit jamais l'historique. Une déduplication au niveau du code évite les doublons. À chaque étape, l'assistant voit un tableau borné : jusqu'à douze candidats les mieux notés, plus le meilleur protégé et la racine vide. Chaque ligne indique l'outil producteur, le nombre d'opérations, l'IoU et le GMS, le score de la première opération de la chaîne et les outils encore disponibles. L'assistant reçoit aussi des rendus de la cible et des derniers candidats. Il écrit une phrase d'intention, puis émet jusqu'à quatre appels act, ou appelle finish avec la raison shape (toutes les caractéristiques sont présentes) ou stalled (plus de progrès).

La réponse d'un outil n'est qu'une proposition. Le composant d'exécution la construit, la valide et la mesure. Ensuite, l'assistant inspecte le rendu et décide de l'admettre ou non. La règle de validité est stricte : le programme doit se construire, et tout le maillage doit être un solide étanche de volume positif. La cible et le candidat partagent un même repère, et le candidat n'est pas remis à l'échelle sur sa propre boîte englobante, donc une mauvaise taille coûte des points. Le score est la moyenne de l'IoU et du GMS normalisé, et un candidat invalide vaut zéro. La sortie finale est le meilleur résultat protégé, pas le dernier candidat touché par l'assistant. Des budgets fixes garantissent l'arrêt : 24 étapes, 12 opérations au plus, 1000 secondes, 80 échantillons du générateur, 6 appels algorithmiques, 10 appels d'optimisation et 120 exécutions de programme par pièce.

Les fondements mathématiques de l'optimiseur

L'optimiseur travaille sur des distances signées : la distance d'un point à la surface du solide, négative à l'intérieur. La distance du programme se calcule directement à partir de ses opérations. Celle de la cible se calcule depuis le maillage en des points échantillonnés. L'écart est la moyenne des différences au carré entre les deux distances. Le gradient est estimé numériquement : chaque paramètre bouge d'un petit pas, et la variation de l'écart donne sa dérivée.

L'optimiseur ajuste d'abord des points répartis sur toute la pièce, puis des points proches de la surface. Il garde, parmi les paramètres initiaux, grossiers et fins, ceux qui collent le mieux près de la surface. Le programme peut donc revenir inchangé. Seuls les extrusions, trous et révolutions sont gérés. Les auteurs précisent qu'ils n'introduisent pas de nouvel optimiseur numérique.

Résultats sur les bancs d'essai

Sur les jeux de test complets de DeepCAD, Fusion360 et MCB (8046, 1725 et 5000 pièces), CADFather affiche un taux d'invalidité nul. L'IoU moyen est de 0,987, 0,976 et 0,913, contre 0,966, 0,952 et 0,895 pour CADENA-RL avec échantillonnage. Le GMS moyen est de 0,983, 0,960 et 0,766. La distance de Chamfer médiane à 30000 points (multipliée par 1000) vaut 0,039, 0,034 et 0,083, contre 0,042, 0,036 et 0,089. L'outil appris est le même point de contrôle CADENA-RL, donc le gain ne vient pas d'un générateur plus fort. Une réserve : les lignes publiées de CADENA suivent une règle de validité plus indulgente. Les taux d'invalidité ne se comparent donc pas directement.

Sur CADENA-Bench (3396 pièces), CADFather atteint un IoU de 0,909 et un GMS de 0,721, contre 0,876 et 0,670 pour CADENA-RL en mode glouton. Sur CADBench, avec le code d'évaluation du banc et 18000 pièces, il obtient un IoU de 0,930, un IoU de surface de 0,787 et une distance de Chamfer de 0,029, devant CADFit (0,859, 0,679 et 0,038). Son taux de formes valides, 0,968, reste sous les 0,981 de CADFit, car 576 pièces dépassent la limite de 30 secondes de l'évaluateur. Sur BenchCAD, l'IoU voxel est de 0,968 sans aucun programme invalide.

Ablations : les propositions algorithmiques comptent le plus

Sur des sous-ensembles de 1000 pièces, retirer les propositions algorithmiques fait baisser le score moyen de 0,012 à 0,110. Sur MCB, le taux d'invalidité passe de 0 à 0,124. La raison est concrète. Sur certaines pièces, chaque première opération tirée du générateur donne une surface ouverte, et la recherche ne peut pas continuer depuis une base non étanche.

L'extrusion d'une section de la cible fournit un solide fermé. Retirer l'optimiseur ne coûte que 0,004 à 0,006 et laisse l'invalidité à zéro. Dans ce système, la diversité des outils achète surtout de la robustesse, tandis que l'optimiseur ajoute le dernier petit gain d'ajustement. Les auteurs admettent que les ablations n'isolent pas la valeur de la politique de sélection de l'assistant.

Coût et latence

Le nombre moyen d'étapes de l'assistant par pièce est de 6,37 sur DeepCAD, 8,41 sur Fusion360, 12,25 sur MCB et 13,04 sur CADENA-Bench. Le temps réel est de 82,6, 119,9, 245,6 et 306,7 secondes. Les échantillons du générateur vont de 19,0 à 67,1. L'assistant termine lui-même 86,1 % des pièces DeepCAD, mais seulement 25,0 % sur CADENA-Bench : les pièces mécaniques complexes sont souvent coupées par le budget.

Sur BenchCAD, aux tarifs OpenRouter de Qwen3.8-27B (0,425 et 2,55 dollars par million de jetons en entrée et en sortie), CADFather atteint un IoU voxel de 0,943 après quatre étapes pour environ 0,016 dollar par pièce, et 0,968 à budget plein pour environ 0,046 dollar. L'article cite Claude Opus 5.5 et GPT-6 Astra avec outils à 0,962 et 0,959, pour 5,94 et 1,75 dollars par pièce. Ces chiffres de modèles de pointe sont auto-déclarés par les éditeurs, avec des entrées et des sous-ensembles différents, et les auteurs parlent d'une comparaison contextuelle. L'estimation de CADFather ne compte que les jetons des modèles, pas le traitement géométrique ni l'exécution.

Ce que cela change pour les développeurs et les entreprises

Pour les équipes de fabrication et de logiciels industriels, cette approche transforme des scans hérités et des maillages sans historique en modèles paramétriques modifiables. Elle n'exige aucun modèle entraîné sur mesure.

Elle combine un générateur existant, des algorithmes géométriques et un modèle vision-langage généraliste, et peut donc tourner en environnement privé avec des poids ouverts. La conception modulaire permet aussi de remplacer n'importe quel outil : un meilleur générateur ou un ajustement plus rapide s'y branche directement. La leçon plus large est que, dans un domaine vérifiable comme la géométrie, la valeur d'un agent vient de l'aiguillage et de la répartition du budget, pas de la puissance brute d'un seul modèle.

Limites et suite

Les auteurs listent plusieurs limites. Le système dépend des opérations que sa représentation de CAO permet et des propositions que ses outils savent produire. L'optimisation des paramètres ne corrige pas une mauvaise suite d'opérations, et garder d'anciens candidats n'aide pas si une bonne alternative n'a jamais été générée. Les limites de recherche peuvent interrompre une trajectoire qui aurait réussi. L'assistant décide à partir d'indices visuels et numériques incomplets, donc le résultat peut dépendre de l'invite et du modèle. Les échecs typiques sont une topologie initiale erronée (un bloc plein reconstruit en cadre creux), un volume correct mais des détails de surface manquants (moletage, poches peu profondes) et un ressort hélicoïdal reconstruit en tube. L'évaluation mesure la géométrie et la validité du programme, pas l'historique de conception, l'intention de fabrication ni les contraintes d'ingénierie. Elle couvre des pièces isolées, pas des assemblages, des tolérances ou de la simulation. Une comparaison directe avec d'autres agents de CAO comme CAD-Assistant et IterCAD, et une étude contrôlée de la politique de choix d'outils, restent à faire.

Une dernière remarque pour les lecteurs attentifs : le choix final utilise les mêmes métriques IoU et GMS que celles de l'article. C'est donc une sélection du meilleur parmi N selon les métriques publiées. Gardez cela en tête quand vous citez les chiffres.

Sources