em construção

Forja — assets 3D interativos pra jogos, criados por IA com validação

Formato declarativo que compila pra glTF pronto pra Three.js, Godot e Unity — portas que abrem, luzes que acendem, colisores. Agentes de IA criam assets via MCP num loop medir → ver → corrigir

Criador e desenvolvedor
Forja — assets 3D interativos pra jogos, criados por IA com validação

🚧 Em construção — o núcleo (formato, validação, render e export) já roda de ponta a ponta, com 20 templates paramétricos. Ainda não tem versão pública.

Fazer um asset 3D simples pra jogo — uma porta que abre, uma luminária que acende, uma cadeira com colisão — exige saber modelar, rigar, animar e exportar do jeito que cada engine espera. A Forja junta tudo isso num formato declarativo (.forja.json) que compila pra glTF pronto pra Three.js, Godot e Unity, com estados, animações, luz e colisores já embutidos.

Ela tem duas portas de entrada sobre o mesmo núcleo:

  • Agentes de IA (Claude Code, Cursor…) conectam no MCP da Forja e criam assets validados: o agente gera, mede, vê o render e corrige em loop.
  • Editor web pra quem está começando no 3D: escolher um template, ajustar, criar estados e exportar.

O insight que reorganizou o projeto

A primeira versão deixava a IA escrever o JSON do asset direto. Ao gerar o primeiro objeto complexo (um carro) sem ver o resultado, ficou claro o problema: modelar às cegas não produz asset bom — nem por IA, nem por humano. O que resolve não é caprichar no prompt, é fechar o loop ver → corrigir.

Isso virou a regra de ouro do fluxo:

  • Medição antes da imagem. O render engana (ângulo, oclusão); a medição não. measure_asset confere dimensões, base no chão e valida peça por peça: peça solta, objeto separado do resto, junta que atravessa o corpo ao abrir e orçamento de triângulos — cada aviso diz a peça, a vizinha mais próxima e a distância.
  • Render headless. O servidor renderiza sem navegador aberto (WebGL headless), inclusive uma folha com iso/frente/lado/topo, a tira de transição de um estado e os quadros de um clipe de animação. É isso que deixa o agente "enxergar".
  • Varredura de clipes quadro a quadro. Uma animação pode estar certa no começo e no fim e atravessar o corpo no meio; a validação percorre o clipe e aponta o instante, o grupo e a peça atingida.

O que um asset tem

Formaprimitivas (incl. roundedBox), perfis (lathe, prism com bevel), CSG, subdivisão, arrays/espelho, texturas procedurais
Estilotemas de cor (escritorio, medieval, neon, natureza) com papéis e acabamentos — mesmo tema, mundo coeso
Interatividadejuntas (dobradiça/trilho) com pivô na dobradiça física, estados (fechado/aberto, acesa/apagada), clipes de keyframes, luz real (KHR_lights_punctual), pontos de anexação e colisores
Exportpresets por engine, LOD e manifest.json

Tudo vira convenção glTF padrão: os demos de Three.js e Godot 4 carregam os .glb com estados, animações, luz e colisores funcionando sem código por asset.

Templates paramétricos

O pacote casa/escritório tem 20 templates (porta, janela, armário, geladeira, sofá, cama, luminária…), cada um com 4–6 parâmetros. A suíte de testes compila, mede e valida toda combinação de parâmetros — qualquer variação sai sem peça solta e com a porta abrindo no sentido certo. Pro agente, isso muda o jogo: em vez de modelar do zero, ele parte do template e ajusta.

Arquitetura

  • Um núcleo, várias portas. O agente (via MCP) e o editor (via HTTP) usam o mesmo compilador e a mesma validação — o que passa num, passa no outro.
  • Toda edição é uma operação (apply_ops): gizmo, inspector e IA emitem as mesmas ops sobre IDs estáveis, base pra histórico, estados e animação.
  • CSG com manifold pra interiores ocos de verdade (gaveta que guarda, lixeira que recebe), em vez de só marcar um volume.
  • npx forja init prepara qualquer projeto: cria a pasta de assets, registra o MCP no .mcp.json e deixa as instruções pro agente — ele lê o guia pelo próprio MCP, sem precisar do repositório.

Editor

O editor web é dividido em modos — Biblioteca, Customizar, Animar e Exportar — e cada um mostra só as ferramentas dele. Tem gizmo com atalhos estilo indústria, editor 2D de perfis (arrastar, inserir e remover pontos de lathe/prism), timeline com keyframes (K grava, espaço toca, scrub, curva por trecho), modo pose (clique no membro, limites de articulação respeitados, espelhar, biblioteca de poses) e exportação com validação antes de gerar o arquivo.

Próximos passos

  • Formato nativo .forja com histórico persistente de operações (undo entre sessões) e snapshots nomeados.
  • Mais pacotes temáticos de templates, além de casa/escritório.
  • Uma versão pública pra rodar em qualquer projeto com npx forja.
Ficha técnica
Papel
Criador e desenvolvedor
Stack

TypeScript · Three.js · glTF · MCP · Fastify · React · manifold-3d

Status
em construção

Código privado — o case detalha a arquitetura e as decisões técnicas.

Curtiu o projeto?

Se quiser conversar sobre esse projeto, arquitetura ou uma oportunidade de trabalho, é só me chamar.

contato@racoelho.com.br