Proof of concept
I made this as a proof of concept for another IDE and live-code style utility for generating XPM—or really anything that can be expressed through functions.
The idea is simple: interfaces should manipulate functions, and those functions should also be executable. Moving a layer, setting a color, or changing a property should have an equivalent command. A small set of commands becomes art.
addcolor smileyellow #ffd84d addcolor smileorange #f28c28 cir 12 smileyellow as face cirstroke face 1 1 black as face-lines pixels black 4,4 7,4 as eyes pixels smileorange 4,6 7,6 5,7..6,7 as mouth group face face-lines eyes mouth as smiley