penrose/penrose
Create beautiful diagrams just by typing notation in plain text. observed · 2026-08-28
Health v2 · maintenance only
70/100
- Activity 96
- Release rhythm 18
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: n/a
- age_days: 3632
- days_rel: 339
- days_push: 25
- n_releases_24m: 1
Adoption not part of the score
7969 stars · 359 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Penrose is a platform and TypeScript library for creating mathematical and technical diagrams declaratively by writing plain-text notation in three programs (Domain, Substance, Style). It converts these specifications into an optimization problem solved with symbolic differentiation to automatically lay out high-quality SVG diagrams.
Use cases
- create mathematical diagrams from plain text notation
- visualize set theory relationships like subsets and intersections
- generate publication-quality technical illustrations declaratively
- build interactive diagrams in the browser with JavaScript
- separate diagram content from visual styling
- teach mathematical concepts with auto-generated visuals
When to choose
- you want declarative, reusable diagram specifications instead of dragging shapes
- you need diagrams of mathematical or technical concepts with automatic layout
- you want to separate diagram content from visual representation
- you need programmatically generated or interactive diagrams in web apps
When to avoid
- you need free-form general-purpose drawing like flowcharts or UI mockups
- you require pixel-perfect manual control over shape placement
- you need a simple drag-and-drop diagramming tool for non-programmers
- your diagrams are outside Penrose's supported domains and you can't write a Style program
Facets
library · maturity active
data-visualization programming-language graphics interpreter data-visualization mathematics education programming-languages browser cross-platform diagramming domain-specific-language declarative-diagrams svg constraint-solver typescript nodejs web-server
6 sources
- readme: https://github.com/penrose/penrose · fetched 2026-08-28 · eafca777af4f
- homepage: https://penrose.cs.cmu.edu · fetched 2026-08-29 · 6e67336c1b26
- site_page: https://penrose.cs.cmu.edu/docs/tutorial/welcome · fetched 2026-08-29 · 10f7100b4fc7
- site_page: https://penrose.cs.cmu.edu/docs/ref · fetched 2026-08-29 · 40f07ef33a5f
- site_page: https://penrose.cs.cmu.edu/docs/bloom/tutorial/getting_started · fetched 2026-08-29 · c28bfa08d7c0
- site_page: https://penrose.cs.cmu.edu/docs/team · fetched 2026-08-29 · 54e51814bdda
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| penrose/penrose | main | 70 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem