Create dice for your threejs scene and throw them on a specific side with cannonjs.
- 4/6/8/10/12/20 sided dice available
- Customize the appearance of the dice
- You can define the side/value, which should be upside after the die has fallen
- Types and sizes - See the possible dice shapes and options (size / font color / back color)
- Rolling - See, how you can roll 5 dice, which will always land on the same sides
npm install threejs-dice <script src="lib/dice.js"></script> <script> // Setup your threejs scene var scene = new THREE.Scene(); // ... // Setup your cannonjs world var world = new CANNON.World(); // ... DiceManager.setWorld(world); // Create a dice var dice = new DiceD6({backColor: '#ff0000}); //DiceD6 for six-sided dice; for options see DiceObject scene.add(dice.getObject()); // If you want to place the mesh somewhere else, you have to update the body dice.getObject().position.x = 150; dice.getObject().position.y = 100; dice.getObject().rotation.x = 20 * Math.PI / 180; dice.updateBodyFromMesh(); // Set the value of the side, which will be upside after the dice lands DiceManager.prepareValues([{dice: dice, value: 6}]); //Animate everything function animate() { world.step(1.0 / 60.0); dice.updateMeshFromBody(); // Call this after updating the physics world for rearranging the mesh according to the body renderer.render(scene, camera); requestAnimationFrame(animate); } requestAnimationFrame(animate); </script> Based on the "Online 3D dice roller" from http://a.teall.info/dice (http://www.teall.info/2014/01/online-3d-dice-roller.htm). Credits go to Anton Natarov, who published it under public domain. 
"You can assume that it has the MIT license (or that else) if you wish so. I do not love any licenses at all and prefer to simply say that it is completely free =)" - Anton Natarov


