The road ahead
 

The road ahead

I'll cut to the chase. Here's the new cool stuff pending for the next release.

  1. Swarm models will be sharable as self-contained documents.

  2. Describing the `big picture' for a model will not involve programming. In simple cases, the `little picture' (e.g. `step' methods) will not involve programming, either. Read on for details on this.

  3. Swarm models can run inside a web browser, specifically Netscape 6. Swarm is already equipped to run JavaScript Swarm models off the web.

  4. Swarm models can reference subcomponents via the web. For example, an ObserverSwarm can sit on website A and the ModelSwarm it manages could be on website B. When run, it would all be built and run inside the users browser.

  5. There are all sorts of potential elaborations on this: one might be using popular search engines to pick up compatible subcomponents to use. Real-time collaborative work environments are another possibility.

  6. Swarm models can reference subcomponents developed outside of the Swarm community. For example, there is already an genetic algorithm optimizer module.

  7. Swarm modelers can move in a low-investment way from Swarm to different scheduling paradigms (and back!)

The killer app

These six features put in place what is needed for an interactive, browser-based development environment for agent-based models.

The details of how such an application will look are subject to change, of course, but imagine a vertically split-screen arrangement of tool palette adjacent to an iconic canvas workspace.

The palette will have items like Agent, Swarm, Schedule, Action, Grid2d, Canvas. Dragging a Schedule over a Swarm would install the Schedule in the Swarm. Dragging an Action over a Schedule would install the Action in the Schedule. Dragging an Agent over an Action would make the Agent the target of the Action. Clicking on the `message' slot in an Action would bring up a script editor. Inappropriate combinations, would be rejected, and so on...

Note that the first release will be usable before the graphical development environment is available. This milestone will be usable by itself and it will be easier to learn and use than the current Java/Objective C development kit.

Next: Background