PSpringies v1.0

written in SuperWaba

Download PSpringies

Download PSpringies Source Code

Thanks for taking a look at PSpringies.  This PDA program is a spring and mass simulation, though you may wish to forget the physics and just play with it like a toy.  You can easily build a world of nodes connected by springs and then watch what happens when you give a pull here and a nudge there.  The program is limited only by your imagination and the fact that this is a PDA which stores your phone numbers, not your desktop machine!

The program has a few built in patterns that you can watch fly around the screen, ricochet off walls, and drag around as you wish.  Using the graphical editor, however, you will probably want to design and play with your own patterns pretty quickly.

Although you can just experiment with the interface, the following brief explanation may help:

Main GUI features
Main graphic area - your spring-mass networks bounce off the walls in here.  When in run mode: you can click on a node and drag it (and all connected nodes) around the screen.
Exit button - leave the program and return to the real world
Time step selection - controls the time step in the simulation.  Larger time steps may lead to instability...
Status indicator - tell you how many springs and masses are currently loaded
Reset button - perform whatever reset mode is currently selected
Reset mode selection - selects desired reset mode:

  • ! - set kinetic energy to zero (stop all motion)
  • 0 - clear everything, enter design mode
  • 1 - default network with 1 node, no springs
  • 2 - default network with 2 nodes, 1 spring
  • 3 - default network with 3 nodes, 3 springs
  • 4 - default network with 4 nodes, 3 springs
  • 5 - default network with 5 nodes, 4 springs
Graphical editor features
Edit/Run button - Switches the program between "simulate" and "edit" modes
Delete button - Deletes a node (and connected springs) when in "edit" mode
Fixed/Float selection - Determines whether a new node is fixed in location, or is free to float around the screen
Mass selection - Selects the mass of the next mass to be added
Spring selection - Selects the spring constant of the next spring to be added
Main graphic area
  • in edit mode - you can click a new area to add a new node and connect it with the previously selected node, or, you can click an existing node to select itYou can also drag an existing node to impart potential energy, though you will probably find it easier to do this in run mode.
  • in run mode - you can drag nodes around the screen to push and prod your creation.  The screen will clear on pen-up.

From the menubar
Gravity - allows you to toggle gravity
Friction - allows you to toggle friction
Particle Trace - leave a trail behind the particle
Show Springs - turn this off for a slight speed boost
Info/About - some program information

You must have SuperWaba installed on your PDA for this program to execute.  The following executables for SuperWaba v2.0b4r9 are included (for convenience) and should be hotsync'd to your PDA:

  • SuperWaba.prc
  • SWNatives.prc
  • SuperWaba.pdb
but you can download the most recent executables along with source-code for this excellent project from
The following PSpringie programs must also be loaded on your PDA:
  • pspringies.prc
  • pspringies.pdb
Once the above programs are loaded, just run the Pspringie program like any other PDA program.

Much thanks to others who have provided food for thought regarding this project.  They include:

  • Soda, the authors of SodaPlay ( ), an addictive and well written browser toy
  • JCraft, Inc, the authors of JSpringies ( ), which got me thinking...
  • Douglas DeCarlo, the author of XSpringies, which inspired JSpringies...
  • Rick Wild, the author of Waba ( ), the coolest and smallest Java port... ever.
  • Guilherme C. Hazan, who created SuperWaba ( ), a wonderful extension to a beautiful program
  • numerous friends and teachers over the years who have helped me see the beauty in science and feel comfortable around this sort of thing
  • and of course, my wonderful family, for letting me pursue silly diversions like this
Caveats (aka, things to be fixed at some point)
  • Graphical inaccuracies may appear due to various speed optimizations
  • The physics engine may blow-up because of large time-steps, large masses, large spring-constants, or just a bad-hair day
  • There's quite a bit of number-crunching going on, so things can get a bit bogged down
And finally, you should know that this program is provided "as is" without warranty of any kind.  Although you may find this program useful and/or entertaining, there is no guarantee of fitness for any purpose whatsoever.  The entire risk of quality and performance is with you.