Collapse all tree nodesExpand all tree nodes
Expand this node
Expand this node
Springie is a tensegrity simulator.

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.

Expand this node
Expand this node
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.

Expand this node
Expand this node
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.

Expand this node
Expand this node
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

Expand this node
Expand this node
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.

Expand this node
Expand this node
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.

Expand this node
Expand this node
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.

Expand this node
Expand this node
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:


There are also a number of LiveGraphics3D models available. For example, there is a big list of available polyhedra here.

For details about how to import those, see the page about how to import models from Mathematica.

Expand this node
Expand this node
Loading model files
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.

Expand this node
Expand this node
Object properties
Objects in Springie can have a range of properties.

The following table presents an overview:

Node list-XXX

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.

Expand this node
Expand this node
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..

Expand this node
Expand this node
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.

Expand this node
Expand this node
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.

Expand this node
Expand this node
Keyboard shortcuts
There are a number of keyboard shortcuts available when editing objects. These are:

DELETEDeletes the current selection
PToggle pause
ASelect everything
ZDeselect everything
TSelect all of type
CSelect all of class
Expand this node
Expand this node
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.

Expand this node
Expand this node
  • 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.

Expand this node
Expand this node
Springie's source code
Source code for Springie is available at:


Expand this node
Expand this node
The program and its source code have been placed into the public domain. No rights are reserved.

Tim Tyler | Contact | http://springie.com/