Skip to main content
Version: 0.6


Do you love TTRPG's and wish you had some 3D dice to incorporate into your side projects? That's exactly why I started this project. This is a high performance 3D dice roller made with BabylonJS, AmmoJS and implemented with lightning fast web workers and offscreenCanvas. Designed to be easy to integrate into your own JavaScript app with a package payload under 1 megabyte after compression.

Getting Started

Install the module

The core library can be install from npm using:

npm install @3d-dice/dice-box

Copy static assets

As a post-install script, the module will attempt to copy files over to /public/assets. If this does not work then you'll need to manually copy some files over to your project. They can be found in the @3d-dice/dice-box/src/assets folder. Copy everything from this folder to your local static assets or public folder.

Die Types

This documentation makes frequent reference to common dice notations such as 5d6 where the first number represents the number of dice to roll and the d# represents the number of sides on a die. Currently support dice are d4, d6, d8, d10, d12, d20, and d100

Show me some code

See the kitchen sink code demo here:

Here's a simple React Demo for rolling attributes (using 3d6):

Here's a React Demo with support for advanced dice notation: