Java Physics Engine / Starship Sumo

This is a personal project I undertook in order to better understand rigid body dynamics and Java programming. It uses Euler integration and impulse based collision response, supports arbitrary bodies made from collections of convex primitives, and contains special handling for point entities. The initial form of the project was a simple environment which allows the user to drag boxes around in the screen, shown below. To toggle motion blur, press B. To toggle image drawing, I. To toggle wireframe drawing, press W.

If you're reading this, your browser does not support the Java applet tag
Click here for source.

After testing the basic physics functionality, I expanded the program into a simple game, shown below. The player and enemies in the game cannot be damaged, but are destroyed if they pass outside the ring. The player craft constantly tries to align itself with the cursor, and can thrust forward by pressing the middle mouse or Ctrl button. Left clicking will fire a stream of small bullets. 100 points are awarded for every enemy hunter that is killed.

If you're reading this, your browser does not support the Java applet tag
Click here for source.