Skip to content

Concept piece · Real-time WebGL 3D

BALLERS Streetball

A basketball you can grab, spin and flick — one live 3D object carried through a four-act, scroll-driven brand site.

Discipline
Cinematic web design
Build
Real-time WebGL · Three.js
Motion
GSAP scroll choreography
Type
Self-initiated concept

01 The concept

BALLERS is a concept piece for a streetball brand — a global pickup network where the product isn’t a shoe or a league, it’s the game itself: real players, real games, real community, from Tokyo to London to Lagos to NYC. The brief we set ourselves was to make that energy the first thing a visitor feels, before they read a word.

The whole site is structured as four scroll acts — Where Legends Are Made, The Streets Are Alive, Three Steps to the Court, and The Movement Never Stops. The mood is editorial and loud: condensed display type, a single orange accent, hand-drawn graffiti, and photographic street courts shot in a consistent grade.

Holding it all together is one basketball. Not a photo and not a video loop — a real, rendered 3D object that lives on the page and moves with the reader as they scroll, re-framing itself from act to act.

02 The challenge

This is the kind of build that usually breaks in one of four places. A live 3D object that has to stay smooth while it’s tied to scroll. A CG ball that has to sit convincingly over busy photographic courts instead of looking pasted on. A dense, functional interface that has to stay legible over those same backgrounds. And a signature interaction that can’t quietly disappear on a phone.

Getting any one of those right is routine. Getting all four to hold together — at speed, on mobile, without the page feeling like a tech demo — is the actual work, and it’s where most immersive brand sites compromise.

03 The approach

The ball is a single persistent Three.js scene on a fixed, transparent canvas that sits above the page. It loads as a Draco-compressed GLB with a procedural fallback, lit with environment reflections and ACES Filmic tone mapping, then knocked back with a matte, gritty material so it reads as a street ball rather than a showroom render. Because the canvas is persistent, the same object survives the entire scroll — no per-section reload.

Its journey is choreographed with GSAP ScrollTrigger. Four waypoints move the ball centre → right → left → bottom-right across the acts, each leg scrubbed to scroll position. In the hero, the ball also carries drag-momentum physics: grab it, flick it, and it keeps spinning with inertia. That’s the standout moment — the page opens on an object with real weight, and the same flick carries into the story as you scroll down.

Around the ball sits an editorial street theme and a working front end. Every overlay — the booking card, stat cards, filter pills, step cards — uses a see-through “editorial glass” treatment (backdrop-blur, a faint scrim, a hairline border and a text-shadow) so the court bleeds through but the copy stays sharp. The interface is genuinely functional: a search overlay, a notifications panel, a booking card with a court carousel, city-filter pills, a how-it-works video modal, and a validated email capture.

Pipeline. Vite and vanilla JavaScript; Three.js for the real-time render; GSAP + ScrollTrigger for the scroll-driven experience. The court backgrounds were produced through a multi-model image bake-off and colour-graded into one consistent set, then edge-flood-filled to cut the graffiti to transparency. On narrow screens, a viewport-interpolated camera pull-back keeps the ball’s world-space waypoints byte-for-byte identical — the choreography never changes — while the object reads at a sensible size on a phone.

04 In the build

Act two — the ball repositions to the right as transparent glass stat cards and city-filter pills overlay a wet street court
Act two — the ball reaches its right-hand waypoint while see-through stat cards and city-filter pills sit legibly over the court.
Act three — three transparent step cards over a graffiti-fenced court, ball at its left waypoint
Act three — three glass step cards, ball carried to the left.
Act four — the footer on a dark washed court, ball settled bottom-right
Act four — a washed night court closes the story, ball settled bottom-right.
Mobile view — the same composited ball and transparent cards, sized for a narrow phone
Mobile — the same composition and the same waypoints, with a camera pull-back so the ball reads at phone scale.
Render
Three.js · WebGLRenderer · ACES Filmic
Model
Draco-compressed GLB + procedural fallback
Motion
GSAP ScrollTrigger · 4 scrubbed waypoints
Interaction
Pointer drag with momentum (hero)
Interface
9 functional components · editorial glass UI
Build
Vite · vanilla JS · mobile-responsive

05 What it demonstrates

BALLERS is a self-initiated concept by WebWork Software. A real-time interactive basketball anchors a coordinated scroll experience, with a working interface built around it.

BALLERS is proof that a living, draggable 3D centrepiece can sit at the heart of a brand site and still feel effortless — real-time WebGL 3D, scroll-linked motion, photographic compositing and a full working interface, holding together on desktop and mobile alike. The 3D is interactive, not a video; the components work; the page performs.

It’s built for the brands that need a digital flagship with something nobody scrolls past — sport, streetwear, lifestyle, community. If that’s the kind of immersive brand site you’re planning, this is the engine, and it’s reusable.

See it move.

The concept is live. Open it, then tell us what you’d put at the centre of yours.