context-free-art alternatives and similar packages
Based on the "Graphics" category.
Alternatively, view context-free-art alternatives based on common mentions on social networks and blogs.
-
reanimate
Haskell library for building declarative animations based on SVG graphics -
Gifcurry
๐ The open-source, Haskell-built video editor for GIF makers. -
implicit
A math-inspired CAD program in haskell. CSG, bevels, and shells; 2D & 3D geometry; 2D gcode generation... -
threepenny-gui
GUI framework that uses the web browser as a display. -
GPipe
Core library of new GPipe, encapsulating OpenGl and providing a type safe minimal library -
diagrams
Embedded domain-specific language for declarative vector graphics (wrapper package) -
luminance
Type-safe, type-level and stateless Haskell graphics framework -
log-warper
Logging library to provide more convenient, extremely configurable but simple monadic interface with pretty output -
unm-hip
The University of New Mexico's Haskell Image Processing Library -
timeplot
Analyst's swiss army knife for visualizing data from ad-hoc log files -
diagrams-contrib
User-contributed extensions to diagrams -
processing-for-haskell
Graphics for kids and artists. Processing implemented in Haskell -
GLUtil
Utility functions for working with OpenGL BufferObjects, GLSL shaders, and textures. -
diagrams-reflex
reflex backend for diagrams drawing EDSL.
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of context-free-art or a related project?
Popular Comparisons
README
Context free art
Create art via context free grammar production rules. Current backends: SVG.
Context free grammar primer
Context free grammars consist of a set of terminal symbols, a set of non-terminal symbols, and production rules that map non-terminals to other symbols.
With a context-free grammar, we can generate strings of terminals that conform to the specified language.
Our language will describe graphics.
How to use
import Art.ContextFree.Definite
import Data.List.NonEmpty
move = Mod [Move (0, -1.8), Scale 0.8]
armN :: Int -> Symbol
armN 0 = move $ Circle 1
armN n = move $ Branch $
Circle 1 :| [Mod [Rotate 10] $ armN (n - 1)]
arm :: Symbol
arm = armN 20
spiral = Branch $
Circle 1 :| [arm, Mod [Rotate 120] arm, Mod [Rotate 240] arm]
The latter produces this graphic:
Examples
The code for these can be found in the exmaples/ folder