Type a bracket expression and the workbench analyzes whether it's a knot — drawing the arc diagram (crossing arcs) and an analyzer graph of its control nodes and regions.
Part of the PCB knot toolset: it analyzes the bracket structures the Knot Builder produces and Love Loop OS runs.
What it does
Enter a (labeled or unlabeled) bracket string — e.g. car( bot{ )rac }tob or simply {(}). The workbench matches the bracket pairs, finds where their arcs cross, and tells you the structure: cleanly nested arcs are an unknot; crossing arcs make it a genuine knot. Two families exist: pockets ( ) and cups { }.
Input
- Text field (placeholder
car( bot{ )rac }tob) + Clear; a status line reports the verdict. Labels are optional — a token before a bracket (like car() names it.
- Example buttons: pocket
(), cup {()}, no knot {}(), tonk ({)}, knot {(}), knotted cup {(}{)}, plus complex and labeled samples — quick ways to see nested-vs-crossed cases.
ARC DIAGRAM
- Arcs are drawn over a baseline, each connecting a matched bracket pair. Crossing markers flag where two arcs cross — the signature of a knot. Info appears below the canvas.
ANALYZER GRAPH
- A node-link graph of the structure. nodes:
ControlNodes (the bracket nodes) vs ControlRegions (the regions they bound). layout: Force / Circular / Hierarchical. edges: toggle each edge type on/off.
- A legend and meta describe the graph; side panels list PAIRS, CROSSINGS, CONTROL NODES, CONTROL REGIONS, and EDGE TYPES.
How to use it
- 1 — Type a bracket expression, or click an example (try
{(}) "knot" vs {()} "cup").
- 2 — Read the status + ARC DIAGRAM: crossing arcs = a real knot; nested arcs = unknot.
- 3 — In the ANALYZER GRAPH, switch nodes (ControlNodes/ControlRegions) and layout (Force/Circular/Hierarchical), and toggle edge types, to inspect the structure.
- 4 — Check the PAIRS / CROSSINGS / CONTROL NODES / REGIONS / EDGE TYPES panels.