Version: 0.0.4 (using KDE 4.0.3) Installed from: Compiled From Sources OS: Linux For many simulations, realtime is too slow. For example, the "brownian motion"-example takes at least 5 minutes to run until you see that there is really no pattern. In school, it would be great to have a "simulate 10x faster" button. It would be perfectly fine if the accuracy would be lessened in this mode (as long as it isn't really faulty, of course).
Actually the feature to increase simulation speed is already present: just change timeScale property of the World. But I totally agree that discoverability of this feature is almost zero and it need to be improved somehow. I'm planning more advanced simulation panel which will allow to change it in the more obvious way.
Wow, that is really well hidden :-) Why don't you (or I for that matter, perhaps I can do that tomorrow) add a KComboBox like widget into the toolbar. It defaults to 1.0 speed and offers also 2,4,10 and 20x speed-factors? No need for a complex GUI here, I think.
I've thought about implementing the results of the discussion on mailinglist of stop/reset buttons and timeline... But just adding KComboBox will be already very good. One need to connect it to WorldModel::worldDataChanged(bool) signal in order to keep in sync with the property. The KComboBox could also allow specifying the factor by hand.
Perhaps a slider bar similar to the ones on media players could also be used. It seems people tend to get a better felling of usability when the variation in the property is continuous rather than discrete. A small text label next to the slider could display the current simulation speed.
I am currently working on this feature. In the brownian example I am getting many asserts like this with a factor of 4: * 1,376000e+01 1,376000e+01 1,000000e+00 *** StepCore: failed assertion on line 702 of file /home/kde4/kde/src/step/stepcore/world.cc *** asserted expression: targetTime - _time > _solver->stepSize() / 1000 *** in function: int StepCore::World::doEvolve(double) * 1,552000e+01 1,552000e+01 1,000000e+00 *** StepCore: failed assertion on line 702 of file /home/kde4/kde/src/step/stepcore/world.cc *** asserted expression: targetTime - _time > _solver->stepSize() / 1000 *** in function: int StepCore::World::doEvolve(double) * 1,664000e+01 1,664000e+01 1,000000e+00 *** StepCore: failed assertion on line 702 of file /home/kde4/kde/src/step/stepcore/world.cc *** asserted expression: targetTime - _time > _solver->stepSize() / 1000 *** in function: int StepCore::World::doEvolve(double)
I just implemented this feature.