Monday, December 01, 2008

Simulation Collection Update

I have updated the PLTScheme Simulation Collection to Version 3.2. This was primarily to release the Scribble documentation. The Scribble documentation is about 90% complete, which is a bit more than the previous HTML documentation.

I have begun adding new graphics capabilities to the simulation collection. So far I have added variable-slider%, variable-gauge%, and variable-message% classes. These are subclasses of the MrEd slider%, gauge%, and message% classes that are automatically synchronized with a specified simulation variable.

The variable-slider% class sets its associated variable to the value of the slider. That is, whenever the user moves the slider, the associated variable value is changed. This is input only.

The variable-gauge% class updates the gauge whenever the value of its associated variable is changed. The range of a variable-gauge% object may also be associated with a simulation variable. This is output only (for both the value variable and the range variable, if any).

The variable-message% class displays its associated variable's value and is updated whenever the value of that variable is changed. This is output only.

The graphical open and closed loop examples have been updated to show the use of these classes.

As usual, these are available on the Schematics project at SourceForge. I will update the PLaneT package when everything is stable and documented.

There are several other variable controls I plan on implemented in the next few weeks. The variable-text-field% class will provide both input and output for its associated variable's value. The variable-plot% class will provide a plot capability for variables. Initially, plots will just be time-value plots, but it will support multiple variables on each plot.

Currently, for my agent-based simulations I am using the animated-canvas% class to display the cell grid (or whatever 2D or 3D representation is appropriate). I need to generalize that as part of generalizing the agent-based capability. [Although simulation processes aren't very heavy-weight, continually adding and removing many thousands of them from the event list each generation is quite time-consuming.] That is next on my to do list.