JABM is a Java API for developing agent-based simulation models using a discrete-event simulation framework. It has a simple architecture in which agents are represented using plain-old Java objects (POJOs). Simulations are configured via dependency injection using the industry-standard Spring framework, thus allowing attributes of any object in the simulation to be specified as random variables to be drawn from a specified distribution without having to write any Java code. Attributes of any object can be specified as independent variables or treatments with a given range of values, and experiments with different treatments can be easily parallelized using, for example, SGE.
MV3D is a virtual world and multi-player game framework for use with Python. It was designed with scalability in mind and is able to distribute a world across as many servers as needed while dynamically balancing the load. The simulation framework is not specifically slanted towards any one genre of online game or virtual world, and can just as easily be used for a space game as a fantasy setting. Objects on an MV3D server can be simulated using the ODE physics engine for realistic interactions. A single server is able to host thousands of of simulated objects. The client works with both the Ogre3D and Panda3D renderers.
StepSim is a lightweight step-based simulation module written in Python. It can do simple real-time simulations of discrete systems. StepSim supports step-by-step simulation or can run until a break condition occurs. Simulations are made up of containers and converters. A container stores a discrete amount of units of a certain type. A converter draws units from one or more containers and delivers the result to another container. StepSim does not even attempt to do any parallel processing. It processes converters round-robin in a fixed order.
SIM.JS is a general-purpose Discrete Event Simulation library fully capable of running in a Web browser. It provides constructs for creating Entities which are the active actors in a system, and encapsulates the state and logic of a system's components. Entities contend for resources, which can be Facilities (supports FIFO, LIFO with preemption and Processor Sharing service disciplines), Buffers, and Stores. Entities communicate by waiting on Events or by sending Messages. Statistics recording and analysis is provided by Data Series Statistics, Time Series Statistics, and Population Statistics. A random number library generates seeded random variates from various distributions, including uniform, exponential, normal, gamma, Pareto, and others.
Sea Ice is software for modeling the microwave emissivity of sea ice. It includes two plane-parallel radiative transfer models: a Monte Carlo ray tracing simulation that models ridged ice, and thermodynamic models that can be used to generate input to the emissivity models in the form of temperature and salinity profiles. It is written in C++ and Interactive Data Language (IDL). It has been used to generate results for several papers on sea ice emissivity.
PyParticles is a particle simulation toolbox entirely written in Python. It simulates a particle-by-particle model with the most popular integrations methods, including Euler, Runge Kutta, and Midpoint. It represents the results on an OpenGL or Matplotlib plot, and offers an easy-to-use API.
openEMS is an electromagnetic field solver using the FDTD method. It employs a fully 3D Cartesian and cylindrical coordinate graded mesh. Matlab (or Octave) is used as an easy and flexible scripting interface. Advanced Features include: multi-threading, SIMD (SSE), and MPI support for high speed FDTD.