Skip to main content
  • Poster presentation
  • Open access
  • Published:

Reaction-diffusion in complex 3D geometries: mesh construction and stochastic simulation with STEPS

Computational modeling and simulation of signaling pathways has become a valuable and established tool for studying the molecular aspects of biological systems. Aside from the reaction kinetics themselves, the spatial organization and morphology of the cell is known to play an active role in many of these pathways through chemical compartmentalization and by various transport processes. The first step towards simulating these morphological aspects, therefore, is to construct a computational mesh that can adequately represent such features. This is especially challenging for neurons, where functionally relevant details span a wide range of shapes and scales, from the dendritic arborization all the way down to the ultrastructural details surrounding and supporting the synapses.

We show how key features of neural morphology can be described procedurally using various geometric primitives, constructive solid geometry and transformations. Using an adaptation of the elegant algorithm described in [1], this procedural description can then be transformed into tetrahedral meshes with good computational properties. Such meshes can accurately trace complex boundary shapes and are capable of locally adapting their resolution. This adaptation allows a wide range of spatial detail to be represented within a single mesh, while keeping the number of voxels required minimal. In contrast to many third-party packages that are commonly used for tetrahedral mesh generation, this approach is very flexible and can be extended easily to deal with new problems.

We also show how these meshes can be used for simulation, by extending Gillespie's Direct Method (DM) [2] to deal with spatial processes. Our method treats each tetrahedral voxel as a well-mixed volume in which reaction processes can occur. Voxels can be coupled to their neighbouring voxels by diffusive fluxes or to neighbouring boundary triangles to allow simulation of volume-surface interactions, such as ligand-receptor binding and channel currents.

All this work has been implemented in a modular simulator called STEPS. The basic platform of STEPS is provided by Python, which is a general and widely adopted scripting language. Using Python scripts, modelers can describe the kinetics of the reaction-diffusion model; generate and annotate the 3D tetrahedral mesh; simulate and control the system; and process, visualize or export the simulation results. Efficiency is not compromised, since the computational core is still implemented in C/C++. Multiple solvers are implemented and can be used interchangeably; this includes the extension of DM mentioned above, but also a well-mixed solver for simulations in which diffusion and concentration gradients are not required. Our software runs on various platforms, including Un*x, Mac OS X and Windows (via Cygwin).


  1. Persson PO, Strang G: A Simple Mesh Generator in MATLAB. SIAM Rev. 2004, 46 (2): 329-345. 10.1137/S0036144503429121.

    Article  Google Scholar 

  2. Gillespie DT: A general method for numerically simulating the stochastic evolution of coupled chemical reactions. J Comp Phys. 1976, 22: 403-434. 10.1016/0021-9991(76)90041-3.

    Article  CAS  Google Scholar 

Download references

Author information

Authors and Affiliations


Corresponding author

Correspondence to Stefan Wils.

Rights and permissions

Open Access This article is published under license to BioMed Central Ltd. This is an Open Access article is distributed under the terms of the Creative Commons Attribution 2.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Reprints and permissions

About this article

Cite this article

Wils, S., De Schutter, E. Reaction-diffusion in complex 3D geometries: mesh construction and stochastic simulation with STEPS. BMC Neurosci 9 (Suppl 1), P85 (2008).

Download citation

  • Published:

  • DOI: