Skip to content

bullet-physics-playground/bpp

Repository files navigation

The Bullet Physics Playground

A very simple physics simulation software.

Features

  • Lua scripting (experimental, sometimes segfaults)
  • OpenGL-2 GUI (experimental, no OpenCL features)
  • OpenSCAD import (experimental, sometimes crashes)
  • POV-Ray / Lightsys export (stable)

Screenshot

Screenshot as of b9331bf2.png

Videos on YouTube

Bullet Physics Playground

Build

Select your operating system:

Run

Start with GUI:

$ release/bpp

Start without GUI and render a 400 frames animation with POV-Ray from the command-line:

$ echo "render = 1" | release/bpp -f demo/basic/00-hello-pov.lua -n 400 -i

Pipe bpp simulation data into gnuplot:

$ release/bpp -n 200 -f demo/basic/00-hello-cmdline.lua | gnuplot -e "set terminal dumb; plot for[col=3:3] '/dev/stdin' using 1:col title columnheader(col) with lines"

to see a bouncing sphere:

  10 +---------------------------------------------------------------------+   
     | AA   +      +      +      +      +      +      +      +      +      |   
   9 |-+AA                                                       Y    A  +-|   
     |   AA               AAAA                                             |   
   8 |-+  AA            AA   AAA                                         +-|   
     |     A           AA      AA                                          |   
   7 |-+   AA          A        A                                        +-|   
     |      A         A          A                                         |   
   6 |-+    AA       A           AA                                      +-|   
     |       A      AA            A                                        |   
   5 |-+     A      A             AA                                     +-|   
     |        A    AA              A        AAA                            |   
   4 |-+      A    A               AA     AAA  AA                        +-|   
     |         A   A                A    AA     AA                         |   
   3 |-+       A  A                  A  AA        A                      +-|   
     |          A A                  A  A          A   AAAAAA              |   
   2 |-+        AA                   A A           AA AA    AA           +-|   
     |          AA                    AA            AAA      AAAAAAAA      |   
   1 |-+         A                    A              A        AA     AAAAAA|   
     |      +      +      +      +      +      +      +      +      +      |   
   0 +---------------------------------------------------------------------+   
     0      20     40     60     80    100    120    140    160    180    200  

For more demos, see demo/.

For a list of Lua-accessible classes, functions and properties, run:

$ release/bpp -f demo/basic/00-luabind.lua

Basic Usage HOWTO

Viewer

Keyboard shortcuts

  • S starts/stops the physics simulation
  • P toggles the POV-Ray export mode
  • G toggles the PNG screenshot saving mode
  • A toggles display of world axis
  • F toggles FPS display
  • ⏎ Enter starts/stops the animation
  • Space toggles between fly/revolve camera modes
  • Use arrow keys to move the camera
  • Hs hows QGLViewer help window: note the above shortcuts overwrite the QGLViewer ones under the "Keyboard" tab.

Mouse usage

  • Press H to show QGLViewer help window, and click on the "Mouse" tab to see all the possible mouse actions.

Editor

The editor has a few known problems:

  • It will crash if you try to use a non-existant file for a Mesh object. It will crash too if you try to edit the file name. The workaround is to comment out the Mesh and v:add() lines before editing them.

  • With scripts which load many objects, or big meshes, the typing can be very slow.

Wiki

Chat

Gitter

Author

  • Jakob Flierlkoppi – Initial release.

Contributors

License

The Bullet Physics Playground is licensed under the GNU Lesser General Public License.