Um biomarcador transformado em arquitetura monumental que se ergue com o treino e se desfaz com o tempo.
← abrir a catedralEsta página conta como e por que a Catedral VO₂ foi construída — as decisões criativas, o motor 3D escrito do zero em canvas 2D, o modelo por trás dos números (fictícios) e o que qualquer pessoa pode reaproveitar. É o making-of de uma peça que tenta provar um ponto: dá para explicar fisiologia com a força de um edifício.
HTML/CSS/JS purosem framework sem buildcanvas 2D3D proceduralO VO₂max — o volume máximo de oxigênio que o corpo consegue captar, transportar e usar por minuto — é um dos preditores de mortalidade mais fortes que a medicina conhece. O problema é que ele quase sempre é mostrado do jeito mais esquecível possível: uma linha que desce com a idade, ou um velocímetro com uma agulha. Nenhum dos dois gruda na memória de um paciente.
A aposta desta peça: e se o VO₂max fosse um lugar? Um edifício que a pessoa pudesse orbitar e habitar? A catedral gótica é a metáfora perfeita — ela existe para ser monumental, para elevar o olhar, e sua estrutura é literalmente uma máquina de sustentar altura e luz. É exatamente o que o condicionamento aeróbico faz pelo corpo.
Cada sistema que sustenta o VO₂max virou um elemento da arquitetura. Não é decoração: é um mapa que o profissional pode percorrer com o paciente.
Quando o condicionamento cai, não é só a altura que se perde: a luz se apaga (menos mitocôndrias ativas), a nave encurta (menos capacidade), a rede de contrafortes some. A ruína é fisiológica.
Não há Three.js aqui, nem WebGL, nem uma única imagem importada. A catedral inteira é desenhada num
<canvas> 2D, com um motor de projeção escrito à mão. A escolha foi deliberada: um
arquivo que abre em qualquer lugar, sem CDN, sem dependência que possa quebrar.
lookAt (forward/right/up) transforma cada ponto do mundo para o espaço
da câmera.sx = cx·f/cz, sy = cy·f/cz,
com distância focal derivada do campo de visão.globalCompositeOperation='lighter',
entram os vitrais (halos radiais), os feixes de luz, a poeira e a rosácea de 12 pétalas.A catedral não é um modelo salvo — ela é reconstruída a cada quadro a partir de um
único número: v, o VO₂max normalizado entre 0 e 1. A "completude" de cada bay da nave é:
c_i = clamp(v · N − i, 0, 1) // i = índice do bay, N = total de bays
Isso é o coração do truque. Com v alto, todos os bays têm c_i = 1: paredes
cheias, telhado, vitrais, ábside. Com v baixo, os bays do fundo caem para c_i = 0
(ruína, só fundações), o bay de transição fica a meio caminho — parede com crista denteada,
sem telhado, sem luz. Como v é interpolado suavemente entre o valor atual e o alvo, a
catedral sobe e rui em movimento contínuo quando você mexe nos controles.
As torres (o coração) escalam a altura diretamente com v — daí a sensação de que o
edifício cresce quando o paciente treina. Fundações permanecem mesmo na ruína: a base do que
já foi construído nunca desaparece por completo.
O VO₂max exibido vem de um modelo ilustrativo, calibrado apenas para se comportar de forma plausível — não para diagnosticar ninguém:
t = 1 − e^(−anos_treino / 6,5) // fração de condicionamento (0..1)
vo2 = base(sexo) + 10·t − (idade−25)·(0,52 − 0,22·t)
A leitura fisiológica embutida: o treino adiciona capacidade (o +10·t) e ainda
desacelera o declínio ligado à idade (o termo 0,52 − 0,22·t: quem treina
perde menos por ano). É por isso que a projeção "manter × parar" abre um abismo tão grande em 10 anos —
o mesmo mecanismo que torna o VO₂max um marcador tão poderoso na vida real. Os percentis mostrados são
uma aproximação logística sobre uma referência sedentária por idade/sexo. Tudo ilustrativo.
A afordância de consulta é o que separa uma demo bonita de uma ferramenta. Três controles bastam:
+/− aproximam; foco
visível em todos os controles; o slider continua respondendo às setas quando focado.prefers-reduced-motion: congela a deriva da câmera, a poeira e a
rotação da rosácea; as transições viram instantâneas.left:50%; transform:translateX(-50%), linhas de controle flex-wrap:nowrap,
overflow-x:hidden no corpo — sem cortes nem deslocamentos.Arquivos estáticos, repositório público no GitHub, publicação no Cloudflare Pages via
wrangler. Sem servidor, sem banco, sem etapa de build — a peça inteira é uma pasta.
git init -b main
gh repo create pmf-labs/catedral-vo2 --public --source . --push
wrangler pages deploy . --project-name catedral-vo2
Catedral VO₂ · Vitrine Fable #06 · © 2026 Paulo Melo Franco (pmf-labs) · MIT
Feito com um motor 3D escrito à mão · Co-Authored-By: Claude Opus 4.8 (1M context)