Skip to content

danlimaverde/terracube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TerraCube

O cubo era a visão de mundo dos antigos — terra plana, mas um cubo quadrado.

Um runtime de cubo semântico com skins intercambiáveis, no navegador, sem build. Estética darkroom (âmbar + porcelana sobre preto), cel-shading, conduzido pela respiração.

Trocar a pele do cubo é uma chamada:

loader.load("stone"); // cube → stone, crossfade dip-to-black

Sete reference skins on-canon trocáveis em runtime — cube (herói), kintsugi-cube, lattice, stone, ribbon, arch, shard — todos no mesmo motor, sob o mesmo canon, com luz contre-jour (luz atrás, sombra longa à frente).

Rodar

Sem bundler. Sirva a pasta e abra index.html:

python3 -m http.server 8744   # ou qualquer static server
# http://localhost:8744/index.html  → teclas 1–7 trocam o skin (setas = ciclar)

Arrastar = orbitar · scroll = zoom · 17 = trocar skin · setas = ciclar.

Como funciona

Camada Arquivo Papel
Motor src/engine/cube-renderer.js cena/câmera/luz/loop; interpreta um skin
Cel-shade src/engine/celshade.js toon ramp + rim Fresnel + injeção de shader segura
Breath bus src/engine/breath-bus.js ciclo respiratório compartilhado (inspire/hold/expire/hold, Ma)
Navegação src/engine/compass-nav.js rosa-dos-ventos opt-in (slerp K=3.1)
Contrato src/skin/skin.schema.json + docs/skin-contract.md o que um skin declara
Swap src/skin/skin-loader.js troca em runtime com crossfade
Stage (no motor) palco contre-jour: chão recebe-sombra + key atrás do objeto
Skins src/skins/*.js cube (herói) · kintsugi-cube · lattice · stone · ribbon · arch · shard
Gate tools/canon-lint.mjs a estética como teste executável

Escrever um skin

Um skin é um ES module com export default de um SkinDefinition — quase tudo declarativo (paleta, geometria, material, costura, respiração). Ver docs/skin-contract.md. Antes de mergear:

npm run lint    # canon-lint: barra azul/red, gold-glow, HUD, fundo não-preto
npm test        # self-check do canon-lint

Canon (não-negociável)

Fundo #000. Só âmbar (#C8902F#D99A4E) + porcelana. Sem azul/red/verde saturado. Sem gold outer-glow. Sem HUD (0–1 palavra, Josefin Sans 200/300). Grão fino estático. Ma (間). canon-lint aplica isso por máquina — o fosso é a estética, então ela é código.

Releases

Cada release leva o codinome de um artista da linhagem construtiva/neoconcreta brasileira — modelo Apple (Sonoma, Sequoia). v0.1 = Weissmann (Franz Weissmann, Cubo Vazado, 1951 — o cubo de chapa com o "vazio ativo" recortado no centro). Convenção, série e o firewall-de-verdade (toda atribuição documentada, nunca inventada) em docs/RELEASE-CODENAMES.md.

Produto ÷ Protocolo

O protocolo é aberto: o motor, o contrato de skin e os sete reference skins on-canon são OSS (este repo). As skins premium e o cubo BLANKBACK ficam privados — não se doa a catedral, abre-se o protocolo.

Licença

MIT — Instituto Terral.

About

TerraCube — semantic cube engine with runtime-swappable skins. Cel-shaded Three.js, darkroom aesthetic, no build. Instituto Terral.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors