Как создают анимацию в html5 canvas?
Как делаю я. Обычно у меня есть функция основная функция называю ее handler. Она постоянно вызывается. А в ней уже вызываются другие функции. Ну вот мой пример https://jsfiddle.net/twobomb/b05nmjs5/
Разработка на канвасе у меня обычно начинается со следующего кодаvar canvas, ctxW = 500, ctxH = 500,ctx;

	window.onload = function(){
		canvas = document.createElement("canvas");
		canvas.width = ctxW;
		canvas.height = ctxH;
		document.body.appendChild(canvas);
		ctx = canvas.getContext("2d");
		handler();
	}

	function handler () {
		 ctx.clearRect(0,0,ctxW,ctxH);
   //Тут вызов функций и прочие реализации

		 setTimeout(handler,1000/60);
	}
Используют свои наработки или библиотеки.
Заранее, создают структуру приложения.Анимация HTML5
PS: сводная таблица движков HTML5