AAA³ · definição v0.3 · estado em outubro de 2026
AAA³: três planos, um mesmo projeto
Uma arquitetura em que a interface humana, a representação declarativa e o motor de execução podem evoluir sem perder a coerência sobre um mesmo projeto.
Definição
AAA3 significa AI-Addressable Application — Three-Plane Architecture. Os três A dizem que uma inteligência artificial pode operar a aplicação de ponta a ponta escrevendo um documento; o 3 diz como ela é construída para que isso seja possível: em três planos que operam sobre o mesmo projeto.
AAA3- O nome oficial e técnico. É o que se usa em URLs, buscas, código e documentação.
- AAA³
- Grafia visual opcional, para títulos e diagramas.
- AI-Addressable Application
- O sentido dos três A: uma aplicação que pode ser operada escrevendo seu documento, sem manipular sua interface.
- Three-Plane Architecture
- O sentido do 3: um plano humano, um plano declarativo e um plano de execução.
A definição é uma proposta de Iván Braida no contexto de SyncThinkDesign, desenvolvida tecnologicamente na Braidata. O sentido do 3 foi formalizado em 28 de outubro de 2026; até então, o termo era usado internamente apenas como AI-Addressable Application. Formalizá-lo não altera nenhum contrato JSON nem identificador existente. AAA não é usado como nome independente.
Os três planos
- 1 · Plano humano
- A interface visual pela qual uma pessoa cria, consulta e modifica o projeto.
- 2 · Plano declarativo
- O documento JSON canônico: estruturado, versionado, validável e legível tanto por pessoas quanto por programas e modelos de linguagem. É a fonte de verdade do estado declarativo do projeto.
- 3 · Plano de execução
- O motor, o runtime e as APIs que interpretam o documento e produzem comportamento ou resultados reais.
- Plano humanoPessoa → Interface → Validação
- Plano declarativoIA externa · Script → Validação → Documento canônicomesmas regras para todos · fonte de verdade · versionado
- Plano de execuçãoDocumento canônico → Motor · runtime · APIs → ResultadosEstado transitório: não é persistido sem regra explícitaResultados → revisão humana ou automatizada → Validação
Três planos. Um mesmo projeto.
Uma aplicação AAA3 permite que seus três planos operem sobre uma representação coerente do mesmo projeto. O documento canônico é a fonte de verdade do estado declarativo; a interface permite manipulá-lo e o motor o interpreta para executá-lo. Os planos podem evoluir tecnicamente cada um por si — uma nova interface, um motor mais rápido, uma nova versão do formato — desde que respeitem o mesmo contrato.
Nenhum dos planos precisa de uma IA. Uma pessoa pode usar a aplicação sem nenhuma; uma IA externa, qualquer uma, pode operá-la escrevendo ou modificando o documento, sem manipular visualmente a interface e sem que a aplicação dependa de um modelo integrado. A IA é um cliente possível do plano declarativo, não um componente da arquitetura.
Caminhos, não uma sequência
As relações interface ↔ documento ↔ motor não formam uma cadeia obrigatória. Uma aplicação AAA3 admite, quando aplicável, os seguintes caminhos:
- Pessoa → interface → documento.
- IA externa → documento.
- Script → documento.
- Documento → motor → execução.
- Motor → resultados e diagnósticos.
- Resultados → revisão humana ou automatizada → evolução do documento.
Estado declarativo e estado de execução
Os resultados de uma execução não fazem parte automaticamente do documento. O runtime pode manter estado transitório — uma posição de câmera, uma partida em andamento, um cálculo intermediário — que não é persistido. O que precisa voltar ao documento volta por regras explícitas, com a mesma validação que qualquer outra escrita. Sem essa separação, executar um projeto o modificaria em silêncio, e o documento deixaria de ser uma descrição legível e comparável do que foi decidido.
Invariantes
Estes seis invariantes dizem o que uma aplicação precisa cumprir para ser considerada AAA3, como cada um é verificado e em que estado está hoje o nosso ecossistema. Distinguimos o que está implementado (com evidência verificável), o que é parcialmente verificável e o que continua sendo um objetivo de arquitetura.
| Invariante | O que exige | Como verificar | Estado no ecossistema |
|---|---|---|---|
| I · Correspondência | Toda operação de autoria na interface tem uma representação documentada no modelo canônico. | Um teste que percorra os controles da interface e verifique que cada um escreve um campo, e que cada campo tem um controle ou está declarado como editável apenas no documento. | Objetivo de arquitetura. É uma regra escrita no SketchLab, no Mapping Studio e no Experience Creator; nenhuma aplicação a testa automaticamente. |
| II · Independência | Nem o documento nem o motor exigem uma IA embutida para funcionar. | Revisar as dependências de execução e usar a aplicação completa sem nenhum provedor de IA configurado. | Implementado nas seis aplicações revisadas. O SketchLab tem uma integração de IA opcional e desativável. |
| III · Interoperabilidade | Uma especificação válida pode ser importada e executada por meio de interfaces documentadas. | Pedir a uma pessoa de fora do projeto que produza um documento válido e executá-lo pela API ou pela linha de comando, sem passar pela interface. | Implementado nos quatro provedores (contrato braidata.aaa3.*.v1) e no Experience Creator (resolvedor de linha de comando). Parcial no Stellar Map. |
| IV · Consistência | Modificar o projeto pela interface ou por um cliente externo respeita as mesmas regras de validação. | Verificar que a interface e os clientes externos usam o mesmo código de validação, e que um mesmo documento é aceito ou rejeitado da mesma forma pelos dois caminhos. | Implementado com código compartilhado no Experience Creator, no Scene Creator, no SketchLab e no FrameLab. Parcial no Soundcrafter (dois motores). Não verificado no Stellar Map. |
| V · Reprodutibilidade | É possível identificar as condições necessárias para reproduzir um resultado: versões, recursos, parâmetros e sementes, quando aplicável. | Registrar essas condições junto com o resultado e executar de novo para comparar. Não exige determinismo absoluto onde há processos que não o são. | Parcialmente verificável. Testado no SketchLab e no FrameLab; parcial nas demais (ver a matriz). |
| VI · Portabilidade | O documento pode passar entre instâncias compatíveis, com suas dependências externas declaradas. | Exportar, importar em outra instância e comparar; listar o que o documento precisa fora de si mesmo (recursos, serviços, bibliotecas). | Parcialmente verificável. O ida e volta sem perdas é testado no SketchLab, no Scene Creator e no Stellar Map; as dependências externas estão documentadas apenas em parte. |
O que o AAA3 acrescenta a uma aplicação com interface e backend
Quase toda aplicação tem uma interface, um formato de dados e um servidor ou motor. Ter os três não a torna AAA3. O que distingue a arquitetura são quatro garantias que uma aplicação tradicional normalmente não oferece, e os problemas que essas garantias resolvem. São invariantes propostos: a matriz de conformidade indica quais cada aplicação cumpre hoje.
| Garantia | Em uma aplicação tradicional | No AAA3 | Problema que resolve |
|---|---|---|---|
| O documento é um contrato público | O modelo de dados é interno — um banco de dados, um estado em memória — e muda sem aviso. | O documento canônico é documentado, versionado e pode ser validado fora da aplicação. | Um terceiro, um script ou um modelo podem produzir projetos válidos sem acesso ao código. |
| Correspondência (I) | Algumas operações existem apenas como cliques ou estado da interface. | Toda operação de autoria tem um campo no documento. | Uma IA não precisa manipular a interface visualmente, com a fragilidade que isso implica. |
| Uma única validação (IV) | A interface e a API validam separadamente e acabam divergindo. | A interface e os clientes externos passam pelo mesmo validador. | Um documento aceito por um caminho não é rejeitado nem interpretado de outra forma pelo outro. |
| Estados separados | O que foi decidido e o que o motor calcula se misturam no mesmo armazenamento. | O runtime pode ter estado transitório, mas só regras explícitas o transformam em documento. | Executar não modifica o projeto em silêncio, e o documento continua legível e comparável. |
Nenhuma dessas ideias é nova isoladamente. Os formatos de documento abertos, a infraestrutura como código e o software local-first já tratam uma representação declarativa como fonte de verdade. O que o AAA3 propõe é reuni-las em um conjunto explícito de invariantes a serviço de um objetivo concreto: que uma aplicação possa ser operada de ponta a ponta por uma pessoa, um script ou qualquer modelo de linguagem, sem depender de um modelo integrado. Se isso é uma contribuição arquitetural ou uma síntese útil de ideias conhecidas, cabe a outros julgar.
Matriz de conformidade
Revisamos o código e a documentação de cada aplicação do ecossistema. Sim significa que há evidência verificável: um teste automatizado ou código compartilhado que conferimos. Parcial indica uma regra escrita sem teste, ou evidência que cobre apenas uma parte. Não significa que não encontramos evidência. Ter interface, JSON e API não basta para marcar um plano ou um invariante.
| Aplicação | Humano | Declarativo | Execução | I | II | III | IV | V | VI |
|---|---|---|---|---|---|---|---|---|---|
| Experience Creator | Sim | Sim | Sim | Parcial | Sim | Sim | Sim | Parcial | Parcial |
| Scene Creator | Sim | Sim | Sim | Parcial | Sim | Sim | Sim | Parcial | Parcial |
| SketchLab | Sim | Sim | Sim | Parcial | Sim | Sim | Sim | Sim | Parcial |
| FrameLab | Sim | Sim | Sim | Parcial | Sim | Sim | Sim | Sim | Parcial |
| Soundcrafter | Parcial | Sim | Sim | Não | Sim | Sim | Parcial | Parcial | Parcial |
| Stellar Map | Sim | Sim | Parcial | Parcial | Sim | Parcial | Não | Parcial | Parcial |
| Aplicação | Contrato | Evidência principal | Lacuna principal |
|---|---|---|---|
| Experience Creator | experiencecreator.project.v1 | Schema Zod em @experience-creator/schema; o editor e o resolvedor de linha de comando importam o mesmo @experience-creator/core; a paridade interface ↔ JSON é uma regra escrita do contrato; o estado do editor não é salvo no documento. | A paridade não tem teste automatizado. A captura em tempo real não é reproduzível quadro a quadro; a exportação offline busca ser. |
| Scene Creator | glbforge.scene v2.5 | A API usa o mesmo normalizeDoc, o kernel e o exportador do editor; o ida e volta cleanDoc → importação → cleanDoc é idempotente; 14 testes cobrem a API e seu uso a partir do Experience Creator. | Referências idb: e caminhos locais exigem o navegador. A reprodutibilidade do GLB byte a byte não está documentada. |
| SketchLab | braidata.sketchlab.v1 (e braidata.mappinglab.v2) | Interface, linha de comando, API e testes usam lib/sketchlab/core.js; exportar → importar → exportar é verificado; a semente é testada de ponta a ponta; a IA integrada é opcional. | sketch.html carrega o p5 do jsDelivr, exceto no modo offline; sketch.png exige Chromium no servidor. |
| FrameLab | projeto type: "framelab", versão 1.0 | A API executa no jsdom os mesmos módulos de validação e exportação do navegador, sem reimplementá-los; um teste verifica que o mesmo pedido produz o mesmo outputId. | Sem regra escrita de paridade interface ↔ documento nem teste de ida e volta do projeto. |
| Soundcrafter | braidata.alsopack.v2 | API com 12 testes; os pedidos são idempotentes; a interface importa, valida, renderiza e exporta o documento. | Há dois motores com validadores distintos — o do navegador em JavaScript e o da API em Python — e não encontramos teste de equivalência. A interface não edita o documento completo. |
| Stellar Map | starmap.v1 | Schema JSON gerado e testado; exportar → importar → exportar é estável byte a byte. | Não expõe o contrato braidata.aaa3.*.v1. Não verificamos que sua API de mapas use o mesmo validador do editor. Manter o layout como estado transitório fora do documento está proposto em sua documentação, não implementado. |
Que a conformidade com os invariantes possa ser verificada com testes comuns a todas as aplicações, começando pela correspondência (I) e pela consistência (IV), hoje as mais difíceis de demonstrar.
Relação com SyncThinkDesign
AAA3 e SyncThinkDesign têm identidades independentes. STD estuda e propõe a evolução contínua de sistemas por meio de processos sincronizados que se influenciam reciprocamente; o AAA3 aplica alguns desses princípios à arquitetura de aplicações. A sincronização entre os três planos permite que as decisões de autoria, a representação estruturada e o comportamento do sistema se retroalimentem, mas a arquitetura não implementa por si só todos os princípios de STD.
Os três planos também não correspondem um a um aos quatro processos. Capturar, Idear, Executar e Otimizar podem acontecer em qualquer plano: uma pessoa ideia na interface, um modelo ideia escrevendo o documento, o motor executa, uma revisão otimiza. Forçar uma equivalência esconderia justamente o que é interessante: que os processos atravessam os planos.
| Princípio de STD | O que o AAA3 materializa | O que mais é necessário | Estado |
|---|---|---|---|
| F2 Sincronização | Os três planos atuam sobre o mesmo projeto: uma mudança no documento chega à interface e ao motor sem esperar uma fase; entre aplicações, uma mudança na fonte regenera o que a consome (I5). | Mecanismos de propagação (M5) quando intervêm várias pessoas ou aplicações. | Materializado em parte |
| F3 Evolução orgânica e contínua | O documento pode mudar por partes e ser regenerado sem refazer o resto (I4). | Um histórico do documento para acompanhar sua evolução (M1). | Materializado em parte |
| F6 Validação contínua | Onde o invariante IV se cumpre, toda escrita passa pelo mesmo validador; hoje está verificado em quatro das seis aplicações. | Critérios sobre o que verificar além da forma (M4). | Materializado onde IV se cumpre |
| F12 Design como evolução | O documento declara explicitamente o que pode mudar no sistema. | Decidir quem pode mudar o quê, e o que fica protegido (M6). | Materializado em parte |
| F4 Emergência | A execução busca reprodutibilidade; se há emergência, ela ocorre no ciclo de autoria (Q6). | Estudar como os documentos evoluem (Q1). | Aberto |
| F8 Captação permanente | Quase nada: o AAA3 não observa o mundo. | Instrumentar o uso real do sistema. | Não coberto |
| F9 e F10 Silos e mentalidade | Nada por si só. | A organização do trabalho, não a arquitetura. | Fora do escopo |
O ecossistema atual
Hoje o ecossistema tem um orquestrador e vários provedores. O orquestrador é o Experience Creator, publicado como Alterverse: um editor de experiências 3D interativas e peças audiovisuais. Um projeto do Experience Creator pode declarar os recursos de que precisa — um mundo, uma textura, uma interface, uma peça musical — como pedidos a outros provedores, cada um escrito no formato nativo do provedor. Um resolvedor, que roda no editor ou na linha de comando, os produz. Cada aplicação tem seus próprios três planos; o contrato braidata.aaa3.*.v1 conecta seus planos de execução.
| Provedor | O que faz | Operações | Estado |
|---|---|---|---|
| Scene Creator | Mundos 3D a partir de um documento de cena; exporta GLB com um kernel real, sem navegador. | scene.glb | Funciona; aceita entradas encadeadas (texturas embutidas no GLB). |
| SketchLab | Sketches generativos p5.js definidos por braidata.sketchlab.v1, com parâmetros, semente e lotes. | sketch.html, sketch.png, sketch.validate | Funciona. sketch.png exige Chromium no servidor; sem ele, responde 501. |
| FrameLab | Interfaces HTML (HUD, menus) com exportação idêntica à do navegador. | ui.html | Funciona; executa os módulos de exportação reais no jsdom. |
| Soundcrafter | Música a partir de um projeto braidata.alsopack.v2: áudio WAV e partitura. | audio.render | Funciona com limites: em servidores sem estado, o render roda dentro da requisição, até 20 s de áudio. |
O contrato entre aplicações
Cada aplicação do ecossistema tem um formato JSON canônico e versionado. A regra de que a interface apenas edita esse documento está escrita no SketchLab, no Mapping Studio e no Experience Creator; nas demais, observa-se no código, mas não está documentada como regra.
Nenhuma aplicação precisa de um modelo de IA para funcionar, nem na execução nem no formato. Qualquer modelo pode escrever o documento de fora (chamamos isso de BYO-AI: traga sua própria IA).
Todo provedor expõe o contrato braidata.aaa3.*.v1 em /api/aaa3: GET manifest (público), POST run, GET jobs/{requestId}, GET outputs/{outputId} e PUT inputs/{sha256} para o encadeamento.
// pedido (resumido)
{
"contract": "braidata.aaa3.request.v1",
"requestId": "music",
"operation": "audio.render",
"spec": { /* documento nativo do provedor, sem reinterpretar */ },
"inputs": [{ "name": "albedo", "sha256": "…", "mimeType": "image/png" }]
}
// resultado
{
"contract": "braidata.aaa3.result.v1",
"status": "succeeded",
"diagnostics": [],
"outputs": [{ "outputId": "<sha256>", "kind": "audio", "mimeType": "audio/wav", "url": "…" }]
}Os pedidos são idempotentes. A identidade de um pedido é o hash do provedor, da operação, da especificação, dos parâmetros e do conteúdo de suas entradas: pedir duas vezes a mesma coisa devolve o mesmo resultado sem produzi-lo de novo.
Os pedidos se encadeiam por conteúdo. Uma entrada viaja como sha256; se o provedor não a tem, responde missing_inputs, o cliente a envia e tenta de novo uma vez. Se um recurso de origem muda, muda o hash de todos os pedidos que o consomem e eles são regenerados.
A aprovação humana é registrada como um pin sobre o hash aprovado. Um pedido fixado não é regenerado, nem forçando a execução; se sua especificação mudou, o resolvedor mantém o que foi aprovado e avisa a diferença. Só uma pessoa remove um pin. É um mecanismo de governança do AAA3, não um princípio de SyncThinkDesign.
As aplicações buscam reprodutibilidade (invariante V), não determinismo absoluto. No SketchLab, a semente controla randomSeed, noiseSeed e Math.random, e testes de ponta a ponta verificam que o mesmo documento produz a mesma imagem; no FrameLab, um teste verifica que o mesmo pedido produz o mesmo resultado. Nas demais, a reprodutibilidade é parcial.
Como é construído
Boa parte do código do AAA3 é escrita com agentes de programação de IA, sob direção e revisão humanas; o histórico de cada repositório registra isso commit a commit. Mencionamos isso porque faz parte do experimento: se H5 for verdadeira, é em projetos como este que deveria aparecer primeiro. E porque deixa uma pergunta que ainda não sabemos responder bem: como atribuir o trabalho de forma justa quando parte dele é produzida por um agente.
O que o AAA3 não resolve
- Não capta sinais do mundo. As observações ainda são inseridas à mão.
- A correspondência entre interface e documento (invariante I) não é testada automaticamente em nenhuma aplicação.
- Os armazenamentos de saídas são memórias limitadas de cada provedor; uma instância nova pode ter esquecido um resultado e o cliente precisa pedi-lo de novo.
- Os repositórios são privados. Este site documenta a arquitetura e o contrato para que possam ser discutidos, mas o código ainda não pode ser auditado de fora.
Publicar a especificação do AAA3 — os três planos, os invariantes e o contrato braidata.aaa3.*.v1 — como um documento autônomo e versionado, para que alguém possa construir uma aplicação conforme sem ler o nosso código.
Referências
- Kleppmann, M., Wiggins, A., van Hardenberg, P., & McGranaghan, M. (2019). Local-first software: You own your data, in spite of the cloud. Onward! 2019, ACM.
- Morris, K. (2016). Infrastructure as Code: Managing Servers in the Cloud. O'Reilly Media.
Histórico
| Versão | Data | Mudança |
|---|---|---|
| 0.1 | 2026-10-27 | Descrição do ecossistema como AI-Addressable Application: contrato, provedores e encadeamento. |
| 0.2 | 2026-10-28 | O AAA3 passa a ser apresentado como uma implementação de SyncThinkDesign com identidade própria. |
| 0.3 | 2026-10-28 | Definição formal: AI-Addressable Application — Three-Plane Architecture. Três planos, seis invariantes com seu estado, garantias em relação a uma aplicação tradicional e matriz de conformidade de seis aplicações. Sem mudanças de contratos nem de identificadores. |