Creations

(stuff I made)


Murmuration is a simulation of emergent behavior that is often visible in nature in schools of fish or flocks of birds. The term 'murmuration' is the word for a flock of starlings, which often demonstrate emergent flocking behaviors.

This simulation is based on the Boids algorithm made by Craig Reynolds in 1986.

The 'boids' in this simulation are governed by simple rules that lead to their collective behavior: avoid running into other birds, match velocity with nearby birds, and steer towards the average center of nearby birds. You can tune these behaviors with the included controls.

I made this using WebGL via Javascript and Three.js.


SuperShape is a tool that generates a 3-dimensional parametric surface representation of a 'superformula' (or really, 2 superformulae combined). You can also download and save the shapes you make.

The 'superformula' was created by Johan Gielis around 2000 as a way of representing shapes found in nature. Many of the shapes generated are similar to ellipsoids or hyperbolic forms. I'm certainly not the only person to make one of these: Paul Bourke has a nice site with lots more information about this and other cool maths.

SuperShape is written in C++(20) and cross-compiled to webassembly to run in a web browser. You can try it out yourself (but it might not work great on mobile).

I wrote this tool both to quickly make cool 3D shapes as a starting point for my own projects, but also because procedural generation is neat. Lots of games use procedural generation in some form, but some games take it to a new level, generating whole worlds and universes (stuff like Spore, Love, and No Man's Sky), and that's really cool.