На мой взгляд, лучше научиться делать такое на SVG, чем на canvas'е. Canvas - это растр, а SVG - это вектор. За векторами, как я считаю, будущее. Канвас до кучи ещё имеет некоторые ограничения по размеру холста, которые зависят от браузера и платформы.
Я как-то делал одну интересную штуку, сначала сделал на канвасе, был холст over 9000px по вертикали и этот холст ронял браузер. Сначала он долго рендерил, потом при перемотке вниз с тормазами падала вкладка в хроме. Потом сделал то же самое на SVG и всё летало, рендерилось быстро, браузер не падал, можно было использовать больше площади, т.к. ограничения по максимальному размеру холста не было. Да и рисовать на SVG проще, возможностей больше, можно использовать CSS и всякие штуки типа hover.