Graphics

Graphics: 3D engines, raytracers, fractals, animation and effects, from MS-DOS and Java applets to GLSL shaders and microcontrollers. 45 articles.

3D Script IDE

An interactive environment for creating 3D animations using a simple scripting language.

14 March 2023

FractalToy

An online real-time fractal explorer made with WebGL, with test renderings streamed to FFmpeg for video encoding.

15 January 2015

Clip3D

An online collaborative game creation tool, outputting to WebGL, iOS and Android.

14 January 2015

GLSL fractals

Animated fractals with WebGL and GLSL: raycasting with a slowly moving camera, colour from surface normals, edge detection and toon shading.

29 January 2014

3D fractals

Write-up to come.

June 2013

GLSL raycasting

Testing the feasibility of raycasting inside a fragment shader with moderately complex models: 3D fractals reminiscent of gothic cathedrals.

9 September 2012

WebGL 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 2010

PHP 3D engine

Write-up to come.

June 2009

Reflective sphere

Analytical reflections in OpenGL: reverse reflection mapping draws objects at their reflected positions inside a sphere in a second pass.

27 January 2008

Polychorons

Animated 3-dimensional Schlegel diagrams of 4-dimensional objects, in C++ and OpenGL.

25 January 2008

CubeLogix 3D website

A Flash 3D engine with real-time shadows: navigation breaking through the background, with cubes and windows casting accurate shadows.

4 March 2007

Java 3D engine

A 3D engine in Java with a scene graph and a cartoon rendering style.

13 November 2005

Flash smoke

A smoke effect in six versions: smokey motion, smooth particles, lines, a grid with scale and fade, and direction and scale.

30 October 2005

Flash bubbles

Simple example of animation with friction and wind, in two versions.

12 October 2005

TextureEvolver

TextureEvolver: a Java applet for evolving textures, with source for three versions.

17 June 2005

Flash 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 2005

Flash ZoomGrid

A zooming grid built two ways: a simple overlay method and an optimised binary method.

23 May 2005

Fluid dynamics galaxy

Trying out a galaxy effect using an FFT-based fluid solver, where the force field on the liquid is gravitational.

29 March 2005

Galaxy simulation

Simulating gravity in a 2D wrap-around universe, from Java applets to a C++ version using FFT convolution for the force field.

1 January 2005

Flash bouncing ball

A bouncing ball: a simple animation example for ActionScript 1.0 and 2.0.

21 November 2004

Flash 3D: landscape

Flying over a Cartesian terrain with a generated heightmap: a simple version, then faded edges and reflected symmetry.

19 May 2004

Flash growing things

Particle trails making plant-like patterns: simple cracks, branching parameters, an oil spill and plants.

17 May 2004

Flash 3D: cubes reflection

Combining reflections and shadow casting: three cubes over a reflective surface with a moving light, then a wavey distortion.

8 May 2004

Flash 3D mixer

How to overlay Flash with a transparent background over your HTML.

3 December 2003

Flash circle strips

Circle strips: a simple animation example for ActionScript 1.0 and 2.0.

24 July 2002

Flash 3D: intersection

Intersecting 3D objects in Flash: eleven versions, from outlines and polygon splits to intersecting squares and cubes.

2 July 2002

Flash 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 2002

Flash dust

Dust: a simple animation example for ActionScript 1.0 and 2.0.

22 May 2002

RTRay: 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 2002

Java animated Julia fractals

Weird Julia-style animated fractals: a Java applet, with source.

16 December 2001

Java 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 2001

Java fog effects

Six fog effects as Java applets: embossed zoom, blurred checks and XOR patterns, checkers, zooming smoke and morphing patterns.

1 September 2001

Java 2D blobs

Animated 2D blobs: a Java applet effect, with source.

22 July 2001

Java green liquid goo

Green liquid goo: an animated Java applet effect, with source.

8 July 2001

Java 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 2001

Java XOR patterns

A Java applet that spins 3D objects and XORs their polygons into the frame, leaving interesting patterns.

8 February 2001

Java Mandelbrot zoom

A Java applet that draws the Mandelbrot set and zooms into any rectangle you drag out with the mouse.

24 July 2000

Procedural city block

A procedural method (grid subdividing, random building generation) to create the layout of a city, in C++ and OpenGL.

16 July 2000

OpenGL ribbon

A Windows C++ OpenGL example: a ribbon effect, with full source.

26 January 2000

OpenGL 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 2000

Cloth simulation

A simple spring-mass grid simulates a piece of flexible material falling under gravity and slipping off objects.

13 October 1999

LRay: a Java raytracer

A reference raytracer in Java: spheres, planes, reflections and procedural textures, rendered in successive passes.

10 June 1999

Box & reflective tetrahedron

Using a BSP tree for reflections and object intersection, stored in flattened fixed-size arrays for speed.

31 October 1998

C++ graphics effects

C++ graphics experiments for Windows: a fractal universe generator, a pattern generator and its function networks, triangles, pixel text and polygon booleans.

1 June 1998

MS-DOS 3D engine

Write-up to come.

January 1995