Skip to content
A página inicial de diogo-lemos.com, uma cena 3D de primavera em tempo real com uma árvore em flor
Todo o trabalho

Projeto independente

Diogo Lemos

Um site 3D em tempo real com sete cenas temáticas, traduzido para cinco idiomas por um modelo a correr em hardware local, a custo de API zero.

Visitar o projeto
Notas de campo

O portefólio seguro, um nome e uma lista de competências, sempre foi possível. Este site existe porque eu queria a prova de que pensar de forma diferente é possível, a correr ao vivo no browser.

Atlantic Forge

O que estava em jogo

Um site pessoal é o sítio onde um engenheiro pode jogar pelo seguro: um nome, uma lista de competências, alguns links, e está feito. Essa versão sempre esteve ao meu alcance, mais aborrecida, mas possível, e nunca me pareceu ser esse o objetivo. O meu site é o único lugar onde ninguém define o brief a não ser eu, por isso tinha de mostrar aquilo que uma lista de competências não consegue: criatividade, curiosidade, e a prova de que pensar de forma diferente é possível, a correr ao vivo no browser em vez de afirmada num parágrafo.

Fazer essa afirmação define a sua própria fasquia. Um portefólio que enumera capacidades não prova nada; qualquer pessoa consegue escrever “WebGL”. Este tinha de as demonstrar: mundos 3D inteiros, renderizados em tempo real, fluidos num telemóvel, em cinco idiomas. E cinco idiomas é onde os sites pequenos costumam render-se, porque as APIs de tradução à palavra, discretamente, tornam incomportável que um site pessoal seja sequer multilingue.

A decisão

A tradução acontece em cima de uma secretária. Um modelo a correr localmente através do Ollama traduz os cinco idiomas, e uma pequena pipeline em SQLite mantém um registo do que mudou e precisa de ser retraduzido, para que o conteúdo nunca fique silenciosamente desatualizado num idioma. Sem fatura à palavra, sem fornecedor, sem dados enviados para lado nenhum.

A fatura de tradução de cinco idiomas é a eletricidade que a secretária já gastava.

O que entregámos

Um site em Nuxt 4 com 3D em tempo real assente em Three.js: modelos glTF comprimidos, controlos de órbita e movimento acionado pelo scroll. Um sistema de sete temas dá a cada tema a sua própria cena e paleta, da flor de primavera à neve de inverno. O site é gerado estaticamente e servido a partir da edge da Cloudflare, com linting e verificação de tipos em cada push.

O que mudou

  • O portefólio é a demonstração: 3D ao vivo, fluido em desktop e em telemóvel
  • Cinco idiomas mantêm-se atualizados automaticamente, a custo de API zero
  • Todas as páginas são estáticas e servidas a partir da edge, para que o 3D assente num site que já é rápido
  • A pipeline tornou-se o padrão mais tarde vendido a clientes como tradução on-premise
Uma cena 3D de verão em tempo real, uma pequena ilha tropical com uma palmeira
O verão, uma de sete cenas temáticas
Uma cena 3D de outono em tempo real, com pinheiros alaranjados e folhas caídas
O outono, renderizado ao vivo no browser
Uma cena 3D de inverno em tempo real, com uma cabana nevada e pinheiros
O inverno, cada tema muda toda a paleta
O site traduzido para português
Traduzido no dispositivo, aqui em português