This is domain specific language for drawing 2-dimensional graphics. The goal is to describe drawings in terms of simple, composable components, with no hidden drawing state1.
Used in lang-fractal-tree-rewriting.
- Embedded DSL
- External DSL
- Web playground
Diagram support
- 2D diagrams
- 2D diagrams with envelope-based alignment
- 2.5D diagrams
- 3D diagrams
Additional backends
- CPU Backend
- SVG Backend
- GPU Backend
This was inspired the diagrams library for Haskell. A similar library for Elm was described by Pontus Granström in “Diagrammar: Simply Make Interactive Diagrams”. The following Elm packages were also inspiring:
The pict library for Racket also implements some similar ideas.
Footnotes
-
in contrast to imperative drawing APIs like Processing, Cairo or HTML Canvas. ↩