Supun Vindula
All work
WEB DEVELOPMENT / Personal project

A miniature 3D world, built for the web.

This site: a Next.js portfolio with an interactive Three.js landscape, generated entirely in code.

Next.jsThree.jsTypeScript

The problem

Build a distinctive, interactive portfolio without making visitors download large 3D assets or slowing down the reading experience.

The approach

The landscape, pines, studio and balloon are generated from Three.js primitives, with no model files. Visitors can drag to look around, zoom, and click objects to make them respond. A separate travel globe draws Natural Earth country boundaries onto a sphere and only loads when it is opened.

The engineering challenge

Keeping the scene interactive while rendering only on demand, pausing it off screen, and providing a static image for devices without WebGL.

What this represents

Try it on the home page. Pages are pre-rendered and readable without JavaScript.

Explore the engineering journal Get in touch