Ben Crowder

Blog: #plotdevice

20 posts :: tag feed :: about the blog :: archive

Thai consonants chart

I’ve wanted to put the Thai alphabet up on our wall so my kids can start learning it, and I’ve learned a lot about design since I made the Thai script card (which was really just a touchup on an existing card design I received in the MTC), so I made a new Thai consonants chart:


This one adds the consonant class (low/medium/high) and colors the initial consonant transliteration so it’s clearer.

I made it in PlotDevice, using a setup very similar to the Latin conjugation charts — YAML data file with a script that turns it into a PDF.

I’m planning to make two companion charts later — one for vowels and one for the miscellaneous marks, numerals, tones, etc.

Reply via email or via office hours

Home teaching slips

I’m currently serving as elders quorum president in my ward, which means home teaching changes every couple months or so. I’ve been bad about printing out slips because it took too long to make them (I don’t really like the default MLS style, so I was doing it by hand in Excel), but I finally buckled down and wrote a PlotDevice script that takes the assignments in easy-to-write YAML and outputs PDFs, one page per file (because I haven’t been able to get it to output to just a single PDF).

Here’s what it looks like, with dummy data:


The code is on GitHub. It’s somewhat messy right now, but it works.

Reply via email or via office hours

Egyptian uniliterals chart

I’ve missed doing language charts, so I put together one of the Egyptian uniliterals:


To go along with it, I’ve also made some worksheets, intended to be printed and filled out:


The graded worksheet is a new idea I had, to gradually introduce new characters over the course of the worksheet. Both my wife and I worked through it and by the end we both felt fairly confident in our newfound knowledge of the uniliterals.

Oh, and I made all of these in PlotDevice. It’s quite handy, especially for the worksheets where I’m generating the contents programmatically.

Reply via email or via office hours

More PlotDevice experiments

I’ve been playing around with PlotDevice more, and yes, it is awesome. For example, I can quite easily create something like my Latin declension charts programmatically:


As you can see, I’m taking a simple list of words with brackets around the endings and displaying it, styling the endings using PlotDevice’s stylesheet functionality (lines 11 and 15–16). Super easy.

It’s also great for trying out design ideas that would take much longer to prototype in Illustrator, like fan charts for genealogical purposes:


Using that code, which took me less than twenty minutes to write, I can easily try out as many sizing/spacing variations as I want, and the output is high-quality PDF. This is slick.

So yes, I will be using this a lot more lately.

Reply via email or via office hours


I recently came across PlotDevice, a Python-based graphics environment for Mac, similar to Processing and NodeBox. I don’t know why I didn’t think of this before with Processing, but it dawned on me that PlotDevice would be perfect for prototyping some of the design experiments I do. For example, it took around fifteen minutes to write some quick code to draw genealogy sparklines (code):


For this sample, I have a draw_sparkline function that takes an object with a name, birth/death dates, list of marriages, and list of children, and it handles the drawing. Much easier than copying and pasting and tweaking in Illustrator or InDesign.

PlotDevice is vector-based (rather than raster) and exports to PDF, which means output is high quality and not limited to pixel resolution (e.g., I can create very fine hairlines).

I’m hooked. The only semi-important downside for me right now is that it doesn’t have OpenType features or tracking/kerning controls for text, but it looks like both are coming soon.

For fun, a watersun emblem (code), based off some code in the PlotDevice geometry tutorial:


Thanks to Tod Robbins for the heads up about PlotDevice.

Reply via email or via office hours