75 Stars
Updated Last
1 Year Ago
Started In
April 2021

Dev Docs


A graphical editor for graph-like structures based on Catlab.

Legacy version built with typescript is in the legacy branch, and will not receive updates; new version with scala is now in the main branch.

How to run

The core of Semagrams is just a library; in order to make it do things, one needs to create an "app" that uses it. Currently, the only app that is being developed is a Petri net editor, though this will soon change.

In order to run the Petri net editor standalone, install Mill and npm, and then in one terminal in scala/ run mill --watch apps.petri.fullLinkJS and in another terminal in scala/ run npm run dev. The second command should print out a url that you can click on. You may have to run npm install before running npm run dev.

You can look at scala/build.sc to figure out how to add another app, though you will have to change scala/main.js to point to the compiled js of the new file.

Although Semagrams is a library, it is not a particularly stable library. Thus, in the beginning phases, we are working on similar development principles as the linux kernel; nothing that is not in this repository will be supported. If you would like to work on an app using Semagrams and would like it to not go out of date, you will have to add it to this repository so that it can be refactored when Semagrams is refactored.



Used By Packages

No packages found.