Here’s how to create a new collection for the face generator.
First, print some templates.
Second, get a pen and start drawing a sheet of eyes, of eyebrows, of noses, of mouths, of ears, of hair, of chins.

Scan them. I use Gimp and there the File → Create → XSane → Device dialog... menu opens the scanner application. There, I pick Gray and 300 DPI. Then I scan all the stuff I drew.

Next, in Gimp, the processing begins. The first problem is that either the printer or the scanner don’t really get straight lines.
I like to work at 50% zoom...
Use the rotate tool to rotate the image until it looks as straight as possible (shortcut Shift+R). Move the window edges around until you have the opportunity to check whether the lines are in fact straight. In the screenshot below I’m looking at the left edge to verify that the rotation is good.

Use the crop tool to cut off anything outside the template (shortcut Shift+C).
Got to Image → Scale Image.... Scale it to 2250×3000, breaking the link between width and height.
Got to Colors → Levels. In the top bar, move the tiny white triangle to the left until the template is no longer visible in the image. Click the black pipette and then click onto a line that you have drawn such that all your lines are now pitch black.

Export your image (shortcut Ctrl+Shift+E).
Cut the image into elements using cutter.pl. It cuts the scan into 5 × 5 images of 450 × 600 pixels each and labels them by row. You’d invoke it as follows: perl helpers/cutter.pl source1.png alex eyes_all nose_all mouth_all hair_all chin_all
or perl helpers/cutter.pl source2.png alex eyes_all nose_all mouth_all hair_all ears_all
.
In other words: First is the source image, then the artist name, and then you provide the element for every row. If the remaining rows are all the same element, you don’t need to repeat it. Thus, if you’ve drawn a sheet full of eyes, just use perl helpers/cutter.pl source4.png alex eyes_all
and you’re good. Make sure you use _all
in the filename. That’s how the system knows the face element can be used for all types of faces.
In my case:
perl helpers/cutter.pl alex3-chin-man-2.png alex3 chin_man
perl helpers/cutter.pl alex3-ears-2.png alex3 ears_all
perl helpers/cutter.pl alex3-eyebrows-2.png alex3 face_all
perl helpers/cutter.pl alex3-eyes-2.png alex3 eyes_all
perl helpers/cutter.pl alex3-hair-2.png alex3 hair_man
perl helpers/cutter.pl alex3-mouths-2.png alex3 mouth_all
perl helpers/cutter.pl alex3-noses-2.png alex3 nose_all
And then to write a license file, the README, we should be ready to go, more or less. Let’s see...

Check it out!
Tags: RPG Face Generator Old School Indie
I like it! Looks very usable, especially with the yellow highlighting.
– Jensan 2019-10-09 12:09 UTC
Thanks! Now that I look at the maps a bit closer I see that many of them are repeats. I need to think about the random number seed a bit more. I fear it’s simply taking the current time and passing it off to the mapp generator, which thus gets the same seed for every map. That’s not cool.
– Alex Schroeder 2019-10-09 13:50 UTC
This is killer Alex
– froth 2019-10-15 18:54 UTC
Heh, all thanks to ktrey parker and J. Alan Henning who pushed me towards it because I was quite skeptical, and they wrote the random tables for it. Beautiful!
– Alex Schroeder 2019-10-15 20:36 UTC
This is another amazing resource for randomness – thank you. I use Hex Describe quite a bit to generate random entries for my D&D wilderness treks (using tables I have created from mash ups of existing material/adventures and my own mind) and am wondering how I would add in a chance of generating one of these dungeons? I’ve done a quick search of your wiki, the source file and can’t see anything specific – is it possible?
– VickyR 2020-01-07 20:27 UTC
It depends on what you want. If you’re already writing your own random tables, then it’s easy to simply add
[dungeon]
and it’ll add one to your entry.[dungeon]
table)– Alex Schroeder 2020-01-07 20:59 UTC
Thanks for this. Looking through the tables it’s an amazing piece of work by you and ktrey parker and J. Alan Henning. Much more complex that I usually create, but full of interesting ways of using code you’ve written. Thanks again.
– VickyR 2020-01-09 06:44 UTC
Thanks. 🙂
– Alex Schroeder 2020-01-09 06:48 UTC
Add Comment