New frontiers of artificial intelligence

In our lab we’ve recently been working with the Lenovo Mirage Solo. It’s not officially out yet, but it’s available to play with if you have a research lab and Google likes you.

Unlike the GearVR or Daydream or Oculus Go, this is a true room-scale VR experience. When you move your head, it correctly adjusts your position in space.

Yet unlike the Vive or Oculus Rift, it is totally self-contained. The Mirage Solo uses the same sort of inside-out tracking technology as Google’s ARCore. Which is not surprising, since Google is the driving force behind this extremely cool headset.

We’ve been playing with it for several weeks now, building our VR projects to it, showing it to various and sundry visitors. And it has been working without a hitch — until today.

This morning we had a visit from a very high level executive at Facebook Oculus. Which, as you may know, is one of Google’s arch-rivals in the VR space.

One of our Ph.D. students trotted out our Mirage Solo, planning to use this nifty device to show our awesome VR content. And the headset didn’t work. It just flat out refused to function.

For the very first time since we got it, the Solo failed us. So now I am wondering.

Perhaps these fancy futuristic virtual reality devices possess a kind of advanced AI: They detect when you are about to show your cool demo to somebody from a rival company, and so they choose that exact moment to break down.

As our world becomes populated by ever more technologically advanced devices, this kind of strategically competitive dysfunction may very well be the new frontier of artificial intelligence. Or maybe I am overthinking this. 😉

Go ogling

This weekend I bought the Oculus Go. So did a number of my friends and colleagues.

In one sense it’s not really new. After all, I first started using their GearVR in September 2015, and in theory this is the same sort of experience: A portable 360o VR device with high quality direction tracking.

But you know what they say about theory and practice: They are the same in theory, but different in practice.

The major difference is that the Oculus Go is designed from the ground up to be a VR device, rather than an add-on to your phone. Out of the box it just works — no need to stick a phone in it.

The visual design of the device is great, the quality and resolution of the VR image is spectacular, and the user interface is extremely well thought out. Even the hand-held controller is awesome. And for around $200 total this thing is very inexpensive for what it delivers.

Although I thought it needed a little character, so I stuck on some Googly Eyes. For good measure I also added a nose:

I feel my Oculus Go now expresses much more inherent personality. Although from certain angles it seems to look a little sad.

Maybe it’s just confused. After all, should something sold by Facebook really be wearing something called Googly Eyes?

Hmm…

Group blog

Today at our weekly Future Reality Lab meeting I proposed that we all start a group blog. The idea is that we do a round-robin style of post.

On any given day, one person is responsible for putting up a single post, which can be on any topic related to what we’re doing at the lab. Then the next day another person posts, and so on, in a fixed cyclical order.

This arrangement gives everyone an equal opportunity to contribute. Since there are about a dozen people in our group, everybody will post about once every two weeks.

If they wish, people can choose to spend a lot of time on a post, perhaps preparing materials or demo videos days earlier. Or they can just wing it, and jot down their impression of things on that particular day.

The goal is to get a steady rhythm going of telling the world what we’re up to, without requiring any one person in our lab to do too much of the work. Also, of course, the hope is to get a nice diversity of viewpoints.

It was easy to convince our lab’s denizens that this would not be too much work. After all, they know someone who has been blogging every single day for more than ten years, all by himself. 🙂

Rubber bands and chewing gum and fractal programming

I am currently working on a fairly extensive procedural animation system. That means there are a lot of different pieces which need to work together.

My procedurally animated characters need to step properly when walking, to correctly turn and look at things, sit down, stand up, reach for objects, pick those objects up and put them down again. All of which needs to happen in response to simple user directives.

The characters also need to be biomechanically reasonable. For example, when they stand and walk, their weight needs to be centered over their feet. And while all of that is going on, the characters should properly convey subtleties of mood, personality and intentionality through their shifting facial expressions and body language.

Like I said, lots of pieces. When I implemented my early prototype, I put in simple placeholders for some of those pieces — the algorithmic equivalent of rubber bands and chewing gum — and that was ok.

But now that the system is getting more sophisticated and I am demanding more of it, some of those simple placeholders are holding everything back. So in various parts of the system I need replace three or four lines of code that sort of worked by an entire carefully implemented subsystem which might take a hundred lines of code or more.

The replacement part serves the same purpose as the original. It just does it better and a lot more carefully.

When I see this sort of thing, it makes me think of any mature software system as a kind of fractal. At the most basic level software systems are pretty simple.

But then when you look further, you see that what seemed like a very simple thing (for example, in my case, how a character first places its foot when it starts to walk), might actually contain lots of complexity.

You don’t need to understand all the complexity to understand the system, and certainly not to use it. But without it being there under the hood, you just end up with rubber bands and chewing gum — a system that seems to work ok at first, but eventually just falls apart.

Working Saturday

Today is a Saturday, a day when many people take the day off, smell the flowers, chill out a bit. Yet today has been one of the most work-intensive days in our lab in recent memory.

I have been here all day working on procedural animation for our big forthcoming SIGGRAPH production. Meanwhile our students were working on a motion capture shoot for the same production.

Other students have been porting our VR experiences to various consumer level VR headsets. Still other students have been spending the day building virtual sets and animating characters.

I’m starting to think that being in a state of productivity is highly contagious. Of course, this is only a theory. 🙂

May the fourth

I really like the fact that there is this geeky little phrase that people say to each other on this day of the year. This morning, people I know greeted each other by saying “May the fourth be with you.”

It’s really stupid, but everyone smiles and feels like they’ve gone through a ritual of tribal bonding. Sort of, I guess, like being in the A.V. Club in Hawkins Indiana.

Two years ago today, some friends and I went to an “Escape the Room” experience in Stuttgart Germany. The operator, who clearly spoke English only as a second language, greeted us with a hearty “May the Fourth be with you!”

I love that we could so quickly bond with somebody from a different country, and even a different language. What I love even more is that it was done through a ritual that is so wonderfully, happily stupid.

Inconvenient truth

I finally got around to watching Michelle Wolf’s stand-up routine at the Correspondent’s Dinner. I had been wondering what she might have said to prompt the group that hired her to issue an apology for her performance.

What I found was interesting, because what she said was so unexpected. After all, we are only 16 months in to this national mess, and our Press core has already been trained to speak in careful euphemisms.

As a reporter covering our nation’s politics, you are not actually allowed to notice that the job of Sarah Huckabee Sanders is to cover for a boss who is a serial liar, that our president is a pussy grabbing (literally!) racist misogynist and unapologetically xenophobic bully.

If, as a journalist, you point out the plain facts that we all witness every day, you can get banned from the White House. You can simply be cut out of the loop, and denied the basic access you need to do your job at all.

But Michelle Wolf is a comedian, which means her job is, quite literally, to truthfully point out to us the absurdity of these strange days. That is her mandate, however nutty said truth may be — and right now, it is pretty darned nutty.

So mostly I was startled, at a time when so many journalists are in a defensive crouch and practically cowering in fear, simply to hear somebody point out clearly and unambiguously to a room full of journalists just how crazy things have gotten on their watch.

Of course she was promptly denounced, and her words were twisted and misconstrued to suggest “hidden meanings” at odds with what she actually said. That’s how you shut people up in this day and age when they have the effrontery to speak truth to power.

Fortunately, power doesn’t always succeed in shutting up inconvenient truth. I suppose we should be grateful for little things.

Reverse engineering acronyms

I was thinking about yesterday’s post and wondering just how difficult it is to reverse engineer an acronym. For example, even knowing the general context, could you actually look at the acronym NOW and figure out that it stands for “National Organization of Women?” Or is the search space simply too large?

It’s certainly easy enough to construct acronyms:

Any Clever Rubric Of Neologisms You Might Suggest,
Awfully Corny, Rather Often Nutty (Yes, Maybe Silly),
Alas Clearly Representing Odd, Not Yet Mature Sensibilities
And Casual Rituals Of Nerdy Young Masochistic Semanticians.

But going the other way is a lot trickier. Even if you already knew the context in which they were written, would you be able to look at “AWOL” or “OMG” or “KISS” and figure out their individual component words?

IDK. OK, TTYL. BTW, HAGN!

WFAFBOWB

I’ve been thinking about James Shaw Jr., the brave young man in the Tennessee Waffle House who wrestled an AR-15 from a deranged killer who was in the process of shooting everyone in sight. What Shaw did was such a beautiful act of heroism.

But then I can’t help but also think about the recent incident in a Starbucks, where two businessmen were arrested and hauled away, solely for the crime of WFAFBOWB. What if Shaw had been arrested for the same crime?

The news reports say that at the time of the shooting, he was having breakfast with a friend. But suppose that friend had been late, and Shaw had decided not to order right away, but rather to wait for his friend before ordering, so the two of them could enjoy their breakfast together?

He would then, of course, have been guilty of WFAFBOWB. The next thing you know, the management would have called the cops to haul him off to jail for his crime, to be duly arrested and fingerprinted and locked up for the next nine hours or so.

But then when the deranged killer burst into the Waffle House with that AR-15, every last person in the joint would have been brutally shot to death, including the manager who had helpfully called the cops. It would have been absolute carnage.

I am wondering now if I need to spell out what WFAFBOWB stands for.