It simulates nodes, struts, cables and faces in a virtual
universe with gravitational and electromagnetic interactions.
For a more detailed overview of Springie's features,
see the introduction.
Minimum requirements
Java 1.1 is needed. That's been around for the last ten years.
Unless you are using a mobile phone, if you have a Java
Virtual Machine installed at all, it is probably
recent enough to run Springie.
If you don't have a Java Virtual Machine installed,
then a trip to [http://java.com/]
is likely to be needed.
Springie has been tested under Windows and Linux.
It should work under other operating systems - but
hasn't yet been tested by the author in other environments.
Running as an applet
For casual users, running as an applet is recommended - i.e.
point your web browser at
http://springie.com/
and click on one of the links at the top.
You will need to have a Java Virtual Machine installed in your
browser.
Running as an application
Note that you will need to run Springie as an
application if you want to be able to read or write files
from your local machine.
To run Springie as an application, first download the
.JAR file from http://springie.com/ to a directory.
Sensible operating systems allow you to run .JAR files
by double-clicking them. If that doesn't work, the file
can usually be run by typing:
java -jar springie.jar
...at a command prompt with the current directory listing
showing the jar file.
Microsoft Windows users who haven't downloaded a modern
Java Virtual Machine from
[http://java.com/] can often still
run Springie as an application - by using the command:
jview /cp springie.jar com.springie.FrEnd
Getting started
After getting Springie up and running the first
thing most users should do is to load the supplied example
models and explore them.
To do this, use the two drop-down choices at the bottom -
which should look something like:
Ideally, both choices should be explored - starting
with the second one.
Changing the first choice alters the contents of the second
one.
There are quite a lot of models in all - many more than the
four pictured here.
Once a model has been selected - using the second drop-down
list, click on the red "Restart" button on the right to load
it.
Display
Springie currently displays its models using a rather simple
rendering system.
Models look something like this:
This snapshot illustrates the strut lengths being indicated
on selected struts.
Basic controls
After loading a model, you should be able to select elements and
drag them around - by clicking on them and dragging them.
The right mouse button can be used to rotate the models.
You can destroy elements by clicking on them with the middle
mouse button - which causes them to explode.
There's also a pause control - to allow the models to be
frozen.
Obtaining model files
By default, Springie comes with a only a few demonstration files.
If online, it loads files dynamically from beneath:
...when users request them. This is not always a rapid process.
While copyright considerations prevent convenient
redistribution of many of the model files that have been
previously constructed, there are several archives of model
files independently available from:
By far the easiest way to load files into Springie
is to use drag-and-drop.
This works between the filing system into any Springie window.
Note, however: drag-and-drop was introduced into Java at
version 1.2 - so, if you are using a Java 1.1 virtual
machine, drag-and-drop will not work.
Under those circumstances, it is still possible to load
files using the file menu on the menu bar at the top
of Springie's main window.
As well as loading files, it is possible to merge input
files with existing models.
To try that, turn on the see the Preferences -> I/O -
> Merge option.
Object properties
Objects in Springie can have a range of properties.
The following table presents an overview:
\
Node
Cable
Strut
Face
Colour
X
X
X
X
Hidden
X
X
X
X
Selected
X
X
X
X
Radius
X
X
X
-
Disabled
X
X
X
-
Length
-
X
X
-
Elasticity
-
X
X
-
Damping
-
X
X
-
Compression
-
-
X
-
Tension
-
X
X
-
Pinned
X
-
-
-
Charge
X
-
-
-
Mass
X
-
-
-
Location
X
-
-
-
Velocity
X
-
-
-
Node list
-
X
X
X
Some of these categories deserve some further explanation:
Hidden objects are invisible - and can't be
seen, selected or manipulated (unless the relevant option to
show hidden objects is selected).
Elasticity represents the constant of
proportionality in Hook's law.
Damping represents the magnitude of frictional
forces inside each strut. Without such forces, struts
would oscillate about their rest length indefinitely once
perturbed.
Charge represents electrostatic charge. It
causes nodes to repel or attract each other. Node repulsion
is important in Springie - since it can be used to
"inflate" structures which would otherwise be unstable.
Colour has more than just cosmetic significance in
Springie. It is used to group objects together by
type. If you have selected an object, all the other objects
of the same colour can be selected - by clicking the "class"
button in the main editing window. They can then be
manipulated simultaneously by many editing operations.
Disabled - when applied to links,
causes forces in them to be zero. When applied to nodes, it
disables the effect of any electrostatic charges.
Selecting objects
All objects in Springie can be selected.
Selection is important in Springie - since most editing
operations act on the selection.
The simplest way to select something is to click on it
with the mouse.
Holding down the control key while doing this prevents
any existing objects from first being deselected.
There are other ways to select objects. Probably most
important of these are the "Select all of" options:
"Select all of class" selects all items of the same
colour as the current selection. This is one of the most
common editing actions.
"Select all of type" selects all nodes if there are any
selected, all links if there are any selected and all
polygons if there are any selected..
Manipulating objects
This illustrates the default page of controls.
There are a number of editing primitives for
manipulating models - the attributes of
each element can be changed - and elements
can be deleted, cloned and linked together
in different configurations.
From the top:
Firstly there are a number of ways of selecting items.
Basic selection is often done using the mouse - either
clicking on objects to select them, or using a drag box -
but this areas also allows configuration of what it is
possible to select, and where large-scale operations on
the selection can be made.
The "class" button here is very important - it selects all
items of the same colour as what is currently selected.
Then come the "properties". These are used to make
quantitative changes to attributes of all selected
objects.
A number of scalar properties are shown here: radius,
length, elasticity, damping and charge. Making both
absolute and relative changes is possible.
Then there are flags - boolean property settings. These
take the form of checkboxes. These affect all selected
object's attributes.
Colour
This shows the main colour editing dialogue in Springie's
controls.
Colour plays a functional role in Springie - it is
one of the main ways of grouping items together: so this is
an important area.
The first is a tab controlling whether the
HSB (hue-saturation-brightness) or RGB (red-green-blue) colour
model is to be used.
Then there are a number of sliders where the colour can be
configured and the level of opacity can be controlled.
At the bottom there are areas where the colour can be
previewed and set.
Colours can be stored on a temporary basis - and previously
configured colours can be restored.
There are many other areas in Springie where colours can be
configured; they all have the same basic layout illustrated
by this control panel.
Keyboard shortcuts
There are a number of keyboard shortcuts available when editing objects. These are:
DELETE
Deletes the current selection
P
Toggle pause
A
Select everything
Z
Deselect everything
T
Select all of type
C
Select all of class
Limitations
There is much that remains to be done - in
particular:
There's no facility to undo changes that have been made;
Editing facilities are still rather crude;
There are no motor cells, nerve cells or neurons yet;
There's no copy, cut or paste facility;
The Springie renderer could be vastly improved;
There is a serious need for a dynamic scripting language;
Springie needs to implement the model-controller-view pattern;
Support for form-finding tensile structure applications;
Support for membrane patterning applications.
Support for membrane forces - for simulating inflated structures.
...and so on.
Troubleshooting
Loading files
A problem
new users of Springie will often face is that they
will attempt to import a model generated by another program
- and it will rapidly "implode" on them - resulting into a
seething mass of struts.
This happens mainly because the import routines do not
currently do a perfect job of translating the existing
models into a form that can be handled in the
Springie universe.
If this happens, then all is not necessarily lost - it is
quite likely that the model can be imported if some settings
are changed.
One of the first things to try is to increase the
"viscosity" of the Springie universe to a high value (using
the "Universe controls") - and attempt the import again.
If that fails, try importing while the universe is paused - and
then select everything, and globally decrease the "elasticity"
of all the elements.
Proxy problems
Springie connects back to the server it was
loaded from to access data files. If you access it via a
proxy, while it will load and display a few built-in models,
most of the models it can render won't load - since applet
security constraints place limits on the connections
untrusted applets are permitted to make.
Crossed struts
Rendering crossed struts does not always
draw the struts on top of each other in the right order.
Hopefully this problem will be addressed in a future
version of Springie.