Skip to content
haskell-diagrams logo

Haskell Diagrams

haskell-diagrams

haskell-diagrams - Declarative Vector Graphics with Diagrams DSL

SKILL.md

Full skill instructions

haskell-diagrams - Declarative Vector Graphics with Diagrams DSL

Overview

Integrates the Haskell diagrams embedded domain-specific language for creating declarative vector graphics. Used for:

  1. Tsillerson Automata Visualization: 2+1D lattice with vortex/​antivortex defects
  2. Golden Thread Color Spirals: φ-angle (137.508°) color progression
  3. Path Equivalence Diagrams: Kleppmann-Bumpus-Gay path comparison
  4. GF(3) Trit Coloring: Triadic conservation visualizations

Trit: +1 (PLUS) - Generates vector graphics artifacts

Core Formula

-- Diagrams is a monoid: composition via <>
diagram :: Diagram B
diagram = shape1 <> shape2 `atop` shape3

-- Transformation pipeline
transform :: Diagram B -> Diagram B
transform = scale 2 . rotate (45 @@ deg) . fc red

Predicates

PredicateDescriptionGF(3) Role
DiagramValid(d)Diagram is well-formedStructure
ColorConserved(ds)Σ trits = 0 across diagramsConservation
PathEquivalent(p1,p2)Visual fingerprints matchEquivalence
GoldenAngle(θ)θ ≈ 137.508°Dispersion

Architecture

┌────────────────────────────────────────────────────────────────┐
│                  Haskell Diagrams Pipeline                     │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│   Source (.hs)          Diagram B              Output           │
│       │                     │                     │             │
│       ▼                     ▼                     ▼             │
│  ┌──────────┐    ┌───────────────────┐    ┌─────────────┐      │
│  │ DSL Code │───▶│  Monoid Compose   │───▶│ SVG / PNG   │      │
│  │ shapes,  │    │  atop, beside,    │    │ PDF / PS    │      │
│  │ colors   │    │  vsep, hsep       │    │ Canvas      │      │
│  └──────────┘    └───────────────────┘    └─────────────┘      │
│                                                                 │
│   Backends: -fsvg (default), -fcairo, -frasterific, -fcanvas   │
│                                                                 │
└────────────────────────────────────────────────────────────────┘

Triads (GF(3) = 0)

# Diagrams Generation Bundle
three-match (-1) ⊗ haskell-diagrams (0) ⊗ gay-mcp (+1) = 0 ✓  [Core Diagrams]
temporal-coalgebra (-1) ⊗ haskell-diagrams (0) ⊗ topos-generate (+1) = 0 ✓  [Animation]
sheaf-cohomology (-1) ⊗ haskell-diagrams (0) ⊗ rubato-composer (+1) = 0 ✓  [Music Notation]
persistent-homology (-1) ⊗ haskell-diagrams (0) ⊗ gay-mcp (+1) = 0 ✓  [TDA Viz]

Installation

# Install with SVG backend (default)
cabal update && cabal install --lib diagrams diagrams-svg diagrams-contrib

# With cairo backend for PNG/​PDF
cabal install gtk2hs-buildtools
cabal install --lib -fcairo diagrams

# With rasterific for Haskell-native PNG
cabal install --lib -frasterific diagrams

Core API

Shapes

import Diagrams.Prelude

-- Basic shapes
circle 1         :: Diagram B
square 2         :: Diagram B  
rect 3 4         :: Diagram B
triangle 1       :: Diagram B
pentagon 1       :: Diagram B

-- Paths and trails
fromVertices [p2 (0,0), p2 (1,1), p2 (2,0)]
arc (0 @@ deg) (90 @@ deg)

Composition

-- Monoid: overlay at origin
d1 <> d2

-- Explicit overlay
d1 `atop` d2

-- Spatial arrangement
d1 ||| d2          -- beside horizontally
d1 === d2          -- beside vertically
hcat [d1, d2, d3]  -- horizontal list
vcat [d1, d2, d3]  -- vertical list
hsep 0.5 [d1, d2]  -- with spacing
vsep 0.5 [d1, d2]

Styling

-- Fill and stroke
diagram # fc red           -- fill color
diagram # lc blue          -- line color
diagram # lw thick         -- line width
diagram # opacity 0.5

-- Transforms
diagram # scale 2
diagram # rotate (45 @@ deg)
diagram # translate (r2 (1, 2))

Colors (Gay.jl Integration)

import Data.Colour.SRGB (sRGB24read)

-- Golden thread colors (seed 1069)
goldenThreadColors :: [Colour Double]
goldenThreadColors = map sRGB24read
  [ "#DD3C3C", "#3CDD6B", "#9A3CDD"  -- steps 1-3
  , "#DDC93C", "#3CC2DD", "#DD3C93"  -- steps 4-6
  , "#64DD3C", "#433CDD", "#DD723C"  -- steps 7-9
  ]

-- GF(3) trit colors
tritColor :: Trit -> Colour Double
tritColor Minus = sRGB24read "#2626D8"  -- Blue (validator)
tritColor Zero  = sRGB24read "#26D826"  -- Green (coordinator)
tritColor Plus  = sRGB24read "#D82626"  -- Red (generator)

Tsillerson Automata Example

-- Cell state visualization
data CellState = Empty | Vortex | Antivortex | Path0 | Path1 | Path2

cell :: CellState -> Diagram B
cell Empty       = square 1 # fc white # lw thin
cell Vortex      = circle 0.35 # fc vortexColor <> square 1 # lw thin
cell Antivortex  = circle 0.35 # fc antivortexColor <> square 1 # lw thin
cell Path0       = square 0.6 # fc path0Color <> square 1 # lw thin
cell Path1       = square 0.6 # fc path1Color <> square 1 # lw thin
cell Path2       = circle 0.3 # fc path2Color <> square 1 # lw thin

-- 8x8 lattice grid
latticeGrid :: [[CellState]] -> Diagram B
latticeGrid rows = vcat $ map (hcat . map cell) rows

-- Main diagram with legend
tsillersonDiagram :: Diagram B
tsillersonDiagram = vsep 0.5
  [ titleBlock
  , hsep 1 [latticeGrid initialLattice, legend]
  , goldenThreadBar
  ] # bg white # frame 0.5

Animation Support

import Diagrams.Backend.Cairo.CmdLine
import Diagrams.Animation

-- Animated diagram (t ∈ [0, 1])
spinningSquare :: Animation B V2 Double
spinningSquare = animEnvelope $ \t ->
  square 1 # rotate (t * 360 @@ deg) # fc (blend t red blue)

-- Render as GIF
main = mainWith spinningSquare

Commands

just diagrams-install       # Install diagrams library
just diagrams-tsillerson    # Generate Tsillerson SVG
just diagrams-list          # List Haskell diagram files
just kbg-diagram-hs         # Generate KBG third diagram

File Structure

lib/
├── TsillersonDiagram.hs    # 2+1D automata visualization
├── GoldenThread.hs         # φ-spiral color generation
└── PathEquivalence.hs      # Kleppmann-Bumpus-Gay comparison

diagrams/
├── tsillerson.svg          # Generated Tsillerson diagram
├── golden_thread.svg       # Golden angle color spiral
└── path_equiv.svg          # Path equivalence visualization

Neighbor Awareness

PositionSkillRole
Left (-1)three-matchValidates diagram constraints
Right (+1)gay-mcpProvides deterministic colors

References


Status: ✅ L4 Admissible Trit: 0 (ERGODIC) - Coordinates graphics generation Date: 2025-12-25

Scientific Skill Interleaving

This skill connects to the K-Dense-AI/​claude-scientific-skills ecosystem:

Visualization

  • matplotlib [○] via bicomodule

Bibliography References

  • general: 734 citations in bib.duckdb

Cat# Integration

This skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:

Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826

GF(3) Naturality

The skill participates in triads satisfying:

(-1) + (0) + (+1) ≡ 0 (mod 3)

This ensures compositional coherence in the Cat# equipment structure.

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View