Step is an interactive physical simulator. It allows you to explore the physical world through simulations. It works like this: you place some bodies on the scene, add some forces such as gravity or springs, then click Simulate and Step shows you how your scene will evolve according to the laws of physics. You can change every property of the bodies/forces in your experiment (even during simulation) and see how this will change evolution of the experiment. With Step you cannot only learn but feel how physics works!
- Classical mechanical simulation in two dimensions
- Particles, springs with damping, gravitational and coulomb forces
- Rigid bodies
- Collision detection (currently only discrete) and handling
- Soft (deformable) bodies simulated as user-editable particles-springs system, sound waves
- Molecular dynamics (currently using Lennard-Jones potential): gas and liquid, condensation and evaporation, calculation of macroscopic quantities and their variances
- Units conversion and expression calculation: you can enter something like "(2 days + 3 hours) * 80 km/h" and it will be accepted as distance value (requires libqalculate)
- Errors calculation and propagation: you can enter values like "1.3 ± 0.2" for any property and errors for all dependent properties will be calculated using statistical formulas
- Solver error estimation: errors introduced by the solver is calculated and added to user-entered errors
- Several different solvers: up to 8th order, explicit and implicit, with or without adaptive timestep (most of the solvers require GSL library)
- Controller tool to easily control properties during simulation (even with custom keyboard shortcuts)
- Tools to visualize results: graph, meter, tracer
- Context information for all objects, integrated wikipedia browser
- Collection of example experiments, more can be downloaded with KNewStuff
- Integrated tutorials
StepCore is the physical simulation library on which Step is based. It can be used without Step for complex simulations which require coding or in other software which require physical simulation functionality. It is designed in order to be extensible, tunable and to provide accurate simulation.
- Unstable version. Generated from the latest version of the development branch.