Bounce – First Version

The first version of Bounce is a Java applet. It was written by John Allwine when he was in high school, learning Java. Unfortunately, for security reasons Java applets are no longer supported in major browsers. If by chance you are using a browser that supports Java applets, it should appear below. If not, you can still run Bounce by downloading Bounce.jar and either run it by double clicking on it or running the command “java -jar Bounce.jar”. Use the controls below to interact with the simulation!


  • Left-click and drag to create a ball
  • Left-click on a ball and drag to move it, creating
    a velocity depending on how fast you are moving the mouse
  • Shift+Left-click on a ball and drag to copy the ball
  • Control+Left-click on a ball and drag to move the ball while
    retaining its velocity
  • Right-click on a ball to delete it
  • Control+Right-click on a ball to make it stationary
  • Spacebar pauses the simulation
  • Control+(1-9) saves the simulation to that number
  • (1-9) loads the corresponding saved simulation
  • 0 clears all the balls
  • Control+0 freezes all the balls
  • a adds a ball with random velocity/mass
  • Control+a adds a ball with random mass and a velocity of 0
  • Backspace removes the last added ball
  • c toggles color
  • Shift+c picks a random background color
  • Control+c alternates the background color between black and white
  • v toggles the vector lines
  • s toggles the general statistics
  • g toggles the grid
  • b toggles the individual ball statistics
  • e toggles the grid snap (snaps cursor to the grid)
  • w toggles the number snap (snaps velocities and masses to whole numbers)
  • q toggles the angle snap (snaps the angle to increments of 15 degrees)
  • f toggles between drawing velocities from a ball’s edge and from a ball’s center
  • up-arrow increases the velocity of each ball by .5
  • down-arrow decreases the velocity of each ball by .5
  • = increases the velocity vector length multiplier
  • – decreases the velocity vector length multiplier
  • Control+= increases the time increment
  • Control+- decreases the time increment
  • Shift+= increases the crosshair’s size
  • Shift+- decreases the crosshair’s size
  • j sets John’s favorite settings

Leave a Reply

Your email address will not be published. Required fields are marked *

nine × = 54