Convolutional textures

7 Jan 2019

Self-updating textures can be used to achieve impressive visual effects using the GPU. In this article I demonstrate four interactive applications of this technique, ranging from simple cellular automata to displacing vegetation and simulating waves in a body of water.

Simulated ecosystems

3 Dec 2018

Ecosystems can be simulated to observe and understand their behaviour. In a closed ecosystem, nothing enters or leaves the system from the outside world. I simulate and explore such a system in this article, and I discuss its real world similarities and applications.

Swarm behaviour

1 Feb 2018

Swarm behaviour can be simulated using a few simple rules. Implementing these rules enables us to simulate flocking birds, schooling fish and swarming crowds. In this article, I walk through the process of implementing this algorithm.

Lindenmayer systems

16 Dec 2017

Lindenmayer systems (or L-systems) can be used to produce intricate patterns by repeatedly applying production rules. Rendering these systems results in interesting fractals that can be useful in procedural generation. A method for rendering 3D Lindenmayer systems is demonstrated.

2D platformer physics

7 Nov 2017

In this tutorial I walk through the process of writing a simple grid based platformer in javascript. The result is a universal platform physics engine suitable for any platformer. This implementation uses edge collisions instead of cell collisions, which allows for more compact level design.

Cubic noise

31 Oct 2017

Coherent random noise can be used to create a great variety of effects. The algorithm for generating cubic noise is explained. An interactive cubic noise generator is inclued, as well as a procedural terrain generator.