← Voltar ao blog

Explorando Efeitos Visuais com Three.js e GSAP

· Three.js GSAP Animação WebGL

Efeitos visuais podem transformar completamente a experiência de um site. Neste post, mostro como usei Three.js e GSAP para criar o background de partículas deste portfólio.

Three.js para WebGL

Three.js é uma biblioteca que abstrai a API WebGL, tornando acessível a criação de gráficos 3D no navegador.

O background de mesh usa um sistema de partículas:

const geometry = new THREE.BufferGeometry();
const positions = new Float32Array(totalPoints * 3);
// Grid de pontos com cores aleatórias da paleta

Cada partícula é um ponto no espaço com posição, cor e tamanho definidos via BufferGeometry.

GSAP para suavização

O GSAP entra para suavizar o movimento do mouse:

const smoothMouse = () => {
  mouseCurrent.x += (mouseTarget.x - mouseCurrent.x) * 0.04;
  mouseCurrent.y += (mouseTarget.y - mouseCurrent.y) * 0.04;
};
gsap.ticker.add(smoothMouse);

Isso cria uma interpolação suave entre a posição atual do mouse e a posição alvo, resultando em um movimento fluido.

Interação com o usuário

As partículas reagem à posição do mouse:

  • Partículas próximas ao cursor aumentam de brilho e tamanho
  • A câmera segue sutilmente o movimento do mouse
  • Ondas senoidais percorrem o grid continuamente

O resultado é um fundo vivo que responde à interação sem ser intrusivo — exatamente o que um bom background deve fazer.