Model frameworks and solution engines include:
Ion channels based on Kinetic Schemes: voltage and ligand dependent transitions; multiple gating complexes on one channel; Ohmic and GHK conductance laws; single stochastic channels; ensemble channels;
Cells with excitable membranes: internal and external solutions; voltage clamp; current clamp; passive and active properties; flexible voltage and current protocol construction tools;
Integrate and fire networks: spike timing dependent plasticity laws; delta function and bi-exponential synapses; patterned stimulation of populations;
Single mixed pool reaction kinetics: mass action and enzyme reactions; buffering and injection control profiles;
Reaction-Diffusion systems in two dimensions: triangular mesh generation on arbitrary areas; permeable and semi permeable boundaries; image and line scan recording; plane or cylindrical symmetry;
Rat behavior in simulated environments using multiple integrate and fire networks; visual, sound, place, proprioreceptive input; motor output;
Patch clamp experiment simulation (spatch): bath, cells, pipettes, solutions, capacitance transients, liquid junction potentials, ion channels.
The frameworks, such ion channels or reaction schemes correspond to class definitions of catacomb objects. Such objects use a small set of data structures - primitive fields, other catacomb objects sets and references to elements of sets defined elsewhere. The user interface gives access to all models which can be built out of these components.
This means the model description is purely declarative, which has numerous advantages both for the user and in the implementation (cf. NeuroML).
Any change to a variable in a model is propagated up through child-parent links and along references. Objects receiving events update their state as necessary, depending on the event type, including changing displays and recalculating model output.
Catacomb is written in java, version 1.1. It uses reflection extensively in the user interface to examine what public fields an object has and produce appropriate user interface components.