Step is a two-dimensional physics simulation engine. Step uses StepCore as it's physical simulation library. Stepcore can be used without Step for complex simulations which require coding or in other software which require physical simulation functionality. It is designed to provide accurate simulation.
- Classical mechanical simulation in two dimensions
- Particles, springs with dumping, 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
Step allows bodies and forces to be placed by the user:
- Bodies range from tiny particles to huge polygons, and each body has unique properties that influence the outcome of the simulation, such as mass and velocity, and their derivations such as kinetic energy.
- Forces can produced by adding gravitation, Coulomb force or other effects or added directly by the user.
All the bodies and forces can be modified in real time and users can add graphs and meters to display any property of any body.