Third part was erroneously called 'Pixels' when it should be 'Filters', breaking the links at the top.
Ronin

Ronin is a procedural graphics tool designed to automate simple graphical tasks, like resizing, cropping, coloring, and generating algorithmic images. It interprets a minimal dialect of LISP, look at these examples to better understand how this all works.
The library updates is constantly revealing new applications to Ronin, you can see the list of available functions here. Most of our iconography and designs were created with both Ronin and Dotgrid.
Learn more by reading the manual, or have a look at some experiments on twitter. If you need help, visit the Community, or follow the Workshop.
; draw a red square
(stroke
(rect 30 30 100 100) 2 "red")
Install & Run
You can download builds for OSX, Windows and Linux, or if you wish to build it yourself, follow these steps:
git clone https://github.com/hundredrabbits/Ronin.git
cd Ronin/desktop/
npm install
npm start

Library
Additional functions can be found in the includes, you can also look at the examples to see them in action.
(import path shape)
Imports a graphic file with format.(export path ~format ~quality)
Exports a graphic file with format.(open path)
Imports a graphic file and resizes the frame.(move x y)
(rotate angle)
(scale x y)
(transform a b c d e f)
(setTransform a b c d e f)
(resetTransform)
(pushTransform)
(popTransform)
(pos x y)
Returns a position shape.(size w h)
Returns a size shape.(rect x y w h)
Returns a rect shape.(circle cx cy r)
Returns a circle shape.(line ax ay bx by)
Returns a line shape.(text x y p t ~f)
Returns a text shape.(svg x y d)
Returns a svg shape.(stroke ~shape)
Strokes a shape.(fill ~rect)
Fills a shape.(gradient line ~colors 'black'])
Defines a gradient color.(guide shape)
Draws a shape on the guide layer.(clear ~rect)
Clears a rect.(frame)
Returns a rect of the frame.(center)
Returns a position of the center of the frame.(resize w h ~fit)
Resizes the canvas to target w and h, returns the rect.(rescale w h)
Rescales the canvas to target ratio of w and h, returns the rect.(crop rect)
Crop canvas to rect.(clone a b)
(theme variable ~el)
(pixels rect fn q)
(saturation pixel ~q)
(contrast pixel ~q)
(concat ...items)
Concat multiple strings.(add ...args)
Adds values.(sub ...args)
Subtracts values.(mul ...args)
Multiplies values.(div ...args)
Divides values.(mod a b)
Returns the modulo of a and b.(clamp val min max)
Clamps a value between min and max.(step val step)
(min)
(max)
(ceil)
(floor)
round down to the nearest integer.(sin)
(cos)
(log)
caclulates on the base of e.(pow a b)
calculates a^b.(sqrt)
calculate the square root.(sq a)
calculate the square.(PI)
(TWO_PI)
(random ...args)
(gt a b)
Returns true if a is greater than b, else false.(lt a b)
Returns true if a is less than b, else false.(eq a b)
Returns true if a is equal to b, else false.(and a b ...rest)
Returns true if all conditions are true.(or a b ...rest)
Returns true if at least one condition is true.(map fn arr)
(filter fn arr)
(reduce fn arr acc)
(len item)
Returns the length of a list.(first arr)
Returns the first item of a list.(last arr)
Returns the last(rest [_ ...arr])
(range start end ~step)
(get item key)
Gets an object's parameter with name.(set item ...args)
Sets an object's parameter with name as value.(of h ...keys)
Gets object parameters with names.(keys item)
Returns a list of the object's keys(values item)
Returns a list of the object's values(convolve rect kernel)
(blur)
(sharpen)
(edge)
(dir ~path)
Returns the content of a directory.(file ~path)
Returns the content of a file.(dirpath ~path)
Returns the path of a directory.(filepath ~path)
Returns the path of a file.(exit ~force)
Exits Ronin.(echo ...args)
(table arg)
(debug arg)
(time ~rate)
Returns timestamp in milliseconds.(js)
Javascript interop.(on event f)
Triggers on event.(test name a b)
(benchmark fn)
logs time taken to execute a function.


Extras
- This application supports the Ecosystem Theme.
- Support this project through Patreon.
- See the License file for license rights and limitations (MIT).
- Pull Requests are welcome!