A glyph generator for Journey

Published
22 May 2012
Tagged

Despite the fact that I don't own a Paystation 3 yet, I've managed to get quite completely addicted to Journey just from a couple of hours' gaming on a friend's console. When I found myself at home with nothing Journey-related to do except browse the Internet to make sure that it's just as fun after your first completion, I thought I might make some Journey-inspired glyphs to use as icons.

After some screwing around with sketching random glyphs, making a prototype in Pixelmator, and applying opacity effects and glow filters, I figured there had to be a way to automate this.

So I made this site.

A sample glyph

A sample glyph

TL;DR: Visit the site and refresh repeatedly to find some cool glyphs.

The actual algorithm developed over time from simple random numbers to a semi-complex hashing function. The application first picks a random word from the unix words file, and performs an md5 hash on that word to get a nice long string of random (but constant for the same word) hex digits.

The glyph is designed around a 2 × 2 grid of quarter-panels. The contents of the top-left panel are decided by the first two digits of the hash. The first digit picks the design, and the second decides the rotation. The top-right panel is generally the same as the top-left, possibly rotated a bit or mirrored. There is a small chance that the second panel is completely different to the first, as well. This section takes up three extra digits - the third digit determines if the right-hand panel is a duplicate of the left, and the third and fourth either determine how the panel is modified (if it's a duplicate) or which glyph to to use (if it isn't).

The bottom row is generated in the same way as the top row, giving the whole image. I've added in a subtle glow effect by hacking together a Gaussian blur on the edges (strongly optimized to do as few calculations as possible), and the whole thing is then exported using the ruby chunky_png.

The whole thing is hosted on heroku, so please excuse the horridly slow load times it will experience on occasion. It's reached the point now where it's pretty much feature-complete: I can't think of much else I'd want to add to it as it stands.