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
Reset button - perform whatever reset mode is currently selected
Reset mode selection - selects desired reset mode:
Graphical editor features
- ! - 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
Edit/Run button - Switches the program between "simulate" and
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 it. You
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
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:
but you can download the most recent executables along with source-code
for this excellent project from http://www.superwaba.org/
The following PSpringie programs must also be loaded on your PDA:
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:
Caveats (aka, things to be fixed at some point)
- Soda, the authors of SodaPlay ( http://sodaplay.com/
), an addictive and well written browser toy
- JCraft, Inc, the authors of JSpringies ( http://www.jcraft.com/jspringies/
), which got me thinking...
- Douglas DeCarlo, the author of XSpringies, which inspired JSpringies...
- Rick Wild, the author of Waba ( http://wabasoft.com/
), the coolest and smallest Java port... ever.
- Guilherme C. Hazan, who created SuperWaba ( http://www.superwaba.org/
), 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
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.
- 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