Sigil Generator

For my final project for Computational Approaches to Typography, I wanted to make a sigil#Chaos_magic) generator. In chaos magic, a postmodernist, D.I.Y. system of occult practices dating back to the 1970s, a sigil is a magically charged symbol that helps the magician realize a desire or intent.

Why am I talking about chaos magic in a class on typography? Well, it turns out that the most common process for creating sigils involves layering and deconstructing letters.

Here’s a short passage from Grant Morrison’s Pop Magic that explains the technique:

“The sigil takes a desire or intent - let’s say ‘IT IS MY DESIRE TO BE A GREAT ACTOR’ (you can, of course, put any desire you want in there) and folds it down, creating a highly charged symbol. The desire is then forgotten. Only the symbol remains and can then be charged to full potency when the magician chooses.

First, remove the vowels and the repeating letters to leave a string of consonants - TSMYDRBGC.

Now start squashing the string down, throwing out or combining lines and playing with the letters until only an appropriately witchy-looking glyph is left.”

When I first read this, it struck me that this process could be done algorithmically without necessarily invalidating its magical purpose. Once a sigil is made, the magician needs to forget its associated intent before it can be properly charged with power, which might actually be a little easier if the sigil wasn’t made by hand.

In fact, someone else already had this exact idea and made But, as far as I can tell, that generator doesn’t actually use letter glyphs from a font in its sigils.

So, I wanted to try generating sigils by layering letter glyphs from opentype.js and then removing or combining segments of each glyph’s path until I got something that looked sigil-esque.

To be honest, I didn’t have enough time to figure out a good algorithm for this. I got as far as layering the glyphs on top of each other and playing with randomly removing segments from the glyph paths, using Rune.js and a approach adapted from a gist on splitting SVG paths into pieces.

The results…don’t look great. I think with a few more days to play around with this project, I could get something that actually looks like a sigil, but I just came up with the idea a bit too late. I think there’s some potential here, and I’d like to keep working on this after the semester’s over.

Source Code