← abrir o modelo · todas as entradas si3d

Pteranodon realista (pele, olhos e dentes)

Variante orgânica do Longiceps PT-6 aprovado: pele com escamas, olhos com pupila em fenda e dentes afiados; voo, cabeça, asa contra a luz, camadas pele/músculo/esqueleto e desmontagem.

Fontes e licenças

Construído em código (three.js) com o kit teardown de elvarofficial e whaleyxbt (MIT), pela skill si3d. Publicado 2026-11-05T15:11-03:00.

Notas do agente

# Pteranodon orgânico: do PT-6 mecânico para uma criatura de pele e osso

Este é um estudo no estilo do beija-flor Selas TR-9 de @elvar_official, e **não é o original**. Parti do PT-6
"Longiceps" que o Lucas aprovou (`referencias/p4-aprovado/ptera`) e troquei o animal. Usei o kit teardown (MIT,
© elvarofficial e whaleyxbt, commit a91262a). O crédito aparece no rodapé da página, no painel do celular e em
`ptera/LICENSE-teardown-kit.txt`.

A página traz uma linha discreta: é uma **interpretação artística fantástica**, não uma reconstrução científica. O
Pteranodon real era um pterossauro, não um dinossauro, e não tinha dentes.

Comecei às 14:21 e terminei por volta das 15:05, cerca de 45 min dos 90 permitidos.

## Como compilar

```
node kit/teardown/sims/build.mjs ./entrega/ptera
#  → teardown-out/dist/ptera.html   839 KB, página única offline (three.js, fontes e CSS embutidos, nenhuma imagem externa)
```

## O que construí

| Arquivo | Situação | Função |
|---|---|---|
| `creature.js` | **novo** (substitui `bird.js`) | A criatura inteira feita em código, em metros. Tem **três rigs com a mesma pose**: PELE, MÚSCULO e ESQUELETO, equivalentes à carenagem, à mecânica e à estrutura do TR-9. |
| `skin.js` | **novo** | Texturas procedurais em canvas: escamas (Voronoi tileável com altura convertida em normal map e roughness), membrana (actinofibrilas, rugas finas, veias ramificadas com relevo), fibras musculares, poros do osso, estrias de queratina e a íris âmbar com pupila em fenda. |
| `model.js` | adaptado | Continua sendo **a única entrada**: o acionamento da batida `g`, cuja integral é a fase `phi`. `poseOf(phi, g, spread)` dá o curso do ombro, o recuo do punho, a flexão, a sustentação, o sobe-e-desce, a arfagem e agora a ativação do peitoral e do supracoracoide. A envergadura é medida da cadeia de ossos (6,12 m planando, 6,27 m com a asa aberta). |
| `app.js` | adaptado | Mesmo esqueleto do PT-6: `SCRIPT`, `replay(t)`, integrais tabeladas, câmeras por modo, rótulos, cursor do tour, página ao vivo e filme `render(t)` puro. Mudaram os modos, as câmeras, os rótulos e as leituras. Entrou um modo de inspeção que **só funciona na captura** (`--config {"inspect":…}`), com câmera livre e console oculto para conferir detalhes de perto. |
| `console.js`, `mobile.js` | adaptados | O layout é o mesmo do PT-6, com textos em português e leituras de animal (detalhes abaixo). |
| `stage.js` | adaptado | Mesmo estúdio claro. A luz principal ficou mais quente, a luz de recorte (rim) traseira mais forte para atravessar a membrana, e entrou uma luz de preenchimento fria. As sombras são suaves (VSM). |

### O animal, camada por camada

- **Pele**
  - **Corpo e pescoço** são um único *loft* contínuo, da cauda curtíssima até a nuca, com seção superelíptica e raios por spline.
  - **Deslocamento de vértices:** dobras transversais no pescoço e na garganta, dobras finas na base do pescoço, uma crista dorsal leve, inchaço nos ombros (a asa nasce do peito), barriga e ruído orgânico.
  - **Cor por vértice:** dorso oliva escuro, ventre creme, pescoço e cabeça ocre/laranja, manchas escuras por fbm e vales das dobras mais escuros.
  - **Material:** `MeshPhysicalMaterial` com escamas (map, normal e roughness), sheen, um clearcoat leve e um termo de translucidez contra a luz injetado no shader.
- **Cabeça**
  - Um *loft* vai da nuca à ponta do bico, com sulco ao longo do bico, arcada sobre o olho e órbita afundada. As escamas somem gradualmente no bico de queratina.
  - Mandíbula articulada, língua e céu da boca rosados.
  - **Crista** longa para trás, saindo de dentro do crânio, em ocre → vermelho → vinho com faixas escuras.
- **Olhos:** globo com clearcoat máximo (reflexo úmido), íris âmbar com fibras radiais, anel limbal escuro e pupila vertical em fenda, projetada de frente. Pálpebra em forma de amêndoa, mais pesada em cima.
- **Dentes:** 60 cones curvos e pontudos em duas fileiras, superior e inferior, com dois caninos maiores na frente. A boca abre até 38° no modo CABEÇA.
- **Asas**
  - Um tubo de pele no braço, recalculado a cada quadro sobre os 7 ossos da cadeia, com dobras no cotovelo e no pulso.
  - Membrana presa ao braço, ao dedo IV e à perna, com borda de fuga recortada e irregular. É mais escura por cima e clara por baixo, e brilha quente contra a luz.
  - Três dedos com garras escuras na frente do pulso.
- **Pernas:** finas, com quatro dedos e garras.
- **Músculos:** formas limpas em estilo atlas, sem sangue. Há peitoral e supracoracoide, que **incham com a ativação calculada da fase**, mais coxas, adutor da mandíbula, tendões do pescoço e músculos do braço.
- **Esqueleto:** crânio com órbita e abertura nasoantorbital, mandíbula com dentes, crista óssea, vértebras (cervicais longas), costelas, esterno com quilha, cinturas e os 7 ossos de cada asa (rádio e ulna, pteroide, dedos I–III com garras).

### Os modos (a mesma ideia do TR-9 e do PT-6)

- **VOO / PLANAR** (HOVER): a asa bate a 2,2 Hz e ±30°. O botão VOO/PLANAR e o controle BATIDA mudam a entrada; planando, a asa fica num diedro de 5°. RASTRO desenha a trajetória da ponta da asa.
- **CABEÇA** (OPTICS OPEN): a câmera chega perto da cabeça, a boca abre num ritmo lento de mordida e os rótulos marcam OLHO, DENTES, MANDÍBULA e CRISTA.
- **ASA** (WING OFF): a asa abre ao máximo e plana. A câmera vê de baixo, contra a luz. A membrana e a pele do braço ficam translúcidas e os ossos do braço e do dedo aparecem dentro, com rótulos ÚMERO, RÁDIO + ULNA, METACARPO IV, DEDO IV e DEDOS I–III.
- **PELE** (camadas): a pele sobe, os músculos ficam no meio e o esqueleto desce, todos na mesma pose. As camadas de dentro só aparecem depois que a pele já se afastou, para que nada atravesse o couro durante a transição.
- **DESMONTAR / REMONTAR** (TEARDOWN): cada parte registrada (pele, cabeça, mandíbula, crista, olhos, asas, músculos, vértebras, costelas, ossos) sai em ordem por camada, gira, e depois volta para casa. A mesa giratória (GIRAR) é a mesma do PT-6.
- Também iguais ao PT-6: arrastar para girar, roda ou pinça para zoom, pausa (botão ou espaço), teclas 1–4, E, L, R, G e P, e o tour automático de 36 s com cursor. Um clique passa o controle ao visitante, 25 s sem interação devolvem ao tour, e há o chip "RETOMAR TOUR". O celular em pé tem botões de 44 px.

### O painel (leituras de animal)

- **01 BATIDA DA ASA:** Hz, amplitude, gráfico do curso nos últimos 1,5 s e a fase.
- **02 ENVERGADURA:** medida da cadeia de ossos a cada quadro, mais massa (32 kg), carga alar (68 N/m²) e abertura da boca em graus.
- **03 MÚSCULOS:** ativação do peitoral, do supracoracoide, do antebraço, da mandíbula e do pescoço, vinda de `poseOf` e dos modos.
- **04 VOO:** horizonte artificial, sobe-e-desce, arfagem, inclinação, L/D e velocidade.
- **05 MODOS** e **06 EXIBIR:** os botões.
- **07 ANATOMIA:** estado de mandíbulas, olhos, dentes, asas, pele e esqueleto.

Tirei toda a telemetria mecânica do PT-6: bateria, motor, servos e redução.

## O que reaproveitei do PT-6

Reaproveitei o layout de 1600×900 e quase todo o `console.js`, o `mobile.js`, o estúdio e os anéis do `stage.js`, e
a estrutura completa do `app.js`: roteiro, replay, tabelas de integração, câmeras com blend, rótulos com linhas,
cursor, página ao vivo, níveis de qualidade e aquecimento de shaders. Também ficaram a cadeia de 7 ossos e a lógica da
membrana do `model.js`/`bird.js`, e o esquema de desmontagem (casa, direção, atraso e giro por parte).

Toda a geometria e todos os materiais mecânicos do `bird.js` (placas, parafusos, engrenagens, óptica e vidro) foram
descartados.

## O que verifiquei (com os comandos)

Todos os comandos rodam a partir de `/work`. A GPU informada pela captura foi uma RTX 4070 Ti SUPER (ANGLE/Vulkan),
não um renderizador por software.

```
node kit/teardown/sims/build.mjs ./entrega/ptera

# folha de beats do tour (1 quadro 0,3 s após cada beat)
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1.2 --stills beats \
     --timeline entrega/ptera/timeline.json --cols 4 --out teardown-out/ptera-beats.png
# transição para PELE, a cada 0,4 s
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --stills every:0.4 --from 15.6 --to 17.6 --cols 3 --out teardown-out/tr-pele.png
# inspeção de perto (câmera livre, sem console); os .json estão em entrega/verificacao/
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --still 8  --config entrega/verificacao/eye.json      --out entrega/verificacao/quadros/perto-eye.png
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --still 8  --config entrega/verificacao/head.json     --out entrega/verificacao/quadros/perto-head.png
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --still 8  --config entrega/verificacao/neck.json     --out entrega/verificacao/quadros/perto-neck.png
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --still 8  --config entrega/verificacao/hand.json     --out entrega/verificacao/quadros/perto-hand.png
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --still 14 --config entrega/verificacao/wingclose.json --out entrega/verificacao/quadros/perto-membrana-contra-luz.png
node kit/teardown/sims/capture.mjs ptera --size 1600x900 --dpr 1 --still 1.3 --config entrega/verificacao/hero34.json  --out entrega/verificacao/quadros/geral-voo.png

# página ao vivo: desktop 1600x900 e celular 390x844 com toque
node entrega/verificacao/live-check.mjs
```

O `live-check.mjs` deu **19 PASS e 0 FAIL**:

- **Desktop:** o tour começa sozinho; a página roda a **60,1 fps no nível de qualidade 0**, o mais alto, com GTAO, 2048 de sombra e pixel ratio 2; um clique passa o controle; CABEÇA, ASA, PELE, DESMONTAR e REMONTAR funcionam; arrastar gira a câmera; a pausa congela as asas e o espaço retoma; RETOMAR TOUR devolve o controle.
- **Celular:** o layout em pé é ativado; os 11 alvos têm pelo menos 44 px e cabem na tela; os toques em CABEÇA, DESMONTAR e pausa funcionam; arrastar com um dedo (toque via CDP) gira a câmera.
- **Console:** nenhum erro de console e nenhum `pageerror`.

Os quadros estão em `entrega/verificacao/` (`ptera-beats.png`, `quadros/d*.png` do desktop, `quadros/m*.png` do
celular e `quadros/perto-*.png`).

**Corrigido durante a revisão visual:**

- **Cara de máquina ou de plástico:**
  - a ponta do tubo do braço aparecia aberta no ombro; agora fecha em ponta arredondada dentro do corpo, e o corpo incha no ombro;
  - a crista começava cortada; agora nasce de dentro do crânio;
  - a crista era um laranja chapado e saturado; agora tem escamas, cores mais terrosas e menos brilho translúcido;
  - a membrana parecia areia ondulada e as veias formavam uma teia densa; reduzi o relevo das rugas e a ramificação das veias;
  - o brilho contra a luz da membrana estava saturado; ficou mais quente e mais fraco;
  - a íris não aparecia por causa do UV da esfera; agora é projetada de frente, com pupila em fenda visível;
  - a pálpebra parecia uma argola felpuda; ficou em amêndoa, com a escama esticada atenuada.
- **ASA:** os ossos não se destacavam através da membrana; agora ficam em tom âmbar e a membrana mais transparente.
- **PELE:** os músculos e ossos atravessavam a pele no início da transição; agora só aparecem depois que a pele subiu.
- **Celular:** o toque em pausa às vezes se perdia depois de um gesto de arrasto, porque o click sintético não chegava. Os botões do celular agora agem no `pointerup` e só reescrevem o texto quando ele muda.
- **Pausa:** o balanço da cabeça e a inclinação continuavam com a pausa ligada; agora rodam num relógio de "vida" que também para.

## Limites

- **Não é uma escultura de artista.** A forma vem de lofts e splines, não de um modelo esculpido, e a anatomia do esqueleto e dos músculos é simplificada, em estilo de atlas. Vértebras, costelas e músculos são primitivas arredondadas, e as coxas da camada muscular são tubos.
- **Escamas por textura.** As escamas são uma textura tileável com normal map; não há deslocamento por escama. Nas bordas onde o UV estica (pálpebra e cantos do loft) elas ficam alongadas, e de muito perto a repetição é perceptível.
- **Membrana.** A "translucidez" é uma aproximação no shader (luz de trás atravessando por `-N·L`), não um `transmission` físico, que ficava caro e escuro com a membrana de dupla face. Também não há subsurface scattering verdadeiro na pele.
- **Colisões não medidas.** Com a asa no curso máximo para cima, a membrana pode raspar visualmente a perna perto da raiz, como já acontecia no PT-6. Na desmontagem, algumas peças podem se cruzar por instantes.
- **Números.** Massa, frequência e envergadura estão nas faixas estimadas para *P. longiceps*, mas são escolhas de projeto. As ativações musculares são funções simples da fase, não um modelo biomecânico. A altura de 1,8 m e a inclinação são semi-decorativas (o mesmo limite do PT-6).
- **Ciência.** Dentes e "pele de dinossauro" são um pedido artístico (a nota de interpretação artística está na página). O Pteranodon tinha bico sem dentes e provavelmente picnofibras no corpo.
- **Testes.** Não testei em GPU integrada. Os níveis de qualidade herdados do PT-6 existem, mas só vi o nível 0 (60 fps numa RTX). O celular foi testado só por emulação no Chromium headless.
- **Sem vídeo.** Não gravei o MP4 nem a trilha sonora, porque o brief não pede. O filme está pronto (`capture.mjs ptera --size 1600x900 --dpr 1.2 --out …`), mas não foi executado.
- **Nada foi publicado.** Os navegadores headless foram fechados ao final de cada script.

## Publicação pela skill /si3d (05/11, coordenação)
Esta entrada é o primeiro exercício real da skill si3d. A criação (rodada o1, Opus 5.5 high, 44 min) foi lançada
antes da skill existir, com o mesmo método; depois o código foi recompilado pelo kit da skill (`preparar.sh`),
revisado em closes pela fila GPU (cabeça, olho, pescoço, asa por baixo, vista 3/4, tour), testado com `testar.mjs`
(PC e celular: 60 fps, 0 erros, todos os botões) e publicado com `publicar.sh`.
Limites vistos na revisão: a membrana tem veias e cor, mas pouca translucidez visível de baixo; o bico/mandíbula é
longo e reto (silhueta forte, pouco detalhe); escamas ficam muito boas de perto, mas lisas na vista geral; a
crista parece um bastão. Acabamento de escultura (dobras finas, poros) não foi alcançado por código.