The Tellurium Simulator

Funded by NIGMS: R01-GM123032 and previously from R01-GM081070

A Python Environment for Reproducible Dynamical Modeling of Biological Networks

Tellurium is a Python package that knits together a variety of important packages for carrying out simulation studies in systems biology and other disciplines.

  • Tellurium provides an interface to the powerful high-performance libroadrunner simulation engine.

  • Tellurium allows you to build your models using an easy-to-use human-readable version of SBML called Antimony (see also Antimony Tutorial

  • Tellurium supports all the major standards such as SBML, SED-ML, and COMBINE archives.

  • Tellurium can be used via GUI front-ends such as Spyder, PyCharm, or Jupyter Notebooks (including CoLab) with support for advanced productivity and interactive editing features

  • Installation is via standard pip installation. We also provide a one-click installer for Windows uses which provides a complete environment for systems biology modeling

Tellurium runs on Windows, Mac OS and Linux.

Ready to install? Please visit the download page.

Want to know more? Visit the documentation site at:

You can join discussions at:

or you can submit questions and issues to

Tellurium relies on open-source contributions from many people. See the acknowledgment page for details.

New contributions are always welcome, see the GitHub page.

The Tellurium, Antimony, and libRoadRunner project were funded by NIH/NIGMS (GM081070). Previous funding has come from DARPA, DOE, and the NSF.

Tellurium is licensed under the Apache 2.0 license. Constituent packages have various licenses.

Recent Publications:

  1. Tellurium: An extensible Python-based modeling environment for systems and synthetic biology

  2. Tellurium notebooks—An environment for reproducible dynamical modeling in systems biology


This work is funded by the generous support of the NIH/NIGMS grant: GM123032, and GM081070

Example Python script, modeling a simple three-step pathway:

import tellurium as te

r = te.loada ('''

Xo -> S1; k1*Xo

S1 -> S2; k2*S1

S2 ->; k3*S2

k1 = 0.1; k2 = 0.05; k3 = 0.1

Xo = 10; S2 = 0


m = r.simulate (0, 80, 100)