Summary: | Increase speed of the simulation (faster than realtime, for example) | ||
---|---|---|---|
Product: | [Applications] step | Reporter: | Carsten Niehaus <cniehaus> |
Component: | general | Assignee: | Vladimir Kuznetsov <ks.vladimir> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | 0.0.4 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Carsten Niehaus
2008-04-03 19:14:00 UTC
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. |