Skip to main content

Mermaid diagram renderers for gds-framework specifications

Project description

gds-viz

PyPI Python License

Mermaid diagram renderers for gds-framework specifications.

uv add gds-viz
# or: pip install gds-viz

Views

gds-viz provides six views — each a different projection of the GDS specification {h, X}:

View Function Input Answers
1. Structural system_to_mermaid() SystemIR What blocks exist and how are they wired?
2. Canonical GDS canonical_to_mermaid() CanonicalGDS What is the formal decomposition h = f ∘ g?
3. Architecture (role) spec_to_mermaid() GDSSpec How do blocks group by GDS role?
4. Architecture (domain) spec_to_mermaid(group_by=...) GDSSpec How do blocks group by domain/agent?
5. Parameter influence params_to_mermaid() GDSSpec What does each parameter control?
6. Traceability trace_to_mermaid() GDSSpec What can affect a specific state variable?

View 1: Structural

The compiled block graph from SystemIR. Shows composition topology — sequential, parallel, feedback, temporal — with role-based shapes (stadium for boundary, double-bracket for mechanism) and wiring types (solid, dashed, thick).

from gds_viz import system_to_mermaid
mermaid = system_to_mermaid(system)

View 2: Canonical GDS

The mathematical decomposition: X_t → U → g → f → X_{t+1} with parameter space Θ. Derives from CanonicalGDS (via project_canonical(spec)). Shows state variables in X nodes, role subgraphs, labeled update edges, and parameter dependencies.

from gds.canonical import project_canonical
from gds_viz import canonical_to_mermaid
mermaid = canonical_to_mermaid(project_canonical(spec))

Views 3 & 4: Architecture

Domain-level diagrams from GDSSpec. Show entity state cylinders, typed wire labels (from Wire.space), and mechanism-to-entity update edges. View 3 groups by GDS role; View 4 groups by any tag key.

from gds_viz import spec_to_mermaid
by_role = spec_to_mermaid(spec)                    # View 3
by_agent = spec_to_mermaid(spec, group_by="domain") # View 4

Tags are set on blocks at definition time:

sensor = BoundaryAction(name="Sensor", ..., tags={"domain": "Observation"})

View 5: Parameter Influence

Shows Θ → block → entity causal map. Hexagon nodes for parameters, dashed edges to blocks that use them, then forward through the dependency graph to entities. Answers: "if I change parameter X, what state is affected?"

from gds_viz import params_to_mermaid
mermaid = params_to_mermaid(spec)

View 6: Traceability

For a single entity variable, traces every block that can transitively affect it and every parameter feeding those blocks. Right-to-left layout with thick edges for direct updates. Answers: "what controls this variable?"

from gds_viz import trace_to_mermaid
mermaid = trace_to_mermaid(spec, "Susceptible", "count")
What gds-viz does NOT cover

The six views above exhaust what is derivable from the GDS specification {h, X}. Two commonly requested views are deliberately excluded:

State Machine View — requires discrete states and transition guards. GDS defines a continuous state space X, not a finite set of named states. Discretizing X is domain-specific interpretation, not derivable from {h, X}.

Simulation / Execution Order View — requires operational semantics (when blocks execute, in what order, with what timing). GDS specifies only structural relationships. The composition algebra defines topology, not a runtime.

Concern In GDS? Where it belongs
State space, block topology, dependencies, parameters Yes GDSSpec, SystemIR, SpecQuery
Discrete state machine No Domain-specific layer or gds-sim
Execution schedule, time semantics No Simulator / runtime (gds-sim)

A future gds-sim package could add execution semantics, making these views derivable from (GDSSpec, SimConfig).

License

Apache-2.0


Built with Claude Code. All code is test-driven and human-reviewed.

Credits & Attribution

Author: Rohan MehtaBlockScience

Theoretical foundation: Dr. Michael Zargham and Dr. Jamsheed ShorishGeneralized Dynamical Systems, Part I: Foundations (2021).

Architectural inspiration: Sean McOwenMSML and bdp-lib.

Contributors:

  • Michael Zargham — Project direction, GDS theory guidance, and technical review (BlockScience).
  • Peter Hacker — Code auditing and review (BlockScience).

Lineage: Part of the cadCAD ecosystem for Complex Adaptive Dynamics.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gds_viz-0.1.1.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gds_viz-0.1.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file gds_viz-0.1.1.tar.gz.

File metadata

  • Download URL: gds_viz-0.1.1.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gds_viz-0.1.1.tar.gz
Algorithm Hash digest
SHA256 319b2687e3d433f84e9f4d632d7cf47a8f90011d03f5ab02bd9d83dcb32421ce
MD5 c34efffd3c48aa0771433b201e6bdd75
BLAKE2b-256 9e48f56f42d556dab11054b959e3610f99a4c738f3a9aeac10a4c6e8e7ca7ffc

See more details on using hashes here.

Provenance

The following attestation bundles were made for gds_viz-0.1.1.tar.gz:

Publisher: publish.yml on BlockScience/gds-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gds_viz-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gds_viz-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gds_viz-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40af241b766375d7a80f6c27a78577c91667dd28c47a76bfacec8334ff1bedf2
MD5 f2798aa36f78aef941e572f06e3212e3
BLAKE2b-256 0ab50f23c50f397a6822007f9f3e8da1d5d2abc8f32785bc85c11a646ee25ab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for gds_viz-0.1.1-py3-none-any.whl:

Publisher: publish.yml on BlockScience/gds-viz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page