CG love song

April 23rd, 2019

Every once in a while I weave my love of computer graphics into my teaching of computer graphics. I mean, it’s always there as subtext. But sometimes I make it the text.

In this week’s class I did that quite literally. You can read about it in my Future Reality Lab blog post.

Earth Day

April 22nd, 2019

Today’s Google Doodle for Earth Day is so positive and upbeat and happy. It’s easy, when looking at something to gosh-darned pretty, to be lulled into forgetting that we are still busily polluting our way to rapid self-extinction.

I don’t think the Earth particularly cares if we poison ourselves out of existence. The planet itself will go on just fine, the way it did after that large extinction event some 65 million years ago.

I am sure that after we manage to make this world uninhabitable for our own species, the Earth will come up with some other wondrous and fascinating species to populate itself with. It always does.

Maybe we need to go back to the very first Earth Day poster in 1970 to help jolt ourselves awake. That’s the one where Walt Kelly summed up the problem rather succinctly: “We have met the enemy and he is us.”

Ability, choice and quantum theory

April 21st, 2019

I was flying back from Pittsburgh this evening when the young man across the aisle from me noticed that I was programming. “What language is that?” he asked.

I explained that it was GLSL, the language used to program shaders that run in GPUs (graphics processing units), like the one in your phone or laptop.

We got to talking, and he explained that he does statistical programming for a financial firm. He told me that he had tried taking computer graphics in college, but had realized that he had no visual sense.

I nodded sympathetically and told him “We choose what we’re good at.”

But then I got to thinking, and realized that what I had said to him could be interpreted in two different ways. One interpretation is the obvious one — when we are good at something, then that’s what we choose to do.

But another interpretation is that we choose to be good at things. More specifically, we put in the time and effort to get really good at something when we enjoy it and are highly motivated.

I suspect both interpretations are true: We choose something because we are good at it because we have chosen it, in an endless hall of mirrors.

Ability and choice always co-exist in perfect quantum superposition.

D&D seder

April 20th, 2019

I spent this weekend at my brother’s house in Pittsburgh. Their family organized a Dungeons and Dragons seder for this evening.

Those of you who have played D&D will know that it all comes down to having a good dungeon master. Fortunately, we had a brilliant dungeon master.

J.D. was highly prepared. He had built an entire interactive narrative around the thrilling story of the escape of the Israelites from bondage in ancient Egypt.

In addition, his delivery of the emerging interactive narrative, as well as his ability to respond to unexpected rolls of the dice, were extraordinary. We all witnessed the classic tale of bondage and libration as though we were experiencing it for the first time.

The best part was that my Mom, in the role of Miriam, was the one who threw the decisive roll of the dice. In the end, she managed to defeat Pharaoh and get us all across the Red Sea and into safety.

You couldn’t ask for a better Passover seder.

Kate Smith

April 19th, 2019

I was delighted to learn, while doing research about Kate Smith, that she was the person who brought Josephine Baker to American Television. In 1951 it was not a foregone conclusion that the incredibly brilliant Baker — who had left America to become a sensation in Europe — would be accepted in the U.S., given the state of American racism.

But Kate Smith cut through all that, inviting Baker onto her popular TV show, thereby helping to bring home one of our great American geniuses. Which sort of makes sense.

I mean, consider that about twenty years earlier Smith had performed — in parallel with the great Paul Robeson — one of the great satirical songs taking down racism. Alas, we now live in an age where the satire of another era is incomprehensible to most people.

These days we may be woke, but we sure aren’t fully awake. What can I say? God bless America.

Beyond my Ken

April 18th, 2019

I wonder how many ways there are to work a play on a famous person’s name into a sentence. Here are some examples:

“Desi wasn’t as famous as Lucy, but he still had a Ball.”

“If Glenn isn’t the greatest Hollywood actress, she is Close.”

“Everything written by the author of The Iliad wasn’t just a hit. It was a Homer.”

“Stephen is not merely our greatest writer of horror, he is King.”

“Lucy ruled the set on Xena, even though she was Lawless.”

“After Shelley left Cheers, it continued as a hit TV show, but not for Long.”

“Nobody can say bad things about Freddy Mercury, but Brian May.”

“Taylor was our fastest rising pop star because she was Swift.”

“Neil may be an aging rock god, but he will always be Young.”

Future coding

April 17th, 2019

There is an issue that may at some point begin to loom large for software developers everywhere: In the future, how will we code our computer programs?

Right now I am typing this on a MacBook keyboard. I find it to be a convenient and comfortable way to enter all sorts of text and data.

When I am walking around, I can still continue to “type” emails and text messages. I just switch to Google’s speech-to-text, which is usually highly reliable if you speak in unaccented American English (as I do).

So for natural language text, going keyboard-less doesn’t seem like it is going to be a show stopper. But coding is a different thing entirely.

There is no good way, in current frameworks, to create a computer program by “speaking” it. Also, coding is a highly non-linear process. Having written something, you tend to go back over it many times. Most computer programs are created by a process of highly iterative editing.

So how are we going to deal with this when we are all wearing those future extended reality glasses? Will we create software through a combination of speech and hand gestures?

Or in the future will we still continue to write our programs using old fashioned QWERTY keyboards? I guess we will find out soon enough. :-)

Our ideas will float in the air between us

April 16th, 2019

Today I was trying to describe to someone a mathematical concept that I find to be particularly beautiful. I was unable to describe it just with words, so eventually I went to the next room to grab my computer, so I could show some visuals on the screen.

The whole transaction seemed vaguely dissatisfying. I found myself wishing for that day in the near future when I could just gesture in the air to bring up the salient images.

Why shouldn’t we be able to include beautiful visual ideas and geometric forms in our conversational speech? If we can visualize these things in our heads, we should be able to include them in our discussions with each other.

Fortunately, the time is drawing ever nearer when this capability will be an everyday reality. I look forward to a day when children wonder how people ever managed to get along without it.

Notre Dame

April 15th, 2019

I am just devastated by today’s fire in the Île de la Cité in Paris. Notre Dame has meant so much to so many people.

At each significant time in my own life, it has been an important touchstone, a place to visit in the world, a place of serenity and permanence.

Notre Dame has been one of those monuments to beauty and graciousness that one simply takes for granted, much as one takes for granted the stars within the night sky.

I am hopeful that it can be rebuilt, although I understand what a massive undertaking that would be. After all, what is a monument like Notre Dame, created over the course of centuries, if not a symbol of hope?

Keep looking at the mountaintop

April 14th, 2019

The last few weeks I’ve been implementing an improved version of my noise function. I knew from the start what the final result should be, but I still needed to actually implement the algorithm in a GPU shader.

I made a lot of false starts, trying one approach to the implementation after another, and kept failing. Finally yesterday I stumbled upon the key insight I needed, and managed to get it all working properly.

The reason I stuck with it, despite all my failed attempts, was that my strategy was to start from the answer. I already knew where I wanted to go, I just needed to figure out how to get there.

I think a lot of research is like that. You see the mountaintop in the distance, and keep your eyes firmly fixed on it. Then you try lots of different paths to get there, learning a little bit from each successive failed attempt.

Eventually you get to the mountaintop, because you always knew it was there. After all, you never took your eyes off of it.