Three.js Journey

Three.js Work

Practice builds and my working files from the course — each one a standalone scene.

Practices

My own builds, outside the course sequence.

2 practices

H Practice

Hyundai TCO

Three.js work for the Your Perfect Partner page — the TCO (total cost of ownership) campaign.

Your Perfect PartnerTCO Campaign

Open →

W Practice

Water Waves Recreation

Recreating a shader-driven ocean/water waves effect from scratch.

ShadersWater

Open →

Lessons

The course exercises, in order.

33 lessons so far

33 Shaders

Hologram Shader

A translucent hologram effect — animated scan stripes and a Fresnel rim, drawn with additive blending.

GLSLFresnelAdditive Blending

Open →

32 Shaders

Coffee Smoke Shader

Smoke rising from a baked coffee cup — a scrolling Perlin texture distorted and faded in a custom shader.

GLSLPerlin NoiseAlpha Blending

Open →

31 Shaders

Modified Materials

Injecting custom GLSL into a built-in material with onBeforeCompile, keeping its lighting while twisting the geometry.

onBeforeCompileGLSLShadows

Open →

30 Shaders

Animated Galaxy

The galaxy rebuilt on a custom shader — stars spun around the centre and drawn as soft points on the GPU.

GLSLPointsgl_PointCoord

Open →

29 Shaders

Raging Sea

An animated sea built from layered Perlin noise in the vertex shader, coloured by wave height.

GLSLPerlin NoiseVertex Shader

Open →

28 Shaders

Shader Patterns

Drawing stripes, gradients, stars and grids straight from UV coordinates in the fragment shader.

GLSLUVFragment Shader

Open →

27 Shaders

Shaders

Writing GLSL by hand — a vertex and fragment shader on a ShaderMaterial, driven by custom uniforms and attributes.

GLSLShaderMaterialUniforms

Open →

26 Advanced Techniques

Code Structuring for Bigger Projects

Breaking a single long script into classes — an Experience singleton, an event emitter and a resource loader.

ClassesEventEmitterSingleton

Open →

25 Advanced Techniques

Realistic Render

Tuning tone mapping, shadows and texture encoding until a loaded model sits believably in its environment.

Tone MappingShadowsColor Space

Open →

24 Advanced Techniques

Environment Map

Lighting a scene with its surroundings — cube maps, HDR and EXR environments, and a real-time cube camera.

HDRIRGBELoaderCubeCamera

Open →

23 Advanced Techniques

Custom Models with Blender

Modelling in Blender and exporting to glTF, then loading the result with Draco compression.

BlenderglTF ExportDRACOLoader

Open →

22 Advanced Techniques

Raycaster and Mouse Events

Casting rays to detect what the pointer is over, for hover and click interaction with objects in the scene.

RaycasterPointer EventsHit Testing

Open →

21 Advanced Techniques

Imported Models

Loading glTF models — plain, binary, embedded and Draco-compressed — and playing their baked animations.

GLTFLoaderDracoAnimationMixer

Open →

20 Advanced Techniques

Physics

Rigid bodies falling and colliding on a floor, with a physics world stepped alongside the render loop.

Cannon-esCollisionsRigid Bodies

Open →

19 Advanced Techniques

Scroll Based Animation

A one-page portfolio where the scroll position drives the camera and the objects on screen.

ScrollMeshToonMaterialParallax

Open →

18 Classic Techniques

Galaxy Generator

A procedurally generated galaxy, tweakable in real time from lil-gui.

PointsBufferGeometrylil-gui

Open →

17 Classic Techniques

Particles

Rendering thousands of sprites with Points and BufferGeometry.

PointsBufferGeometryPointsMaterial

Open →

16 Classic Techniques

Haunted House

The full scene build — house, graves and fog, with PBR texture sets for the walls, roof, floor and bushes.

PBR TexturesFogTimer

Open →

15 Classic Techniques

Shadows

Directional and ambient light over a sphere and floor plane, with lil-gui controls for light position and material response.

DirectionalLightMeshStandardMateriallil-gui

Open →

14 Classic Techniques

Lights

Ambient and point lights over a standard material, shading a sphere, cube, torus and floor plane.

AmbientLightPointLightMeshStandardMaterial

Open →

12 Basics

3D Text

TextGeometry with a loaded font and matcap materials, surrounded by a field of scattered donuts.

TextGeometryFontLoaderMatcap

Open →

11 Basics

Materials

Every built-in material side by side — from MeshBasic to MeshPhysical with transmission, lit by an HDR environment map.

MeshPhysicalMaterialRGBELoaderlil-gui

Open →

04 Basics

Transform Objects

Position, rotation and scale on a mesh, with an axes helper for orientation.

MeshPositionAxesHelper

Open →