Springysim
Springysim is an interactive, 2-dimensional physics simulation. The elements simulated include point masses, springs, rigid constraints and surfaces. Springysim is interactive in that it allows you to add arbitrary elements while the simulation is running.
Screen shots
See the screen shot page.
Features
2D Particle Simulation. The basic simulation element in Springysim are particles, or point masses. Particles can interact with surfaces (collisions), and interact with each other via springs and constraints. Since point masses have no dimension, they cannot collide with each other.
2D Spring simulation. Pairs of particles can be joined with springs. Springs conform to Hooke’s Law- they exert a force on particles, but have no mass.
Adjustable spring parameters. Each spring is described by its Spring Constant and Damping Constant. Different types of springs can be created with different combinations of these parameters. Different spring types can also have different colors in the simulation interface.
2D Rigid Constraint Simulation. Rigid constraints enforce limits on the absolute and relative positions of particles. Several different types of rigid constraint are supported, including limiting single particles to horizontal or vertical planes and constraining pairs of particles to be a fixed distance from each other. A single particles can have multiple constraints applied to it.
Loading and saving of simulations to file . Simulations including particles, springs constraints and parameters can be saved to file and reloaded.
Particle Tracing. A particle can have its trajectory traced by drawing a line between all the points the particle has occupied at different time steps in the simulation.
Three different Differential Equation Solvers. Different algorithms can be used to solve the equations that describe the forces that act on the particles. The different types of solver provide differing degrees of accuracy and computational complexity. Using the right algorithm is an important part of making a simulation work, and Springysim allows the differences between them to be easily seen.
Adjustable Simulation Parameters. A number of simulation parameters can be adjusted, including the speed of the simulation, the timestep, and the drag force on the particles. These parameters can also be saved in the simulation files.
History
Springysim was created as an assignment for a 2nd year C++ programming course taught by Sam Holden at Sydney University in 2000. I’ve continued to use it as a learning tool, gaining experience with the Qt GUI toolkit, the GNU autotools, physics simulation techniques and writing documentation with Docbook.
I’ve made Springysim publicly available mainly for people who are interested in learning about the basics of mechanics simulation. More sophisticated version of the algorithms and methods in Springysim are used to much greater effect in computer games and digital animation.