Pular para o conteúdo

06 · Experimento · 2026

Livro 3D

Projeto pessoalConteúdo privado: o case mostra só o motor

Um álbum que se folheia como papel.

Um motor em Three.js escrito para uma única tarefa: um livro de verdade em 3D. A folha é uma fita dobrável presa na lombada, com espessura, frente, verso e borda dourada, e o conteúdo é desenhado nela como textura: nunca há troca entre objeto 3D e página HTML. Por cima, um modo de edição com guias de alinhamento e um salvamento que não perde nada.

Papel
Motor 3D, interação e sincronização
Frentes
3D / WebGL · Interação · Projeto pessoal
Ler o estudo
Prévia em movimento de Livro 3D, montada com as telas do próprio projeto
01

Contexto

O que o livro tinha que fazer

  • Abrir no celular, em pé ou deitado
  • Virar a página como papel, não como porta
  • Foto, vídeo e música na mesma folha
  • Ser editado sem uma linha de código
02

Desafio

Álbum digital costuma ser uma galeria com seta.

A foto troca, e nada ali lembra um objeto. A ideia era o contrário: um livro que se segura com o dedo, vive no celular e pode ser editado por quem não programa.

03

Decisões

  1. 01

    A folha como fita, não como retângulo

    Por quê
    Retângulo girando na lombada é o que denuncia um livro 3D amador: a página vira como porta.
    Como
    Cada folha é uma fita presa na lombada, com espessura, frente, verso e borda dourada, deformada a cada quadro por molas com peso.
    O que custou
    Física escrita para o objeto, não emprestada de biblioteca: o motor serve a essa tarefa e a mais nenhuma.
    O que ficou
    A ponta atrasa, o meio acompanha, e a folha assenta como papel.
  2. 02

    Parado, custa zero

    Por quê
    O livro tinha que viver no celular.
    Como
    Só renderiza quando algo se move e pausa com a aba oculta; só as folhas visíveis têm malha (o resto do bloco é um sólido único), e as texturas vêm sob demanda, com cache.
    O que custou
    Se o aparelho não acompanha, a resolução cai sozinha; e não há pós-processamento.
    O que ficou
    A luz é da cena, não de filtro.
  3. 03

    Um salvamento que não perde nada

    Por quê
    Quem edita não programa, e pode estar no celular e no computador ao mesmo tempo.
    Como
    Cada gravação é uma versão nova; a segunda gravação percebe a primeira, recebe a versão mais nova e junta as duas página por página.
    O que custou
    Sem conexão, a mudança espera no aparelho e só sobe na próxima abertura.
    O que ficou
    Fechar a aba envia o que estava pendente na hora, e as últimas 300 versões ficam guardadas na nuvem.
  4. 04

    O gesto decide, não o botão

    Por quê
    Com zoom, o mesmo dedo que move a vista poderia virar a página sem querer.
    Como
    Com zoom, um dedo move a vista; tocar numa foto enquadra a foto; desfazer a pinça volta ao enquadramento mais próximo.
    O que custou
    Com zoom, a virada por arraste fica suspensa.
    O que ficou
    Regras pequenas, e são elas que fazem o livro parecer objeto em vez de aplicativo.
04

Demonstração

Nota Projeto pessoal. O título, as fotos, os textos e as músicas do livro são privados e não aparecem aqui. O que este case mostra é o motor.

05

Interações

  • A capa abre a partir da lombada, numa tomada cinematográfica só.
  • A folha puxa, arrasta no ar e assenta: a curvatura tem mola própria.
06

Implementação

  • TypeScript sobre Three.js e GSAP, empacotado com Vite; Vercel Functions e Vercel Blob cuidam do salvamento.
  • Desde 28/09, música por link (arquivo, Google Drive, Dropbox, YouTube ou Spotify), com o trecho escolhido e o nome da faixa puxado do próprio link.

O que foi construído

  • Livro 3D que abre numa tomada cinematográfica
  • Virada por arraste, toque ou estrela
  • Zoom de pinça que enquadra a foto tocada
  • Modo de edição com guias de alinhamento
  • Salvamento em nuvem com fusão entre telas
  • Música por link, com o trecho escolhido

Tecnologia

Desenvolvimento
  • TypeScript
  • Three.js
  • GSAP
  • Vite
  • Web Audio
  • Vercel Functions
  • Vercel Blob
07

Resultado

Projeto pessoal em uso, e ainda crescendo: a música por link entrou em 28/09. O conteúdo é privado; aqui aparece só o motor.

  • 11,1 mil

    linhas de TypeScript, entre motor, conteúdo e edição

    medido em 04/10/2026

  • 17

    tipos de elemento por página: texto, foto, vídeo, música, enfeite

    medido em 04/10/2026

  • 300

    últimas versões guardadas na nuvem: nenhuma gravação sobrescreve outra

  • 7

    famílias tipográficas no modo de edição

  • 0

    passes de pós-processamento: a luz é da cena

08

Aprendizados

  1. 01Um livro 3D amador se denuncia pela página que vira como porta; o que convence é a ponta que atrasa e assenta.
  2. 02Parado, tem que custar zero: renderizar só quando algo se move é o que deixa um livro 3D viver no celular.
  3. 03Regras pequenas de gesto fazem um livro parecer objeto em vez de aplicativo.