Collide is an event-based simulation of elastic collisions between balls. It demonstrates how a single OCaml code base can run on multiple platforms (see below). And it's mildly entertaining to watch.
Questions? Remarks? Bugs? Want to contribute? Open an issue!
Just go to http://jacquev6.github.io/Collide.
Native applications can be installed using OPAM:
$ opam pin add --yes Collide https://github.com/jacquev6/Collide.git
You can then run the command-line application (generating video frames):
$ collide_cli --help
And the graphical application:
Thanks to Apache Cordova, Collide is available on the following app stores:
It should be easy to publish as an iPhone, BlackBerry or Windows Phone app, but I have not tried.