Impressions of Dan Carlin’s “War Remains”

This afternoon, I went to visit War Remains, Dan Carlin’s VR Theater experience focused on World War I. Dan is, of course, the voice of the immensely popular podcast “Hardcore History,” in which he recounts historical events with unparalleled approachability and empathy. While he has previously shared remarkable accounts of “The War to End All Wars” in his podcast, his latest endeavor brings parts of that era to life in a more visceral way than he’s ever managed before.

Carlin narrates the whole experience, which starts with the viewer being teleported to a gondola hanging beneath an observation balloon while aircraft wheel around and anti-aircraft fire erupts. In addition to the immersive audio and video one expects with VR, the viewer is also treated to a breeze whipping by while the floor wobbles beneath.

From there, we move to a trench on the front lines, where you watch a group of soldiers succumb to the “meat grinder” of incoming fire. We take shelter in a bunker, where we can see (and feel) medical bags, a morse radio, and various other bits of paraphernalia while shells burst around, shaking the floor and the walls. Passing through a door and pushing the dangling hand of a corpse aside yields another segment in the trenches, rounding out the experience while tanks roll past and shells crash around. Finally, poison gas begins to fill the trench and the scene fades, yielding to Carlin’s meditation on the modern-day world as a product of a battle-scarred generation while stylized bombs descend in slow motion all around.

From a storytelling perspective, the experience is remarkable. VR is often called an “empathy engine,” and this was one of the most effective uses of that capacity I have seen. The physical augmentation — wobbly floors, props, shuddering walls, the feel of the breeze playing across your face — engages the whole brain in a way that merely audio/visual VR cannot. And recruitment posters along with the scale and eye chart one would find in a recruitment office all get visitors into the appropriate mindset before they even enter VR.

My only complaint was that the experience felt about half the length I would have liked, both from a storytelling perspective and from a “getting your $45 worth” point of view. There was little narrative arc beyond “Holy moley, World War I was scary.” But given that it is genuinely pushing the boundaries of digitally augmented media and puts its brief message across with unparalleled force, the brevity is forgivable.

One change that would have made the experience even more immersive would have been meaningful interaction with the scenes. In each portion of the experience, the viewer is merely an observer: not quite a disembodied ghost, but not able to affect the scene in any meaningful way. Imagine adding a tracked gun that would allow the visitor to engage some of the advancing infantry lines, or a grenade being tossed into the trench that you would have to pick up and throw back before it detonates. VR allows for rich, non-linear storytelling, so having the experience be essentially “on rails” is something of a missed opportunity.

From a technical standpoint, the experience was fascinating. While the whole physical space was a square about 25 feet on a side, the creators use that real estate very effectively; the only time one feels particularly constrained is in the bunker, where it’s absolutely appropriate. The experience relied on a Vive headset with a PC in a satchel slung over the visitor’s shoulder and the 2.0 version of the Vive Trackers. There were no controllers in use — all of the interactions were done physically with props that were secured in place at various places around the set.

If you’re a fan of VR, Dan Carlin, or World War I, I would highly recommend the experience as a unique way to feel what it was like to fight in The Great War. War Remains is available for viewing in downtown Austin through the end of the month. Buy tickets here: https://www.warremains.com

New Chapter at Banjo Digital

I’m happy to share the news that I’m joining up with Banjo Digital, an AR/VR firm in Austin that creates experiences for simulation/training, education, product design, and marketing. I’ll be serving as Technical Director, and will be starting next week. I’m excited about the move and look forward to doing great work together there!

Getting Unity and Arduino Working Together

Yesterday I set myself a goal of getting Unity talking to Arduino, the microcontroller that’s hugely popular in the maker community. I was interested in doing so because several of our VR projects have been site-specific installations that could benefit from a large LED scoreboard, physical actuators (rumble motors, heat lamps, fans, etc.) to heighten the experience, or just a “This person flailing his arms around can’t see you; please stand back!” warning light.

Fortunately, given than both Unity and Arduino are very popular, this path is fairly well-trodden already. The most common approach is to establish a serial connection between the computer running Unity and the Arduino board. This is straightforward to do, though it requires tweaking a few settings in Unity to allow access to the serial libraries.

For the Arduinos that have USB port, the physical connection is as simple as plugging in a USB cable. For the boards that have only serial pins, wiring in a converter chip will be necessary to bridge the two. I used the Arduino Uno since it supports USB and I didn’t feel like soldering.

The next decision is whether to write your code from scratch or to use a library to ease this task. If you’re more of a DIY person, the amount of code you have to write isn’t outrageous. Alan Zucconi has an excellent article that will guide you through what you need on both systems.

If you’re looking to get up and running quickly, however, you may prefer one of the options available in the Unity Asset Store. These come with all the code you need for many use cases already written, a variety of examples, and niceties like custom UI in the Unity editor. I ended up using Marc Teyssier’s excellent Uduino package, which has good documentation and supports digital input and output, analog input and output, and servo motor control out of the box.

(I ended up having trouble at first, as my board wasn’t setting the pin mode to digital output when the code commanded it to. I wasn’t sure whether this was a problem with my board or with the code, but adding some additional commands to the Arduino code to make sure that the pin mode got reset cleared up the problem.)

I rigged up a simple relay circuit, created a sample scene, and before too long, had a light in my living room turning on and off with the scene lighting in Unity. Viola!

This is merely a proof of concept — a technical spike to sort out some unknowns. Now that we’ve got these waters mapped, I hope to add some production physical effects to future projects. Excelsior!

Moving to VR

About a year ago, I decided it was time for a career shift. I managed a fabulous team of mobile developers who were a joy to work with, but I missed creating things. I talked to my boss at Mutual Mobile about the problem; he encouraged me to chart out a way back to an engineer role within the company.

I thought carefully about my options. I could go back to iOS engineering, which my previous boss had done. He was delighted with the change and had no regrets whatever about stepping down from management to an engineering job. But I enjoy learning and figuring out new things and, while iOS is a fantastically enjoyable platform to develop for, iOS 10 seemed pretty mature. I moved from web development to mobile because the web stopped feeling like the wild west. Now I had the same sense about mobile.

So I looked at alternatives. Mutual Mobile had a months-old Virtual Reality practice at that point that was gaining steam. While I hadn’t yet spent any serious time with Unity, which the team uses for its work, my son and some of my fellow engineers both had and were clearly enjoying the experience.

I floated my plan to retool myself into a VR engineer to my boss and the VR team, all of whom were gracious enough to give it an enthusiastic thumbs-up. So in early 2017, I began a self-administered crash course in Unity and VR. I found Unity’s online training materials to be excellent, and by the time we executed my official transition to the VR team, I was able to jump in and contribute to the team without a problem.

(I was still green compared to the other two excellent engineers working on our projects, but made up for it by continuing to do management of our engineering and project management teams.)

I’ve now gotten to contribute to a Cardboard project and do all the engineering for an Oculus Rift project. (The former should be available in the mobile app stores soon, and the latter will be installed in the Bass Pro HQ in Springfield in a few weeks.) The team’s also doing work with several other really interesting clients; I’m excited about the work ahead.

Now that I’m past the initial hurdles in Unity, I’m learning things I think might benefit other developers and/or VR enthusiasts. Accordingly, I’m going to post things here to document my learning. My areas of particular interest include: Good Software Architecture in Unity, Cool Stuff our Team is Doing, Using Physical Props in VR, and Accessibility in VR.

If you’re interested in any of these areas or just in creating VR, please get in touch or just follow along. I’m excited about this next phase of my career, and will be happy to have company!