У вас есть 2 пути: сделать рендеринг в браузере, но генерировать данные на сервере, либо сделать рендеринг на сервере.
При выбросе костей на самом деле имеет значение лишь то, что на верхних гранях, а остальное по большому счету не важно. Данных вам нужно немного, по сути массив с выпавшими костяшками.
На мой взгляд, логичнее всего произвести рендеринг на клиенте с использованием Three.js. Благо нарисовать кубик с разными гранями задача элементарная. В threejs вы можете начать с простых кубиков, а потом нарисовать хорошую модель с материалами в Fusion 360, экспортировать в STL, загрузить модель в Three.js и анимированно разместить ее в пространстве.
Так или иначе вы прийдете к тому, что вам захочется иметь красочный результат. Такой результат возможен лишь при наличии контроля освещения и материалов поверхностей. Т.е. нужна работа OpenGL или иного графического движка. Это можно делать на PHP
https://github.com/Ponup/php-opengl Вопрос лишь в накладных ресурсах.
Если вам не нужно делать статическую одинаковую картинку, которая будет потом отправляться по почте, то нет смысла делать рендеринг на сервере.