Tonight my daughter asked "how does mom's iPhone make things do things?" Mom referred this question to dad, so I explained how people tell the computer in the phone where to draw things, and how everything is built up from pieces.
So we pulled out my laptop to show her how it worked. I showed her how to make rectangle first, and we played with changing its colors, and putting her name inside.
Not one to be satisfied with mere rectangles and text ("In my day we had to blit our own buffers, kid! And the fonts were jaggy!"), she immediately jumped to "let's make a rainbow!" Because it should be as easy as crayons, right?
I have a patient kindergartner who doesn't mind watching her dad try to recall basic trig on the fly, and soon we had function to plot a curve. I showed her how to change the color and size for each band of the rainbow, and how to hit shift-enter to plot it, which she purposefully set about doing while I ran off for a minute.
Then we wrote the rainbow function; I copy-pasted the Curve call, and changed the sizes, and somehow she knew how to fill out the colors without much instruction.
When I tried to adjust the curve spacing, I did it wrong, but she liked the effect, so we added a skew keyword.
Figured I might as well open the source. Creative Crayons license?