Just a non-linear dynamical system. Inspired by The Three-Body Problem by Liu Cixin. I wrote this using ClojureScript, which I found to be an expressive way to describe the problem. Unfortunately the build output from ClojureScript is pretty large. The result of this project is over 100kb of JS, somehow. You can find the source on GitHub.