Technique and visuals taken from this article by Ben Golus. Check out the source code here: Github repo
Implemented by Georgi Nikolov.