News Mar 20: R.U.B.E v1.7 released. Instanciable objects!
Feb 21: Added RUBE sample loader for Cocos2d-X v3.4.
Feb 17: Funny Fists released in iOS App store and Google Play store. (YouTube video)
2014
May 25: R.U.B.E v1.6 released. Samplers!
May 12: "On-the-fly" resource updating for Cocos2d-x
Apr 22: New blog post: Inverted pendulum control
Apr 7: On-screen logging class for Cocos2d-x
Mar 22: Downhill Supreme 2 released for iOS and Android
Jan 2: YouTube video: Making soft-body wheels in RUBE
2013
Oct 6: Check out Supplyfront RTS, my 7dRTS entry continued.
Sep 26: R.U.B.E v1.5 released. Customizable item labels, snap-to-grid, export filtering, full-text help search.
Sep 18: Added RUBE sample loader for Cocos2d-X.
Sep 16: Updated RUBE sample loader for Cocos2d v2.
Aug 12: RUBE loader for Nape by Zeh Fernando
Aug 7: Added RUBE sample loader for SFML.
Jul 30: Try my MiniLD 7dRTS entry.
Jul 24: Added physics-driven particles tutorial.
Jul 20: New blog post: rendering solid ground (as in Downhill Supreme)
Jul 18: R.U.B.E v1.4 released. Command-line interface for batch jobs, hotkeys for scripts, better script management.
May 22: Downhill Supreme is out now! (iOS)
Apr 2: R.U.B.E v1.3 released. Collision bitplane editing, Cocos2d-iphone loader, usability improvements.
Mar 11: R.U.B.E v1.2 released. Now supports weld, friction, motor joints and automatic image reloading.
Mar 10: RUBE loader for libGDX by Tim Scott
Jan 28: New blog post: a functional combustion engine!
Jan 22: New blog post: wind tunnel
Jan 20: Added explosions tutorial.
Jan 16: Added buoyancy tutorial.
Jan 16: AndEngine sample project to load RUBE scene by Bart Hirst
Jan 14: R.U.B.E v1.1 released, now supports custom properties.
Jan 1: All basic tutorials are now available in Chinese at ohcoder.com Huge thankyou to @OhCoder!
2012
Dec 23: Discussion forums have been set up
Dec 4: R.U.B.E v1.0 is ready !
Dec 2: YouTube video: Box2D pendulum clock
Nov 26: New blog post: rocket platform thingy
Nov 25: Video of R.U.B.E scenes in Chipmunk.
Nov 23: A sample project to load R.U.B.E scenes into Chipmunk physics! Details here.
Nov 14: An XCode sample project to load R.U.B.E scenes on iOS is now available. Details here.
Nov 11: A Java version of b2dJson is now available, based on JBox2D.
Nov 6: A Javascript version of b2dJson based on box2dweb is now available. Demo here!
Nov 2: The full specification of the JSON format used by b2dJson can be found here: b2dJson file structure
Oct 28: YouTube video: 2-minute ragdoll in R.U.B.E Box2D editor
Sep 29: YouTube video: R.U.B.E Box2D editor usage example
Created: January 28 2013

Combustion engine


I have often wondered whether it would be possible to simulate an internal combustion engine in Box2D, right down to the individual gas molecules burning inside the cylinder, but obviously creating such a complex beast like that in C++ code would be a time-consuming nightmare. Now that the R.U.B.E editor is on the scene, ideas like this which were previously only daydreams can step into reality.

As it turns out, it is possible. You can see the general overview in the video below, and source code is available for those interested in the nitty gritty. Fuel burning is simulated by giving small particles a very large density and velocity for a brief time. If they collide with unburned particles during this time, the unburned particles will also ignite. Other than this, there are no extra forces or impulses used to keep the engine running.

The designs in the video use a gear joint to connect the flywheel and camshaft, but it was actually possible to make this connection using fully modelled gear cogs (with meshing teeth, as in the pendulum clock) to change the rotation direction and ratio. While the engine would still run like this, it could not reach such a high rpm and the force of explosions would occasionally make the gear teeth skip a notch. Unlike the pendulum clock, keeping the gear teeth in their correct notches is critical, so when this happened the problem was unrecoverable.

Source code: iforce2d_combustionEngine-src.zip
(This uses the new motor joint so you'll need the latest version of Box2D from svn)

Binaries for Win32, Mac, Linux32 and Linux64:
iforce2d_combustionEngine-bin.zip

See the video for more details: