Try out some of the live demos below, and find out how it works. Full source code is on GitHub.