Similar implementation using Raphael.js

Performance Issues.. perhaps working with paper.js is better.