← all work

ZYON Website

An interactive landing page for a (fictional) Swiss streetwear brand - one 3D shelf scene in the browser where each cap colorway sits as a stack, and a click opens a 3D detail viewer with a turntable, price and specs.

Type
Personal Project · Creative / 3D
Year
2026
Role
Sole developer - including 3D asset preparation and design.

Cut the source 3D model from 155 MB to 2.1 MB without losing the look, and made the whole scene keyboard- and touch-accessible with an invisible button layer - no raycasting.

  • 155 MB → 2.1 MB asset pipeline
  • Accessible: mouse, touch & keyboard
  • Single 3D shelf scene, no framework

The problem

A high-end 3D product page is only usable on the web if the assets are tiny and the scene is accessible - a 155 MB model and mouse-only interaction fail both.

A single 3D shelf scene where each cap colorway is a stack, opening into a 3D detail viewer with a turntable, price and specs - fast and accessible.

What I did

  1. Reduced the 155 MB source model to 2.1 MB with gltf-transform: 1K WebP textures, deduplication and pruning, without visible quality loss.
  2. Built the scene in vanilla JS with Three.js and orchestrated motion with GSAP - no framework.
  3. Layered invisible <button> elements over the projected 3D positions so the scene works with mouse, touch and keyboard, without raycasting.

Outcome

A performant, accessible 3D prototype that loads a rich shelf scene from a 2.1 MB model.

Stack

  • Vite 6
  • Vanilla JS
  • Three.js
  • GSAP
  • glTF / gltf-transform
Next caseClaude Buddy

© Johan Stefanesback home

Get in touch
Still building this site