Amusement park rides

Anyone who has been on a moder amusement park ride knows that modern amusement park rides are a combination of the real and the virtual, a kind of sleight of hand trickery.

Physical movement on a motion platform is combined with cleverly constructed computer graphics to create the illusion that one is moving great distances, rising to great heights, or falling precipitously. In reality, you are pretty much in the same place, but the combination of visual and proprioceptic sensation tells you otherwise.

I wonder, in the far future, whether virtual reality will get to the point where messing with your visual system and your proprioceptic sense can become individualized and shrunk down. Can we be made to feel as though we are going on vast journeys without ever leaving home?

Magic in the real world

We find Harry Potter charming because his world is non-threatening. We get an easy fix of retro charm, and a bit of magical realist Steampunk, without our universe ever being disturbed in any practical way.

But what if it were all real? What would be our relationship to it then?

Would we feel threatened by it, the way the Dursleys feel threatened by Harry and his world? Or would we embrace it, and collectively harness magic as a force for positive change?

Harry Potter and the future of user interfaces

I read the first Harry Potter book not long after it was first released in the U.S. I wasn’t very far into the book when I had a revelation.

I realized that J.K. Rowling had a really useful take on user interface design. Rather than starting with “what can technology allow us to do”, she was starting with “What do we want our interfaces to do, if they could do anything at all?”

So we were treated to a world where people in newspaper photos could come to life, where you could look at a map to see where somebody was at the moment, where you could magically conjure a ride to take you places, no matter where you happened to be

At the time, these were widely seen as amusing fantasies. Now they are accepted as everyday realities.

I really like this approach to future user interface design. I think we should continue to use it.

Reading group

We have a reading group in our lab. The goal is to present research results by others elsewhere that can inform the work in our own team.

I’m really appreciating the energy of this process. Rather than always looking inward, the reading group helps us to understand that everything we do is part of a larger world of like-minded folks.

Holding a regular reading group makes it easier to see that research, at its core, is not a competition, but a grand cooperative venture. Every researcher everywhere is contributing to the larger goal.

At core, this is a good way of teaching gratitude and generosity. And that’s a very good thing.

The song that makes you cry

Have you ever had such a powerful reaction to a song that it made you cry? I don’t mean tears born of sadness, but tears born of overwhelming emotion.

Each of us may have a secret cache of songs, secret even to ourselves. These are songs we have not heard or even thought about for a long time, perhaps for many years.

But when we finally hear that song, it can act as a kind of time machine, suddenly transporting us back to another time, to an earlier version of our self. And when that happens, the outpouring of emotional feeling can be so powerful that we unexpectedly find ourselves in tears.

This is not a bad thing.

Today’s super power

There are all sorts of super powers in movies and comic books, but most of them are not very practical. So here’s a practical one.

Suppose you could easily measure things. You could just look at a room or a piece of furniture and know exactly how big it is. Or pick up an object and know its exact weight.

It would be like having perfect pitch, but for everything — color, proportion, time, velocity, you name it. To me, that would be a lot more useful than being able to put on a colorful cape and fly through the air.

So that’s my super power for today. If you could make up a new kind of super power, what would you choose?

Objective versus subjective experience

There have been many excellent comments in response to my recent posts about “programming as storytelling”. I am starting to see a pattern form in peoples’ thoughts.

There seems to be a split between “we are getting the information across about the history of a programming process” and “we are conveying the feeling of the experience.” Github, for example, is great at the former, and totally fails at the latter.

There is an inherent drama in coding. Sometimes you have spectacular successes, and other times you experience spectacular fails.

The difference between those two extremes of experience is highly instructive (and can be very entertaining). But that subjective information is rarely conveyed in a useable way.

I’d like to figure out how we can fix that.

Connecting levels of engagement

As I create new course materials for my students this semester, I realize that when I aim to teach computer graphics, I am also aiming to teach other things as well.

Primary among those other things is showing them how to connect the levels of engagement, from the most technical to the most conceptual.

There are people who self-identify as consumers, others as artists or designers, still others as technical artists, and so on, all the way to people who will tell you “I build the circuits that go into your computers”. Between these levels, there tend to be cultural barriers.

Even the language used by different people can make it more difficult to communicate across levels. If you’ve ever tried to talk to a doctor about a medical condition, you might know exactly what I mean.

So I realize that one of the things I try to do is to show students how to transcend those barriers, by making it easy to connect the dots and build working bridges from “artist” or “designer” to “graphics programmer” to “systems programmer”. I want to empower them to move freely between those levels, and to create connections between different ways of thinking that empower all sorts of users and creators.

That isn’t easy to do, but I think it’s worth it.

Programming as storytelling made easy

Yesterday I talked about coding as a narrative. Not just implementing something, but also making that process transparent to others through good storytelling.

An excellent comment on my post mentioned Quilez’s “Painting a Selfie Girl, with Maths” video. Like many people, I have been very inspired by that video.

One problem is that it’s a heroic effort, with a one-off result. Quilez is supremely talented, and was also willing to put in the immense work required to produce this beautiful cultural artifact.

What I am hoping for is lower hanging fruit. How can we empower other programmers to share their stories, without asking them to create an entire system on their own?

I would like to help make “programming as storytelling” into something that is easy to learn and to use. The goal would be not so much “Hey, I managed to do this”, as it would be “Hey, you can do this.”