Collaborative modelling

Our goal is to change the practice of science and of engineering. Building a large complex system is hard, in both scientific modelling and systems engineering.

  1. At the design stage, we focus on specific facets of the systems.
  2. At run time, these facets need to fit together correctly.
  3. Composing systems is rarely as simple as composing functions.
  4. The task becomes harder when many domain experts are involved.


Our systems development is guided by mathematically precise design principles.


To build modular systems, we define components as morphisms, i.e. abstract maps with generalized notions of composability. These morphisms compose only when their inputs and outputs have matching types, giving us highly reliable systems.


The facets of a system are like the layers of a map. The layers are designed by domain experts who may use different ontologies. To glue the layers into a map, we relate the ontologies via morphisms between layers before constructing the composite.

Functorial Semantics

Describing a complex system with a web of morphisms is akin to defining a deep neural net by its computational graph. Using functors, we assign meanings to the morphisms in some compute framework, giving us efficient executable code.


Many of our projects fall under the AlgebraicJulia project, a collaborative open-source framework for scientific modeling, data organization, project management, and decision-making. Topos is a key contributor to AlgebraicJulia, alongside our collaborators from:

Compositional Dynamical Systems

Our AlgebraicDynamics.jl library provides a software interface for specifying and solving dynamical systems with compositional and hierarchical structure. The implementation of the composition of dynamical systems follows the mathematics of operads and operad algebras.

Diagrammatic Differential Equations

In our research paper with collaborators, we develop a diagrammatic framework for presenting and solving differential equations in physics, as explained on our blog. The Decapodes.jl library adapts these methods to engineering, merging models across electrical, mechanical, and aeronautical systems.

Operadic Systems Engineering

With the US National Institute of Standards and Technologies (NIST) and Carnegie Mellon University, we are adapting AlgebraicJulia for project management in systems engineering, to show its effectiveness for shared decision-making across multiple complex systems.

Efficient Graph Rewriting

We demonstrate how category theory provides specifications that can be implemented efficiently via imperative algorithms and apply this to the field of graph rewriting. Our AlgebraicRewriting.jl library makes it easy to quickly write correct and performant code.

Collaborative Pandemic Modelling

Epidemiologists use stock-flow diagrams to describe disease dynamics. Together with the University of Saskatchewan and UC Riverside, we built the StockFlow.jl library and the ModelCollab web interface for designing and composing stock-flow diagrams using decorated cospans, as explained on our blog.

Interactive String Diagrams

Semagrams.jl is a tool for interacting with semantic diagrams. Semantic diagrams are graphical representations of data that have teeth, i.e. where there is a formal and machine-readable correspondence between the graphical display and its semantic meaning.

Generalized Statistical Theories

In this AFOSR project, we draw a precise analogy between models in statistics and logic using categorical logic. Statistical theories, being algebraic structures, are amenable to machine representation and are equipped with formal morphisms between different statistical methods.

Compositional Active Inference

Using Bayesian lenses, statistical games and factor graphs, and in collaboration with VERSES Research, we aim to give a systems-theoretic account of active inference, a leading theory of perception, planning, action, and ultimately general intelligence.

Select videos

Select publications

Baez, John, Xiaoyan Li, Sophie Libkind, Nathaniel Osgood, and Evan Patterson. 2022. Compositional Modeling with Stock and Flow Diagrams.” In 5th International Conference on Applied Category Theory.
Brown, Kristopher, Evan Patterson, Tyler Hanks, and James Fairbanks. 2023. “Computational Category-Theoretic Rewriting.” Journal of Logical and Algebraic Methods in Programming 134.
Libkind, Sophie, Andrew Baas, Evan Patterson, and James Fairbanks. 2021. “Operadic Modeling of Dynamical Systems: Mathematics and Computation.” In 4th International Conference on Applied Category Theory.
Patterson, Evan, Andrew Baas, Timothy Hosgood, and James Fairbanks. 2022. “A Diagrammatic View of Differential Equations in Physics.” Mathematics in Engineering 5.
St. Clere Smithe, Toby. 2022. Compositional Active Inference II: Polynomial Dynamics. Approximate Inference Doctrines.”
The AlgebraicJulia Project.” 2023. 2023.