Xholon - Agent Based Modeling

Xholon - Agent Based Modeling

Xholon is an open source general-purpose modeling, transformation and simulation tool, based on XML and Java, that supports the Unified Modeling Language (UML 2.1), systems biology modeling, other types of modeling, and many of the features found in existing agent-based modeling tools. It focuses especially on integration of various approaches. It can, for example, simulate 2D-grid and agent-based models created using UML tools, and can combine multiple agent-based grids in the same model. It includes an optional limited NetLogo-like syntax, as Java methods. The download includes numerous example applications.

News - July 12-14, 2007 - A paper on Xholon, and the value of using tree-based structures in agent based modeling, was presented at SwarmFest 2007.

To try out Xholon by running the agent-based sample models or by developing your own models:

  • Download Xholon.
  • Install Xholon by unzipping or untarring the downloaded file.
  • Look through README.txt in the Xholon directory. This will tell you how to start Xholon and run applications.
  • Run some of the sample agent-based models. Start the Xholon GUI, and select File --> Open. Open one of the models shown below. Each model includes a web page with information about it. Once a model is opened, select Help --> Information from the Xholon GUI.
    • ealontro (Each ealontro model comes in two versions, one in which the behavior is already defined, and another that evolves an optimized behavior using the genetic programming capabilities of the ECJ tool embedded within Xholon.)
      • ealontro --> AntForaging
      • ealontro --> EcjAntTrail
    • GameOfLife
    • GridSamples (simple examples of hexagonal grid, and combo of two grids in same model)
    • StupidModel These models are not in the 0.5 release of Xholon, but must be separately downloaded from the CVS software repository at SourceForge. Each model consists of several XML and Java files.)
      • StupidModel --> StupidModel1 (Basic StupidModel)
      • StupidModel --> StupidModel2 (Bug Growth)
      • StupidModel --> StupidModel3 (Habitat Cells and Resource)
      • StupidModel --> StupidModel4 (Cell and Bug Probes)
      • StupidModel --> StupidModel5 (Parameters and Parameter Displays)
      • StupidModel --> StupidModel5tg (Two or more Grids in the same model, each with its own agents that migrate between grids)
      • StupidModel --> StupidModel6 (Histogram Output)
      • StupidModel --> StupidModel7 (Stopping the Model)
      • StupidModel --> StupidModel8 (File Output)
      • StupidModel --> StupidModel9 (Randomized Agent Actions)
      • StupidModel --> StupidModel10 (Sorted Agent Actions)
      • StupidModel --> StupidModel11 (Optimal Movement)
      • StupidModel --> StupidModel12 (Bug Mortality and Reproduction)
      • StupidModel --> StupidModel13 (Population Abundance Graph)
      • StupidModel --> StupidModel14 (Random Normal Initial Size)
      • StupidModel --> StupidModel15 (Habitat Data from File Input)
      • StupidModel --> StupidModel16 (Predators)
      • StupidModel --> StupidModel16nl (Predators, using a NetLogo-like syntax)
    • user
      • user --> TurtleExample1 (demonstrates use of NetLogo-like syntax)
      • user --> WolfSheepGrass (reimplementation of NetLogo model)
    • xmiapps --> Rcs_GP_MM_Grid (modeled using the MagicDraw UML tool, transformed to Xholon format)

All of the other sample models distributed with Xholon, make use of active objects (agents) that interact with each other and with passive objects at runtime, but do not move around, at least not in a grid.