Rendering string diagrams recursively
<|reference_start|>Rendering string diagrams recursively: String diagrams are a graphical language used to represent processes that can be composed sequentially or in parallel, which correspond graphically to horizontal or vertical juxtaposition. In this paper we demonstrate how to compute the layout of a string diagram by folding over its algebraic representation in terms of sequential and parallel composition operators. The algebraic representation can be seen as a term of a free monoidal category or a proof tree for a small fragment of linear logic. This contrasts to existing non-compositional approaches that use graph layout techniques. The key innovation is storing the diagrams in binary space-partition trees, maintaining a right-trapezoidal shape for the diagram's outline as an invariant.   We provide an implementation in Haskell, using an existing denotational graphics library called Diagrams. Our renderer also supports adding semantics to diagrams to serve as a compiler, with matrix algebra used as an example.<|reference_end|>
@article{rubio-madrigal2024rendering,
    title={Rendering string diagrams recursively},
    author={Celia Rubio-Madrigal and Jules Hedges},
    journal={arXiv preprint arXiv:2404.02679},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.02679},
    primaryClass={math.CT cs.CG}
}