Skip to content

circo — 15 goldens

Circular layout for cyclic / biconnected structures. Each graph below is rendered live in your browser by the library.

rendering…
circo-simpledeterministic6-node undirected cycle
DOT source
// @knowvah/dot-engine reference input: 6-node undirected cycle
// engine: circo
// tolerance: deterministic
graph G {
    A -- B -- C -- D -- E -- F -- A;
}
rendering…
circo-biconndeterministicTwo triangles connected by a bridge
DOT source
// @knowvah/dot-engine reference input: two triangles connected by a bridge at c
// engine: circo
// tolerance: deterministic
graph G {
    a -- b -- c -- a;
    c -- d -- e -- c;
}
rendering…
circo-stardeterministicStar graph with center and 6 leaf nodes
DOT source
// @knowvah/dot-engine reference input: star with center connected to 6 leaf nodes
// engine: circo
// tolerance: deterministic
graph G {
    center -- L1;
    center -- L2;
    center -- L3;
    center -- L4;
    center -- L5;
    center -- L6;
}
rendering…
circo-html-labeldeterministic4-node cycle with one HTML table label
DOT source
// @knowvah/dot-engine reference input: 4-node cycle with one HTML table label
// engine: circo
// tolerance: deterministic
graph G {
    A [label=<<TABLE><TR><TD>A</TD><TD>B</TD></TR></TABLE>>];
    A -- B -- C -- D -- A;
}
rendering…
circo-disconnecteddeterministicTwo separate 4-node cycles
DOT source
// @knowvah/dot-engine reference input: two separate 4-node cycles
// engine: circo
// tolerance: deterministic
graph G {
    A -- B -- C -- D -- A;
    E -- F -- G -- H -- E;
}
rendering…
circo-recorddeterministic4-node cycle with one record-shaped node
DOT source
// @knowvah/dot-engine reference input: 4-node cycle with one record-shaped node
// engine: circo
// tolerance: deterministic
graph G {
    R [shape=record label="x|y|z"];
    R -- B -- C -- D -- R;
}
rendering…
circo-single-nodedeterministicSingle-node graph; ref: graphviz 15.0.0 dot -Kcirco -Tsvg
DOT source
// @knowvah/dot-engine reference input: single-node graph
// engine: circo
// tolerance: deterministic
graph G {
    A;
}
rendering…
circo-self-loopdeterministic3-node cycle with a self-loop on one node; ref: graphviz 15.0.0 dot -Kcirco -Tsvg; promoted from quarantine (mission 9, post-parity T2 mining)
DOT source
// @knowvah/dot-engine reference input: 3-node cycle with a self-loop on one node
// engine: circo
// tolerance: deterministic
graph G {
    A -- A;
    A -- B;
    B -- C;
    C -- A;
}
rendering…
circo-mindistdeterministiccirco mindist sets minimum node separation on a circle; ref: graphviz 15.0.0 -Tsvg; closes an attr-frequency blind spot
DOT source
// @knowvah/dot-engine reference input: circo mindist sets the minimum
// separation between nodes on a circle. @see lib/circogen/circularinit.c
// engine: circo
// tolerance: deterministic
digraph G {
    mindist=5;
    a -> b -> c -> d -> e -> f -> g -> h -> a;
}
rendering…
circo-oneblockdeterministiccirco oneblock lays the graph out as one block; ref: graphviz 15.0.0 -Tsvg; closes an attr-frequency blind spot
DOT source
// @knowvah/dot-engine reference input: circo oneblock lays the whole graph out
// as a single block instead of one circle per biconnected component.
// @see lib/circogen/circularinit.c
// engine: circo
// tolerance: deterministic
digraph G {
    oneblock=true;
    a -> b -> c -> a;
    c -> d;
    d -> e -> f -> d;
}
rendering…
c90-circo-chorddeterministic5-cycle with one chord; findPairEdges has-pair-edge branches
DOT source
// @knowvah/dot-engine reference input: 5-cycle with one chord
// engine: circo
// tolerance: deterministic
// T2e: exercises blockpath.ts findPairEdges "has pair edge" branches
// (the chord a--c gives node b's neighbours a mutual pair edge).
graph G {
    a -- b -- c -- d -- e -- a;
    a -- c;
}
rendering…
c90-circo-artic-treedeterministictriangle block with a tree tail; multi-block placeResiduals
DOT source
// @knowvah/dot-engine reference input: triangle block with a tree tail
// engine: circo
// tolerance: deterministic
// T2e: exercises blockGraph/createBlocktree with a biconnected block (the
// triangle) plus a chain of articulation-point single-node blocks hanging
// off it (d, e are cut off from the cycle).
graph G {
    a -- b -- c -- a;
    c -- d -- e;
}
rendering…
c90-circo-bowtiedeterministictwo triangles sharing a cut vertex plus a pendant leaf
DOT source
// @knowvah/dot-engine reference input: two triangles sharing one vertex,
// plus a pendant leaf off the shared vertex
// engine: circo
// tolerance: deterministic
// T2e: two biconnected components (each a 3-cycle) joined at cut vertex c,
// with a degree-1 residual node hanging off c -- exercises multi-block
// placement and placeResiduals.
graph G {
    a -- b -- c -- a;
    c -- d -- e -- c;
    c -- f;
}
rendering…
c90-circo-paralleldeterministicparallel edge inside a 4-cycle; findPairEdges/xIncident with duplicate edges
DOT source
// @knowvah/dot-engine reference input: parallel edge inside a 4-cycle
// engine: circo
// tolerance: deterministic
// T2e: a--b duplicated -- exercises findPairEdges/xIncident with multiple
// live edges between the same node pair (degree-vs-edge-count divergence).
graph G {
    a -- b;
    a -- b;
    b -- c -- d -- a;
}
rendering…
c90-circo-wheel6deterministic6-cycle with all diagonal chords; multi-pass reduceEdgeCrossings
DOT source
// @knowvah/dot-engine reference input: 6-cycle rim plus a full set of
// diagonal chords (wheel-like, no hub) -- dense single block
// engine: circo
// tolerance: deterministic
// T2e: exercises reduce_edge_crossings' multi-pass loop (blockpath.ts
// reducePass/reduceEdgeCrossings) on a topology with many candidate moves.
graph G {
    n0 -- n1 -- n2 -- n3 -- n4 -- n5 -- n0;
    n0 -- n2; n1 -- n3; n2 -- n4; n3 -- n5; n4 -- n0; n5 -- n1;
    n0 -- n3; n1 -- n4; n2 -- n5;
}