Cannon.js demo

For fiddling with a cannon.js demo scene

HTML

<script src="https://raw.github.com/schteppe/cannon.js/master/build/cannon.js"></script>
<script src="https://raw.github.com/schteppe/cannon.js/master/libs/Three.js"></script>
<script src="https://raw.github.com/schteppe/cannon.js/master/libs/Stats.js"></script>
<script src="https://raw.github.com/schteppe/cannon.js/master/libs/Detector.js"></script>
<script src="https://raw.github.com/schteppe/cannon.js/master/libs/dat.gui.js"></script>
<script src="https://raw.github.com/schteppe/cannon.js/master/build/cannon.demo.js"></script>
<DOCTYPE html>
<html>
  <head>
    <title>cannon.js demo</title>
    <meta charset="utf-8">
  </head>
  <body>
  </body>
</html>

CSS

* {margin:0;padding:0}

JavaScript

// Setup demo app
var demo = new CANNON.Demo();

demo.addScene(function(app) {
    
    // Set up world
    var world = new CANNON.World();
    app.setWorld(world);
    world.gravity.set(0, 0, -20);
    world.broadphase = new CANNON.NaiveBroadphase();
    world.solver.iterations = 20;
    world.solver.setSpookParams(5000,10);
    
    // ground plane
    var groundShape = new CANNON.Plane(new CANNON.Vec3(0, 0, 1));
    var groundBody = new CANNON.RigidBody(0, groundShape);
    world.add(groundBody);
    app.addVisual(groundBody);

    // Box on plane
    var size = 2;
    var boxShape = new CANNON.Box(new CANNON.Vec3(size, size, size));
    var boxBody = new CANNON.RigidBody(30, boxShape);
    var pos = new CANNON.Vec3(0, 0, size);
    boxBody.position.set(0, 0, size);
    world.add(boxBody);
    app.addVisual(boxBody);
    
});

demo.start();