Connect with us

Building a Cinematography App: How Shot Assistant was Invented

Building a Cinematography App: How Shot Assistant was Invented

Cinematography

A few years ago, if you had asked me to describe my dream app—what would eventually become Shot Assistant—for my job as a camera and Steadicam operator and DP, I’d have said:

“It should be useful to everyone working with a camera, simple to operate, with a huge artificial horizon for leveling a camera; it should also be capable of fulfilling my irrational desire to attach cool electronics to my rig (preferably with lights and/or touchscreens).”

Unfortunately, none of the developers at Apple’s App Store shared my dream. Sure, there were plenty of leveling apps, including some for film use, but nothing I’d use more than once. After downloading every app in the “digital level” search result, I was disappointed. Then one day—between jobs I tried something I’d never done before. I entered “How do I make an app?” into Google.

I began reading every tutorial I could find. I learned about accelerometers and gyroscropes, about Xcode (Apple’s development environment) and Objective-C++ (a source code, or programming language), and even about algebra. Very slowly it started to click, and my app “Untitled1” was born. After receiving countless “Build Failed” messages because I’d screwed up setting a switch here, or ending a loop there, I can’t begin to describe the excitement I felt when I got a “Build Succeeded” and opened the app up for the first time on my phone. It felt like magic: I had made something that hadn’t existed before.

“Untitled1” was very basic. It pretty much just read an iPhone’s accelerometer and gyroscope data (i.e. how an iPhone knows which way is up and what direction you’re facing) and interpreted that data onto the screen, with a rotating line to represent the horizon. But what else was possible beyond that simple digital level? Deciding to expand the app for public use meant I had to work harder, make it look better, and make it idiot-proof. What started as a little hobby had now grown into 18-hour days of non-stop work. The devil really is in the details, and those details took over a month of non-stop work refining the app.

Shot Assistant’s ranging tool stores camera angles for precise movements

Shot Assistant’s ranging tool stores camera angles for precise movements

The idea of ranging came to mind—i.e. being able to record any angle and having the app guide you back to those angles; incredibly useful for finding an exact frame or nailing a whip pan. I also realized that I could use the accelerometer data as a seismograph for locating the source of unwanted vibrations on camera mounts or dolly tracks. An operator might only need to do that once in a blue moon, but as the old saying goes, “Better to have it and not need it than to get fired from the multi-million-dollar production over vibrations in a shot!”

As an operator, I wanted to make sure I could use the app without shifting focus from my Steadicam’s monitor. To that end, I focused the design on high contrast and bold colors that could be seen peripherally. I didn’t want the user to have to hunt for tiny buttons and menus, because that would require shifting focus. So I came up with the idea of using multi-touch: using the entire screen as one big button that would change function depending on how many fingers were touching it. One finger would store a range; two fingers would clear it; three fingers would allow the user to calibrate the app to whatever angle they wanted; four fingers would switch the sensitivity of the seismograph; five fingers would take you to the settings.

The iPhone provides an amazing amount of information through its built-in accelerometer: It measures translation and rotation for all axes, measured as Alpha, Beta and Gamma. For my purposes, this translated to “pan,” “tilt” and “roll.” Since Shot Assistant has a lot of moving parts, and many different readouts of the same information, I had to filter these fields into angular data and positional data.

The angular data was relatively easy as the numbers were already in degrees. The pan data—basically, compass heading—was harder. The obvious way to think of heading is from 0 to 360 degrees, but the iPhone goes from +180 degrees to -180 degrees. This is done to differentiate between left and right, which is undoubtedly clever—but it got me into trouble when calculating where my guide frame was, i.e. translating rotation into positional data! Whenever I panned through 180 degrees and re-calibrated the app, the math moving my guide frame would hit the switchover from +180 to -180 and the resulting number would instantly make the guide jump off-screen.

I had to completely rethink the math that made everything move. Once my algebra was revised—all I needed was an extra division—it all clicked into place. I ran around the house like a madman, clutching my phone and turning around to test it, terrifying the cats.

MM_SA-mount-James-Baldanza

Moviemaker James Baldanza uses Shot Assistant on set

Waiting for Apple to approve the app, which took eight days, was agony. I could only hope I hadn’t created an app that would make people’s phones explode! Then on Tuesday, February 3, 2015, 2.30 a.m., I did one last refresh of Apple developer interface iTunes Connect… and there it was! Shot Assistant, “ready for sale.”

So it began. The app was out there now. For a brief moment I felt like I could rest a little – but only for a very brief moment. You see, the problem with accidentally becoming a full-time app developer is that there is really no time to do anything else, like make money. I had to market Shot Assistant—and I still had to continue coding. People wanted an Android version; people wanted new features; people had support questions. My work load tripled.

The great part, though, was that operators all over the world were delighted with the app. They sent me pictures and stories, and I felt like a proud daddy. Suddenly Shot Assistant was working on gigantic productions all over the world (which, due to NDAs, I can’t yet list here). Ideas poured in, ranging from the very good (“Can you add a delay to the calibration to allow the rig to settle?”) to the very silly (“Can it make a whooshing sound when I do a whip pan?”)—all welcome, of course. And Version 2 has just come out.

At the end of the day, making Shot Assistant and selling it was infinitely less stressful than working on the average film set. With a little patience and a lot of Googling, it’s surprisingly easy to develop an app. Companies like Apple and Google have done their best to make programming as accessible and user-friendly as possible, and there are a huge amount of tutorials to help you get started. (Besides Apple’s vast online resources, available to anyone who signs up, free, for Xcode, I like stackoverflow.com.) It may seem overwhelming at first, and it’s certainly still a lot of work, but you’ll quickly start seeing the logic in it all. So if you have a dream app, now is the time to make it! I promise that if I can do it, pretty much anyone can. MM

Shot Assistant is currently available for download via Apple’s App Store for $9.99. This article appeared in MovieMaker‘s Spring 2015 issue. Photo Courtesy of Ruben Sluijter

 

Continue Reading
Advertisement
Click to comment

Leave a Reply

Your email address will not be published. Required fields are marked *

More in Cinematography

To Top