Увидел где-то рекомендацию использовать Phaser для работы с графикой в JS. Стало интересно попробовать.

Заточен он на двухмерную графику, причем, умеет автоматически определять поддержку WebGL и рендерить в него, а в случае, если его нет, откатываться на канвас.

Актуальная на сегодня версия 3, но на сайте документация ко второй версии, и описания толком никакого нет. Пришлось, в лучших традициях, копать исходники примеров, хорошо, что есть портированные версии, и смотреть, как это всё работает.

В целом достаточно бодро получилось, можно попробовать использовать в реальном коде.