SFish
Basic real-time simulation engine in C++
In SFish you can model simulation objects with attributes and behaviour (continuous over time and not-continuous over time, latter one being events) and the communication between objects; then you can run simulations (real-/non-real-time) given a set of objects with specific attributes and see what happens in cause of their behaviour.