- Added new Navigator funcitonality and Bug fixes tabbed console support. Factored out uneccesary lib
dependencies from core. Please see Ascape
- Factored out swing ui into seperate project
- Other refactorings to clean up runner functionality and user environment
- Small functional improments and bug fixes
- Open Source release
- Refactorings to org.ascape hierarchy
- Eclipse projects and Integration
- Testing and additional QA
- Model Navigator
- New Model Composition Features
- New UI Features
- Ant Builds
- Ant/XML Based Model and View Configuration
- 2D Performance Optimizations
100s of changes; too many to mention individually. Here are some highlights:
- Persistence -- Save any Model in any State
- Full MDI Interface
- Extensible Scaling Views
- Built-in Console
- Model Acceleration
- Scalable Time-Steps
- Deeply Polymorphic throughout all spaces
- Model Composition
- New Agent Types
- Sub and Super Scapes (Containment)
- Strong Collections Based Space Model
- Continuous 2-D Spaces
- GIS Integration
- Arbitrary Graphs
- Improved View System
- OpenMap Vis.
- Graph/Entity-Relation Views
- Inspectors in all Spaces
- Dozens of new Primary and Supporting Classes
- Massive Refactorings
- Very Strong Unit-Testing Coverage
- Many new model implementations and examples
- 100 pg Manual
- [2.0 - 2.9]
No public release.
- Changed signature of getCellsNear to match findMaximum...
- Moved DrawFeature to .model to temporarily fix package dependency issue.
- Began work on clarifying role of euclidian space within Scape2D structure.
- Distance code finished.
- Get info now reflects correct version.
- Minor agent/cell inspector bug fixes.
Extensive user-interface and functionality enhancements, including:
- Added ability to dynamically view individual cell properties through a runtime cell and agent
customizer. [This facility is very similar to Swarm and RePast agent 'probes'.] To try this feature out, simply
meta [option on mac, alt on PC]click on an cell in a view. You can also drag around a view to scan the
properties of different cells. If the view supports agents, agents hosted on a praticular cell will also have
their characteristics displayed. To cause the customizer to 'track' agents, shift-meta/opt/alt-click in a view.
- Added sophisticated paramater sweeping support. See aa.LHVRMS for an example.
- Added support for direct capture of views to quicktime movies.
- Support for debug and release runtime modes, providing support for debugging or a more 'graceful' user
experience on error.
- Created multiple view functionality.
- Improved support for data output, e.g. writing data from runnning models out to a file stream. This was
allready supported, but the implementation was confusing and spread across multiple classes.
- Seperated out the run control functionality from the previously mentioned data output view, creating a
new "SweepControlView" that is responsible for managaing runs and setting paramaters. Other paramater
exploration controls could easily be created using the same technique.
- Added new tabbed multi-view mode. This allows you to add multiple views and have them automatically
displayed within a tabbed panel.
- Added 'Speed' control to control bar. This allows you to slow a model down by delaying the contol bar's
reporting of its view update. Drag the slider to the left to slow the model.
- Added support for easy use of two-phase and calculated statistics.
- Added navigation popup to control bar. This allows you to easily select a particualr view frame by
selecting it from the popup.
- Enhanced and cleaned up view functionality in Scapes, and improved general scape updating and response
- Improvements to scape run control code.
- Suport for debug and release modes, providing clean user level handling of bugs, while allowing bugs to
remain unfiltered in DEBUG_RUNTIME_MODE.
- All scape control events, except for the TICK event, intended for views must now be responded to,
beofre the Scape is unblocked. This is a change in the implicit Scape/View contract, and ensures that all views
have a chance to respond properly to setup and close events.
- Some minor performance related changes.
- Fixed a bug in ScapeVector that occured when rules execute nested multiple iterations.
Interim version. (No official release).
Mostly small fixes and refactoring.
- Added ability to easily create calculated statistics. These statisitics can be used for summary or
derivitive stat calculations.
- Fixed problem with inital stat calculation.
- Cleaned up stat calculation, initialization and running code and rules.
- Many changes to ViewFrameBridge and related code to clarify and better support creation of web
Many important and minor changes, including, but not limited to:
- Ascape is no longer a 'technical release' and can be considered a full release. While there are many
important features to add, it is now essentially feature complete.
- Created standard 'open' dialog functionality with easily accessible standard models..can now invoke
Scape directly from command-line.
- Many important model behaviors, including rules selection and execution order and style, are now
accessible at run time and can be modified through the model 'settings' customizer. Click on the globe button in
the toolbar to check this feature out.
- Implemented rule execution through an iterator pattern, so that new scape topologies can be created
simply by providing an iterator, and the execution order can be safely and consistently maintained in one place
- Changed the names for execution order from the confusing (because of association with parallel
processing) "Parallel/Serial" to "Rule Order/Agent Order". Added repeated draw functionality, and moved it from
execution order to a new property, 'execution style.
- Now deploying though InstallAnywhere installer.
- Added an 'about' dialog feature that makes it possbile to easily create custom about dialogs for your
models. You can now provide about information for your model by simply creating a MyModel.html file and placing
it in the appropriate place in your model hierarchy. You can include html tags and references in this file.
- Added modest user exception alerting.
- Went back to original contruction naming scheme; populate is know called createScape. Note that I did
not go back to using a seperate createRules method..seems unneccesary, esp. since rule 'availibility' and
selection are now seperate issues.
No public release..all changes became part of 1.5.
Just a couple of deployment related fixes, and a minor fix for a problem that was causing models to stop when
swtiching between chart types in the chart customizer.
A number of relatively minor changes, bug fixes, and enhancements, as well as new models. The most significant
change is the addition of support for using images (GIFs) to represent cells in views. This feature will be used
more in future release. This release also includes an implementation of heatbugs that should be familiar to Swarm
- I've finally made a change that I wanted to make at almost the moment I designed the initial framework.
I've changed the names of engine and observe to model and view to more explicitly reflect the overall design
pattern behind them, and also because I think they are more appropriate names.
- Many rules classes have become anonymous inner class instance members of Agent or Scape.
- Changed the implementation of a number of "feature" type classes so that they can be implemented as
inner and anonymous classes more easily. These include DrawFeature@, ColorFeature@, UnitIntervaldataSource@, and
- Changed stat collection mechanism to allow for non-automatic collection of stats. (Partially implmented
earlier.) Made StatCollector.getValue non-abstract, neccessitated by non auto collection. Again, added support
for name and auto collect member variables so that it it no longer neccesary to override these methods.
- Added support for custom sliders and live model changes.
- Copied many random functions to Ascape objects, using random seed, so that common random functions are
accessible to all objects without having to go through Utility.
- Provided access to the random seed used for the running model, even if the seed was set arbitraily
(using system time).
- Added an abstraction for data series that provides a way of customizing any aspect of a data series
view. In the initial case, it allows one to set wheteher data should be represeneted as continuous (a curve) or
- Implemented all the 'settings' style frames as customizer panels.
- I'm considering removing the nested drawing feature from DrawFeature, since I haven't really found a
use for it. Let me know if you find it useful.
- Created jar files and changed the distribution's directory structure to better conform to standard
- Added a standard out view which manages printing model information to the console. (You can disable
this by calling getRoot().removeScapeListener(getStandardOutView());.
- Fixed many bugs, and added may minor features.
- Abstracted frames and created view manager, providing simpler support for different viewing
environments, and for deploying simple applets. (See appletsupport folder).
- Fixed a bug in ScapeArray2D causing incorrect execution of random rules in parallel.
- Truly random rule execution for 2D lattices (previously only supported for occupants).
- Expanded api for finding cells, etc..
- Standard methods for view updates.
- Many fixes to find cells etc..
- Limited support for internal frames. (Broken in Win95).
- Many other minor improvements.
- There are significant enhancements this time, including:
- The ability to assign set period values (from a historical record, for example) to agents.
- Data collection methods and views.
- "Pluggable" drawing features, including the ability to change them at runtime from a user dialog.
- Automatic discovery of model paramaters at runtime, allowing their modifcation in a running model
through user customizers, or using command line paramaters.
- New models.