string diagrams for the working programmer

a string diagram picturing an optic

scalable syntax

current version:

yarrow's core library is a datastructure for graph-like structures called "string diagrams".
Use yarrow to represent large networks of operations with multiple ordered inputs and outputs (like circuits!)

[paper] [code] [docs]

differentiable circuit IR

research phase

Phase II of yarrow is a differentiable circuit IR for Zero-Knowledge ML.
yarrow-ml features zero-knowledge training of circuits without the need for slow, floating-point calculations.

a string diagram picturing a neural network 'bilinear' layer


what when
paper [0] done
diagrams library [1] version
diagrams docs done
circuit IR library 2023-09-01
circuit IR docs 2023-09-01


portrait of Paul Wilson

paul wilson

portrait of Fabio Zanasi

fabio zanasi