A practical Three.js course built as a series of small interactive lessons.
The first lesson introduces the four essentials:
Scenestores the 3D world.Cameradefines the point of view.WebGLRendererdraws the world to a canvas.- The animation loop updates and redraws every frame.
The second lesson adds interactive controls for the three transformations available on every Object3D:
positionmoves an object along the X, Y and Z axes.rotationturns an object using radians.scalechanges its size along each axis.
The lesson includes controls for X and Z movement, Y rotation, uniform scaling and resetting all transforms.
The third lesson compares several geometries and material models:
BufferGeometrystores the vertices and faces of a shape.Materialcontrols color and how a surface reacts to light.Meshcombines one geometry with one material.- Roughness and metalness change the response of physically based materials.
The fourth lesson builds a small lighting studio:
AmbientLightilluminates all surfaces equally and creates no shadows.DirectionalLightuses parallel rays, similar to sunlight.PointLightradiates from a position in every direction.- Shadow maps add depth but require additional GPU work.
The fifth lesson maps generated image patterns onto a cube and sphere:
CanvasTextureturns a canvas into a texture without an external image file.- UV coordinates connect pixels from a flat image to a 3D surface.
RepeatWrappingtiles a texture beyond the default UV range.- Texture anisotropy improves sharpness when a surface is viewed at an angle.
This repository contains only the bare basics for working with Three.JS
npm install
npm run devOpen the local URL printed by Vite, then drag to orbit and scroll to zoom.



