Editor 3D experimental & Construtor visual de sites 3D interativos
Next.js · React Three Fiber · Electron · Rapier3D · NVIDIA NIM
Editor de cena e modelagem 3D com viewport interativo, primitivas, import/export GLB/GLTF, materiais PBR com texturas, modelagem poligonal (Draw Polygon, Knife, Edge Loop/Ring, Bridge, Fill, Inset), edit mode (vertices/arestas/faces), sculpt com 10 modos e fallback de pressao para mouse, fisica Rapier3D, timeline com keyframes, behaviors procedurais, efeitos de particulas, fluid, scripts JavaScript por objeto, geracao de malhas via IA (NVIDIA NIM), layers, imagens de referencia, asset browser (Poly Haven), atalhos de produtividade e app desktop Windows.
Construtor visual de sites 3D interativos com Page Builder drag-and-drop, Modo Dados (System Builder), Interaction Engine, Preview com metricas reais e Export Engine (Next/React/Vite/HTML standalone com Three.js CDN).
| 3D Editor | Construtor Web 3D |
|---|---|
| Viewport interativo com orbita | Page Builder drag-and-drop |
| Modelagem poligonal completa | System Builder visual (dados) |
| Sculpt com 10 modos | Interaction Engine (triggers + actions) |
| Fisica Rapier3D em tempo real | Preview com metricas reais (FPS, draw calls, heap) |
| Timeline com keyframes exportaveis | Export: Next / React / Vite / HTML standalone |
| Materiais PBR + texturas | Multi-pagina com rotas editaveis |
| IA gera malhas via prompt (NVIDIA NIM) | ZIP com assets reais organizados |
| Scripts JS por objeto | Breakpoints responsivos (base/tablet/mobile) |
- Destaques
- Recursos
- Virada para Construtor Web 3D
- Analise para Editor Profissional
- Stack
- Como Rodar
- Desktop
- Scripts
- Estrutura
- Fluxo de Uso
- Modelagem
- Modelagem Poligonal
- Sculpt
- Fisica
- Animacao
- Behaviors
- Efeitos
- Scripts por Objeto
- Iluminacao
- Atalhos
- Modelos
- Agente IA (NVIDIA NIM)
- FAQ
- Troubleshooting
- Roadmap
- Contribuindo
- Projeto inicia em branco, sem objetos pre-carregados
- Viewport 3D com
@react-three/fiber,@react-three/dreie controles de orbita - Scene Graph para selecionar, ocultar, bloquear e remover objetos
- Painel de propriedades com nome, tipo, visibilidade, posicao, rotacao e escala
- Context menu no Scene Graph para acoes rapidas
- Layout responsivo para desktop, tablet e mobile
- Tutorial integrado com spotlight guiado
- Modos de viewport: texturizado, solido, wireframe, vertices, poligonos e primitiva
- Layers com visibilidade, bloqueio e cor
- Imagens de referencia para modelagem
- Ferramentas: Select, Mover, Girar, Escalar, Editar, Sculpt, Draw Polygon e Knife
- Gizmo com
TransformControlspara transforms e selecoes de malha - Primitivas: cubo, esfera, cilindro, cone, toro e plano
- Texto 3D com depth e bevel
- Importacao de SVG com extrusao
- Modelagem de primitivas com dimensoes e segmentos configuraveis
- Conversao de primitivas e modelos importados para malha editavel
- Importacao de modelos
.glbe.gltf - Exportacao da cena editada em
.glb - Asset Browser integrado (Poly Haven)
- Undo/Redo por snapshots
- Copiar, colar, duplicar e apagar objetos por atalhos
- Editor de material com cor, emissive, metalness, roughness e opacidade
- Textura difusa, normal map, roughness map e displacement map
- Texturas carregadas no viewport e preservadas no export GLB
- Repeticao, offset e rotacao de textura
- Multi-materiais por face
- Selecao e movimento de vertices, arestas e faces (multipla para vertices/faces)
- Modos de selecao: Click, Box (caixa arrastavel) e Lasso (laco livre), com preview visual em tela
- Hover preview de vertices, arestas e faces antes de clicar
- Operacoes: extrudar face, subdividir face, apagar face, soldar vertices, bevel de aresta, loop cut, booleanos (union/subtract/intersect), bridge edges, fill face, inset face, flip normals, recalculate outward normals, smooth/flat shading, merge by distance, edge loop select e edge ring select
- Snap to vertex/edge/face durante transform de sub-elemento
- Multi-materiais por face em lote (selecao multi-face + atribuicao)
- Estrutura interna
PolygonMeshcom vertices/edges/faces explicitos (IDs + adjacencia) para operacoes topologicas - Conversao bidirecional entre
PolygonMesheEditableMesh(Three.js BufferGeometry)
- Pincel para amassar, puxar, agarrar, inflar, suavizar, clay, crease, flatten, pinch e mask.
- Falloff suave, esferico, afiado e linear.
- Controles de raio e forca.
- Fallback de pressao para mouse baseado em velocidade do cursor (mouse rapido = menos forca, mouse lento = mais forca).
- Smoothing default 0.35 para estabilizar strokes de mouse.
- Simetria X, front faces only, accumulate, spacing e estabilizador de caneta configuraveis.
- Integracao com
@dimforge/rapier3d-compat. - Corpos dinamico, estatico e cinematico.
- Colliders: box, sphere, capsule, cylinder, mesh e convex hull.
- Massa, friccao, restituicao e damping.
- Triggers e lock de eixos.
- Timeline com keyframes de transform.
- Interpolacao: hold, linear e ease.
- FPS, start/end frame e playhead configuraveis.
- Pular, andar, acelerar, rolar, gravidade, bolha e deformar massa.
- Parametros por behavior.
- Fogos, fogo, fumaca, brilho, luz e superficie liquida (fluid).
- Cor, intensidade, tamanho e count por efeito.
- Motor de scripts JavaScript por objeto.
- API com
THREE,position,rotation,scale,deltaeelapsed. - Logs no console com prefixo
[Script].
- Agente NVIDIA NIM para gerar malhas 3D (vertices + faces) via prompt.
- Decomposicao automatica em varias partes com hierarquia via parentName.
- Retry automatico quando a cena fica simples demais.
- Compactacao de layout para manter a composicao centralizada.
- Subdivisao e suavizacao procedural das malhas geradas.
O produto deixou de ser somente um editor de cena/modelagem 3D e passou a ter uma primeira arquitetura de construtor visual de sites 3D interativos. O Modo Cena continua sendo o nucleo 3D. A nova camada usa essa cena dentro de paginas, heroes, secoes, backgrounds WebGL e componentes web exportaveis.
- Navegacao principal por modos:
Cena: mantem o editor 3D existente, sem recriar ou remover funcionalidades.Pagina: monta uma pagina visual usando elementos web e a cena 3D atual, com drag-and-drop e reparenting.Dados: inicia o System Builder com modelo de dados visual para colecoes, campos, validacoes e queries.Interacoes: conecta elementos HTML da pagina com objetos/luzes/camera da cena.Preview: executa a experiencia como site, com desktop/tablet/mobile e metricas reais (FPS, draw calls, triangulos, resolucao de texturas, heap JS, tamanho de assets).Exportar: gera arquivos reais para projetos web, com ZIP incluindo assets organizados.
- Novo estado central em
src/store/experienceStore.ts. - Persistencia de projeto em JSON versionado:
- schema
ProjectExperiencev1 - arquivo
.web3d.json - snapshot de pagina, cena, materiais, layers, imagens de referencia, timeline, interacoes e schema de dados
- catalogo de assets referenciados por cena, materiais, pagina e referencias
- autosave em localStorage (debounce 4s) + historico de versoes (ate 24 entradas)
- migracoes de schema entre versoes
- schema
- Botoes de
Salvar,CarregareHistorico(restaurar autosave/versao) no toolbar dos modos web. - Reordenacao manual de elementos no Project Tree com mover para cima/baixo entre irmaos.
- Drag-and-drop com reparenting na arvore de pagina (indicadores before/after/inside).
- Drag-and-drop corrigido para elementos aninhados, respeitando pai e indice real do alvo.
- Edição direta no canvas do Modo Pagina:
- textos
- labels de botoes
- titulo/body de cards
- marca da navbar
- texto do footer
- Guias e handles no canvas do Modo Pagina:
- alca para mover o elemento selecionado
- handles para redimensionar largura, altura e canto inferior direito
- snapping de 8px em movimento/redimensionamento
- linhas-guia de centro e leitura visual de largura x altura
- Atalhos no canvas de pagina:
Delete/Backspaceremove o elemento selecionadoCtrl+Dduplica ao lado do elemento original- setas movem o elemento selecionado via
top/left Shift + setasmove em passos maiores
- Logica de multiplas paginas/rotas:
ProjectExperienceagora preservapages[]eactivePageId- cada pagina tem
path,title,descriptione flagprotected - Project Tree permite criar, selecionar, duplicar, remover e editar metadados de paginas
- a pagina ativa alimenta canvas, propriedades, preview e export
- o Preview intercepta links internos para rotas cadastradas e troca a pagina ativa sem recarregar o editor
- Painel de propriedades web expandido com edição por breakpoint (
base,tablet,mobile) e controles de position, top/left/right/bottom, flex/grid, transform, background image, border, overflow, object fit, opacity e transition. - Novos modelos de dados para:
ProjectExperiencePageDocumentPageNodeInteractionDocumentProjectSettingsDataSchemaDataCollectionDataFieldSavedQuery
- Nova arquitetura em camadas:
src/lib/page-builder/src/lib/data-model/src/lib/interaction-engine/src/lib/preview-runtime/via componentes runtime do editorsrc/lib/export-engine/src/lib/template-engine/src/lib/scene-engine/
- Modo Pagina com elementos iniciais:
- navbar
- sections
- containers
- textos
- botoes
- cards
- imagens
- videos
- footer
sceneCanvasvinculado a cena atual
- Arvore de projeto hibrida:
Page: elementos web.Scene: objetos 3D existentes.
- Painel de propriedades contextual:
- Elemento web: nome, conteudo, layout, estilo visual, responsividade.
- Interacao: evento, origem, alvo, acao, parametros, duracao e easing.
- Objeto 3D selecionado: reaproveita o painel 3D existente.
- Modo Interacoes com estrutura baseada em:
- trigger
- source
- action
- target
- params
- duration/easing
- Acoes de runtime ja conectadas no preview:
- mover objeto 3D
- rotacionar objeto 3D
- escalar objeto 3D
- alterar cor/material
- alterar opacidade
- ligar/desligar luz
- mover camera por scroll
- mostrar/esconder elemento HTML
- trocar texto
- abrir modal simples
- navegar para link
- Triggers ja previstos no modelo:
- page load
- click
- hover
- mouse move
- scroll
- section enter
- section leave
- double click
- focus
- blur
- Modo Preview:
- desktop/tablet/mobile
- scroll real
- hover/click/focus basicos
- metricas reais em tempo real: FPS, draw calls, triangulos, geometrias, texturas GL, vertices, objetos, luzes, tamanho real de assets (fetch), resolucao de texturas (largura x altura), heap JS usado/total
- alertas de budget/performance baseados em medicoes reais (draw calls > 120, textura > 2048px, assets > 20MB, FPS < 30)
- Export Engine:
- Next.js
- React
- Vite
- HTML/CSS/JS puro (runtime standalone com Three.js via CDN, sem build)
- JSON
- ZIP com assets reais organizados em
public/models,public/textures,public/images,public/videos(remapeamento automatico de URLs no JSON exportado)
- Runtime de animacao: keyframes da Timeline sao exportados e reproduzidos no runtime (Next/React/Vite e standalone HTML) com interpolacao hold/linear/ease
- Estruturas exportadas:
scene-data.jsonpage-data.jsonpages-data.jsoninteractions-data.jsondata-schema.jsonquando o projeto tem schema de dadosschema.prismaoudatabase-schema.tsquando o ORM alvo e Prisma/Drizzle- componentes
SceneCanvas(comAnimationPlayer),PageExperience,Hero3Desections main.jsstandalone com Three.js + OrbitControls + GLTFLoader via CDN
- Autosave e historico de versoes do
ProjectExperienceem localStorage (ate 24 entradas, com restauracao via toolbar) - Drag-and-drop e reparenting no Page Builder (com indicadores visuais de posicao before/after/inside)
- System Builder / Fase 1:
- tipos centrais em
src/lib/data-model/types.ts - defaults e clonagem de schema em
src/lib/data-model/defaults.ts - store Zustand em
src/store/dataModelStore.ts - Modo
Dadosno editor - editor visual de colecoes, campos, validacoes, relacoes e queries salvas
- persistencia do
dataSchemano.web3d.json, autosave e historico - exportacao do schema em JSON e geracao inicial para Prisma/Drizzle em
src/lib/export-engine/generateSchema.ts
- tipos centrais em
- Tutorial guiado expandido para o construtor web:
- spotlight especifico para Modo Pagina, paginas/rotas, Project Tree, canvas, handles, propriedades e breakpoints
- guia dedicado para Modo Dados com colecoes, campos, variaveis, queries e impacto nos componentes conectados
- passos que mudam automaticamente entre Pagina, Dados, Interacoes e Preview
- Templates iniciais:
- Hero 3D texto/modelo
- Hero background WebGL
- Landing produto 3D
- Portfolio 3D
- Institucional tech
- Educacional interativa
- Showcase GLB
- Card 3D interativo
- Background particulas
- Background superficie liquida
- Pagina jogo indie
O primeiro runtime do Modo Pagina estava simples demais e nao respeitava a cena como o Modo Cena. Depois disso, o ExperienceSceneCanvas foi corrigido para renderizar melhor a cena real:
- Primitivas respeitam dimensoes/segmentos de
geometry. editableMeshagora renderiza no Modo Pagina/Preview.- Materiais PBR usam:
- cor
- emissive
- metalness
- roughness
- opacidade
- textura difusa
- normal map
- roughness map
- displacement map
- repeat/offset/rotation de textura
- Modelos GLB/GLTF importados por hierarquia usam submalhas reais, em vez de caixas fallback.
- Subnos GLTF preservam material original quando nao ha override.
- Overrides de material/textura do editor sao aplicados no runtime web.
- Texto 3D usa
TextGeometry, depth e bevel. - SVG extrudado tambem entra no runtime web.
- Luzes da cena passaram a ser respeitadas:
- point
- spot
- directional
- ambient
- cor
- intensidade
- distance/decay
- angle/penumbra
- shadow bias/radius
- Luzes padrao do preview so aparecem se a cena nao tiver nenhuma luz visivel.
- Interacoes de cor tambem atingem luzes.
toggleLightagora altera luzes no runtime.
npx eslintfocado nos arquivos novos/alterados.npx tsc --noEmit.npm run build.- Teste visual via Chrome headless/CDP em
/editor. - Pixel check WebGL no canvas de Pagina/Preview.
- Checagem mobile do Preview para evitar colisao entre texto, CTA e canvas.
- Validacao incremental apos save/load, metricas e reordenacao:
npx eslint src\components\Editor3D\ExperienceToolbar.tsx src\components\Editor3D\ExperienceProperties.tsx src\components\Editor3D\ProjectTree.tsx src\lib\project-experience\persistence.ts src\lib\preview-runtime\metrics.ts src\lib\page-builder\tree.ts src\store\experienceStore.ts src\store\timelineStore.tsnpx tsc --noEmit
- Fase 1: Data Model Designer com
DataSchema, colecoes, campos, validacoes, relacoes e queries salvas. - Persistir
dataSchemaem save/load, autosave/historico e exportardata-schema.json. - Gerar schema inicial para Prisma e Drizzle.
- Fase 2: componentes de pagina conectados a dados (
dataTable,dataForm,dataList,dataChart,dataStat,pageRoute). - Fase 2: sistema de variaveis e binding
{{var}}no runtime da pagina. - Fase 2: acoes de interacao para
createRecord,updateRecord,deleteRecord,loadCollection,runQuery,setVariable,incrementVariable,toggleVariable,showToast,setLoadingesetError. - Fase 2: geracao inicial de API routes por colecao (
generateApiRoutes.ts) com handlers CRUD para Next. - Fase 2 pendente: persistencia real em banco nos componentes de dados do editor/preview; hoje o preview usa registros em memoria e dados de exemplo.
- Fase 2 pendente: ligar
dataFormexportado aos API routes gerados fora do preview standalone. - Fase 2 pendente: resolver
{{record.campo}}em todos os contextos de lista/tabela/export com a mesma engine do editor. - Fase 3: Workflow Engine com triggers, actions, condicoes, delay, email/webhook/script e execucao visual.
- Fase 3: Formula Engine para expressoes calculadas e binding de dados.
- Fase 3: validacao server-side com Zod gerada a partir do
DataSchema. - Fase 4: Auth visual com roles, permissions, paginas publicas/protegidas e guards reais.
- Fase 4 parcial: multipage no editor com
pages[],activePageId, rotas, metadados e navegacao interna no Preview. - Fase 4 pendente: parametros dinamicos de rota, SEO completo por pagina, historico/back do navegador sincronizado com o store e guards de autenticacao reais.
- Fase 5: export full-stack com
package.json, Prisma/Drizzle completo, migrations, seed,.env.example, Docker opcional e instrucoes por target. - Fase 5: deploy adapters para Vercel/Netlify/Node self-hosted.
- Reaproveitar mais codigo do renderer do
Canvas3Dsem carregar ferramentas de edicao. - Garantir paridade visual 1:1 para todos os tipos de objeto (effects, behaviors, flat shading, multi-materiais).
- Renderizar efeitos no runtime web:
- fireworks
- fire
- smoke
- sparkle
- light glow
- fluid
- Rodar behaviors no Preview/Pagina quando fizer sentido.
- Rodar scripts customizados exportaveis com sandbox/API clara.
- Suportar physics runtime no Preview como experiencia final, nao como ferramenta de edicao.
- Preservar imagens de referencia quando forem usadas como elementos de experiencia.
- Testar GLB/GLTF com multi-material complexo, skins, animations e morph targets.
- Resolver edge cases de texturas remotas com CORS, object URLs e assets temporarios.
- Implementar
Conditionde verdade. - Implementar
section enteresection leavecomIntersectionObserver. - Separar actions de HTML, camera, luz, material, textura e script em handlers modulares.
- Melhorar
toggleLightpara suportar toggle real, restore por hover e intensidade animada. - Adicionar easing real por action.
- Adicionar timeline/animation mixer para iniciar, pausar e resetar animacoes GLTF.
- Suportar troca de textura por interacao.
- Suportar scripts customizados exportaveis sem depender do editor.
- Criar debug visual das interacoes.
- Drag-and-drop para montar e reordenar elementos.
- Reparenting na arvore (com indicadores visuais before/after/inside).
- Selecao direta mais precisa no canvas de pagina.
- Guias, snapping e handles para layout web.
- Editor de breakpoints mais completo: criar, renomear, remover breakpoints e ajustar largura via slider no painel de propriedades.
- Gerenciamento de multiplas paginas/rotas no Project Tree.
- Tutorial guiado com spotlight para Page Builder, rotas, propriedades, Dados, campos e queries.
- Estados hover/active/focus para elementos web.
- Sistema de componentes reutilizaveis.
- Formularios, modais reais e menus.
- Camadas/z-index com visualizacao clara.
- Autosave e historico de versoes do
ProjectExperience. - Diff visual do documento de pagina.
- Simular device frames sem depender do tamanho real da janela.
- Mostrar tamanho real de assets (fetch + content-length).
- Alertar modelos pesados por contagem de vertices/triangulos.
- Alertar texturas grandes por resolucao real.
- Medir draw calls, memoria e FPS com mais precisao (via
gl.infoeperformance.memory). - Navegar entre paginas cadastradas quando botoes/menu items apontam para uma rota interna.
- Sincronizar botao voltar/avancar do navegador com
activePageId. - Testar preload/loading da cena.
- Adicionar overlay de erros de runtime.
- Gerar ZIP real do projeto exportado (formato .zip valido, sem dependencias externas).
- Copiar e organizar assets reais em:
public/modelspublic/texturespublic/images
- Resolver assets importados via
blob:antes da exportacao. - Gerar
package.json,tsconfig, configs e instrucoes por target. - Exportar React/Next/Vite com runtime Three.js completo e player de animacao.
- Exportar HTML/CSS/JS com carregamento Three.js funcional (standalone via CDN).
- Exportar
pages-data.jsonjunto dopage-data.jsonativo. - Gerar rotas reais por pagina nos targets Next/React/Vite/HTML, em vez de exportar somente a pagina ativa como entrada principal.
- Gerar componentes Tailwind quando
settings.tailwind = true. - Preservar scripts customizados em arquivos separados.
- Exportar interacoes como engine standalone (no main.js do HTML exportado).
- Exportar animacoes (keyframes) e cameras com dados completos.
- Transformar templates em presets editaveis com thumbs.
- Melhorar copy/layout de cada template.
- Criar cenas iniciais especificas por template.
- Adicionar interacoes especificas por template.
- Validar responsividade de todos os templates.
- Testes unitarios para
page-builder,interaction-engine,export-engineetemplate-engine. - Testes de regressao visual do Preview.
- Testes com GLB real, textura real, luz real e malha editada.
- Testes de exportacao abrindo o projeto gerado fora do editor.
- Separar artefatos
release/e.next/do lint global.
O editor possui uma base solida para manipulacao 3D, mas para atingir o nivel de editores profissionais (Blender, Unity, Unreal, Maya), as seguintes areas precisam de desenvolvimento:
| Funcionalidade | Descricao | Impacto |
|---|---|---|
| Save/Load de Projeto | Formato .e3d com compressao e versionamento |
Essencial para fluxo de trabalho real |
| Export multi-formato | FBX, OBJ, USD, STL, DAE | Compatibilidade com outros softwares |
| Import multi-formato | FBX, OBJ, USD, 3DS | Importar assets de diversas fontes |
| Node Editor (Materiais) | Sistema de nos para shaders PBR e custom | Criacao de materiais complexos |
| Editor de UVs | Unwrapping, painting, alinhamento | Texturizacao profissional |
| Rigging/Skinning | Bones, IK/FK, weight painting | Animacao de personagens |
| Funcionalidade | Descricao | Impacto |
|---|---|---|
| Modifiers | Mirror, Array, Solidify, Subdivision, Decimate | Modelagem nao-destrutiva |
| Constraints | Look At, Copy Transform, Limit Distance | Animacao e controle procedural |
| Particle System | Editor visual com curvas, colisao, sub-emitters | Efeitos visuais complexos |
| Post-Processing | Bloom, SSAO, DOF, Motion Blur, Tonemap | Qualidade visual final |
| Lightmap Baking | Baking de luz estatica | Performance em cenas grandes |
| Terrain Editor | Heightmap, sculpting, texturizacao | Criacao de mundos |
| Funcionalidade | Descricao | Impacto |
|---|---|---|
| Fluid Simulation | Liquidos, gases, SPH/FLIP | Efeitos especiais |
| Cloth Simulation | Tecidos, bandeiras, roupas | Realismo fisico |
| Hair/Fur System | Cabelos, pelos, grama | Personagens realistas |
| NavMesh/Pathfinding | Navegacao para IA | Games e simulacoes |
| Plugin System | API para extensoes | Extensibilidade |
| Multi-user Editing | Edicao colaborativa | Trabalho em equipe |
| Recurso | Este Editor | Blender | Unity | Unreal |
|---|---|---|---|---|
| Modelagem poligonal | ✅ | ✅ | ⬜ | ⬜ |
| Sculpt | ✅ | ✅ | ❌ | ❌ |
| Node Materials | ❌ | ✅ | ✅ | ✅ |
| Rigging/Animation | Basico | ✅ | ✅ | ✅ |
| UV Editor | ❌ | ✅ | ✅ | ✅ |
| Physics | ✅ | ✅ | ✅ | ✅ |
| Particle System | Basico | ✅ | ✅ | ✅ |
| Terrain | ❌ | ✅ | ✅ | ✅ |
| Post-Processing | ❌ | ✅ | ✅ | ✅ |
| Scripting | ✅ | ✅ | ✅ | ✅ |
| VR/AR | ❌ | ❌ | ✅ | ✅ |
| Web Builder 3D | ✅ | ❌ | ❌ | ❌ |
| Export HTML Standalone | ✅ | ❌ | ❌ | ❌ |
| Stack | Tecnologia |
|---|---|
| Framework | Next.js 16 |
| UI | React 19 · Tailwind CSS 4 |
| Linguagem | TypeScript 5 |
| 3D | Three.js r184 · React Three Fiber · Drei |
| Fisica | Rapier3D (@dimforge/rapier3d-compat) |
| Estado | Zustand |
| Icones | Lucide React |
| Performance | three-mesh-bvh |
| Desktop | Electron 35 · electron-builder |
| IA | NVIDIA NIM (nemotron-70b · llama-3.1-8b) |
Instale as dependencias:
npm installInicie o servidor de desenvolvimento:
npm run devAbra no navegador:
http://localhost:3000
O editor tambem roda como app desktop Windows via Electron.
Configurar build desktop
Gere o instalador Windows:
npm run distPara Windows, macOS e Linux:
npm run dist:allOs instaladores sao gerados em release/.
Servir instalador pelo app
Defina no .env:
# Opcao 1: URL externa (GitHub Releases, S3, Google Drive)
INSTALLER_URL=https://github.com/DinDja/Editor-ThreeJS/releases/download/App/Editor.3D-1.0.0-setup.exe
# Opcao 2: arquivo local (self-hosted)
INSTALLER_DIR=./release
INSTALLER_NAME=Editor.3D-1.0.0-setup.exeO botao Desktop na toolbar dispara o download pela rota /api/download/desktop.
| Comando | Descricao |
|---|---|
npm run dev |
Inicia o app em modo desenvolvimento |
npm run build |
Gera a build de producao |
npm run start |
Serve a build de producao |
npm run lint |
Executa o ESLint |
npm run icons |
Gera icones do app |
npm run electron |
Abre o app no Electron (requer build) |
npm run electron:dev |
Next dev na porta 3456 para Electron |
npm run dist |
Build + instalador Windows x64 |
npm run dist:all |
Build + instaladores Win/Mac/Linux |
Ver arvore de arquivos
src/
app/
layout.tsx
page.tsx
globals.css
api/
ai/generate/route.ts
assets/polyhaven/
assets/proxy/
download/desktop/route.ts
models/route.ts
components/
Editor3D/
AiPromptModal.tsx
AssetBrowserModal.tsx
Canvas3D.tsx
CollapsibleSection.tsx
ContextMenu.tsx
DrawPolygonOverlay.tsx
EditorModeBar.tsx
EditorShortcuts.tsx
ExperienceProperties.tsx
ExperienceSceneCanvas.tsx
ExperienceToolbar.tsx
ExportWorkspace.tsx
index.tsx
InteractionsWorkspace.tsx
KnifeOverlay.tsx
MaterialEditor.tsx
MeshEditOverlay.tsx
ModelingTools.tsx
PageBuilderWorkspace.tsx
PageExperience.tsx
PhysicsRuntime.tsx
PreviewWorkspace.tsx
Properties.tsx
ProjectTree.tsx
SceneGraph.tsx
Timeline.tsx
Toolbar.tsx
TransformGizmo.tsx
TutorialSpotlight.tsx
ModelViewer.tsx
lib/
aiMeshEnhancer.ts
animation.ts
behaviors.tsx
effects.tsx
export-engine/
exportExperience.ts
types.ts
zip.ts
fileOps.ts
fluid.tsx
geometryOps.ts
gltfImport.ts
interaction-engine/
meshOps.ts
nvidiaNim.ts
page-builder/
physics.ts
polygonMesh.ts
preview-runtime/
metrics.ts
project-experience/
persistence.ts
projectHistory.ts
useProjectAutosave.ts
scene-engine/
scriptEngine.tsx
template-engine/
store/
contextMenuStore.ts
editorStore.ts
experienceStore.ts
historyStore.ts
initialScene.ts
materialStore.ts
physicsStore.ts
polygonMeshStore.ts
previewStatsStore.ts
sceneStore.ts
sceneTree.ts
timelineStore.ts
types.ts
Add / Import GLB / Gerar IA
│
▼
Selecionar objeto (viewport ou Scene Graph)
│
▼
Transformar ── Mover · Girar · Escalar
│
▼
Editar Properties (transforms, material, modelagem)
│
├──▶ Edit Mode (vertices / arestas / faces)
├──▶ Draw Polygon (desenhar poligonos do zero)
├──▶ Knife (cortar faces interativamente)
├──▶ Sculpt (pincel)
├──▶ Fisica / Behaviors / Scripts / Efeitos
└──▶ Animar (Timeline + keyframes)
│
▼
Exportar cena → .glb
- Use
Addpara inserir uma primitiva,Importarpara carregar.glb/.gltf, ouGerar IApara criar malhas via prompt. - Selecione um objeto no Scene Graph ou diretamente no viewport.
- Use Mover, Girar e Escalar para transformar o objeto.
- Edite transforms, modelagem e material no painel Properties.
- Use
Editarpara selecionar vertices, arestas ou faces e mover a selecao com o gizmo. - Use
Draw Polygonpara desenhar poligonos clicando no viewport e fechando faces. - Use
Knifepara cortar faces interativamente com preview de linha. - Use
Sculptpara deformar a malha com pincel. - Aplique fisica, behaviors, efeitos ou scripts conforme necessario.
- Crie keyframes na Timeline para animar objetos.
- Use
Exportarpara baixar a cena atual como.glb.
Modo Cena
│
▼
Criar/importar cena 3D
│
▼
Modo Pagina
│
▼
Criar hero · sections · cards · textos · botoes
│
▼
Inserir Scene Canvas na pagina
│
▼
Modo Interacoes
│
▼
Conectar HTML → objeto / luz / camera 3D
│
▼
Modo Preview
│
▼
Testar desktop · tablet · mobile
│
▼
Modo Exportar
│
▼
Gerar React / Next / Vite / HTML + JSON
- Monte a cena no
Modo Cena. - Va para
Modo Pagina. - Escolha um template ou adicione secoes manualmente.
- Insira
3D Scene Canvasdentro de uma section/hero. - Adicione textos, botoes, cards, imagens, videos, navbar e footer.
- Va para
Modo Interacoes. - Crie triggers como hover, click, mouse move ou scroll.
- Escolha um alvo: elemento HTML, objeto 3D, luz, camera ou cena atual.
- Teste no
Modo Preview. - Ajuste responsividade e performance.
- Gere os arquivos no
Modo Exportar.
Edit Mode
O modo Editar converte primitivas e modelos importados para uma malha editavel. Em modelos importados, a geometria e achatada em uma malha unica para permitir edicao direta.
No painel Modelagem:
- Vertices: seleciona pontos individuais; use Shift para selecao multipla.
- Edges: seleciona arestas (atalho
2); use Shift para selecao multipla. - Faces: seleciona triangulos da malha; use Shift para selecao multipla.
- Extrudar: cria volume a partir da face selecionada.
- Subdividir: divide uma face selecionada em triangulos menores.
- Soldar: junta vertices selecionados no centro da selecao.
- Bevel Edge: chanfra uma aresta selecionada criando novos vertices e faces.
- Loop Cut: corta todas as arestas paralelas a selecionada inserindo midpoints.
- Boolean: union, subtract e intersect com outro objeto da cena.
- Bridge Edges: une duas arestas selecionadas com faces.
- Fill Face: preenche uma face a partir de vertices selecionados.
- Inset Face: cria inset de uma face selecionada.
- Flip Normals: inverte a ordem dos vertices de faces selecionadas.
- Merge by Distance: funde vertices proximos por threshold.
- Delete Vertex/Edge/Face: remove o subelemento selecionado.
Modelagem de primitivas
- Duplicar o objeto.
- Criar arrays.
- Espelhar nos eixos X, Y ou Z.
- Aplicar escala na geometria.
- Aumentar ou reduzir segmentos.
- Alterar largura, altura, profundidade, raio e segmentos.
Mais segmentos deixam a malha melhor para edicao e sculpt.
Alem do Edit Mode classico, o editor tem ferramentas dedicadas para modelagem poligonal manual, inspiradas no Edit Mode do Blender.
Desenhe poligonos do zero clicando no viewport.
- Ative a ferramenta com
Pou botaoDraw Polygon(icone caneta) na toolbar. - Clique no grid XZ para criar vertices. Uma linha amarela conecta os pontos.
- Ao aproximar do 1º vertice (esfera fica verde) e clicar, a face se fecha.
- Alternativamente, pressione
Enterou clique com o botao direito para fechar. Esccancela o desenho.
Se houver um objeto de malha selecionado, a nova face e adicionada a ele. Caso contrario, um novo objeto Mesh e criado.
Corte faces interativamente com preview de linha.
- Ative com
Kou botaoKnife(icone tesoura) na toolbar. - Clique na superficie da malha para definir pontos de corte. Uma linha vermelha mostra o caminho.
- Pressione
Enterou clique com o botao direito para aplicar o corte. Esccancela.
O corte cria novos vertices nos pontos de intersecao e divide as faces atravessadas em duas.
- Edge Loop: seleciona um loop continuo de arestas a partir de uma aresta. Disponivel no
polygonMeshStore. - Edge Ring: seleciona um ring de arestas paralelas. Disponivel no
polygonMeshStore.
A estrutura interna PolygonMesh mantem vertices, edges e faces com IDs explicitos e adjacencia:
type PolygonMesh = {
vertices: Map<VertexId, { id, position }>;
edges: Map<EdgeId, { id, a, b, faces[] }>;
faces: Map<FaceId, { id, vertices[], edges[] }>;
};Conversao bidirecional com EditableMesh (triangulado) permite renderizar via Three.js e exportar GLB.
O modo Sculpt deforma a malha com um pincel:
| Modo | Acao |
|---|---|
| Amassar (push) | Empurra a superficie para dentro |
| Puxar (pull) | Puxa a superficie para fora |
| Agarrar (grab) | Arrasta a regiao sob o pincel |
| Inflar (inflate) | Expande a regiao ao redor do ponto |
| Suavizar (smooth) | Aproxima vertices dos vizinhos |
| Clay | Adiciona volume em camadas |
| Crease | Cria vincos na superficie |
| Flatten | Achatar a superficie |
| Pinch | Pinca vertices para o centro do pincel |
| Mask | Protege regioes da edicao |
Falloff: suave, esferico, afiado e linear.
Use os controles Raio e Forca no painel Modelagem para ajustar o pincel.
Suporte a mouse e caneta
| Recurso | Comportamento |
|---|---|
| Pressao (caneta) | Usa pressao real do tablet quando Pressao na Forca ou Pressao no Raio estao ativos |
| Pressao (mouse) | Fallback por velocidade do cursor: mouse rapido = menos forca (35-100%) |
| Smoothing | Estabilizador de stroke, default 0.35 para suavizar tremores de mouse |
| Spacing | Distancia minima entre stamps do pincel |
| Symmetry X | Espelha o stroke no eixo X |
| Front Faces Only | Afeta apenas faces voltadas para a camera |
| Accumulate | Permite acumular deformacao no mesmo vertice durante um stroke |
O dispositivo ativo (mouse/caneta/toque) e detectado automaticamente.
Integracao com Rapier3D para simulacao em tempo real.
Tipos de corpo
| Tipo | Descricao |
|---|---|
| Dinamico | Responde a forcas e colisoes |
| Estatico | Nao se move, serve de obstaculo |
| Cinematico | Movido manualmente, empurra outros |
Colliders
- Box
- Sphere
- Capsule
- Cylinder
- Mesh (geometria exata)
- Convex hull
Propriedades
- Massa
- Friccao
- Restituicao (bounce)
- Linear damping
- Angular damping
- Gravity scale
- Is trigger
- Lock de translacao/rotacao por eixo
Timeline com keyframes de transform por objeto.
Detalhes
- FPS configuravel (padrao 30).
- Start/end frame e duracao.
- Playhead arrastavel.
- Keyframes de posicao, rotacao e escala.
- Interpolacao:
hold— mantem o valor ate o proximo keyframe.linear— interpolacao linear.ease— suaviza entrada e saida.
Animacoes procedurais aplicadas por objeto, sem precisar de keyframes.
| Behavior | Descricao |
|---|---|
| Pular | Salto periodico com cooldown |
| Andar | Oscilacao vertical + deslocamento |
| Acelerar | Velocidade crescente ate maximo |
| Rolar | Rotacao continua no eixo X ou Z |
| Gravidade | Cai ate um groundY |
| Bolha | Oscilacao suave tipo flutuacao |
| Massa (Deformar) | Squash and stretch |
Efeitos de particulas e shaders aplicaveis a qualquer objeto.
| Efeito | Descricao |
|---|---|
| Fogos | Explosao de particulas coloridas |
| Fogo | Chamas com flicker |
| Fumaca | Particulas opacas ascendentes |
| Brilho | Sparkles pontuais |
| Luz | Glow esferico |
| Superficie Liquida | Simulacao de fluido com shaders |
Cada efeito tem cor, intensidade, tamanho e count configuraveis.
Cada objeto pode ter scripts JavaScript proprioss executados a cada frame.
API disponivel
type ScriptContext = {
object: SceneObject;
group: THREE.Group;
delta: number;
elapsed: number;
THREE: typeof THREE;
position: THREE.Vector3;
rotation: THREE.Euler;
scale: THREE.Vector3;
console: Pick<Console, 'log' | 'warn' | 'error'>;
};Exemplo:
// Rotacao continua
api.update = ({ group, delta }) => {
group.rotation.y += delta * 1.5;
};Logs aparecem no console do navegador com prefixo [Script].
Tipos de luz suportados:
| Luz | Props |
|---|---|
| Spot | angulo, penumbra, target, sombra |
| Point | distancia, decay, sombra |
| Directional | direcao, sombra |
| Ambient | intensidade global |
Props comuns: cor, intensidade, castShadow, shadowBias, shadowRadius
| Atalho | Acao |
|---|---|
Ctrl+Z |
Desfazer |
Ctrl+Y |
Refazer |
Ctrl+Shift+Z |
Refazer |
Ctrl+C |
Copiar objeto selecionado |
Ctrl+V |
Colar objeto copiado |
Ctrl+D |
Duplicar objeto selecionado |
Delete / Backspace |
Apagar objeto ou face selecionada |
G |
Mover |
R |
Girar |
S |
Escalar |
E |
Entrar em Edit Mode ou extrudar face selecionada |
V |
Selecao de vertices |
2 |
Selecao de arestas |
F |
Selecao de faces |
B |
Sculpt |
P |
Draw Polygon (ou toggle pressao se estiver em Sculpt) |
K |
Knife Tool |
X |
Inverte modo do sculpt (push<->pull, inflate<->pinch) |
Shift+F |
Cicla falloff do sculpt |
Arrow Up |
Aumenta forca do sculpt |
Arrow Down |
Diminui forca do sculpt |
Esc |
Limpar selecao e voltar para Select |
[ |
Diminuir raio do pincel |
] |
Aumentar raio do pincel |
; |
Aumentar smoothing do pen |
' |
Diminuir smoothing do pen |
Os atalhos nao disparam enquanto voce esta digitando em inputs, selects ou textareas.
Modelos colocados em public/ podem ser servidos diretamente pelo app. A rota src/app/api/models/route.ts lista arquivos .glb e .gltf encontrados nessa pasta.
O editor tem um agente para gerar malhas 3D (vertices + faces) via NVIDIA NIM. Usa o modelo nvidia/llama-3.1-nemotron-70b-instruct como primario e meta/llama-3.1-8b-instruct como fallback.
A IA retorna objetos com geometria real (arrays de vertices e faces trianguladas), decompostos em varias partes com hierarquia via parentName. As malhas passam por subdivisao e suavizacao procedural antes de entrar na cena.
Variaveis de ambiente
Crie o arquivo .env (ou use .env.local) com:
NVIDIA_NIM_API_KEY=your_nvidia_nim_api_key
NVIDIA_NIM_MODEL_PRIMARY=nvidia/llama-3.1-nemotron-70b-instruct
NVIDIA_NIM_MODEL_FALLBACK=meta/llama-3.1-8b-instruct
NVIDIA_NIM_BASE_URL=https://integrate.api.nvidia.com/v1No Vercel, configure as mesmas variaveis no projeto e faca redeploy para aplicar.
Endpoint
POST /api/ai/generate
Body:
{
"prompt": "robo futurista com base metalica, luzes neon e pedestal"
}Resposta:
{
"objects": [
{
"name": "Torre Central",
"vertices": [[-0.5,-0.5,-0.5],[0.5,-0.5,-0.5],...],
"faces": [[0,1,2],[0,2,3],...],
"position": [0, 1.5, 0],
"rotation": [0, 0, 0],
"scale": [1, 1, 1],
"parentName": "Base",
"material": {
"color": "#9fb3ff",
"metalness": 0.45,
"roughness": 0.3,
"emissive": "#101a4d",
"emissiveIntensity": 0.25,
"opacity": 1
}
}
]
}Cada objeto tem 20-60 vertices e 40-120 faces em media, formando superficies solidas reconhaveis.
Retry automatico
Se a primeira geracao ficar simples demais (<40 vertices totais ou <3 objetos), o agente refaca com um prompt reforcado pedindo mais decomposicao e detalhes. Um segundo retry acontece se ainda estiver simples.
Na toolbar, use o botao Gerar IA (icone sparkles fucsia), descreva a cena e o app cria automaticamente as malhas com materiais.
Preciso de placa de video dedicada?
Nao. O editor usa WebGL via Three.js, que roda em qualquer GPU com suporte a WebGL 2.0 (integrada ou dedicada).
Funciona no celular?
Sim, o layout e responsivo. O Preview tem modos desktop, tablet e mobile para testar a experiencia exportada.
Preciso de conta NVIDIA para usar a IA?
Sim. Voce precisa de uma API key do NVIDIA NIM. Configure NVIDIA_NIM_API_KEY no .env.
Posso exportar sem backend?
Sim. O Export gera HTML/CSS/JS standalone com Three.js via CDN, sem necessidade de servidor.
Qual a diferenca entre Modo Cena e Modo Pagina?
O Modo Cena e o editor 3D puro (modelagem, sculpt, materiais). O Modo Pagina monta a experiencia web usand a cena 3D dentro de elementos HTML (heroes, sections, cards).
A textura deixou o viewport escuro
As texturas sao carregadas pelo cache do React Three Fiber e aplicadas em uma copia configurada para o material. Se o navegador ainda mostrar estado antigo, faca um hard refresh:
Ctrl + Shift + R
Modelos grandes demoram para aparecer
Arquivos GLB grandes podem levar alguns segundos para carregar, especialmente em desenvolvimento. Enquanto isso, o viewport continua ativo e mostra o grid.
Exportacao nao baixa arquivo
Confira se existe algum objeto na cena e tente novamente em um navegador moderno com suporte a WebGL e downloads por Blob.
- Cena, materiais, import/export, atalhos
- Edicao de malha (vertices/arestas/faces) e sculpt
- Fisica com Rapier3D
- Timeline com keyframes
- Behaviors procedurais
- Efeitos de particulas e fluid
- Scripts por objeto
- Layers e imagens de referencia
- Desktop Electron
- Agente IA (NVIDIA NIM) gerando malhas com vertices/faces
- Operacoes de aresta (bevel, loop cut)
- Booleanos entre malhas
- Modelagem poligonal: Draw Polygon, Knife, Edge Loop/Ring, Bridge, Fill, Inset
- Sculpt com fallback de pressao para mouse
- Navegacao por modos: Cena, Pagina, Interacoes, Preview e Exportar
- Primeira versao do Page Builder
- Arvore de projeto hibrida Page + Scene
- Interaction Engine inicial
- Preview Runtime inicial para experiencias web 3D
- Export Engine inicial para Next/React/Vite/HTML/JSON
- Template Engine inicial
- Runtime web renderizando primitivas, editableMesh, GLTF, texturas, texto 3D, SVG e luzes da cena
- Save/Load inicial de
ProjectExperienceem.web3d.jsonversionado - Reordenacao manual de elementos de pagina no Project Tree
- Metricas conhecidas de Preview sem estimativa falsa de MB
- Box / Lasso select de sub-elementos no Edit Mode (com preview visual em tela)
- Hover preview de vertices, arestas e faces antes de clicar
- Flip / Recalculate Normals e Smooth / Flat Shading na UI
- Timeline com keyframes reais exportaveis (player de animacao no runtime React/Next/Vite e standalone HTML)
- Multi-materiais por face avancado (selecao multi-face + atribuicao em lote + render no Modo Cena e Pagina/Preview)
- Snap to vertex / edge / face durante transform de sub-elemento
- Paridade total entre renderer do Modo Cena e renderer web do Modo Pagina/Preview (effects, behaviors, flat shading, multi-materiais)
- Drag-and-drop, reparenting e indicadores de drop no Page Builder
- Edição inline no canvas do Page Builder para textos, botoes, cards, navbar e footer
- Atalhos de produtividade no canvas de pagina: duplicar, remover e mover com setas
- Painel web com edição por breakpoint e controles CSS avançados
- Guias, snapping e handles de mover/redimensionar no canvas do Page Builder
- Template
Background Superficie Liquidacom efeito WebGLliquidSurface - Autosave, historico de versoes e migracoes do
ProjectExperience(localStorage com ate 24 entradas) - ZIP exportavel com assets reais organizados em
public/models,public/textures,public/images - Runtime exportado standalone com Three.js via CDN e todas as interacoes (HTML/CSS/JS puro, sem build)
- Preview com tamanho real de arquivos, resolucao de texturas, draw calls, geometries, triangulos, memoria JS heap e FPS preciso
- Selecao direta mais precisa no canvas de pagina (hover preview com tooltip, Alt+Click para selecionar pai, breadcrumb de ancestrais, hit areas ampliadas para texto/botao)
- Editor de breakpoints completo: criar, renomear e remover breakpoints customizados com largura ajustavel via slider, preview dinamico no toolbar e edicao de estilos por breakpoint no painel de propriedades
- Estados hover/active/focus para elementos web: edicao de pseudo-estilos no painel de propriedades com preview no canvas via CSS real e indicacao visual
- Sistema de componentes reutilizaveis: criar componentes da selecao de elementos, biblioteca no painel arvore com lista de componentes salvos, instancias vinculadas com badge visual, sincronizar todas as instancias ao editar o mestre, desvincular (detach) e persistencia no arquivo de projeto
- Formularios, modais reais e menus: novos tipos de node (form, input, select, textarea, label, modal, menu, menuitem) com renderizacao no canvas, editores de propriedades no painel e exportacao para runtime React/Vite/HTML
- Camadas/z-index com visualizacao clara: painel de camadas no arvore listando elementos da pagina ordenados por z-index, barra de profundidade visual e botoes para aumentar/diminuir z-index de cada elemento
- Diff visual do documento de pagina: modal de comparacao entre versoes salvas no historico, exibindo arvore de nos com status (adicionado/removido/modificado) e detalhes das alteracoes de estilos e propriedades
- System Builder Fase 1: Modo Dados,
DataSchema, colecoes/campos/validacoes/relacoes/queries salvas, store Zustand, persistencia no.web3d.json, autosave/historico e schema exportado em JSON/Prisma/Drizzle - System Builder Fase 2 inicial: componentes
dataTable,dataForm,dataList,dataChart,dataStat,pageRoute, variaveis/bindings{{var}}, actions de dados/variaveis/toast/loading/error e API routes CRUD geradas para Next - Logica inicial de paginas e navegacao:
pages[],activePageId, rotas editaveis, criar/duplicar/remover paginas, navegacao interna no Preview epages-data.jsonexportado - Tutorial com spotlight guiado para Page Builder, rotas, canvas, propriedades, Modo Dados, campos, queries, Interacoes e Preview
- Data components -
dataTable,dataForm,dataList,dataChart,dataStatepageRoute - Bindings e variaveis - sintaxe
{{var}}, variaveis editaveis no Modo Dados e persistencia no projeto - Data actions iniciais - CRUD em memoria no preview, queries, set/increment/toggle variable, loading/error/toast
- API Routes geradas - CRUD inicial por colecao para Next via
generateApiRoutes.ts - Data runtime persistente - conectar preview/export a banco real ou adapter local persistente
- Data forms exportados -
dataFormchamando API gerada em Next/React/Vite/HTML - Bindings avancados -
{{record.campo}}, filtros, transformacoes e expressoes em todos os componentes/export targets - Workflow Engine - automacoes com triggers, conditions, actions, delay, webhook/email/script
- Formula Engine - expressoes calculadas para bindings, campos derivados e interacoes
- Auth e permissoes - roles, guards, paginas protegidas, perfil do usuario e regras por colecao
- Multipage avancado - parametros dinamicos, SEO completo por pagina, layout compartilhado, browser back/forward, guards e rotas reais geradas no export
- Export full-stack - Prisma/Drizzle completo, migrations, seed,
.env.example, configs e deploy adapters
- Save/Load avancado de Projeto - Formato
.e3d/binario com compressao, diff e empacotamento de assets - Exportacao multi-formato - FBX, OBJ, USD, STL, DAE
- Importacao multi-formato - FBX, OBJ, USD, 3DS, DAE
- Sistema de Preferences - Configuracoes do usuario, temas, atalhos customizaveis
- Sistema de Templates/Presets - Templates de cena, materiais, iluminacao
- Node Editor (Geometry Nodes) - Geometria procedural visual
- Modifiers nao-destrutivos - Mirror, Array, Solidify, Subdivision, Decimate, Weld
- Editor de UVs - Unwrapping, painting, alinhamento
- Sistema de Constraints - Look At, Copy Transform, Limit Distance, Clamp To, Path Follow
- Curvas e Splines - Bezier, NURBS, extrusao ao longo de curva
- Voxel Sculpting - Sculpting volumetrico com Dyntopo
- Sistema de Ossos (Armature) - Bones, joints, IK/FK
- Skinning/Weight Painting - Vertex weights, influence
- Shape Keys/Morph Targets - Blend shapes para expressoes
- Graph Editor - Curvas de animacao editaveis
- Motion Capture - Import BVH, retargeting
- Constraint Animation - Animar constraints
- Node-Based Material Editor - Sistema de nos para shaders (PBR, custom)
- Shader Generator - GLSL/HLSL customizado
- Texture Painting - Pintura direta no modelo 3D
- Procedural Textures - Noise, gradients, patterns
- Material Layers/Blending - Mascara, mistura de materiais
- Lightmap Baking - Baking de luz estatica
- Global Illumination - GI em tempo real ou baked
- Post-Processing Stack - Bloom, SSAO, DOF, Motion Blur, Tonemap, LUT
- Raytracing/Pathtracing - Render offline de alta qualidade
- HDRI Environment - Iluminacao por imagem HDR
- Area Lights - Luzes retangulares, discos, esferas
- Particle System avancado - Editor visual com curvas, emissao, colisao, sub-emitters
- Fluid Simulation - Liquidos, gases, SPH/FLIP
- Cloth Simulation - Tecidos, bandeiras, roupas
- Hair/Fur System - Cabelos, pelos, grama
- Destruction/Fracture - Destruicao procedural
- Soft Body - Corpos moles, gelatina
- Terrain Editor - Heightmap, sculpting, texturizacao de terreno
- Foliage/Scatter System - Pintura de vegetacao, rocks, detalhes
- Water System - Oceanos, rios, lagos com shaders
- Sky/Atmosphere - Ceus procedurais, nuvens, neblina volumetrica
- Volumetric Lighting - God rays, fog volumetrico
- Audio Spatial - Audio 3D posicional, HRTF
- Audio Triggers - Sons por evento, zonas
- Dialogue System - Sistema de dialogo/in-game UI
- Input System - Mapeamento de controles, gamepads
- Profiling Tools - Draw calls, triangulos, FPS, memory, GPU stats
- LOD System - Level of Detail automatico
- Occlusion Culling - PVS, portais
- Shader Debugger - Visualizar normals, UVs, lightmaps, overdraw
- Physics Debugger - Visualizar colliders, contacts, rays
- NavMesh/Pathfinding - Navegacao para personagens
- Behavior Trees - IA para NPCs
- Scripting avancado - TypeScript/JavaScript com API completa
- Plugin System - API para extensoes, marketplace
- Version Control - Git-like para cenas, merge/diff visual
- Multi-user Editing - Edicao colaborativa em tempo real
- Cloud Sync - Salvamento na nuvem, compartilhamento
- Asset Library - Biblioteca compartilhada de assets
Contribuicoes sao bem-vindas! Siga o fluxo:
- Fork o repositorio
- Branch:
git checkout -b feat/minha-feature - Commit:
git commit -m "feat: minha feature" - Push:
git push origin feat/minha-feature - Pull Request com descricao clara
Para bugs, abra uma Issue.
Em desenvolvimento ativo.
| Modulo | Status |
|---|---|
| Cena 3D + Modelagem + Sculpt | Funcional |
| Fisica Rapier3D | Funcional |
| Timeline + Keyframes | Funcional |
| IA (NVIDIA NIM) | Funcional |
| Page Builder | Funcional |
| Interaction Engine | Funcional |
| System Builder (Dados) | Fase 2 parcial |
| Preview com metricas | Funcional |
| Export Engine | Funcional (Next/React/Vite/HTML) |
| Desktop Electron | Funcional (Windows) |
A camada de construtor visual de sites 3D interativos conta com paridade total com o renderer do Modo Cena, exportacao ZIP com assets reais organizados, runtime standalone em HTML/CSS/JS puro via Three.js CDN, autosave com historico de versoes, drag-and-drop e reparenting no Page Builder, alem de metricas reais de preview (draw calls, triangulos, resolucao de texturas, heap JS e FPS preciso). O Edit Mode possui Box/Lasso select, hover preview, Flip/Recalculate Normals, Smooth/Flat Shading, multi-materiais por face em lote e snap de sub-elementos. A timeline exporta keyframes reais que rodam no runtime exportado.
O System Builder esta na Fase 2 inicial: modelo de dados visual com colecoes, campos, validacoes, relacoes e queries salvas, persistido no .web3d.json. A pagina tem componentes conectados a dados, variaveis com binding {{var}}, actions de dados/variaveis/toast/loading/error, geracao inicial de API routes CRUD para Next, multipage com rotas editaveis e navegacao interna no Preview.