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
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))))))
You can find the latest release of the Xylo binaries here.
You can install Xylo using Cargo:
cargo install xylo-lang
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
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
.
Join our community and stay connected! You can reach out to us through the following platforms:
- Discord: Join our Discord server to share your art, discuss ideas, and collaborate on the the project.
- Telegram: Join our Telegram group for real-time updates and discussions.
- Reddit: Visit our subreddit to participate in discussions, share your artwork, and connect with other community members.
- Donations: If you appreciate our work and would like to support us, consider donating through Liberapay or Giveth. Your contributions help us continue improving the project!