				if(mouseDown){
					shape[n].scale(1.03);
				}
				shape[n].move();
				// that isNAN is a catch for something breaking the numbers.  it was leaving dead polygons at 0 0 sometimes
				if(isNaN(shape[n].position.y) || shape[n].position.y > canvasHeight + shape[n].radius){
					shape.splice(n, 1);
					n--;
					numShapes--;
				}else{
					shape[n].opacity *= shrinkRate;
					shape[n].draw();
				}
			}
			if(leadShape != null){
				leadShape.age();
			}
		}

		window.onload = function(){
			var canvas 