Xylo
A functional programming language for procedural art
Install / Use
/learn @giraffekey/XyloREADME
Xylo

Xylo is a domain specific language of the functional paradigm that is designed for use in creative coding and procedural art.
Documentation: https://xylo-1.gitbook.io/docs

Example
root =
l 0 FILL : ss 400 bouquet
quality = 750
bouquet =
r 36 (ss 1.3 flower5)
: r 15 flower6
flower6 =
demiflower6
: flip 90 demiflower6
flower5 =
demiflower5
: flip 90 demiflower5
demiflower6 =
collect (
for i in 0..12
r (i * 30) (petal6 quality))
demiflower5 =
collect (
for i in 0..5
r (i * 72) (petal5 quality))
petal5 i =
if i == 0
EMPTY
else
s 1 0.0001 SQUARE
: ss 0.005 (tx -0.5 (l 0 CIRCLE))
: tx 0.5 (r 144.04 (ss 0.998 (tx 0.5 (lshift (1 / quality * 0.6) (petal5 (i - 1))))))
petal6 i =
if i == 0
EMPTY
else
s 1 0.0001 SQUARE
: tx -0.5 (ss 0.01 (l 0 CIRCLE))
: tx 0.5 (r 120.21 (ss 0.996 (tx 0.5 (lshift (1 / quality) (petal6 (i - 1))))))
Installation
Released Builds
You can find the latest release of the Xylo binaries here.
Cargo Install
You can install Xylo using Cargo:
cargo install xylo-lang
Manual Build (Linux)
Clone the repo:
git clone https://github.com/giraffekey/xylo
Build the repo:
cargo build --release
Copy the CLI:
sudo cp target/release/xylo-lang /usr/bin/xylo
Usage
Write some Xylo code in a .xylo file e.g. art.xylo.
Then, generate an image from that code:
xylo generate art.xylo --width 800 --height 800
If your code is valid, you should see an image output to art.png.
