3D
3D graphics from scratch: software engines in Java, Flash and C++, raytracers, and GLSL shaders on the GPU. 28 articles.
3D Script IDE
An interactive environment for creating 3D animations using a simple scripting language.
14 March 2023FractalToy
An online real-time fractal explorer made with WebGL, with test renderings streamed to FFmpeg for video encoding.
15 January 2015Clip3D
An online collaborative game creation tool, outputting to WebGL, iOS and Android.
14 January 2015GLSL fractals
Animated fractals with WebGL and GLSL: raycasting with a slowly moving camera, colour from surface normals, edge detection and toon shading.
29 January 20143D fractals
Write-up to come.
June 2013GLSL raycasting
Testing the feasibility of raycasting inside a fragment shader with moderately complex models: 3D fractals reminiscent of gothic cathedrals.
9 September 2012WebGL raytracer
WebGL is quite effective at raytracing simple scenes with a decent frame rate: a fragment shader framework and eight raytracers built on it.
26 December 2010PHP 3D engine
Write-up to come.
June 2009Reflective sphere
Analytical reflections in OpenGL: reverse reflection mapping draws objects at their reflected positions inside a sphere in a second pass.
27 January 2008Polychorons
Animated 3-dimensional Schlegel diagrams of 4-dimensional objects, in C++ and OpenGL.
25 January 2008CubeLogix 3D website
A Flash 3D engine with real-time shadows: navigation breaking through the background, with cubes and windows casting accurate shadows.
4 March 2007Java 3D engine
A 3D engine in Java with a scene graph and a cartoon rendering style.
13 November 2005Flash panorama ball
Simulating affine texture mapping with shears on triangular MovieClips: a sphere built by easing, texture mapped, then viewed from inside as a panorama.
28 May 2005Flash 3D: landscape
Flying over a Cartesian terrain with a generated heightmap: a simple version, then faded edges and reflected symmetry.
19 May 2004Flash 3D: cubes reflection
Combining reflections and shadow casting: three cubes over a reflective surface with a moving light, then a wavey distortion.
8 May 2004Flash 3D mixer
How to overlay Flash with a transparent background over your HTML.
3 December 2003Flash 3D: intersection
Intersecting 3D objects in Flash: eleven versions, from outlines and polygon splits to intersecting squares and cubes.
2 July 2002Flash 3D: cubes navigation
Simple objects, rotation and hit testing: solid cubes drawn with the painter's algorithm, masks, mouseover events and a wavey effect.
11 June 2002RTRay: a realtime raytracer
A realtime raytracer in C++: a classic scene with reflections and shadows, then cutting first-hit sphere tests with on-screen bounding boxes.
27 March 2002Java 3D panoramas
A barebones Java renderer with a software triangle rasteriser, then a textured cube viewed from inside as a panorama viewer, then an unfolded panorama.
2 December 2001Java 3D pillars
A demonstration scene of pillars with a reflective floor, then a cartoon shading post-process that finds outlines from discontinuities in the Z-buffer.
20 March 2001Procedural city block
A procedural method (grid subdividing, random building generation) to create the layout of a city, in C++ and OpenGL.
16 July 2000OpenGL ribbon
A Windows C++ OpenGL example: a ribbon effect, with full source.
26 January 2000OpenGL patterns with cubes
Using a 3D grid of cubes to create shapes and patterns. You could say that these are very primitive voxels.
17 January 2000Cloth simulation
A simple spring-mass grid simulates a piece of flexible material falling under gravity and slipping off objects.
13 October 1999LRay: a Java raytracer
A reference raytracer in Java: spheres, planes, reflections and procedural textures, rendered in successive passes.
10 June 1999Box & reflective tetrahedron
Using a BSP tree for reflections and object intersection, stored in flattened fixed-size arrays for speed.
31 October 1998MS-DOS 3D engine
Write-up to come.
January 1995