Tortuga (software)

Tortuga is a software framework for discrete event simulation in Java. A Tortuga simulation can be written either as interacting processes or as scheduled events. A Tortuga simulation can have thousands of entities, and can be part of a larger Java system.

License
Tortuga as an open source project under the Lesser General Public License, version 2.1 (LGPLv2.1). Tortuga meets the licensing requirements by providing all source code and binary executables available for download at the primary website listed in the "external links" section below.

Run-time and development environment
Tortuga simulations run on Microsoft Windows XP and Windows Vista as well as on Linux, macOS, BSD and Unix. They can also be used in an applet environment, although this typically requires a signed applet. As part of its support for simulation, Tortuga employs tools from aspect-oriented programming, or AOP. You need not be familiar with AOP to use Tortuga: your simulation classes are written in standard Java. However, the use of AOP in Tortuga requires more elaborate compilation that mere javac. This has been wrapped up in an Ant task included in tortuga.jar. This task is the reason it is assumed Tortuga-based simulations are using Ant to build.

Tortuga programming paradigm
Tortuga utilizes a programming paradigm that greatly reduces the burden on the simulation on developer. Tortuga treats each simulation entity as a separate thread and allows the user to specify a run method. This allows the developer to focus on simulation specifics without littering event handler code all over the place. This means that a Tortuga simulation is inherently limited by the number of threads the JVM is able to support. This limit becomes an upper bound on the number of actors, and with the 1.5 Sun-based JRE the limit was about 6,000.

Author and maintainer
Tortuga was developed by Fred Kuhl and Richard Weatherly of The MITRE Corporation in 2004-2006 and they continue to maintain it.