Skip to content

Latest commit

 

History

History

lang-declarative-graphics

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Declarative graphics DSL

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.

Todo list

  • 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

Related work

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

  1. in contrast to imperative drawing APIs like Processing, Cairo or HTML Canvas.