Ideas for add-ons / extensions

(We will probably expand this page a bit later.)

Simulation

Injection of vehicles

As mentioned before, the behavior of vehicles is somewhat anomalous when they're facing an edge of the map. TCAT buses are not affected, since they always travel in a circuit, but a randomized vehicle will almost certainly eventually reach the map's edge.  On the front page, it is rquired that vehicles that reach the map's edge be removed from the simulation. [It might even occur to us that the disappearing vehicle is simply moving on to a different part of the city, passing outside of our field of view...] To balance out the gradual drain of randomized vehicles from the simulation, it would be nice to also provide a simple mechanism by which new randomized vehicles were periodically created. We recommend setting things up so that each "fresh" randomized vehicle that gets created in this manner is initially positioned on a randomly selected "in-bound" tile at the edge of the map, as if the new vehicle were simply arriving from a different part of the city. Thus, there'd appear to be a sort of ongoing "flow" of randomized vehicles through our little patch of the metropolis.

GUI

Initialization dialog box

It would be nice to provide a dialog box in which the user could specify values for various simulation parameters, e.g., the numbers of vertical and horizontal streets, the number of tiles per segment, etc. A simple implementation might consist of a set of labeled text fields, arranged in a vertical column, accompanied by the standard `ok' and `cancel' buttons at the bottom.

[A few additional implementation notes for the initialization dialog box are now available.]

Point-and-click editing

Another useful (and not overly difficult) feature would be to provide a point-and-click interface with which the user could modify the configuration of the agents---adding vehicles, removing vehicles, editing various agent properties, and the like. For example, to introduce a new randomized vehicle into the simulation, the user might select `Randomized vehicle' from the `Add new vehicle' sub-menu of the `Edit' menu and then click on the tile on which the new vehicle should initially be located. [A sophisticated application might even allow the user to select the vehicle type from a palette / toolbar.] Likewise, to delete a vehicle, the user might click on the vehicle and then select `Delete vehicle' from the `Edit' menu.

Clarification

All of the features on this page are optional.