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.
-
Gifcurry
๐ The open-source, Haskell-built video editor for GIF makers. -
reanimate
Haskell library for building declarative animations based on SVG graphics -
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. -
diagrams
Embedded domain-specific language for declarative vector graphics (wrapper package) -
GPipe
Core library of new GPipe, encapsulating OpenGl and providing a type safe minimal library -
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 -
timeplot
Analyst's swiss army knife for visualizing data from ad-hoc log files -
unm-hip
The University of New Mexico's Haskell Image Processing Library -
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. -
graphics-drawingcombinators
Combinators for drawing 2D shapes and images in Haskell (using OpenGL)
WorkOS - The modern identity platform for B2B SaaS
* 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