This page will look better in a graphical browser that supports web standards, but is accessible to any browser or internet device.

Served by Samwise.

JSim Overview

This page is for the current JSim version 2.0 and higher. Click here for the earlier JSim 1.6 version.

Below is quick overview of JSim, for a detailed overview please download: "JSim, an open-source modeling system for data analysis" (pdf)


JSim model calculations are specified in JSim's own Mathematical Modeling Language (MML) an easy-to-read text-based language. MML is a declarative language, not a procedural one. MML models primarily consist of declaration of physical units, declaration of variables, and declaration of constraints on those variables. MML models are most often expressed in terms of mathematical equations (for example, ordinary and partial differential equations, implicit equations), but formulation via discrete events and function calls to Java, C and Fortran are also available. MML is constructed so that model writers may intermix mathematics, events and procedural code as needed. JSim supports multiple "domains" or independent variables (e.g. time, space). MML variables may vary over any combination of the declared domains.

JSim's MML compiler does extensive cross-checks to insure that models are neither over-specified or under-specified and that a variable's declared domains are consistent with its usage. MML models are aware of physical units , and the model compiler contains a unit balancer that automatically adjusts run-time calculations with appropriate converion factors, while rejecting non-sensical equations (such as kg = kg/sec). JSim's extensive cross-checking catches many common mistakes and so facilitates creation of valid models more quickly and easily than with standard procedural languages.

The JSim graphical user interface (GUI) allows modelers to edit and compile multiple MML models, manipulate model parameters, run models and graph results. Experimental data and/or built-in function generators may be used to drive model inputs. Numeric data may be fed into and retrieved from JSim in a variety of formats allowing interconnection with other programs. JSim's built-in model analysis tools include loops (multiple model runs with varying parameters), sensitivity analysis and automated parameter optimization .

JSim project files encapsulate the complete state of a JSim GUI window, potentially including multiple models, data sets, parameter sets, notes, and plot pages. Project files are self-contained, facilitating sharing of results between researchers and restoration of state in later JSim sessions.

JSim uses a variety of public and proprietary numeric solvers for solving ODEs , PDEs , linear and non-linear implicit equations and parameter optimization. Default settings are provided automatically for these solvers so that beginning modelers normally do not need to worry about the settings. However, the settings are controllable in high-performance settings for more sophisticated users.

Other notable features of JSim include:

Comments or Questions?

[This page was last modified 16Oct15, 10:42 am.]

Model development and archiving support at provided by the following grants: NIH U01HL122199 Analyzing the Cardiac Power Grid, 09/15/2015 - 05/31/2020, NIH/NIBIB BE08407 Software Integration, JSim and SBW 6/1/09-5/31/13; NIH/NHLBI T15 HL88516-01 Modeling for Heart, Lung and Blood: From Cell to Organ, 4/1/07-3/31/11; NSF BES-0506477 Adaptive Multi-Scale Model Simulation, 8/15/05-7/31/08; NIH/NHLBI R01 HL073598 Core 3: 3D Imaging and Computer Modeling of the Respiratory Tract, 9/1/04-8/31/09; as well as prior support from NIH/NCRR P41 RR01243 Simulation Resource in Circulatory Mass Transport and Exchange, 12/1/1980-11/30/01 and NIH/NIBIB R01 EB001973 JSim: A Simulation Analysis Platform, 3/1/02-2/28/07.