Examples
Every sprite below is a .pix file in examples/, compiled to PNG with the pixel-dsl CLI. Regenerate the whole gallery with scripts/render-examples.sh.











Source files
All of these are written as shape ops — fill, rect, line, circle, pixel (and flip).
| Example | Subject | Size |
|---|---|---|
heart.pix | Heart | 16×16 |
coin.pix | Gold coin | 16×16 |
potion.pix | Potion flask | 16×16 |
flag-ops.pix | Jolly Roger flag | 16×12 |
mushroom.pix | Toadstool | 20×20 |
tree.pix | Tree | 32×32 |
cat.pix | Cat | 32×32 |
spider.pix | Black widow | 32×32 |
pirate-skull.pix | Skull | 32×32 |
kraken.pix | Kraken | 96×96 |
pirate-galleon.pix | Pirate galleon | 96×72 |
Cell grid vs ops
The same Jolly Roger flag, two ways:
Cell grid (192 tokens)
pix
sprite jolly 16x12 palette=flag {
k k k k k k k k k k k k k k k k
k k k k k k k k k k k k k k k k
k k k k k w w w w w w k k k k k
k k k k w w w w w w w w k k k k
k k k k w w k w w k w w k k k k
... etc, 12 rows
}Ops (10 statements)
pix
sprite jolly 16x12 palette=flag {
fill k
rect 1,1 14,10 k
circle 8,5 3 w
pixel 7,4 k
pixel 9,4 k
pixel 8,5 k
rect 6,7 9,7 w
line 4,9 11,11 w
line 11,9 4,11 w
rect 5,11 10,11 r
}Same output. Ops are dramatically more concise and easier to write correctly.