The Stochastic Pi Machine language (SPiM) is a programming language for modelling and simulating complex biological processes in a modular way. The language is based on a computational formalism known as the pi-calculus, and the simulation algorithm is based on standard kinetic theory of physical chemistry. The language features a simple graphical notation for modelling interactions between biological processes, and can be used to model large systems incrementally, by directly composing simpler models of subsystems.

- Prototype Web Simulator (requires Silverlight 4.0 for Windows or Mac).
- A command-line version of SPiM is available in three distribution formats, under the SPiM License:

Windows Executable.

OCaml Bytecode (Linux, MacOS X). (Requires Objective Caml 3.08)

Source Code. (Requires Objective Caml 3.08)

Release notes are also available

- Andrew Phillips, Matthew Lakin, and Loïc Paulevé, Stochastic Simulation of Process Calculi for Biology, in
*Electronic Proceedings in Theoretical Computer Science*, vol. 40, pp. 1-5, November 2010 - Loïc Paulevé, Simon Youssef, Matthew R. Lakin, and Andrew Phillips, A Generic Abstract Machine for Stochastic Process Calculi, in
*Computational Methods in Systems Biology*, pp. 43--54, September 2010 - Dennis Wang, Luca Cardelli, Andrew Phillips, Nir Piterman, and Jasmin Fisher, Computational modeling of the EGFR network elucidates control mechanisms regulating signal dynamics, in
*BMC Systems Biology*, vol. 3, no. 118, December 2009 - Andrew Phillips, A Visual Process Calculus for Biology, in Symbolic Systems Biology: Theory and Methods, Jones and Bartlett Publishers, In Press, 2009
- Luca Cardelli, Emmanuelle Caron, Philippa Gardner, Ozan Kahramanogullari, and Andrew Phillips, A Process Model of Rho GTP-binding Proteins, in
*Theoretical Computer Science*, Elsevier, 18 May 2009 - Andrew Phillips, An Abstract Machine for the Stochastic Bioambient Calculus, in
*Electronic Notes in Theoretical Computer Science*, vol. 227, pp. 143-159, Elsevier , January 2009 - Luca Cardelli, Emmanuelle Caron, Philippa Gardner, Ozan Kahramanogullari, and Andrew Phillips, A Process Model of Actin Polymerisation, in
*Electronic Notes in Theoretical Computer Science*, vol. 229, no. 1, pp. 127-144, Elsevier, February 2009 - Ralf Blossey, Luca Cardelli, and Andrew Phillips, Compositionality, Stochasticity and Cooperativity in Dynamic Models of Gene Regulation, in
*HFSP Journal*, vol. 2, no. 1, pp. 17–28, HFSP Publishing, February 2008 - Johannes Borgstroem, Andrew Gordon, and Andrew Phillips, A Chart Semantics for the Pi-calculus, in
*Electronic Notes in Theoretical Computer Science*, vol. 194, no. 2, pp. 3–29, Elsevier, January 2008 - Andrew Phillips and Luca Cardelli, Efficient, Correct Simulation of Biological Processes in the Stochastic Pi-calculus, in
*Computational Methods in Systems Biology*, vol. 4695, pp. 184–199, Springer, September 2007 - Andrew Phillips, Luca Cardelli, and Giuseppe Castagna, A Graphical Representation for Biological Processes in the Stochastic Pi-calculus, in
*Transactions in Computational Systems Biology*, vol. 4230, pp. 123–152, Springer, November 2006 - Ralf Blossey, Luca Cardelli, and Andrew Phillips, A Compositional Approach to the Stochastic Dynamics of Gene Networks, in
*Transactions in Computational Systems Biology*, vol. 3939, no. 3939, pp. 99–122, Springer, January 2006 - Andrew Phillips and Luca Cardelli, A Correct Abstract Machine for the Stochastic Pi-calculus, in
*Concurrent Models in Molecular Biology*, August 2004

Andrew Phillips, Luca Cardelli, Matthew Lakin, Filippo Polo, Microsoft Research.

- Luca Cardelli worked on the formal specification of SPiM, the design of the SPiM language, and on extensive testing and debugging.
- Rich Williams developed the Network 3D software for visualising simulations in 3D.
- Stefan Leye assisted with debugging the SPiM scheduling algorithm.
- James Margetson and Luca Cardelli developed the SPiM GUI.
- Pascal Zimmer assisted with debugging the OCaml bytecode distribution.
- The BioSpi project was the main inspiration for SPiM, and many of the SPiM chemical examples are adaptations of earlier BioSpi models.
- The core SPiM language was developed in F#.

- Introductory Tutorial.
- Introductory chapter on SPiM [pdf]
- Introductory slides on SPiM [ppt] [pdf]
- Basic SPiM examples and simulation results [pdf]
- Coupled chemical reactions in SPiM [pdf]
- The SPiM language definition [pdf]

- The SPiM Player 1.13 is a graphical interface to SPiM, developed by James Margetson, Luca Cardelli and Andrew Phillips. (Requires the .Net 2.0 Runtime)
- A tool for translating text narrative to SPiM, developed by Ozan Kahramanogullari.
- Further information on process calculi for biology at Luca Cardelli's Biocomputing Page, including an advanced tutorial.