SyncThinkDesignSTD

AAA³ · définition v0.3 · état en octobre 2026

AAA³ : trois plans, un même projet

Une architecture où l’interface humaine, la représentation déclarative et le moteur d’exécution peuvent évoluer sans perdre leur cohérence sur un même projet.

Définition

AAA3 signifie AI-Addressable Application — Three-Plane Architecture. Les trois A disent qu’une intelligence artificielle peut piloter l’application de bout en bout en écrivant un document ; le 3 dit comment elle est construite pour que ce soit possible : en trois plans qui opèrent sur le même projet.

AAA3
Le nom officiel et technique. C’est celui qu’on emploie dans les URL, les recherches, le code et la documentation.
AAA³
Graphie visuelle facultative, pour les titres et les diagrammes.
AI-Addressable Application
Le sens des trois A : une application qu’on peut piloter en écrivant son document, sans manipuler son interface.
Three-Plane Architecture
Le sens du 3 : un plan humain, un plan déclaratif et un plan d’exécution.

La définition est une proposition d’Iván Braida dans le cadre de SyncThinkDesign, développée sur le plan technologique chez Braidata. Le sens du 3 a été formalisé le 28 octobre 2026 ; jusque-là, le terme était employé en interne uniquement au sens d’AI-Addressable Application. Le formaliser ne modifie aucun contrat JSON ni aucun identifiant existant. AAA n’est pas employé comme nom à part entière.

Les trois plans

1 · Plan humain
L’interface visuelle par laquelle une personne crée, consulte et modifie le projet.
2 · Plan déclaratif
Le document JSON canonique : structuré, versionné, validable et lisible aussi bien par des personnes que par des programmes et des modèles de langage. C’est la source de vérité de l’état déclaratif du projet.
3 · Plan d’exécution
Le moteur, le runtime et les API qui interprètent le document et produisent un comportement ou des résultats réels.
  1. Plan humainPersonne → Interface → Validation
  2. Plan déclaratifIA externe · Script → Validation → Document canoniquemêmes règles pour tous · source de vérité · versionné
  3. Plan d’exécutionDocument canonique → Moteur · runtime · API → RésultatsÉtat transitoire: non persisté sans règle expliciteRésultats → revue humaine ou automatisée → Validation
AAA³ — Plan humain · Plan déclaratif · Plan d’exécutionPersonne → Interface → Validation → Document canonique. IA externe, Script → Validation. Document canonique → Moteur · runtime · API → Résultats. Moteur · runtime · API ↔ État transitoire. Résultats → revue humaine ou automatisée → Validation.1 · Plan humain2 · Plan déclaratif3 · Plan d’exécutionPersonneIA externeScriptInterfaceValidationmêmes règles pour tousDocument canoniquesource de vérité · versionnéMoteur · runtime · APIinterprète le documentÉtat transitoirenon persisté sans règle expliciteRésultatset diagnosticséditeécritinterprèterevue humaine ou automatisée
Figure 1. Les trois plans d’AAA³ et les chemins par lesquels circule l’information. Une personne écrit par l’interface ; une IA externe ou un script écrivent directement le document ; dans une application conforme, toutes les écritures passent par la même validation (invariant IV, vérifié aujourd’hui dans quatre des six applications). Le moteur interprète le document, peut conserver un état transitoire et produit des résultats et des diagnostics, qui ne reviennent au document qu’au travers d’une revue.

Trois plans. Un même projet.

Une application AAA3 permet à ses trois plans d’opérer sur une représentation cohérente du même projet. Le document canonique est la source de vérité de l’état déclaratif ; l’interface permet de le manipuler et le moteur l’interprète pour l’exécuter. Les plans peuvent évoluer techniquement chacun de leur côté — une nouvelle interface, un moteur plus rapide, une nouvelle version du format — tant qu’ils respectent le même contrat.

Aucun des plans n’a besoin d’une IA. Une personne peut utiliser l’application sans aucune ; une IA externe, quelle qu’elle soit, peut la piloter en écrivant ou en modifiant le document, sans manipuler visuellement l’interface et sans que l’application dépende d’un modèle intégré. L’IA est un client possible du plan déclaratif, pas un composant de l’architecture.

Des chemins, pas une séquence

Les relations interface ↔ document ↔ moteur ne forment pas une chaîne obligatoire. Une application AAA3 admet, le cas échéant, les chemins suivants :

  • Personne → interface → document.
  • IA externe → document.
  • Script → document.
  • Document → moteur → exécution.
  • Moteur → résultats et diagnostics.
  • Résultats → revue humaine ou automatisée → évolution du document.

État déclaratif et état d’exécution

Les résultats d’une exécution ne font pas automatiquement partie du document. Le runtime peut conserver un état transitoire — une position de caméra, une partie en cours, un calcul intermédiaire — qui n’est pas persisté. Ce qui doit revenir au document y revient par des règles explicites, avec la même validation que n’importe quelle autre écriture. Sans cette séparation, exécuter un projet le modifierait en silence, et le document cesserait d’être une description lisible et comparable de ce qui a été décidé.

Invariants

Ces six invariants disent ce qu’une application doit respecter pour être considérée comme AAA3, comment chacun se vérifie et où en est aujourd’hui notre écosystème. Nous distinguons ce qui est implémenté (avec des preuves vérifiables), ce qui est partiellement vérifiable et ce qui reste un objectif d’architecture.

Invariants d’AAA3. La dernière colonne résume la matrice de conformité plus bas.
InvariantCe qu’il exigeComment le vérifierÉtat dans l’écosystème
I · CorrespondanceToute opération de rédaction dans l’interface a une représentation documentée dans le modèle canonique.Un test qui parcourt les contrôles de l’interface et vérifie que chacun écrit un champ, et que chaque champ a un contrôle ou est déclaré comme modifiable uniquement dans le document.Objectif d’architecture. C’est une règle écrite dans SketchLab, Mapping Studio et Experience Creator ; aucune application ne la teste automatiquement.
II · IndépendanceNi le document ni le moteur n’exigent une IA embarquée pour fonctionner.Examiner les dépendances d’exécution et utiliser l’application complète sans aucun fournisseur d’IA configuré.Implémenté dans les six applications examinées. SketchLab possède une intégration d’IA, facultative et désactivable.
III · InteropérabilitéUne spécification valide peut être importée et exécutée au moyen d’interfaces documentées.Faire produire par une personne extérieure au projet un document valide et l’exécuter par l’API ou la ligne de commande, sans passer par l’interface.Implémenté chez les quatre fournisseurs (contrat braidata.aaa3.*.v1) et dans Experience Creator (résolveur en ligne de commande). Partiel dans Stellar Map.
IV · CohérenceModifier le projet depuis l’interface ou depuis un client externe respecte les mêmes règles de validation.Vérifier que l’interface et les clients externes utilisent le même code de validation, et qu’un même document est accepté ou rejeté de la même façon par les deux chemins.Implémenté par du code partagé dans Experience Creator, Scene Creator, SketchLab et FrameLab. Partiel dans Soundcrafter (deux moteurs). Non vérifié dans Stellar Map.
V · ReproductibilitéOn peut identifier les conditions nécessaires pour reproduire un résultat : versions, ressources, paramètres et graines le cas échéant.Consigner ces conditions avec le résultat et relancer l’exécution pour comparer. Cela n’exige pas un déterminisme absolu là où des processus ne le sont pas.Partiellement vérifiable. Testé dans SketchLab et FrameLab ; partiel ailleurs (voir la matrice).
VI · PortabilitéLe document peut passer d’une instance compatible à une autre, avec ses dépendances externes déclarées.Exporter, importer dans une autre instance et comparer ; lister ce dont le document a besoin hors de lui-même (ressources, services, bibliothèques).Partiellement vérifiable. L’aller-retour sans perte est testé dans SketchLab, Scene Creator et Stellar Map ; les dépendances externes ne sont documentées qu’en partie.

Ce qu’AAA3 ajoute à une application avec interface et backend

Presque toute application possède une interface, un format de données et un serveur ou un moteur. Les avoir tous les trois ne la rend pas AAA3. Ce qui distingue l’architecture, ce sont quatre garanties qu’une application classique n’offre généralement pas, et les problèmes que ces garanties résolvent. Ce sont des invariants proposés : la matrice de conformité indique lesquels chaque application respecte aujourd’hui.

Garanties supplémentaires d’AAA3 par rapport à une application classique avec interface et backend.
GarantieDans une application classiqueDans AAA3Problème résolu
Le document est un contrat publicLe modèle de données est interne — une base de données, un état en mémoire — et change sans prévenir.Le document canonique est documenté, versionné et peut être validé hors de l’application.Un tiers, un script ou un modèle peuvent produire des projets valides sans accès au code.
Correspondance (I)Certaines opérations n’existent que sous forme de clics ou d’état de l’interface.Toute opération de rédaction a un champ dans le document.Une IA n’a pas à manipuler l’interface visuellement, avec la fragilité que cela implique.
Une seule validation (IV)L’interface et l’API valident séparément et finissent par diverger.L’interface et les clients externes passent par le même validateur.Un document accepté par un chemin n’est pas rejeté, ni interprété autrement, par l’autre.
États séparésCe qui est décidé et ce que calcule le moteur se mélangent dans le même stockage.Le runtime peut avoir un état transitoire, mais seules des règles explicites le transforment en document.Exécuter ne modifie pas le projet en silence, et le document reste lisible et comparable.

Aucune de ces idées n’est nouvelle prise isolément. Les formats de document ouverts, l’infrastructure as code et le logiciel local-first traitent déjà une représentation déclarative comme source de vérité. Ce qu’AAA3 propose, c’est de les réunir dans un ensemble explicite d’invariants au service d’un objectif précis : qu’une application puisse être pilotée de bout en bout par une personne, un script ou n’importe quel modèle de langage, sans dépendre d’un modèle intégré. Qu’il s’agisse d’une contribution architecturale ou d’une synthèse utile d’idées connues, c’est à d’autres d’en juger.

Matrice de conformité

Nous avons examiné le code et la documentation de chaque application de l’écosystème. Oui signifie qu’il existe une preuve vérifiable : un test automatisé ou du code partagé que nous avons contrôlé. Partiel désigne une règle écrite sans test, ou une preuve qui ne couvre qu’une partie. Non signifie que nous n’avons trouvé aucune preuve. Avoir une interface, un JSON et une API ne suffit pas pour cocher un plan ou un invariant.

Audit du 2026-10-28 sur les commits 95c3ba8 (Experience Creator), 8bf81b8 (Scene Creator), 46bea25 (SketchLab), 3f0e5ea (FrameLab), 5a1be38 (Soundcrafter) et bcf2e55 (Stellar Map). Les colonnes I à VI sont les invariants.
ApplicationHumainDéclaratifExécutionIIIIIIIVVVI
Experience CreatorOuiOuiOuiPartielOuiOuiOuiPartielPartiel
Scene CreatorOuiOuiOuiPartielOuiOuiOuiPartielPartiel
SketchLabOuiOuiOuiPartielOuiOuiOuiOuiPartiel
FrameLabOuiOuiOuiPartielOuiOuiOuiOuiPartiel
SoundcrafterPartielOuiOuiNonOuiOuiPartielPartielPartiel
Stellar MapOuiOuiPartielPartielOuiPartielNonPartielPartiel
Preuves et lacunes par application. Les contrats sont indiqués tels qu’ils existent ; cette définition ne les modifie pas.
ApplicationContratPreuve principaleLacune principale
Experience Creatorexperiencecreator.project.v1Schéma Zod dans @experience-creator/schema ; l’éditeur et le résolveur en ligne de commande importent le même @experience-creator/core ; la parité interface ↔ JSON est une règle écrite du contrat ; l’état de l’éditeur n’est pas enregistré dans le document.La parité n’a pas de test automatisé. La capture en temps réel n’est pas reproductible image par image ; l’export hors ligne vise à l’être.
Scene Creatorglbforge.scene v2.5L’API utilise le normalizeDoc, le noyau et l’exportateur de l’éditeur ; l’aller-retour cleanDoc → import → cleanDoc est idempotent ; 14 tests couvrent l’API et son usage depuis Experience Creator.Les références idb: et les chemins locaux nécessitent le navigateur. La reproductibilité du GLB octet pour octet n’est pas documentée.
SketchLabbraidata.sketchlab.v1 (et braidata.mappinglab.v2)Interface, ligne de commande, API et tests utilisent lib/sketchlab/core.js ; export → import → export est vérifié ; la graine est testée de bout en bout ; l’IA intégrée est facultative.sketch.html charge p5 depuis jsDelivr sauf en mode hors ligne ; sketch.png requiert Chromium sur le serveur.
FrameLabprojet type: "framelab", version 1.0L’API exécute dans jsdom les mêmes modules de validation et d’export que le navigateur, sans les réimplémenter ; un test vérifie que la même demande produit le même outputId.Aucune règle écrite de parité interface ↔ document ni test d’aller-retour du projet.
Soundcrafterbraidata.alsopack.v2API avec 12 tests ; les demandes sont idempotentes ; l’interface importe, valide, rend et exporte le document.Il existe deux moteurs aux validateurs distincts — celui du navigateur en JavaScript et celui de l’API en Python — et nous n’avons trouvé aucun test d’équivalence. L’interface n’édite pas l’ensemble du document.
Stellar Mapstarmap.v1Schéma JSON généré et testé ; export → import → export est stable octet pour octet.Il n’expose pas le contrat braidata.aaa3.*.v1. Nous n’avons pas vérifié que son API de cartes utilise le même validateur que l’éditeur. Conserver la mise en page comme état transitoire hors du document est proposé dans sa documentation, pas implémenté.
A5Aspiration

Que la conformité aux invariants puisse être vérifiée par des tests communs à toutes les applications, en commençant par la correspondance (I) et la cohérence (IV), aujourd’hui les plus difficiles à démontrer.

Liens avec SyncThinkDesign

AAA3 et SyncThinkDesign ont des identités indépendantes. STD étudie et propose l’évolution continue des systèmes par des processus synchronisés qui s’influencent mutuellement ; AAA3 applique certains de ces principes à l’architecture d’applications. La synchronisation entre les trois plans permet aux décisions de rédaction, à la représentation structurée et au comportement du système de se nourrir mutuellement, mais l’architecture n’implémente pas à elle seule tous les principes de STD.

Les trois plans ne correspondent pas non plus un à un aux quatre processus. Capter, Concevoir, Exécuter et Optimiser peuvent avoir lieu dans n’importe quel plan : une personne conçoit dans l’interface, un modèle conçoit en écrivant le document, le moteur exécute, une revue optimise. Forcer une équivalence masquerait précisément ce qui est intéressant : que les processus traversent les plans.

Quels principes de SyncThinkDesign AAA3 matérialise, ce dont ils ont besoin en plus et ceux qui restent en dehors.
Principe de STDCe qu’AAA3 matérialiseCe qu’il faut en plusÉtat
F2 SynchronisationLes trois plans agissent sur le même projet : un changement dans le document atteint l’interface et le moteur sans attendre une phase ; entre applications, un changement de source régénère ce qui la consomme (I5).Des mécanismes de propagation (M5) quand plusieurs personnes ou applications interviennent.Matérialisé en partie
F3 Évolution organique et continueLe document peut changer par parties et être régénéré sans refaire le reste (I4).Un historique du document pour suivre son évolution (M1).Matérialisé en partie
F6 Validation continueLà où l’invariant IV est respecté, toute écriture passe par le même validateur ; il est aujourd’hui vérifié dans quatre des six applications.Des critères sur ce qu’il faut vérifier au-delà de la forme (M4).Matérialisé là où IV est respecté
F12 Le design comme évolutionLe document déclare explicitement ce qui peut changer dans le système.Décider qui peut changer quoi, et ce qui est protégé (M6).Matérialisé en partie
F4 ÉmergenceL’exécution vise la reproductibilité ; s’il y a émergence, elle a lieu dans la boucle de rédaction (Q6).Étudier comment évoluent les documents (Q1).Ouvert
F8 Captation permanentePresque rien : AAA3 n’observe pas le monde.Instrumenter l’usage réel du système.Non couvert
F9 et F10 Silos et état d’espritRien à elle seule.L’organisation du travail, pas l’architecture.Hors périmètre

L’écosystème actuel

Aujourd’hui, l’écosystème comprend un orchestrateur et plusieurs fournisseurs. L’orchestrateur est Experience Creator, publié sous le nom d’Alterverse : un éditeur d’expériences 3D interactives et de pièces audiovisuelles. Un projet Experience Creator peut déclarer les ressources dont il a besoin — un monde, une texture, une interface, une pièce musicale — sous forme de demandes adressées à d’autres fournisseurs, chacune écrite dans le format natif du fournisseur. Un résolveur, qui tourne dans l’éditeur ou en ligne de commande, les produit. Chaque application a ses propres trois plans ; le contrat braidata.aaa3.*.v1 relie leurs plans d’exécution.

AAA3Personne · script · LLM → Document JSON canonique → Experience Creator (orchestrateur) → SketchLab: sketch.html, sketch.png, sketch.validate; Scene Creator: scene.glb; FrameLab: ui.html; Soundcrafter: audio.render. entrée par sha256: SketchLab → Scene Creator.Personne · script · LLMDocument JSON canoniqueexperiencecreator.project.v1 · assetRequests[]Experience Creatororchestrateur · braidata.aaa3.request.v1Fournisseurs · braidata.aaa3.*.v1SketchLabsketch.htmlsketch.pngsketch.validateScene Creatorscene.glbFrameLabui.htmlSoundcrafteraudio.renderentrée par sha256
Figure 2. Topologie de l’écosystème en octobre 2026. N’importe quel auteur écrit le document ; Experience Creator résout les demandes auprès de quatre fournisseurs qui exposent le même contrat. La ligne pointillée est un chaînage vérifié : la sortie de SketchLab entre comme texture dans Scene Creator.
Fournisseurs et opérations selon la documentation de chaque dépôt.
FournisseurCe qu’il faitOpérationsÉtat
Scene CreatorMondes 3D à partir d’un document de scène ; exporte du GLB avec un vrai noyau, sans navigateur.scene.glbFonctionne ; accepte des entrées chaînées (textures intégrées au GLB).
SketchLabEsquisses génératives p5.js définies par braidata.sketchlab.v1, avec paramètres, graine et lots.sketch.html, sketch.png, sketch.validateFonctionne. sketch.png requiert Chromium sur le serveur ; sans lui, la réponse est 501.
FrameLabInterfaces HTML (HUD, menus) avec un export identique à celui du navigateur.ui.htmlFonctionne ; exécute les vrais modules d’export dans jsdom.
SoundcrafterMusique à partir d’un projet braidata.alsopack.v2 : audio WAV et partition.audio.renderFonctionne avec des limites : sur les serveurs sans état, le rendu s’exécute dans la requête, jusqu’à 20 s d’audio.

Le contrat entre applications

I1Implémentation

Chaque application de l’écosystème possède un format JSON canonique et versionné. La règle selon laquelle l’interface ne fait qu’éditer ce document est écrite dans SketchLab, Mapping Studio et Experience Creator ; dans les autres, elle s’observe dans le code mais n’est pas documentée comme règle.

I2Implémentation

Aucune application n’a besoin d’un modèle d’IA pour fonctionner, ni à l’exécution ni dans le format. N’importe quel modèle peut écrire le document de l’extérieur (nous appelons cela BYO-AI : apportez votre propre IA).

I3Implémentation

Tout fournisseur expose le contrat braidata.aaa3.*.v1 sous /api/aaa3 : GET manifest (public), POST run, GET jobs/{requestId}, GET outputs/{outputId} et PUT inputs/{sha256} pour le chaînage.

// demande (abrégée)
{
  "contract": "braidata.aaa3.request.v1",
  "requestId": "music",
  "operation": "audio.render",
  "spec": { /* document natif du fournisseur, non réinterprété */ },
  "inputs": [{ "name": "albedo", "sha256": "…", "mimeType": "image/png" }]
}

// résultat
{
  "contract": "braidata.aaa3.result.v1",
  "status": "succeeded",
  "diagnostics": [],
  "outputs": [{ "outputId": "<sha256>", "kind": "audio", "mimeType": "audio/wav", "url": "…" }]
}
Forme de la demande et du résultat. Les binaires voyagent par URL ou par hachage, jamais dans le JSON.
I4Implémentation

Les demandes sont idempotentes. L’identité d’une demande est le hachage du fournisseur, de l’opération, de la spécification, des paramètres et du contenu de ses entrées : demander deux fois la même chose renvoie le même résultat sans le produire de nouveau.

I5Implémentation

Les demandes se chaînent par contenu. Une entrée voyage sous forme de sha256 ; si le fournisseur ne l’a pas, il répond missing_inputs, le client la téléverse et réessaie une fois. Si une ressource source change, le hachage de toutes les demandes qui la consomment change et elles sont régénérées.

I6Implémentation

L’approbation humaine est consignée sous forme de pin sur le hachage approuvé. Une demande figée n’est pas régénérée, même en forçant l’exécution ; si sa spécification a changé, le résolveur conserve ce qui a été approuvé et signale l’écart. Seule une personne retire un pin. C’est un mécanisme de gouvernance d’AAA3, pas un principe de SyncThinkDesign.

I7Implémentation

Les applications visent la reproductibilité (invariant V), pas un déterminisme absolu. Dans SketchLab, la graine contrôle randomSeed, noiseSeed et Math.random, et des tests de bout en bout vérifient que le même document produit la même image ; dans FrameLab, un test vérifie que la même demande produit le même résultat. Ailleurs, la reproductibilité est partielle.

Comment il est construit

Une bonne partie du code d’AAA3 est écrite avec des agents de programmation IA, sous direction et revue humaines ; l’historique de chaque dépôt l’enregistre commit par commit. Nous le mentionnons parce que cela fait partie de l’expérience : si H5 est vraie, c’est dans des projets comme celui-ci qu’elle devrait se manifester en premier. Et parce que cela laisse une question à laquelle nous ne savons pas encore bien répondre : comment attribuer équitablement le travail quand une partie est produite par un agent.

Ce qu’AAA3 ne résout pas

  • Il ne capte pas de signaux du monde. Les observations sont toujours saisies à la main.
  • La correspondance entre interface et document (invariant I) n’est testée automatiquement dans aucune application.
  • Les stocks de sorties sont des mémoires bornées propres à chaque fournisseur ; une nouvelle instance peut avoir oublié un résultat et le client doit le redemander.
  • Les dépôts sont privés. Ce site documente l’architecture et le contrat pour qu’ils puissent être discutés, mais le code ne peut pas encore être audité de l’extérieur.
A4Aspiration

Publier la spécification d’AAA3 — les trois plans, les invariants et le contrat braidata.aaa3.*.v1 — sous forme de document autonome et versionné, pour que quelqu’un puisse construire une application conforme sans lire notre code.

Références

Historique

VersionDateChangement
0.12026-10-27Description de l’écosystème comme AI-Addressable Application : contrat, fournisseurs et chaînage.
0.22026-10-28AAA3 est présenté comme une implémentation de SyncThinkDesign dotée d’une identité propre.
0.32026-10-28Définition formelle : AI-Addressable Application — Three-Plane Architecture. Trois plans, six invariants avec leur état, garanties par rapport à une application classique et matrice de conformité de six applications. Aucun changement de contrat ni d’identifiant.