The TinkerCell Core API. Shown here is the basic structure provided by the Core library. The Core library defines data structures and functions for drawing nodes and connections. Each node and connection can contain "data" associated with that node or connection. This data can include information such as parameters, equations, DNA sequence, or database IDs. Plug-ins, both C and C++, and Python scripts are responsible for populating the data inside each node and connection. For example, a C++ plug-in is responsible for adding the a table of parameter values to each node and connection; another plug-in is responsible for adding reaction rates to all the connections. Another small plug-in stores and updates the spacial co-ordinates of all cells in the model, allowing a modeler to use cell position information inside the model. C and Python programs utilize all this information to perform various analyses, including simulations. Plug-ins also provide the graphical interface for viewing and editing the information stored inside the items.