giraffekey
xylo
Rust

A functional programming language for procedural art

Last updated Jul 6, 2026
82
Stars
2
Forks
26
Issues
+2
Stars/day
Attention Score
66
Language breakdown
No language data available.
Files click to expand
README

Xylo   [![License]][license] [![Build Status]][actions] [![Latest Version]][crates.io] [![Docs]][docs.rs]

[License]: https://img.shields.io/badge/license-MIT-blue.svg [license]: https://github.com/giraffekey/xylo/blob/main/LICENSE [Build Status]: https://github.com/giraffekey/xylo/actions/workflows/rust.yml/badge.svg [actions]: https://github.com/giraffekey/xylo/actions [Latest Version]: https://img.shields.io/crates/v/xylo-lang.svg [crates.io]: https://crates.io/crates/xylo-lang [Docs]: https://docs.rs/xylo-lang/badge.svg [docs.rs]: https://docs.rs/xylo-lang/latest/xylo_lang/index.html

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

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.

🔗 More in this category

© 2026 GitRepoTrend · giraffekey/xylo · Updated daily from GitHub