PCB KNOT WORKBENCH

pocket () cup {()} no knot {}() tonk ({)} knot {(}) knotted cup {(}{)} 3-cross {({(}})) — two nested knots sharing a cup 2-cross chain {(}{({)}}) — sequential crossing pair 4-cross {(}{(}{)}{)} 6-cross fan {{(((}}))) — 2×3 brace/paren grid 9-cross fan {{{(((}}}))) — 3×3 brace/paren grid 1-cross KNOT car( bot{ )rac }tob 1-cross POCKET a( b( )a )b — outer paren closes first 1-cross KNOTTED_CUP p{ q( r{ )q }r }p 3-cross KNOT a{ b{ c( }a }b )c — same-family cups interleave 6-cross KNOTTED_POCKET a( b( c( d( )a )b )c )d — 4-pocket staircase 6-cross KNOT a{ b( c{ d( }a )b }c )d — alternating staircase 10-cross KNOTTED_CUP a{ b( c{ d( e{ }a )b }c )d }e — 5-staircase 10-cross KNOT a{ b( c{ d( e( }a )b }c )d )e — 5-staircase mixed

ARC DIAGRAM

ANALYZER GRAPH

ControlNodes ControlRegions   Force Circular Hierarchical
PCB Knot Workbench · Guide

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.