MILWEB®
MILWEB®
MW/027AKATSUKIESTÚDIO

Akatsuki

Akatsuki — tela inicial
ESTÚDIO
MILWEB
TIPO
EXPERIÊNCIA WEBGL
STATUS
NO AR

02 / A IDEIA

Loja de animes cinematográfica em 3D · checkout no WhatsApp

Lojas de nicho (animes e colecionáveis) disputam atenção e precisam de uma vitrine memorável que venda sem fricção.

03 / EXPERIÊNCIA
  1. 01 / 01

    Um uniform uMorph interpola céu, lua e partículas entre os temas Akatsuki e Expansão de Domínio sem trocar de cena.

    Akatsuki — 01
  2. 02 / 02

    Mede o frame rate real após montar a cena e rebaixa pra modo "lite" (sem WebGL) se cair abaixo de 45fps, memorizando a escolha.

    Akatsuki — 02
  3. 03 / 03

    Cada figure tem uma cor de energia fiel ao lore (Kurama, Limitless, Instinto Superior) disparada ao entrar no carrinho.

    Akatsuki — 03
  4. 04 / 04

    Carrinho vira uma única mensagem formatada e o pedido fecha inteiro dentro do WhatsApp.

    Akatsuki — 04
Hero no tema Akatsuki (Sharingan, lua vermelha)

04 / POR BAIXO DO CAPÔ

  • 01A cena de fundo não é um vídeo nem uma imagem. É uma cena React Three Fiber renderizada num <Canvas> fixo atrás de todo o conteúdo, com lua,…+

    A cena de fundo não é um vídeo nem uma imagem. É uma cena React Three Fiber renderizada num <Canvas> fixo atrás de todo o conteúdo, com lua, névoa e um campo de 120 partículas orbitais, todos movidos por shaders GLSL escritos à mão (ruído simplex, fbm) em vez de texturas prontas. A troca de tema entre Akatsuki e Expansão de Domínio não recarrega a cena: um único uniform uMorph interpola entre duas paletas e duas funções de céu dentro do mesmo fragment shader, então a lua vermelha e a esfera do Seis Olhos são a mesma geometria, só com o material mudando em tempo real.

  • 02Performance foi tratada como parte do design, não como ajuste depois. O Canvas roda em frameloop="demand" com um throttle manual a 30fps, po…+

    Performance foi tratada como parte do design, não como ajuste depois. O Canvas roda em frameloop="demand" com um throttle manual a 30fps, porque o fundo é atmosférico e 60fps seria desperdício de GPU. O dpr fica travado em 1 mesmo em telas retina, o que corta ~75% dos fragmentos processados, e o render pausa sozinho quando a aba perde foco. Por cima disso existe um PerfModeProvider com heurística estática (RAM, núcleos, prefers-reduced-motion, ponteiro touch) e um watchdog que mede o FPS real nos primeiros segundos. Se cair abaixo de 45fps, a página rebaixa para um modo "lite" sem WebGL, só com atmosfera CSS, e memoriza a decisão no localStorage pra não travar de novo na próxima visita.

  • 03A camada de produto é deliberadamente simples por cima da complexidade visual. As 24 figures (heróis e vilões) e os mangás vivem num array t…+

    A camada de produto é deliberadamente simples por cima da complexidade visual. As 24 figures (heróis e vilões) e os mangás vivem num array tipado em lib/products.ts, o carrinho é um Context com localStorage que só persiste depois de hidratar, o que evita sobrescrever o storage no primeiro render, e cada personagem tem uma cor de "aura" mapeada em lib/aura.ts: Kurama vermelho pro Naruto, Limitless azul pro Gojo, Instinto Superior prateado pro Goku. Ela é disparada como uma explosão de partículas via Framer Motion quando o item entra no carrinho. Nenhuma dessas interações depende do Three.js: a aura, o toast e o "punch" do card são CSS e SVG puro, o que mantém a cena 3D isolada e code-split do resto da UI.

  • 04Não existe checkout. Cada card monta um link wa.me com a mensagem já preenchida (nome, anime, preço) e o carrinho monta uma única mensagem c…+

    Não existe checkout. Cada card monta um link wa.me com a mensagem já preenchida (nome, anime, preço) e o carrinho monta uma única mensagem consolidada com todos os itens e o total antes de abrir o WhatsApp. A lógica de formatação de texto fica isolada em lib/whatsapp.ts, sem gateway de pagamento nem backend. Combinado com o code-splitting da cena 3D no Next 14 (só carrega no cliente) e com a página de produto usando View Transitions nativas do navegador para uma transição compartilhada entre o card e o detalhe, o resultado é uma loja que parece cara de rodar mas serve tudo estático, direto do edge da Vercel.

CONSTRUÍDO COMNext.js · TypeScript · Three.js · React Three Fiber · Tailwind · Framer MotionCÓDIGO

06 / RESULTADO

Cena 3D + 2 temas animados

PROJETO AUTORAL · DEMO

[ QUERO ALGO PARECIDO ]

07 / TELAS SELECIONADAS
Hero no tema Akatsuki (Sharingan, lua vermelha)
TELA 01Hero no tema Akatsuki (Sharingan, lua vermelha)
Hero no tema Expansão de Domínio (Seis Olhos)
TELA 02Hero no tema Expansão de Domínio (Seis Olhos)
Catálogo com badges de raridade e CTA de WhatsApp
TELA 03Catálogo com badges de raridade e CTA de WhatsApp
PRÓXIMA EXPERIÊNCIA21 / AURÉA JOALHERIA

AURÉA Joalheria

AURÉA Joalheria

TODOS OS PROJETOS

TODOS OS PROJETOS