CellML is similar to Systems Biology Markup Language SBML but provides greater scope for model modularity and reuse, and is not specific to descriptions of biochemistry.
The CellML language grew from a need to share models of cardiac cell dynamics among researchers at a number of sites across the world.
The original working group formed in 1998 consisted of David Bullivant, Warren Hedley, and Poul Nielsen; all three were at that time members of the Department of Engineering Science at the University of Auckland.
Existing XML-based languages were leveraged to describe the mathematics (content MathML), metadata (RDF), and links between resources (XLink).
The CellML working group first became aware of the SBML effort in late 2000, when Warren Hedley attended the 2nd workshop on Software Platforms for Systems Biology in Tokyo.
The working group collaborated with a number of researchers at Physiome Sciences Inc. (particularly Melanie Nelson, Scott Lett, Mark Grehlinger, Prasad Ramakrishna, Jeremy Rice, Adam Muzikant, and Kam-Chuen Jim) to draft the initial CellML 1.0 specification, which was published on the 11th of August 2001.
The directionality between connections was dropped to aid in the reusability of components, and the definition of units was restricted to the model only.
In support of the CellML 2.0 specification the libCellML project was started in 2015 to provide application developers with a model based API C++ library.
A major point of interest is that the libCellML library does not support writing to older CellML standards.
A component can be an entirely conceptual entity created for modelling convenience, or it can have some real physical interpretation (for example, it could represent the cell membrane).
The choice of MathML makes CellML particularly suited for describing models containing differential equations.