New lab

Today we moved into our new lab, a move that have have long been planning. This new lab is much larger and swankier than our old lab.

As I speak, industrious Ph.D. students are busily setting up the Optitrack motion tracking system, sorting through boxes, putting equipment into cabinets. My new office is still filled with boxes.

It feels like the dawn of a new era for our work. For the first time we have a dedicated space to conduct our research, rather than needing to rely on shared space.

The difference is that when you share a VR research space with classes and meetings by other groups, you are always tearing down your experiments and needing to set them up again. In the new space, we will have the stability to run longer term experiments.

It is daunting to gaze upon all of the boxes in my office, filled mostly with books. It will probably take me a full day to get myself sorted. Not that I am complaining. 🙂

Ray tracing breakdown

I am currently introducing the ray tracing rendering technique to my computer graphics class. I figured the “breakdown” approach that I’ve been describing here might be helpful.

So today in class I implemented for them the beginnings of a ray tracer. I just stood up in front of the class and implemented a ray tracer by doing live coding in a fragment shader.

My coding during the class was more or less improvised. I started with something very simple, and then built up the code bit by bit until I had the basic workings of a simple ray tracer.

After the class I thought over the sequence of events — what I had done first, then next, etc. And I converted that train of thought into a breakdown sequence, using the same framework that I had already built for the bubble breakdown I posted here recently.

Along the way I added a few improvements. For one thing, now when you are doing live coding, you get much better feedback along the way.

In particular, if you type something that stops the code from running, the system now gives you an error message, and highlights the line where the error happened. I’ve also gone back and added these same improvements to the bubble breakdown.

This approach is turning out to be a really useful way to teach people, while also giving them a chance to learn and explore for themselves, always at their own pace.

You can try the intro to raytracing breakdown here.

Holocaust Remembrance Day

In his speech on Holocaust Remembrance Day, President Trump surprised many by not mentioning Jews. As you may know, “The Holocaust” is a phrase usually used to describe the systematic effort by the Nazis to exterminate all Jews. Of course many others were also killed by the Nazis, but only Jews were targeted for total “racial annihilation”, through a systematic and highly organized process of extermination in which millions of Jewish men, women and children were transported in cattle cars to special camps where they were herded en masse into gas chambers and efficiently put to death by Zyklon B gas. When asked about the ommission, Whitehouse spokeswoman Hope Hicks said “We are an incredibly inclusive group.”

In his speech on Memorial Day, President Trump surprised many by not mentioning the people who died while serving in our country’s armed forces. However he did make a very effective pitch for the Trump International Hotel Washington (room rates and convention discounts available on request). When asked about the ommission, Whitehouse spokeswoman Hope Hicks said “We are an incredibly inclusive group.”

In his speech on Martin Luther King Day, President Trump surprised many by not mentioning black Americans, the legacy of slavery, civil rights, or, for that matter, Martin Luther King. When asked about the ommission, Whitehouse spokeswoman Hope Hicks said “We are an incredibly inclusive group.”

In his speech on Arbor Day, President Trump surprised many by not mentioning trees. When asked about the ommission, Whitehouse spokeswoman Hope Hicks said “We are an incredibly inclusive group.”

Description / Experimentation / Navigation

After having implemented my “bubble breakdown”, I started studying its component parts. And I discerned a structure that I hadn’t really thought about while I was making it.

The web page has six parts. Two of the parts are for description, two are for experimentation, and two are for navigation.

I am thinking that this is a general blueprint for how to communicate knowledge: You tell people something, you give them a chance to play with that knowledge, and you also give them a way to wander around within the connected space of learnable things.

Wikipedia does two of those three things, the first and the third: It tells you stuff, and it provides ways for you to navigate around in the space of topics. But it doesn’t give you any way to gain insight by actively playing around with a topic.

As I think about what a future mixed reality version of Wikipedia might be like, I’m thinking that there is an opportunity to upgrade to a Description / Experimentation / Navigation paradigm. Whatever you look at in the world around you can become an opportunity for learning and exploration.

There are undoubtedly all sorts of tricky user interface problems to solve before that future version of Wikipedia becomes a practical reality. But I suspect those are going to be really fun problems to work on. 🙂

There are heroes

There are heroes in the world. I’m not talking about the make-believe kind of hero you see in a Hollywood movie, but real flesh and blood heroes.

As you may have noticed, we’ve been faced with a puzzling situation in the U.S. this past week, one that has created all sorts of confusion. Our incoming administration has labeled anybody from certain countries as de facto enemies of the United States, and has banned those people from entering the country.

And yet, there are actual heroes in the world. People who are willing to lay their very lives on the line for the ideal of America: For a society that promotes freedom, democracy, respect for others, for the dignity of individuals.

Some of these heroes, for example, are Iraqi pilots, translators and others who have worked closely with the U.S. government for years, generally at considerable risk to their own lives and families. All of them have been caught in the sweep of this executive order.

I find myself pondering whether Donald Trump actually knows what a hero is. He seems to have little experience dealing with people who have the courage to put their very lives on the line for a higher ideal. He may not actually be able to understand the concept of that kind of moral fiber.

Which means we are faced with an odd situation: The President of the United States, apparently through sheer ignorance or intellectual laziness, is attacking genuine heroes who have put their lives on the line for our nation. But willful ignorance is not a sufficient defense against acts of atrocity.

At what point is a line crossed here? At what point will our own patriotism, our sense of duty to our nation, require us to acknowledge that the President of the United States is committing acts of treason against his own country?

Bubble breakdown

I recently mentioned that I was interested in creating a kind of code narrative — a progression of steps the shows how to create things like that procedural bubble I posted.

In the movie business, there is a term for showing, step by step, how a special effects scene is built up. It’s called a scene breakdown.

As it happens, a good friend was really interested in learning how the different parts of the procedural bubble work together. Inspired by that request, I made it a priority to create such a breakdown.

Mostly this involved wrapping a bunch of HTML5 code around the core program to create a framework for telling such a step-by-step story. Then of course telling the story.

So now I have something workable: Perhaps the world’s first bubble breakdown.

Puzzle orgy

Each week I look forward to Saturday morning, because it’s my puzzle orgy time. That’s because when you get the NY Times home delivered, they always include the Sunday Magazine section with your Saturday paper.

Which means there are lots and lots of puzzles to do. So when I wake up bright and early on Saturday mornings, I make a pot of fresh coffee, open the paper, and dive right in.

First I do the Saturday 4×4 KenKen, then the 6×6 KenKen. Then the Saturday crossword puzzle, which is absolutely my favorite puzzle in the world.

Each week I try to do it as fast as I can, and I am happy when I can get down below 20 minutes. This week my time was 19 minutes, so it is a happy week. 🙂

Then I move on the Magazine section. First the 5×5 KenKen, then the 7×7 KenKen (always a challenge).

Then the weird puzzles on the second puzzle page of the Magazine, which are always changing. This week it was a word puzzle called “Projectors”, a number puzzle called “Capsules”, and the ever delightful “Puns and Anagrams.”

After I get through all those, I do the large Sunday Crossword puzzle. It’s much easier than the Saturday puzzle, but it’s big and it always has a trick theme, so it’s a nice way to spend some time in a puzzling frame of mind.

By 9am I’m generally done, and ready to start my day. And I am in a very good mood!

Psychological profile

I recently read the psychological profile of a well known political figure, prepared by Walter Langer for the United States Office of Strategic Services. According to his report, here are the five primary rules of behavior exhibited by the subject:

  • Never allow the public to cool off;
  • Never admit a fault or wrong;
  • Never concede that there may be some good in your enemy;
  • Never leave room for alternatives;
  • Never accept blame.

There are some questions I’d like to ask Mr. Langer about his profile. Alas that might be difficult, since he wrote it about seventy three years ago.

Kickstarter

This evening somebody asked me, if I could create a Kickstarter for any purpose, what purpose would I choose.

I said that I would really like to create a Kickstarter to support creating things that start when you kick them.

I am now wondering whether I somehow missed the point.