R1V3R.CC nilo@r1v3r:/usr/share/art$ artes /etc sobre
drwxr-xr-x/usr/share/artartes1/1
art/
Artes

Experimentos

Peças curtas feitas em código, publicadas quando ficam prontas. Cada uma declara do que é feita: buffer, paleta, quadros por segundo, licença. Rode de novo e você tem a mesma peça, exatamente.

0007-falcoaria
2026-10-01

0007 · FALCOARIA

Na falcoaria o falcão pousa na luva da mão esquerda; a direita fica livre para a negaça. Aqui a sua mão esquerda, na frente da webcam, é a luva: a altura da mão no quadro é a altitude da ave, a pinça é uma batida de asa e o punho fechado é a picada. A ave não obedece: ela voa para onde a mão aponta com a energia que tem, e o cubo mede o voo inteiro.

peça
0007 · FALCOARIA · 2026-10-01 · tempo real · interativa, com webcam
técnica
rastreamento de mão MediaPipe Hand Landmarker, 21 pontos, rodando no seu computador (o vídeo não sai do browser); gestos medidos na própria mão — pinça pela distância polegar–indicador sobre o tamanho da palma, com histerese; punho por quatro dedos dobrados em três leituras seguidas; altura da palma no quadro de vídeo → altitude; modelo de voo de ponto de massa a 60 Hz em passo fixo: sustentação pela linha sustentadora (CLα = 2π·AR/(AR+2)), arrasto parasita + induzido, estol acima do CLmax, empuxo só na descida da asa, picada com a asa recolhida trocando altura por velocidade e mirando a negaça, recuperação limitada pela carga; downwash ε = 2·CL/(π·AR) e vórtices de ponta com Γ = L/(ρ·V·b); falcão em wireframe do mesmo .glb do HORUS, skinado no CPU; rasterizador próprio em canvas 2D, sem WebGL; quatro ângulos com corte seco (3/4, lado, frente, topo), AUTO alternando entre eles órbita livre ao arrastar e zoom na roda do mouse; a ave alterna entre wireframe ciano e superfície sólida na tabela quente (z-buffer, Bayer 4×4) — as projeções e os gráficos vão sempre para as paredes do fundo; modo RA em Three.js r160: a câmera crua ao fundo (exceção declarada à W3 — ali a câmera é o mundo, não uma imagem de obra), paleta verde neon e ciano, Cp na superfície da ave, linhas de corrente e uma fatia de pressão calculadas por um vórtice ligado com Γ = L/(ρ·V·b) (Kutta–Joukowski), vórtices de ponta e downwash, pressão por Bernoulli Cp = 1 − (u/V)², o rastro colorido pela velocidade; filtro opcional do vídeo como câmera térmica (a luminância no mesmo mapa de calor, deslocada por ruído e pela própria luminância, bordas em ciano); na RA a outra mão (a direita) é o zoom em embreagem: punho fechado engata e a distância à câmera aproxima ou afasta, mão aberta trava
buffer
426×240 em paisagem, 216×384 em retrato (W2) · 16 cores · 3D a 15 fps, HUD a 30 · webcam reduzida a 64×48 e quantizada na tabela fria com Bayer 4×4 (W3) · a ave é desenhada 26× num cubo de 120 × 100 × 60 m, com largura e altura ajustáveis de 40 a 240 m
tempo
tempo real · sem câmera, o modo demo voa sozinho em função do relógio da simulação: rode de novo e sai o mesmo voo
entradas
malha do falcão (.glb, a mesma do HORUS) · luva: Rigged Lowpoly Hand (Janosch, Sketchfab, CC-BY 4.0), 808 triângulos e 21 juntas com os pesos do autor, posta pelos 21 pontos do MediaPipe; desligada, a mão vira as 21 juntas e o vetor da pinça com a distância que decide a batida · MediaPipe Tasks Vision 1.0.1 e hand_landmarker.task (Google, Apache 2.0), vendorizados · ave: falcão-peregrino fêmea, 0,9 kg, envergadura 1,0 m, área de asa 0,12 m², CD0 0,05, e 0,8, CLmax 1,4 [medir] · área de arrasto em picada 0,0019 m², calibrada para 320 km/h terminal [medir] · empuxo da batida (pico 1,2 peso em 0,25 s) e carga máxima de 10 g modelados [medir]
licença
código MIT · peça CC BY-NC 4.0 · MediaPipe Apache 2.0 · Three.js MIT · luva CC-BY 4.0 (Janosch) · assinado por Nilo River
0006-blocos
2026-09-17

0006 · BLOCOS

A mesma pirâmide da peça 0005, agora com os blocos de verdade e sem o dither: acabamento tradicional do Three.js. Cada bloco de revestimento é uma fôrma que aparece, enche e endurece no lugar, na sequência que o filme descreve — o anel branco, o núcleo vertido por dentro, os corredores abertos nas faces para as brigadas, o piramidião e a descida das equipes fechando os corredores até a face ficar lisa.

peça
0006 · BLOCOS · 2026-09-17 · 14 min · tempo real
técnica
Three.js r160 com MeshStandardMaterial, luz direcional com sombra e hemisfério; ~74 mil cunhas de revestimento instanciadas (uma por bloco, face a 51,84°), núcleo como pilha de troncos recortada pela altura vertida, blocos de enchimento varrendo a fileira em obra, fôrmas instanciadas na frente do vertido; corredores como faltas no anel, fechados de cima para baixo; o calendário em plan.mjs (1 370 dias de obra, 12 mostrados em detalhe), a vida de cada trabalhador em crew.mjs (rota, passo com teto de 55 m por segundo de tela, cansaço, horas do dia e dias na obra; clique numa figura para a ficha e para a primeira pessoa) e a rota em nav.mjs (grafo de passagem com Dijkstra, só se sobe pelos corredores); polimento por plano de recorte descendo; a cavidade como tigela paramétrica com rocha e concreto em planos de recorte complementares; o interior do GLB recortado pela altura construída (moldes de madeira na cavidade, galerias em ciano no corte); OrbitControls para a câmera livre
buffer
resolução da tela · sombras 2048² · fileiras e blocos de courses.mjs, a mesma fonte da 0005
tempo
~14 dias de simulação de 30 s (20 de sol): a obra só avança com gente no posto; a sequência é a drenagem do Nilo (5 s), a cavidade natural com moldes e concreto subindo (14 s), laje, cordas, a primeira fileira em detalhe (22 s: os quatro cantos, trinta blocos um a um com a brigada, depois o anel), 209 fileiras em time-lapse com corte automático enquanto as galerias sobem, piramidião, fechamento dos corredores e polimento · ano no HUD por volume vertido
entradas
levantamento (base, altura, seked) · fileiras modeladas [medir] · interior: great_pyramid_aem.glb (CC-BY 4.0) · sequência: Grande Pirâmide K 2019, rotulada · força de trabalho: até 2 000 figuras com ID (cada uma vale 4 pessoas [decisão]), função por fase, baldes de 15 kg passando de mão em mão; densidade do bloco 2,3 t/m³ [medir]; o grupo próximo é trocável por GLB Mixamo com BLOCOS.setActor(url)
licença
código MIT · peça CC BY-NC 4.0 · modelo AEM CC-BY 4.0 (aminetti) · Three.js MIT · assinado por Nilo River
0005-khufu
2026-09-16

0005 · KHUFU

A Grande Pirâmide sendo erguida fileira por fileira, em vinte anos que passam em sessenta segundos, com as medidas do levantamento e o interior aberto em corte: os corredores, o poço, a Grande Galeria, as câmaras. Os números contam blocos por fileira e a altura alcançada. O método é o que o filme Grande Pirâmide K 2019 propõe, e está rotulado como tal.

peça
0005 · KHUFU · 2026-09-16 · 60 s · tempo real
técnica
Three.js com material próprio: a luz escolhe um índice da tabela (R2) e a fração é resolvida por Bayer 4×4 no fragmento; corte por plano de recorte; fileiras como geometria real (210 tronco-pirâmides); interior a partir do modelo Great Pyramid AEM (aminetti, Sketchfab, CC-BY 4.0), em polegadas convertidas, com desvio de ~2 m contra o levantamento; figuras humanas como cápsulas de 1,7 m, a trocar por personagens GLB compatíveis com Mixamo
buffer
480×360 escalado por inteiro · 16 cores · 15 fps no 3D, 30 no HUD
tempo
60 s por ciclo = 20 anos · base 230,33 m · altura 146,59 m · seked 5½ (51,84°) · 2,3 milhões de blocos, calibrados contra o volume de 2,58 milhões de m³
entradas
levantamento de Petrie e Cole (base, altura, ângulo) · alturas de fileira modeladas [medir com a tabela de Petrie] · interior: great_pyramid_aem.glb · tese e números do filme Grande Pirâmide K 2019 (Fehmi Krasniqi), rotulados
licença
código MIT · peça CC BY-NC 4.0 · modelo AEM CC-BY 4.0 (aminetti) · assinado por Nilo River
0004-horus-sfx
2026-09-10

0004 · HORUS SFX

A trilha do HORUS, tocada ao vivo. Nove vozes de FM de dois operadores — um YM3812, o chip da AdLib e da Sound Blaster — sintetizadas no seu browser pelo mesmo código que gerou o filme, e um tracker de DOS lendo a partitura por cima do relógio do áudio. Não há gravação nenhuma aqui.

peça
0004 · HORUS SFX · 2026-09-10 · 50 s · tempo real
técnica
síntese OPL2 (FM de 2 operadores, 9 vozes, LFOs fixos de vibrato e tremolo, saturação do barramento) escrita como partitura em código; eco só no barramento de SFX; DAC engasgando no impacto
buffer
216×384 · fonte bitmap 7×10 · tracker, medidores, osciloscópio a 8 kHz e envelope, a 30 fps sobre o relógio do WebAudio
tempo
50,000 s · 132 BPM · 440 passos · sintetizada em segundos num Worker, a 49 716 Hz (o clock do chip), reamostrada a 48 kHz · SB 8-BIT: 8 bits, 22 050 Hz, segurador de ordem zero
entradas
nenhuma: partitura (score.mjs), chip (opl.mjs) e tracker (viz.mjs) são os mesmos arquivos do filme HORUS
licença
código MIT · peça CC BY-NC 4.0 · assinado por Nilo River
0003-akhet
Em destaque · 2026-09-09

0003 · AKHET

Akhet é a estação da cheia. O Nilo sobe rápido, alaga as margens, desce devagar e deixa o limo. Aqui a luz escolhe um índice, o índice escolhe o glifo e a cor — e o rio faz o resto.

peça
0003 · AKHET · 2026-09-09 · 231 linhas (wc -l)
técnica
terreno voxel space (uma coluna por vez, de baixo para cima), mapa de altura por ruído de valor com semente fixa, saída em grade de caracteres
buffer
128×48 células de 7×12 px · duas tabelas de 8 cores (terra quente, água fria) · dither Bayer 4×4 por célula
tempo
terreno a 15 fps, HUD a 30 fps · ano de 48 s · sem Math.random: rode de novo e sai igual
entradas
nenhuma além do código e da fonte monoespaçada do sistema
licença
código MIT · peça CC BY-NC 4.0 · assinado por Nilo River
0002-delta
2026-08-18

0002 · DELTA

Um falcão desce o Nilo de Assuã ao delta em sessenta segundos. A geografia é real, o inimigo é Set em forma de hipopótamo e cada um dos dez golpes vem do drama sagrado de Edfu. Tudo computado: rode de novo e sai o mesmo filme.

peça
0002 · DELTA · 2026-08-18 · 71 s · filme renderizado em Node
técnica
mesmo rasterizador do HORUS; leito do Nilo e monumentos em coordenadas reais; modo demo com PUSH START; Set como hipopótamo (malha animada) e os dez golpes de harpão de Edfu; boot DOS/4GW de 10 s
buffer
216×384 ampliado ×5 para 1080×1920 · 30 fps de saída, 3D a 15 fps, HUD a 30 · 16 cores
tempo
71,0 s (boot 10 s + filme 60 s) · 1800 quadros de voo · SFX: PCM 8 bits a 11 kHz e OPL2, com Doppler calculado
entradas
malhas do falcão e do hipopótamo (.glb) · amostras de grito de falcão (8 bits) · trilha: Supremacy (C64) Title Theme [decisão: licença para o site]
licença
código MIT · peça CC BY-NC 4.0 · trilha e amostras: ver entradas · assinado por Nilo River
0001-horus
2026-08-13

0001 · HORUS

O falcão de Hórus atravessa de vetor a matéria: a linha de scan converte o wireframe ciano em superfície de areia. Cinquenta segundos computados quadro a quadro, com uma trilha tocada por um chip FM que também é código.

peça
0001 · HORUS · 2026-08-13 · 50 s · filme renderizado em Node
técnica
rasterizador em software (BRender): z-buffer, duas tabelas de sombra de 8 entradas, dither Bayer 4×4, sem WebGL; câmera e cortes paramétricos — o filme é uma função do quadro
buffer
1080×1920 a partir de um framebuffer inteiro · 30 fps de saída, 3D a 15 fps · 16 cores
tempo
50,000 s · 1500 quadros · trilha de 50 s sintetizada em OPL2 (FM de 2 operadores) escrita como partitura em código
entradas
malha do falcão (.glb, licença declarada na ficha do brender) · fonte bitmap 7×10
licença
código MIT · peça CC BY-NC 4.0 · assinado por Nilo River