This is a Box2D behavior based on the Emscripten port at r2.3.0 standard. The plugin gives access to most of Box2D and includes some added helper features to make the dev process easier. The demo can be found here: link
There main demo has 4 parts:
1. The start screen gives you an idea of performance and demonstrates one-event conveyor belts with kinematic bodies. Collision points and polygons can be selected to be drawn and objects can be thrown around.
2. Bitmap / scan image. This is a demo with 2 objects - one fixed and one that will be re-spawned; when running, both types can be dragged. You can use the default images or upload your own into the demo. When you press Start the engine will scan the images and assign collision polygons from the image alpha.
3. Stress test. A comparison with Chipmunk (which, from my previous testing, is the best non-emscripten physics library in JavaScript) and the standard asm.js physics behavior. The test creates a pyramid of boxes that you can interact with or just watch collapse....
4. Draw objects. Draw some physics shapes, convex or concave, and watch them fall down. The shape vertices are stored in a c2 array which is loaded into the Box2D+ plugin to form the collision polygon.
Summary of features:
Scan image to create polygon from its alpha (uses adjusted versions of hull.js and simplify.js)
Circle, polygon and box shapes
Speed clamp
Rotational speed clamp
Collision point
Dynamic, Static and Kinematic bodies
Collision filtering (category and mask bits)
Object gravity scale
World x and y gravity values
Load collision hull from c2 json array
Get collision hull as c2 json array (create polygons outside your game and upload from string)
Raycast world queries
Assimilate Joint - demo: link
All joints are demo'd here: link
AABB world queries (find objects in a defined box area)
Gravity attractor
Polygon editor capx (demo: link)
Instructions!
More joint helper expressions added
Obtain collision impulse and collision impulse angle
Obtain pre-collision and post-collision velocity (x and y values)
Collision Pre-Solve trigger and an action to disable the collision
Compatible with Minify export
Helper plugin, if you want 1 pixel sized vertices (instead of 3 pixels in standard Box2D+) then add this helper plugin to your project: plugin link. Box2d+ will find the plugin and change the world scale.