No Stylesheet

I see that anything not on the root page of the site doesn’t use the stylesheet anymore. Or I guess that’s what’s up. Oh well, I guess I have to go figure that out now.

Color Compass

In addition to posting my more developed ideas in the form of (highly informal) research proposals, I’m working on documenting my completed projects as though they were (heavily abbreviated) scholarly papers. I find that it helps me keep focus. And it doesn’t hurt that I dream of returning to academia at some point.

So I’ll start with this project, my Color Compass.

Chances are I’ll update this post with more detail. But I’d also like to prepare a build log or detailed instructions so that you can make your own.


Many animals and even plants exhibit magnetoception, an ability to sense magnetic fields, though it has been reasonably well established experimentally that humans don’t. It is believed that, in at least some cases, magnetoception manifests within the organism’s visual field. If magnetoception is in fact visual in nature, then it should be easy enough to augment the human visual sense with the capability of perceiving magnetism as well. Without building a whole mixed reality rig to overlay a grid or provide a heads-up display on the visual field Terminator style, I propose to provide that sense by simply presenting the user a color that corresponds to compass heading.


The KidRobot Munny is a do-it-yourself vinyl figurine for making one of a kind art toys. Most of the time, people color them with markers or paint. Sometimes they augment the figures with polymer clay, building ears, tails, and weapons. But most of these customizations have been along the same lines—making a figurine that sits on a shelf—impressive though they may be.

KidRobot Munny

But, as an engineer, I thought “how can I make these interactive?”

Meanwhile, I read that some scientists believe that pigeons may see magnetic fields, possibly overlaid in their visual field. One theory is that a light-sensitive protein, called cryptochrome, found in the retinas of many animals is actually responsive to magnetic fields. Interestingly, it takes extremely strong magnetic fields to affect change in a “normal” chemical reaction (fields much stronger than that of the Earth). However, there is the case of something called a radical pair wherein the fates of two electrons are entangled (yes, we’re talking about quantum mechanics here), resulting in magnetic field-dependent outcomes of reactions with these radical pairs.

That lead to some daydreaming on my part about how that would work for a human. In the case of birds, though no one has been able to see it for themselves yet, we have an idea of how the magnetic field might look.

Lastly, at more or less the same time, it occurred to me that hue in the HSL (hue, saturation, and level) color model, represented as an angle, is analogous to compass heading which is also represented as an angle. Why not display heading as a color on the color wheel?

On a more conceptual level, I’ve been interested for some time in using our existing senses at the edge of conscious awareness such that they provide a new form sensory perception. In other words, though the device described in this paper uses one’s sense of sight, the user really gets an extra sense. The important part is that when we use an existing sense but become unaware of it (that is, at the edge of conscious awareness or beyond), we basically earn a new sense. In a way, this is not really a new concept—we’ve grown used to watches providing us with a more precise sense of time than we have biologically. As technology makes seamless human-machine interface easier and less expensive, we can expect these kinds of extrasensory perception to become more like senses and less like carrying a gadget around and looking at it from time to time.


Those of us that use computers for drawing likely know that colors can be represented in quite a few ways from a mix of red, green, and blue to an angle around the color wheel. The latter, often referred to as HSV (hue, saturation, and value) or HSL (hue, saturation, and luminance or level) represents colors as polar coordinates in a three-dimensional space. But if you just look at it in one plane, from above, you see the same old color wheel from elementary school art class, with red on top, or zero degrees; green on the lower right, or 120 degrees; blue on the lower left, or 240 degrees; and blending back to red again on top at 360 degrees. (For the pickier, more technically minded of you out there, you might know that the artists’ color wheel and the HSV color wheel are different, but for the purposes of this project those differences are small enough as to be irrelevant.)

Now, if you’ve ever watched a movie where pilots or ship captains bark out headings, you will have noted that they issue commands in degrees around the compass rose, where zero degrees is north, ninety degrees is east, 180 degrees is south, and so on.

Why not, then, make a color compass? If you’ve been maintaining mental images of the last two paragraphs, and can lay them on top of each other, you’ll see that red is north, yellow-green is east, aqua is south, indigo is west, easing through violet as we get back to north.

Note that in mathematics and engineering, angles are usually represented as increasing in a counterclockwise direction from the 3:00 position, while compass headings increase clockwise from north. In any case, if you line them up and flip them around, this is what you get.

From that point it was almost trivial getting the compass heading and converting it to an RGB combination to send to the LED. You can check out the code at the project’s GitHub repository and follow along with the explanation.

Color Compass illuminated


I have not provided this device to anyone other than myself to use for an extended period of time. So I do not have a lot of data on how people end up using it. That said, this is only a proof-of-concept; hence the cute appearance. An experimental setup would place the “guts” of a similar device in a wearable of some type, with the indication just visible within the user’s field of view.

Future Work

I’ve found that simply varying red, green, and blue proportionally around the compass rose does not result in a perceptually even range of colors. It seems that we see some colors as being further apart from or closer to each other than they would appear to be if viewed as simply a recipe of red, green, and blue proportions.

There is also the critical concept of gamma, which relates the perceived brightness of a light source to the actual quantity of light emitted (or more accurately landing on your retina). This is not yet implemented in the Color Compass. Because I don’t have a nice mathematics renderer installed on this blog, here is how the relationship might look in a C-like language:

brightness = pow(luminance, (1/gamma));

A typical value for gamma is two, which is handy for quick calculations because pow(luminance, 1/2) is sqrt(luminance).

“Quick” is a relative term, of course, and your microcontroller might not be able to calculate powers and roots in real time, in which case you would simply use a lookup table. (Lookup tables are almost always the right answer for low power embedded applications.) I should also note that working with gamma is a little different when we’re talking about full RGB instead of just the brightness of a single light source. Again, a lookup table is ultimately the way to go in most cases, and can be fine-tuned on a computer and copied and pasted into an embedded program quickly.

A peek inside the Color Compass

Another option might be to slide the hue of the user’s entire field-of-view in the direction of the color associated with the heading; to provide a color cast over the image. We know that people can handle this sort of thing without losing their ability to see what color something actually is. For example, we deal with color casts from incident light while maintaining a pretty good idea what color things actually are (unless, presumably, it’s a black and blue—not white and gold—striped dress). The user could even turn her head a little (presumably instinctively) to see how much of the color seen is due to the direction, using that to instinctively average out the color cast.


Using color to convey heading is not really useful in terms of communicating orientation precisely. But when used in conjunction with all the other senses, at a minimum it can make our sense of direction that much better.

So, to bring it back to the little fella in the pictures, the cute vinyl toy is not exactly at the edge of conscious awareness and hence doesn’t really work to augment the senses as I’ve described above. It’s really just a proof of concept (and why not throw in a bit of whimsy to make it interesting). But, imagine if the RGB LED could sit just outside your field of vision, casting a faint glow. If tuned right, it’s not hard to see that glow falling below your threshold of conscious awareness while still providing you with valuable information. That is the future of human-machine interface.

One of my Bridges

Welp, I suppose I should be a little more proud of what I do on the nine-to-five in addition to the six-to-eleven. So check out this video:

No, I’m not a drone pilot. I designed the electrical and control system for that bridge. It’s a pretty typical project, of which we do several a year. (Well, this particular one is not entirely typical because most of our bridges are bascules—seesaw types—instead of swings as you see here. But close enough.)

Analog TV Digital Picture Frame

TV on with Picture of Structure

I’ve always been interested in new technology that could have existed years ago. For example, the household TV could have been used since at least the 1980s to display family pictures. Imagine a service that takes your photos, scans them, and sends you back a VHS tape to play over and over again.

Closeup of Screen

I don’t recall ever seeing such a service, though I was too young to have been in the market for it anyway. But that idea really makes the most sense in the context of the modern day, where we can buy digital picture frames on impulse at the drug store.

Closeup of Dials

And in that context the idea of using an analog TV as a picture frame is ironic. Or amusing. Humor is a big factor in many of my projects. So fast forward to now and, partly as a proof of concept and partly just to amuse myself, I built this:

Ahh, gotta love how it warms up like that before you see the snow. And snow! Analog noise seems so nice (visually and aurally) when compared to today’s digital glitches. I wonder if in a few years we will look back longingly at digital glitches.

Anyway, I made this particular implementation around a readily available single board computer about the size of a credit card, the Raspberry Pi, and a few other odds and ends to tie it all together. The system wirelessly downloads new photos from an album on my (or any) Flickr account and displays them on the screen in a random order.

Closeup of Screen and Knobs

You might have noticed that pictures of the actual device are conspicuously absent. I threw the thing together pretty quickly, but I really need to document the build and I hope to update this post (or make another) soon. In any case, the business end resides in a bundle about the size of two packs of playing cards, along with another bundle of wall-wart power supplies, strapped together along the power cable. In a future implementation, such as for a gallery setting, I‘ll place the entire assemblage directly inside the TV. I expect to have to remove the individual components from their enclosures and wire them directly together, wrapping them in insulating tape or potting them in epoxy to let them sit safely among the high voltage components in the TV.

TV Off


A friend of mine is about to open a candy store and I offered to take some pictures for marketing and whatnot. So to practice and to give him an idea of what I have in mind, I took a few pictures and made this:

Lemonhead Picture

I plan to make some adjustments in a final version, including redoing my lighting scheme to make sharper (but smaller) shadows. I’ll obviously use a tripod for the “real” version as well, to get a little more sharpness overall. I’ll also be more precise with the hyperfocal distance so I can get exactly what I want in focus. Switching to a more telephoto lens will also likely help if the proportions work out otherwise. In a pinch I might have to do some focus stacking, but I’m not a fan of too much post-processing so we’ll see about that.

By the way, I used Bamboo Paper on my tablet for the lettering. Bamboo Paper is by far my favorite drawing app, at least on the Surface with the Surface Pen, because of the feel. Everyone should use Bamboo Paper’s technology for inking in their apps.