Diagrammes et graphes
Vingt-cinq notations sur un seul moteur de rendu, un moteur de graphes de niveau NetworkX et une mise en page résolue par contraintes.
4 Strong · 5 Solid · 3 Partial · 0 Emerging
Mesuré contre : Graphviz · Mermaid · D2 · NetworkX · Dossiers : base/graph(s'ouvre dans un nouvel onglet) · Pour les programmeurs : la référence de ce domaine

Repensé depuis les premiers principes
Ce que Softanza a gardé de ce qui marche, et ce qu'elle a repensé, tel que la bibliothèque l'a écrit dans ses documents de conception et ses narrations.
La manière SoftanzaUn diagramme est un langage visuel, pas une peinture : toute relation que le lecteur y perçoit doit exister dans le graphe.
Gardé des meilleures pratiques
- Les dessins en couches suivent la chaîne classique de Sugiyama : couches, nœuds relais sur les longues arêtes, réduction des croisements, coordonnées, puis tracé des liens. source(s'ouvre dans un nouvel onglet)
- Le modèle de Graphviz est conservé : l'espacement entre les nœuds fait contrat, et la taille de l'image découle de son contenu, pas l'inverse. source(s'ouvre dans un nouvel onglet)
- Les diagrammes mathématiques reprennent le découpage de Penrose : un domaine déclare les types, une substance énonce le contenu, un style le traduit en formes, et une optimisation trouve la disposition. source(s'ouvre dans un nouvel onglet)
Repensé
- L'auteur modifie le sens, l'algorithme gère la géométrie. Déplacer une boîte suggère seulement un ordre, car une position choisie à la main affirmerait ce que le graphe ignore. source(s'ouvre dans un nouvel onglet)
- BPMN, UML, machines à états et circuits sont des profils déclarés sur une seule base de dessin, jamais des moteurs à part : un moteur dupliqué était arrivé défectueux. source(s'ouvre dans un nouvel onglet)
- Les positions dans une couche sont calculées exactement, par régression isotonique, et non par une heuristique de médiane. Toute disposition est déterministe : un test peut vérifier l'image octet par octet. source(s'ouvre dans un nouvel onglet)
- Deux liens ne peuvent se superposer que là où ils partagent une extrémité, car le lecteur voit dans des traits fusionnés une relation que le graphe n'a peut-être pas. source(s'ouvre dans un nouvel onglet)
One of the most complete planes in the library: 25 notations all rendered by one engine, over a native deterministic layout engine and a NetworkX-tier graph-algorithm suite; math and molecule diagrams are genuinely constraint-solved via autodiff. The old dot.exe dependency is demoted to an optional viewer — diagram layout is now engine-native. Guarded by ~1,790 assertions.
Ce qu'un artisan en fait, et ce qui se distingue
- 25 notations as data profiles over one renderer
- determinism as a guarantee: bit-identical layout across processes
- constraint-solved layout via autodiff, which no mainstream tool does
- NetworkX-core parity, compiled
Ce qui est dû
- meet the dot kill criterion (spline routing, nested clusters)
- live interactivity via the GUI plane
- graph generators & isomorphism
- PDF / PostScript export
La manière Softanza, exécutée
Ce que Softanza fait autrement dans ce domaine, montré par du code tiré de ses narrations et de ses gardes, et exécuté pour cette page.
Une notation déclarée qui interdit les boucles sur soi fait refuser ce lien par l'éditeur, sans qu'aucun code de l'éditeur la connaisse ; un lien licite passe.
# a notation declared as data: three kinds, a closed vocabulary, and no self-links
oFsm = new stzNotation("fsm51")
oFsm.AddKind("state", "circle")
oFsm.AddKind("final", "doublecircle")
oFsm.AddKind("task", "diamond")
oFsm.Close()
oFsm.Forbid(:SelfLink, "a state cannot transition to itself in fsm51; " +
"model a stay as a guard on departure instead")
StzRegisterNotation(oFsm)
oDm = new stzDiagram("m51")
oDm.SetNotation("fsm51")
oDm.AddNodeXTT("a", "A", [ :type = "state" ])
oDm.AddNodeXTT("b", "B", [ :type = "task" ])
oDm.AddEdge("a", "b")
oDm.ToCanvasXT([ :NodeWidth = 96, :NodeHeight = 36 ])
nDnLog = len(oDm.EditLog())
bDnGot = oDm.Edit(:Link, [ "a", "a" ])
chk("a link the domain forbids is refused at the command",
bDnGot = 0 and len(oDm.EditLog()) = nDnLog)
bDnGot = oDm.Edit(:Link, [ "b", "a" ])
chk("...while a lawful link passes the same gate",
bDnGot = 1 and len(oDm.EditLog()) = nDnLog + 1)ok a link the domain forbids is refused at the command ok ...while a lawful link passes the same gate
exécuté le 2026-10-01 21:17 dans la bibliothèque au commit 0e72e2e2c ; tiré de base/test/graphics/gg_adversarial.ring(s'ouvre dans un nouvel onglet)
Les articles de ce domaine (12)
- Graphviz DOT Language Guide: Using stzDotCode 2025
- stzGraph: Computational Foundation and Design 2025
- stzGraph: The Art of Connected Thinking 2025
- stzGraph — Modeling Knowledge Through Structure 2025
- Introducing stzOrgChart - The Strategic Organizational Intelligence Platform 2025
- Organizational Intelligence in Action 2025
- What ChatGPT Thinks of the stzGraph Module in the Softanza Library 2025
- ClaudeAI Opinion on stzGraph design 2025
- Softanza stzGraph vs. Modern Graph Ecosystem 2025
- Intelligence in Motion: Graph Planning in Softanza 2025
- stzGraphQuery: Asking Questions to Your Graph 2026
- Rules That See the Whole Picture 2026
Les couloirs, un par un
Les couloirs et leurs notes sont cités tels qu'ils ont été lus à la source, le Read from the source on 2026-09-16, from a read-only main worktree.

