During winter break, I typically pick up a new technology or programming language — to keep sharp and on the cutting-edge. In the past this has included 3D printing, 3D design, iOS programming, Ruby, and others. This past week, I spent a couple of days getting somewhat proficient at Processing and a couple of days fumbling around with OpenGL. I still have a ways to go on the latter, but am ready to share my first Processing project.
Processing itself is a strange beast. It is a Java-based programming language specifically aimed at graphic designers and artists. It has a lot of built-in functionality for 2D and 3D primitives as well as image file processing. It has interactive functionality, for reading the mouse and keyboard and for writing data files, image files, and frames of video. On the surface, Processing appears to be “Turtle Graphics: The Next Generation,” which actually put me off from learning it until now. Delving into some of the professional examples they spotlight shows that you can actually achieve some interesting results. In fact, one of the websites I follow, Bees & Bombs, posts Processing-produced looping gifs every few days. For example, this one:
It turns out that the things you can do in Processing I can do (and have done) in Ruby, but it takes far fewer lines of code and no 3rd party libraries to do in Processing.
On my list of random projects to eventually get to, I have two different code sheets. These are typically used in The Game style puzzle games: mapping letters to numbers, braille, Morse code, and semaphore. Take a look at the Puzzled Pint sheet as an example. My variants on this were a code sheet as an iPhone lock screen and/or one custom-printed to a cling or hard-shell case to always be available on the back of your phone. Basically: code sheet as iPhone-resolution image and code sheet as a high-resolution photo-printable image. Either is easily accessible without unlocking your phone and finding an app (*ahem* Puzzle Sidekick) to launch.
Obviously, I could draft up something like that in Photoshop or Illustrator. The problem there is that becomes a manual process prone to typos and other errors. I’d feel more confident in the result, as well as feel more free to experiment with visual variations, if I could get the computer to do all the tedious calculations and lookups for me. This is where Processing comes into play.
I now have a Github repository, code_sheet_generator, that includes the code for creating a few different variants of code sheet style and size.
There are three variants:
These come in two different sizes: one optimized for screens and one optimized for uploading to Nuvango, for printing on phone clings and cases. Both the images and the code for generating them can be found at the project: https://github.com/BrianEnigma/code_sheet_generator