JSim is a simulation system for developing models, designing experiments, and evaluating hypotheses on physiological and pharmacological systems through the testing of model solutions against data. It is designed for interactive, iterative manipulation of the model code, different data sets, parameter sets, and for making comparisons among different models running simultaneously or separately. Interactive use is supported by a large collection of graphical user interfaces handling model writing and compilation diagnostics, defining input functions, model runs, selection of algorithms solving ordinary and partial differential equations, run-time multidimensional graphics, parameter optimization (8 methods), sensitivity analysis, and Monte Carlo simulation for defining confidence ranges. JSim uses Mathematical Modeling Language (MML) a declarative syntax specifying ODEs and PDEs. The model coding and displaying of results is basically simply defining the parameters, variables, and writing the equations in MML in usual form (except for using x:t for dx/dt) making it good for teaching modeling as well as for model analysis for research. JSim can be run as a batch job. JSim can automatically translate models from the repositories for Systems Biology Markup Language (SBML) and CellML models. Stochastic modeling is supported. JSim encourages assigning physical units to variables and parameters and automates the first steps of verification testing by checking for dimensional balance with automatic unit scaling included in the computation. The JSim Project File sets a standard for reproducible modeling analysis by including in one ascii file everything for a complete analysis of experiments: the data, the quantitative hypotheses defined by the models, and the data analysis. JSim is open source; it and about 400 human readable open source models are available at http://www.physiome.org/jsim/.