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.