The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Lines</title>
	<link rel="stylesheet" href="../css/style.css">
	<script type="text/javascript" src="../../dist/paper-full.js"></script>
	<script type="text/paperscript" canvas="canvas">
		var amount = 45;
		for (var i = 0; i < amount; i++) {
			var path = new Path({
				fillColor: {
					hue: 1,
					saturation: 1,
					brightness: Math.random()
				},
				closed: true
			});
		}

		var position = view.center;
		var mousePos = view.center;
		var children = project.activeLayer.children;

		function iterate(count) {
			var delta = mousePos - position;
			position += delta / 10;
			for (var i = 1; i < amount; i++) {
				var path = children[i];
				var length = Math.abs(Math.sin(i + count / 40) * 300);
				path.segments = [
					position + delta / 1.5,
					position + { angle: i / amount * 360, length: length },
					position + { angle: (i + 1) / amount * 360, length: length }
				];
				path.fillColor.hue = count - length;
			}
		}

		function onFrame(event) {
			iterate(event.count);
		}

		function onMouseMove(event) {
			iterate();
			mousePos = event.point;
		}
	</script>
</head>
<body style="background:black">
	<canvas id="canvas" resize></canvas>
</body>
</html>