tool · draft

JAMES II

Plug-in framework for simulation research from the University of Rostock, in Java: models, simulators and experiment setups are kept apart, so each can be swapped or reused.

What is reusable: open sourceunknown dataAPIopen participation JAMES II licence (BSD-style, GPL-compatible)

JAMES II comes from the Modeling and Simulation Research Group at the University of Rostock's Institute of Computer Science, in Germany. It is a toolkit in Java on which other modelling and simulation programs are built.1 The name stands for JAva-based Multipurpose Environment for Simulation.1 It succeeds an earlier system called JAMES, rebuilt from scratch, whose name once stood for Java-based Agent Modeling Environment for Simulation.1 Jan Himmelspach began it in 2003 within CoSA, a project funded by the German Research Foundation (DFG).1 Dozens of people have contributed since, mostly researchers in the Rostock group.1 Himmelspach left the group in April 2013, and long-term contributors then coordinated development.1

It is built from plug-ins, hundreds of them by the project's count.1 It does not prescribe a modelling formalism (a formal language for writing models); the user decides what models look like.1 Cellular automata, attributed Pi calculus, ML-DEVS and ML-Rules are among the formalisms supported.1 Models are kept separate from simulators, so a model can be run by different simulation algorithms, and parts of simulators such as event queues and random number generators can be reused.1 Experiments are handled the same way: replications run in parallel or across workers, with parameter scans, simulation-based optimisation, workflow-based experiments, automatic selection of a simulation algorithm, and reports with plots.1 The paper the project asks people to cite is "Plug'n Simulate" by Jan Himmelspach and Adelinde Uhrmacher, from the 40th Annual Simulation Symposium in 2007.1,4 It notes that a new simulator or formalism often means writing a whole simulation system from scratch, and proposes plugging such ideas into an existing framework instead.5

The project describes JAMES II as a framework and a research prototype: its default graphical interface is basic, and many features are used through its programming interfaces.1 It needs Java 1.7 and the Java Development Kit, builds with Maven, and kept its source in Mercurial.1 The most recent release on its downloads page is 0.9.7 BETA of 25 September 2014, and the home page still offered 0.9.7 in March 2021.1,3 Its licence is written in German; the project summarises it as a BSD-style licence adapted to German law and compatible with the GPL.1,2 The licence allows free and commercial use, requires modified versions that are distributed to stay under it (or under the GPL version 3 when combined with GPL code), and requires free modifications to be made public.2

For someone modelling a place, JAMES II is mainly a design to learn from: a model kept apart from the algorithm that runs it and from the experiment that varies it, so that each can be replaced or reused. Simkit is another Java toolkit built around reusable simulation components.

form
open-source Java framework
group
Agents and system dynamics
homepage
http://web.archive.org/web/20210302145559/http://jamesii.informatik.uni-rostock.de/jamesii.org/
licence
JAMES II licence (BSD-style, GPL-compatible)
cost
free

does a similar job

  • Simkit tool draft

    Models built as event graphs, from components that listen to each other's events: Arnold Buss's discrete-event toolkit in Java, from the Naval Postgraduate School.

    open sourceAPI

  • AnyLogic tool draft

    AnyLogic's simulation software combines agent-based, discrete-event and system-dynamics modelling in one model, with libraries for road traffic, pedestrians and rail and the option to place models on GIS maps.

    closed sourceAPI

alternative to

  • Simkit tool draft

    Models built as event graphs, from components that listen to each other's events: Arnold Buss's discrete-event toolkit in Java, from the Naval Postgraduate School.

    open sourceAPI

Tags: simulation framework, plug-ins, Java, discrete-event, research software

staging: drafts and proposals shown