EcoLab is a fairly complete agent-based simulation system, with the following features:
- The model is implemented as a C++ object. Support for more advanced data structures and algorithms are available through C++'s standard library.
- A scripting language TCL can access the model's methods and instance variables, allowing experiments to be set up dynamically at runtime.
- The model can be run in GUI mode through the use of Tk and BLT widgets. Various graphs and histogramming tools are available for use.
- The same model can be run in batch mode by using a different script.
- The model can be probed dynamically with the object browser.
- The model can be saved to a checkpoint file, or transferred periodically over a socket connection to another copy of Ecolab acting as a visualisation client.
- Various types of random number generators are available through the UNURAN library or through the GNUSL.
- A form of SPMD parallel programming is provided through ClassdescMP.
- EcoLab models may also use Graphcode library to implement a distributed network of agents over an MPI-based cluster computer.