Lab

Experiments, comparisons, and hands-on learning in the wild.

THREE.JS × FLOOR PLAN · INTERACTIVE SPACE LAB

Can a floor plan become a place?

Switch between two three-bedroom layouts, move the furniture, and explore how a flat plan becomes an interactive 3D space.

Start arranging the space

GODOT × BFS · INTERACTIVE SOLVER LAB

Is this level actually solvable?

Push the box, play BFS layer by layer, take one optimal hint, and see how CI guards a 100-level data contract.

Open the solver lab

BLENDER × THREE.JS · IMMERSIVE ESSAY

Why I stopped asking AI to build the whole app

Scroll through five 3D scenes and follow my shift from handing everything to AI to keeping the final decision.

Start the interactive essay

OPENSTREETMAP × THREE.JS · SEEDED ARCADE RACE

Race a generated circuit through real Xinyi streets

Roads, buildings, and elevation come from open data. Each seed builds a closed circuit from the street graph for a three-lap race against three AI rivals.

Start the street race

OPENSTREETMAP × BLENDER × THREE.JS · REAL CITY

Midnight Run: a real lap of Taipei Xinyi

The track was not drawn. The route comes from an OpenStreetMap snapshot, the city is generated in Blender, and what ships is a 1.3 MB GLB.

Start the night run

FREE STARTER · VITE · TYPESCRIPT · MIT

A copyable Three.js scroll article

Try the complete interactive demo, then take the source through GitHub Template or ZIP—with mobile, reduced-motion, and WebGL fallbacks included.

Open the starter

Behind the scenes

How was this 3D page made?