add shape objects
implement compound shape
use requestAnimationFrame to reduce CPU utilization