An overview of the demo applications

Demo applications are provided to showcase certain features of Libbulletjme. The following demos are found in the com.github.stephengold.sport.demo package of the SPORT "apps" sub-project:

  • ConveyorDemo demonstrates contact-point modifications

  • NewtonsCradle demonstrates dynamic restitution and point-to-point joints

  • Pachinko demonstrates compound collision shapes and 2-D physics

  • SplitDemo demonstrates dynamic splitting of rigid bodies

  • TestGearJoint demonstrates a gear joint

  • ThousandCubes demonstrates stacking cubes and launching projectiles

  • Windlass demonstrates rope simulation using rigid bodies

User interface

The demos are controlled primarily by keyboard input.

The descriptions below assume a keyboard with the "US" (QWERTY) layout. On keyboards with other layouts, the keys may be labeled differently.

For convenience, the mapping of keys to actions is partly standardized. In most demos:

  • . and Pause toggle the simulation between running and paused,

  • C dumps the camera’s position to the console, and

  • Esc ends the application.

For camera control, all demos use Immediate rotation mode. This means you can rotate the camera by simply moving the mouse. Furthermore:

  • W and S dolly the camera forward and back, respectively,

  • A and D dolly the camera left and right, respectively,

  • Q raises the camera, and

  • Z lowers the camera.

Additional mappings are specific to each application:

  • In ConveyorDemo:

    • Enter, I, Ins, Numpad0, and Spacebar drop a box onto the conveyor belt

  • In NewtonsCradle:

    • F1, 1, and Numpad1 restart with a single ball

    • F2, 2, and Numpad2 restart with 2 balls

    • F3, 3, and Numpad3 restart with 3 balls

    • F4, 4, and Numpad4 restart with 4 balls

  • In Pachinko:

    • F4, 4, and Numpad4 restart with 4 rows of pins

    • F5, 5, and Numpad5 restart with 5 rows of pins

    • F6, 6, and Numpad6 restart with 6 rows of pins

    • F7, 7, and Numpad7 restart with 7 rows of pins

    • F8, 8, and Numpad8 restart with 8 rows of pins

    • F9, 9, and Numpad9 restart with 9 rows of pins

  • In SplitDemo:

    • Tab convert all bodies to splittable shapes

    • Home, Numpad5 restart with a random rigid body

    • Enter, Numpad0, Spacebar split all shapes

    • L bracket, R bracket rotate the splitting plane

  • In TestGearJoint:

    • R and Down arrow apply +Y torque to the drive shaft

    • F and Up arrow apply -Y torque to the drive shaft

  • In ThousandCubes:

    • E launch a red ball

  • In Windlass:

    • Down arrow turn the barrel counter-clockwise

    • Up arrow turn the barrel clockwise