Where is everybody?

I’m often thinking about how to use my guests’ locations to automatically trigger effects in my attractions. So far I’ve done absolutely nothing of the sort, instead relying on constantly-looping effects, audio, and lighting. I’d love to create gags that can react to people—for example, starting when someone comes close, or making different motions depending on whether someone is to the right or left of the display.

In a traditional dark ride, guest location is relatively simple to track—you just use the track. You can be sure that if someone is inside your attraction, they’re in a ride vehicle, and that ride vehicle is making contact with a track, and if you know the location of a ride vehicle, you can be pretty confident that its riders are looking straight ahead, or maybe a little off to one side. Some of the simplest gags are triggered just by the vehicle’s wheels running over a contact on the floor. These systems don’t really know the rider’s location, but they do know when the rider has reached a particular point.

If I was putting my guests in vehicles, I could stop here. This system is simple and effective, and if I’m looking for something more fine-grained, I could add contacts on the track at fixed intervals to give me a better understanding of where vehicles are present inside my attraction at any given time. This is also handy for safety; a buffer of one “zone” between vehicles helps prevent collision. Check out this delightfully mechanical map of vehicle location in the Alice in Wonderland dark ride at Disneyland. (This is also how the NYC subway signal system works!)

Here’s the problem: I’m building walkthroughs, not rides, and people don’t move as deterministically as vehicles do. They wander, they stop and go, they backtrack, and sometimes they find themselves backstage. At each of my attractions so far I’ve had at least one group that realizes that they’re at the end but doesn’t want to leave, so they go backwards through the whole thing and check it out again. You make my job more difficult but I love you so much.

I’m a technology person, so I quickly begin thinking about this problem as one that can be solved with technology. A simple solution might be to use pressure pads or motion detectors, especially if I place them at choke points, like in doorways. I might not know exact location, but if I detect presence at the threshold between scenes A and B, I can be pretty confident that someone just moved from the former to the latter. This doesn’t solve backtracking, but it’s a good first step. Pressure pads feel to obvious, though, and I can imagine someone consciously avoiding one if they see it coming, especially if that someone is wary of jump scares. (I will never put a jump scare in any of attractions, but I understand why people don’t always trust that assertion.) I’d like a more transparent solution. Motion detectors, like the kind that might turn on the light over a garage when someone walks by, could be effective, but the reaction time on those things is relatively slow and they cannot distinguish between, say, the motion of a guest entering a space and the motion of an animatronic that will always be there, which means aiming the beam precisely is very important. Plus, still, without a ton of them I don’t have a good idea of where my people really are; I just know particular points where they’ve been.

A much more sophisticated solution here is to introduce a Local Positioning System, like GPS but on the scale of a room. If I give each person some device that emits a signal, I can listen for that signal at known points throughout the space. By measuring the strength of that signal and applying some trigonometry, I can tell exactly where that device is in space and, therefore, detect where the person holding it is, too. This is how modern trackless dark rides work (the vehicle is the device), as well as things like Apple’s iBeacon. These systems are pretty well-defined, and it doesn’t seem to ridiculous to give each guest something to hold, or something to wear (like a lanyard), before entering an attraction. The problem I’ve found is that these things are expensive to buy and difficult (for me) to build. I vaguely understand that I can emit simultaneous ultrasonic and RF signals from the tracking devices; measure the difference in when each signal was received at at least three known points throughout the space; and then use those relative distances to triangulate position. I don’t really know what that actually means, though, in terms of transmitters and receivers and so on and so forth. I think this is the right solution eventually, but maybe not right now.

What other options do I have? I’ve been thinking about this today and I believe I have a more realistic idea. While it’s true that my guests won’t move as predictably as a vehicle on a track, I don’t think I will ever really need centimeter-level precision. Most gags will play to groups of two or more people, and in those cases I really just need a general sense that someone is standing vaguely in front of a thing—generally within a radius of a couple feet. Also, I will likely only have about a dozen gags in an attraction, if that, and not all of them will even need location awareness, so real-time tracking of each person’s location is just too precise for my purposes. What I really need is much more like a motion detector, but for position instead of movement.

I’m picturing a device. It’s probably on a lanyard. It has an IR receiver in it, like a television, which can pick up specific patterns of blinking lights that are invisible to the human eye and translate them into data. It also has an RF transmitter in it, like a radio station, so it can report back to some backstage system about what it’s doing. Throughout the attraction there are lots of little tiny IR transmitters, which are just LED lights that blink in a specific pattern forever. They’re tiny, cheap, and battery-powered, so they can be stuck anywhere and pointed at any particular point as needed. Each one has its own unique pattern, and the central system knows about all of them. When the guest walks in front of one of these things, the LED will shine on their device, which will pick up the signal. It then reports backstage over RF, telling the central system what it sees. Each device is doing this on a very short interval—fractions of a second—always saying, “Hey, I’m badge #2 and signal #5 is shining at me right now,” or “Hey, I’m badge #3 and I don’t see anything of interest.” The central system knows, through some painstaking configuration ahead of time, that a person in front of a particular signal means that some particular light should blink, or some particular motor should turn on. Also, because the system knows all the places this particular badge has been, I can add some customization. Maybe you’re walking through a show that has multiple narrators. Every guest will hear a different narrator, but every time you hear narration, it will be from the same person. I can’t do that with motion detectors.

I think each of the pieces of this system—the badges, the signal shiners, the central receiver—will cost like $15 in hardware, and none of the software seems to be impossible to write. I think the most complicated thing is finding a way to transmit from each badge on the same frequency without jamming everything up (random intervals?). I don’t think I need this system for Bobby’s Birthday but I can think of a lot of ways to use it for this year’s Halloween project.

If you have any particular feelings about my electronics blabbing, please get in touch! Does this sound realistic? I don’t know what I’m doing but I’d like to do something!