(Updated 2001-07-20, corrected some links. Also ran this through spellchecker. =)
(Back to GIMP tutorials index)

The first thing I'm supposed to do here, as usual, is to tell people the source of inspiration. My inspiration for this picture was the fact that Perl is so great. It's so great. It's absolutely the best thing on Earth.
::looks at the puzzled audience:: Er, hm. For those who don't know what Perl is: It's a programming language. Rather neat scripting language for everything in Heaven and on Earth. If you're interested about it, please consult the web site. It's easy to learn and GIMP can be scripted with it; For that stuff, it seems to be way better than Scheme. I don't have much expertise on the Perl-FU field yet, though...
I praise its name, I tell people to use it, and most importantly I write programs in it; Yet, I felt it needs a homage from me in some... grander form.
Perl in itself is a form of art (as is programming in general - but Perl programming is an important sub-genre). I generally consider Perl one of the forms of magic. Whenever I code with Perl, I feel I'm commanding enormous powers. And, of course, that's what Perl actually does.
That's that for motivation. Now, to more technical matter, or where I got the picture I'm devaluing: The composition and idea behind this picture was blatantly ripped from Guppy's GIMP contest entry (winner, of course) that, mm, touched my technomancer heart. =)
[The image seems to have disappeared from VCL and Guppy doesn't have the page on his own page. Bleah. There goes my commentary. =( For purposes of following babble, the original's filename was "cc-magic.jpg". As if anyone cares. - WWWWolf, 2001-07-20]
(Maybe Guppy chose a bit problematic prefix for his images. Anyway, my choice of naming my picture "perl-magic.jpg" was definitely not intended as an obnoxiously hideous pun! =)
So, I decided to make a version of the image my way. Just to let people know how much I love the Holy Camel.
"I just wish they had not stolen my damn blender. [...] Some people meditate, some people get massages... I blend."
- Dean, Enemy of the State
The code I used in the picture was taken from
Schedulist,
that so far is my codemost codes of Perl magery. The code was
riddled with comments like
# Lovecraft was a wimp and
# The LISP dream, and, of course, arcane constructs
that make the C coders faint (because they probably either don't
like it aesthetically or that they think how huge loads of code
they would need to produce to make equivalent program =)
I saved a snippet of it - really arcane-looking part - to file. The image displayed here shows the arcane utterance being copied, by using the Really Ruling Text Editor called XEmacs (with which this text was written, too), to text file /tmp/arcane.txt.
I then pasted the code to GIMP's gdyntext tingymajickque. The font was Amelia, from CorelDraw! 4 (I guess). It's just one "computeresque" font with no real significance. It was chosen in a fit of insanity. I could have chosen Helvetica, but nay... Things like this tend to keep bugging me later on.
The next step was to twist the magery into magery with a great free 3D package called Blender. Blender has a quite feature-rich free version. I wish I would have some money for the "C-key" version that has some even cooler features - heck, even the environment mapping stuff would be worth the money! Besides, Ton Roosendaal needs that money, dammit! =) It'd be nice to have a real ray-tracer under Blender's hood anyway... OK, enough rambling, back to the topic.
It may be that Ton, while being a nice guy and all, traitorously chose Python, that foul language of Sinful Serpent[1], as the scripting language for the commercial version of Blender... but in spite of this foul choice we can use the God's Chosen Programming Language to produce cool images, and that works even with the freeware version of Blender! Cool, huh? I discovered how to do that!
No, we can't script it with the Only True Language yet. I just used the picture I created above as a texture. I created a mesh, fractal-subdivided and twisted it around, and finally aligned it so that it'd look nice in the resulting picture. Then, I used the newly created texture as a texture.
Actually, I only took lower half of the texture and used that, because it looks like Perl code and not like escaped HTML.
Then, I duplicated the mesh, and set the mesh to produce starburst halos, and fractal-subdivided one more time, while I had the "center" vertices selected - I didn't want to have millions of small stars cleanly outlining the mesh edges.
Finally I rendered the resulting messssh at 640x480. The results can be seen here.
I think the code might even be readable from the resulting picture. Who knows. And even if it isn't, at least the spirit and intent is what counts. I definitely would not put just random junk there, that'd be cheating. =)
I actually did some paper sketches when I made this image. One was the sketch of image itself, but most importantly, I decided to draw the logo on paper too, just for the heck of it.
So, I drew it. I actually inked it, too, as you probably can see from the image.
There were a few things that amazed me about the inking: I drew on a drawing paper (sketch diary), and my ink pen kind of jumped on the page, resulting in something that kind of looked like pixelized picture. Odd, that. I can't seem to get rid of those pesky pixels. =) Also, when I drew the "Ars arcanumica" text, it didn't fit on one line, so I put it into two lines - and much to my surprise, the x-height of the two lines was precisely the same! I guess my eye for proportions is improving.
::looks at the picture and inhales the smell of fresh ink:: Mmmmmmm! Care to guess what that inked logo reminds me of? Some sort of zine cover. Cover of some author's edition publication that was inked by some young artist who's at the beginning of the long road that opens wide before him, a long journey... and he'll have no problems in getting going. ::eyes around:: Hmm, I think I strayed from the topic again. So sue me! ... More tea, please... But seriously: it reminds me of some RPG publication I saw ages ago, I just can't remember name or what did it exactly look like...
After the inking and scanning (Scanned to Corel PhotoPaint 4 in Windone using my SnapScan 510 - just raw scanning, it was not used for processional things) I colored the logo. The coloring was kind of easy - "Ars Arcanumica" was colored with bucket, motion blur and layer maskization chop, "Perl" with gradient tool, and symbols with XInput Air brush. These were smudged a bit with the finger tool using calligraphic brush, and Threshold Alpha was used after the smudge to make the edges rippled.
I decided to add the $, @, %, * symbols to the picture too, because they are "magic symbols" that we Perl magicians use. For non-technical people: $ is a scalar variable symbol, @ is an indexed-array variable symbol, % is a hash (associative-array) variable symbol, and * is a type glob ("any type") symbol [2].
The colors used for the symbols came directly from Magic: the Gathering (geek-favored trading card game from Wizards of the Cost [sic] that I've been known to play ocassionally =) The colors symbolize different kind of magic forces: Red is the fiery fire magic, green is the nurturing magic of the life, blue is the water magic and black is the, duh, black magic. White magic was left out, but that's because prophet Wall was not depicted in this picture (and it's kind of sum of the colors used here anyway).
Black was chosen for type glob, because type glob type variables should not be used anyway in Perl versions 5 and later. That is, they're often not required. That was the only conscious choice for color, but I can tell some other less obvious things: $calar$ are red because they're often used ("hot"), @rr@ys can be used to implement forests, and ha%he% are used to store deep wisdom about something among other things.
The results of coloring can be seen above from the page title.
In case you were wondering: "Ars arcanumica" is Latin for "Arcane art", and that's, quite literally, what Perl programming is all about. =)
The following shows the wolf sketch in different phases of the modification.
|
|
|
|
|
|
|
|
|
A funny thing occurred to me when I colored the picture in 7th March. IRC log excerpt from YiffNet #furry (unrelated comments removed):
<WWWWolf> I ran into an odd situation today. the air brush tool in GIMP ran out of paint! =) <Saurian> That used to happen on the early macs a lot. <Saurian> Lack of RAM. <Locandez> WWWolf: how? <Pavlov> Now that's a realistic paint program @_@ <DmndBack> the air brush ran out of paint? <WWWWolf> Memory problems, I guess... kept swapping like hell. <Saurian> *nod* Lack of memory. }:) <Pavlov> "This art software is so true-to-life, every hour it makes you go to the Home Depot for more paint." * Locandez DCCs WWWWolf some RGBPAINT.DAT
Indeed, with lots of layers, the machine swapped like hell and coloring was kind of pain when a stroke of XInput Air brush appeared to the picture 30 seconds later - and, of course, I needed a lot of air brush strokes.
I needed to remove some layers - I usually save sketch layers with the pictures too.
GIMP has, as far as I know, a Photoshopesque Light-effects-thingymajinka. However, if PS does have the same lighting effects plug-in that GIMP has, I don't really think it's really that great...
Lighting the picture was easier than what I thought. Here's the sphere of light the Blendering Perl effect apparently emits:
As you can see, the technique in generation of this was simple: blackened the layer, set it 50% opaque so I could see what to select, lasso selected stuff, and then used the Finger to edgelate the edges. Then, I set it to ~ 75% opacity, placed it under the effect layer and set mode to Opaque. Cool effect, huh?
I decided not to put the clichéd glow that all the magicians seem to have into the eyes. (No need to stay überfaithful to Guppy's picture anyway - Hey, if I'm stealing ideas, I should at least try doing something original.) Heck, my eyes don't glow when I code with Perl... or if they do, it's because of joy and it's best expressed by whole facial expression, not just the eyes that seem to smile. (While writing this, I decided to correct the expression on the pic, I hope the final version looks a bit more joyful.)
The layer stack I used when making this picture was simple. Layers from top to bottom:
Well, I know the reason: Licensing. Don't know if Artistic License allows use of code in closed apps, but Python's license apparently allows vile exploitation. Well, they could have put plug-in interface system into separate executable and open the sources for that executable. I hope Blender 2.0 will do something about this situation...
OK, this was my little Python rant. Keep moving. Nothing to see here anymore.
[Index] [Up] [Main] [Weyfour WWWWolf]
Last modified: $Date: 2005-11-10 19:00:38 +0200 (to, 10 marras 2005) $