I used a custom "engine" I wrote.
You can check out the code on github.
Wow that is pretty impressive!
Very good job :)