The VERSO scene: a chrome Workbook on a black monolith in a desert. Explore it, or scroll on for the case study.

Nº 004 / VERSO

THERE'S ANOTHER SIDE TO EVERYTHING

Reimagining the traditional portfolio into a desert, a monolith and a chrome catalogue

Role
Creative Developer
Focus
3D Interaction, Motion Design
Year
2026
Tags
Three.js / React Three Fiber / TypeScript / GSAP

Summary

An interactive portfolio built as a chrome Workbook in a photographic desert. A reversible scroll journey moves from the cover through its pages; the case study stays accessible without entering the scene.

Problem

Make a memorable 3D experience without slowing access to the work. Keep exploration optional, isolate its rendering engine from other routes, and stop rendering when the scene leaves view.

Architecture

Lenis feeds one GSAP timeline for camera movement and page turns. Scroll, clicks, taps and arrow keys navigate the same resting points, keeping the journey reversible and each input in sync.

Vertex shaders bend subdivided pages on the GPU, with matching depth shaders for their shadows. Unlit artwork preserves screen-like blacks and color; rigid chrome covers reflect the desert photograph.

The desert image is projected onto scenery and ground geometry. Heat shimmer, drifting sand and cloud shading extend existing shaders without additional effect passes. Motion respects reduced-motion preferences.

Static HTML is generated at build time. Only this route loads the 3D scene; Explore activates its journey, while Exit or Escape returns to normal page scrolling. Rendering stops offscreen, and shadow captures are reused until movement requires an update.

Performance / Apple M2

FPS target
60
GPU / frame
2ms
Draw calls
~25

DESKTOP HERO · CHROMIUM · APPLE M2 · 1440 × 900

My Commits

Designed and built the visual direction, 3D scene, shaders and scroll choreography, alongside the site's routing, pre-rendering and content system.

Separated navigation, page timing and interaction rules into testable TypeScript modules. Added production browser checks for rendering, input and lifecycle behavior.

Stack

  • TypeScript
  • React
  • Three.js
  • React Three Fiber
  • GLSL
  • GSAP
  • Lenis
  • Vite
  • Vitest
  • Playwright

Results

The 3D engine loads only on this route. Other pages stay independent of its bundle, and pre-rendered case studies remain readable without JavaScript.

Offscreen rendering suspension is verified by a production browser check. Automated unit and browser checks cover navigation, page turns, input handling and scene lifecycle behavior.