DIGG - DynamIc Graph Generator - is an ongoing project to develop software which constructs and analyzes -- among other objects -- "topologically Internet-like" graph models, in accord with current theory.
Being developed in C++, the core DIGG software can create arbitrary graphs, providing options for weighted vs. unweighted graphs, directed vs. undirected graphs, graphs with colored vs. uncolored nodes, etc. Once constructed, graph structures can be stored for later automatic retrieval, using a human- and machine-readable XML format.
Companion software is being developed in the form of plugins which implement algorithms for "Internet-like" graph generation. These include, for example, randomized algorithms based on recent observations indicating power-law node distribution within the Net.
As dynamic graphs are of particular interest to us, the core software also contains timestep-tracking functionality so that graphs and graph statistics can be recorded and observed along arbitrary increments of time as graphs mutate according to user-provided parameters. The software records the time-indexed history of the mutations a graph undergoes, so that backtracking is possible. Branching of a graph's evolution can thus be performed by the observer, based on algorithmic whim or empirical observation.
In addition, a web interface is being developed so that interested people can run the software remotely, possibly using graph-generation algorithms of their own design, and obtain result reports. See 'online controls' [when it becomes available] in the left navigation frame for more information.
Possible reports will include data such as graph diameter, full data structures such as shortest-paths objects and minimum spanning trees, tables of [and statistics concerning] node distribution, etc.
Algorithm plugins will not be limited to graph generation; other possibilities include things like running all-pairs shortest-paths, with a specified algorithm, and obtaining performance statistics.
In the future we hope to be able to run even more complex simulations such as routing algorithms employing local storage at nodes, configurable node-naming conventions, and the like.
Source code has been distributed according to a standard open-source license.