In today's Web Wednesday post we're highlighting something you might think a little oxymoronic, a JavaScript Physics engine.

It's still in an Alpha status, but even so, it's looking pretty cool...

A modular, extendable, and easy-to-use physics engine for javascript PhysicsJS is still under development (alpha version 0.5.1), and documentation is unfinished. Feel free to use it, just be warned that the API is in flux and better documentation is on its way! (Contributors and help needed!) Features Use as an AMD Module (requireJS) , or global namespace .

, or . Modular ! Only load what you need. The core library is only 31k minified.

! Only load what you need. The core library is only 31k minified. Extendable ! Don’t like the collision detection algorithm? Replace it with your own!

! Don’t like the collision detection algorithm? Replace it with your own! Not tied to a specific renderer. Display it in DOM , HTML5 Canvas , or whatever…

, , or whatever… Easy! It’s a library written IN javascript … not C compiled into javascript. The syntax is familiar for javascript developers.

… not C compiled into javascript. The syntax is familiar for javascript developers. Extensions to support points , circles , and arbitrary convex polygons .

, , and arbitrary . Extensions to support constant gravity, newtonian gravity, collisions, and verlet constraints.

The fastest way to get a feel for what's possible is by checking out the Demos.

There's even documentation already too.

Introductory documentation can be found on the PhysicsJS website. The wiki contains more advanced usage instructions. Due to the newness of this library, documentation is non-exhaustive. If there are any points of confusion, please feel free to log an issue or contact me. You can also edit the wiki yourself to fill in the gaps. Any help with documenting is appreciated. Topics Fundamentals

Scratchpads - they speed up computations

Bodies

PubSub

Behaviors

Collisions

Integrators

Renderers

And the source is officially available too;