Protocolo Zero ← voltar ao mapa
Vitrine Fable · nº 8 · notas de construção

Como e por que
foi feito

Um passo a passo das decisões criativas, técnicas e de produto por trás de transformar a jornada de um programa de longevidade num mapa de metrô navegável. Reaproveitável — copie o que servir.

01 · A ideia e o gancho 02 · Por que um mapa de metrô 03 · O modelo de dados 04 · Geometria octilinear (o coração) 05 · Roteamento: iluminar o trajeto 06 · A afordância de consulta 07 · Design, tema e acessibilidade 08 · Deploy e o que reaproveitar

01 · A ideia e o gancho

A maioria dos onboardings clínicos é um checklist, uma timeline ou um fluxograma. Todos dizem "faça isto, depois aquilo". Nenhum mostra como os exames conversam entre si.

Programas de longevidade têm uma estrutura escondida: um mesmo exame frequentemente serve a vários objetivos. Um painel de sangue conta para o eixo metabólico e para o cardiovascular. Uma DEXA mede densidade óssea (hormonal) e massa magra (musculoesquelético). Essa estrutura — linhas que se cruzam em estações compartilhadas — é exatamente a estrutura de uma rede de metrô. O gancho foi perceber que a metáfora não é decorativa: ela é isomórfica ao problema.

Gancho de novidade: mapear a jornada clínica como um diagrama de transporte público navegável — linhas, estações e baldeações — no lugar de fluxograma, timeline ou checklist.

02 · Por que um mapa de metrô (Harry Beck)

Em 1933, Harry Beck jogou fora a geografia real de Londres e desenhou o metrô como um circuito elétrico: só linhas retas, ângulos de 45° e espaçamento uniforme entre estações. Ilegível como mapa geográfico, perfeito como mapa de decisão — "onde estou, para onde vou, onde troco de linha". É o mesmo que um paciente precisa saber.

Adotamos as três primitivas de Beck:

Metabólico Cardiovascular Cognitivo Hormonal Musculoesquelético

03 · O modelo de dados

Tudo nasce de três estruturas em app.js: LINES (os eixos), NODES (as estações, com coordenadas de grade, os eixos que atendem e um biomarcador fictício) e ROUTES (a ordem das estações em cada linha — os trilhos).

NODES.IX_DEXA = {
  x:7.2, y:6.75, lines:["hormo","musculo"], type:"baldeacao",
  name:"DEXA + composição",
  desc:"A mesma imagem entrega densidade óssea (hormonal) e massa magra (musculo).",
  bio:{ name:"Densidade óssea (T-score)", val:-0.4, ref:"normal > −1,0" }
};

Uma estação com lines.length > 1 vira automaticamente uma baldeação. Não há coordenada codificada em pixel: tudo é grade, e a geometria calcula o resto.

04 · Geometria octilinear (o coração)

O que faz "parecer metrô" não é a cor — é a regra dos ângulos. Cada trecho entre duas estações só pode ser horizontal, vertical ou diagonal a 45°. Um pequeno roteador resolve isso para qualquer par de pontos: percorre reto até faltar exatamente a distância da diagonal, então entra na estação num ângulo de 45°.

function octSeg(a, b){
  const dx=b.x-a.x, dy=b.y-a.y, adx=Math.abs(dx), ady=Math.abs(dy);
  const sx=Math.sign(dx), sy=Math.sign(dy);
  if(adx>=ady){ const bx=b.x-ady*sx; return `L ${bx} ${a.y} L ${b.x} ${b.y}`; }
  const by=b.y-adx*sy; return `L ${a.x} ${by} L ${b.x} ${b.y}`;
}

As linhas grossas com stroke-linejoin:round ganham os cantos arredondados característicos. Como todos os nós compartilham a mesma grade, as baldeações caem no ponto médio entre duas linhas — e os dois trilhos se cruzam exatamente ali, criando o "X" de uma estação de transferência de verdade.

O desenho vira uma trança: os eixos se abrem em leque a partir do Dia Zero, se cruzam nas baldeações, convergem na consulta e reabrem rumo aos marcos. Zero imagens — cada pixel é procedural.

05 · Roteamento: iluminar o trajeto

As estações e os trilhos formam um grafo. Quando você toca uma estação, uma busca em largura (BFS) encontra o caminho mais curto desde o "você está aqui" (por padrão, o Dia Zero) e redesenha só esses trechos, mais brilhantes, animando o traço com stroke-dashoffset. O painel lista o trajeto passo a passo e marca cada baldeação onde se troca de linha.

É a diferença entre um diagrama bonito e um diagrama navegável: a rota é calculada, não desenhada à mão.

06 · A afordância de consulta

Para a peça ser útil à beira do leito — e não só bonita — dois controles ancoram a conversa:

Os números são fictícios de propósito. O que se leva para o consultório é o jeito de contar a jornada.

07 · Design, tema e acessibilidade

Tema "sala de controle"

Fundo quase-preto azulado, linhas luminosas, dourado (#d9b26a) reservado aos grandes entroncamentos e ao ponto de partida. Tipografia de sinalização: Space Grotesk para títulos, Barlow / Barlow Semi Condensed para rótulos — condensada porque nome de estação precisa caber em pouco espaço.

Acessibilidade

08 · Deploy e o que reaproveitar

HTML/CSS/JS estático, sem build. Publicado no Cloudflare Pages; código no GitHub (pmf-labs/protocolo-zero, MIT).

Reaproveitável em outros contextos:

Aviso. Esta é uma peça de demonstração de design. Todos os nomes de exames, valores de biomarcadores, faixas de referência e metas são fictícios e ilustrativos, sem qualquer valor clínico ou diagnóstico. Nada aqui é recomendação de saúde. Não use para decisões clínicas.