by Ezra Sidran
We entered a latticework of passageways that intersected at 90 degree angles. Far down a hallway to the left I saw another green camouflage golf cart scuttling away into the distance. It was the first sign of life we had encountered since leaving the guard post at the entrance a good twenty minutes before.
Finley turned right into a warren of corridors; we passed more doors and signage: BARRACKS A, SHOWERS, MESS HALL (WEST).
Another turn to the left and then once more to the right and Finley stopped the cart in front of a door labeled COMMANDING OFFICER.
“We’re here,” the colonel announced. “He’s inside waiting for you.”
I got out of the cart and walked over to the other to get my bag but before I could grab the handle Finley and the enlisted man sped away down the corridor.
“Don’t worry about your stuff, it’ll be in your quarters,” Finley yelled back. And then as he was turning the corner into another passageway he repeated, “He’s waiting for you.”
A junior Authoritarian Man came in with a tube of rolled-up blueprints and handed them to the senior man who unfurled them and laid them across my bed. “Can you show me where this office was?” the Authoritarian Man asked.
With my finger I traced my route from the helipad, to the guard house, through Portal A and into the labyrinth of tunnels. When I got to the warren of cross connecting passageways I became lost. “I’m sorry, Jim,” I told the Authoritarian Man, “I think it was somewhere around here.” I motioned to a section on the west side of the underground complex.
The Authoritarian Man pointed to an office much further to the east on the map labeled ‘CO’, “Are you sure it wasn’t over here?”
I tried to mentally retrace my journey in the golf cart. “I’m pretty sure that wasn’t it. I really think it was over here,” and I indicated the area to the west that I showed him before.
“Okay,” the Authoritarian Man answered, “please continue.”
I knocked on the door labeled COMMANDING OFFICER and a voice I recognized barked, “Enter.” Stanhope in the uniform of a major general was seated behind a large metal desk; he was flanked by two flags: the American on the right and some corps or command flag I didn’t recognize on the left. He was smoking a pipe, which was a welcome sight, because I immediately fished another cigarette out of my shirt pocket and lit up.
“Professor Grant, it really is good of you to come on such short notice,” Stanhope began. He stood up, shook my hand and motioned to a green metal chair positioned before his desk. “I’ll come right to the point,” Stanhope continued, “we’ve got a big problem and we need your help. Intelligence from Homeland Security indicates that an all-out attack on the White House is imminent. Specifically the date is the Tuesday after next. That gives us ten days to prepare and our computer model is still pretty buggy.”
“General Stanhope,” I blurted, “my group has only had a couple of weeks to work on the project. We’ve made some great progress, but we’ve still got at least a month of hard coding ahead of us.”
“We know, you’ve done some exceptional work so far,” Stanhope answered, “and we know it won’t be done in time. That’s why we’ve flown you out here. We need you to debug our code. You’ve got to find the bug and fix it before the terrorists attack in ten days. In fact, given that we need at least a few days to wargame the problem, we’re really looking at you doing this in a week or less.”
The immediacy of this problem surprised me and I coughed up a puff of smoke.
“The country is depending on you,” Stanhope continued while pouring me a glass of water from a carafe on his desk. “We know this is going to be extremely difficult but you’re the best man for the job. We have a great deal of confidence in your abilities.”
I gulped down some of the water. “Can I have the rest of my team?” I asked. “I’ll need all the help I can get.”
Stanhope slowly shook his head from side. “Sorry, no. That won’t be possible. They don’t have the security clearances and we don’t have the time.” Stanhope got up from behind his desk and put a hand on my shoulder. “Son, I have faith in you. I know you won’t let us down.”
Just for the record, I hate being called ‘son’ and I didn’t have a lot of faith in myself at the moment. Or, more specifically, I didn’t have a lot of faith going through a rat’s nest of somebody else’s code. Inside I shuddered but I put a brave face on it. “Okay, general, show me what you’ve got. Let’s see what I can do.”
Stanhope patted my shoulder. “That’s the spirit,” he said and then repeated, “I know you won’t let us down.”
Stanhope opened the door to his office and motioned for me to follow him out into the hallway. At the first intersection we turned to the left and the next we turned right. I was thoroughly lost in the underground maze. We stopped in front of door labeled CONFERENCE ROOM B and Stanhope motioned me inside. One entire wall of the room was made up of a 4 x 3 matrix of plasma screens. A large oval table, no doubt constructed from an exotic and expensive wood, with matching chairs upholstered in leather filled most of the floor space. I have been in government-constructed conferences rooms like this before and I am no longer impressed by the extravagance. A wall of plasma screens may be necessary but the tables and chairs are just pissing away taxpayer’s money. I slumped into the nearest chair and Stanhope moved to the array of DVD players and sound components embedded in the back wall.
Stanhope powered up the system and each of the twelve screens showed what appeared to be a first person HUD display for a MMOFPS.
“What’s an MMOFPS?” the Authoritarian Man interrupted.
“Massively Multiplayer Online First Person Shooter,” I explained. “You know Massively Multiplayer means hundreds, even thousands, of players running around online together. Normally this for an RPG but there are MMO FPSs, too.”
“What’s an RPG? I assume you don’t mean a Rocket Propelled Grenade,” the Authoritarian Man asked.
“An RPG is a Role Playing Game; like Dungeons and Dragons. Probably the biggest MMORPG is World of Warcraft which is incredibly addictive. A lot of people go into the online world and they never really come out. It takes over their lives, they lose their jobs, and their marriages break up. It’s a totally immersive environment with its own laws of physics, magic, money, everything. There are also MMO First Person Shooters like Call of Duty and Modern Warfare where online teams run around in a virtual environment shooting each other up.”
“Okay, I understand. So you’ve seen multiple panel HUD displays before like you saw at Site-R?” the Authoritarian Man asked.
“Of course, it’s standard E3 bells and whistles.”
“E3?”
“The Electronic Entertainment Expo.” I answered. “It’s the big convention where new games are showcased. It’s also where young game developers trying to break into the market hope to hook up with a game publisher. Anyway, you’ve got a dozen or more people running around in a virtual environment and what each player sees is displayed on a big matrix of plasma screens. It’s kind of interesting because you can watch one player on one screen shoot at another player in another screen who is shooting at somebody else in another screen.”
“Okay, got it,” the Authoritarian Man said. “And the wall of plasma screens in the conference room in Site-R was showing a dozen HUD displays of a MMOFPS, right?”
“Right.”
The screens across the top row were labeled Chalk 1, Chalk 2, Chalk 3 and Chalk 4. The second row of screens were the HUDs for players White Knight 1 through White Knight 4. The third row of screens displayed HUDs for the section leaders and the bottom row showed 2D overview and tactical maps and the HUD for someone labeled ‘Package’. It didn’t look like Package was doing much in the game since the view from his HUD appeared to be the inside of a toilet stall.
It was a very good FPS. I couldn’t tell for sure, but it looked like they were humping well over ten million polys per minute with a frame rate of 60 frames per second.
/> “Time out,” the Authoritarian Man stopped me, “explain humping polys and frame rates.”
“Polys are polygons,” I went into semester one, day one lecture mode, “Polygons are the basic building blocks of 3D computer graphics. Maybe that’s a bad use of the term ‘building block’ because a block is made up of six polygons; think of the six sides of a die.
“A polygon is a flat surface. All computer graphics – and it doesn’t matter how complex the image is – are made up of a whole lot of flat surfaces. Even if we want to show something that’s round, like a tire, it’s made up of many flat surfaces. The more flat surfaces that make up the model of an object the rounder and smoother it will appear.
“Now there are two steps to creating computer graphics: the first step is modeling – that’s where we put together a bunch of polygons to create an object – and the second step is rendering, that’s where we do the 3D calculations to figure out what something looks like from a specific camera angle.”
“Okay, but how about something like the movie Shrek? He doesn’t look like he’s made up of flat surfaces. And what about Donkey’s fur or King Harold’s hair?” the Authoritarian Man asked.
Why did I know that Shrek was going to be the epitome of computer graphics for the Authoritarian Man? “Even Shrek is made up of polygons, lots and lots of polygons. And all of King Harold’s hair is made up of polygons, too. After we construct a 3D model of an object, like Shrek or Donkey, we then apply texture maps to the surfaces. In Shrek’s case the texture map is green skin. For Donkey they used a special program called a geometry shader that created a texture map of his fur and applied it to the polygons that made up his body. Lastly we add a bunch of light sources, select a camera viewpoint and then render the image. The faster we can render images the smoother it’s going to look. If you can render thirty images, or frames, per second it’s going to look as smooth as broadcast TV; so that’s the gold standard that we’re always shooting for.”
“So Shrek was rendered at thirty frames per second?” the Authoritarian Man asked.
“Well, no, actually, Shrek is a movie. It took many hours to render each frame for Shrek. Then all the frames were transferred to film which is then played back at 28 frames per second in the theater. Each scene in Shrek was composed of hundreds of millions, maybe billions, of polygons. They had far more detail than film could possibly capture so there was some serious overkill there. But that’s why Shrek’s face is so smooth and you can’t tell that’s it made up from all these flat surfaces.”
I got a reassuring nod from the Authoritarian Man. He seemed to understand the basics of CGI, computer graphics imagery, so I returned to Conference Room B at Site-R.
Stanhope turned up the audio in the conference room and I could hear the confusion of net chatter; a half-dozen or more people all talking at once. A gruff voice was demanding “Where is he? Where is he?” There were overlapping sounds of gunfire. Somebody was calling for a status report from White Knight Leader. On the 2D tactical display I could see multicolored triangles representing the players moving about and congregating near what appeared to be a women’s restroom. The gruff voice was now counting, “One… Two…” more gunfire in the distance and then a couple of minutes later Stanhope hit the pause button on the replay.
“Let me call your attention to this,” Stanhope said and with a laser pointer drew an imperfect red circle around part of the screen displaying the HUD for White Knight 1. A pair of legs had extruded from the ceiling.
I had to laugh. “It’s a clipping error,” I chuckled.
I looked up at the Authoritarian Man, and before he could ask I answered, “Don’t worry; I’ll give you the same explanation that I gave Stanhope.”
Technically a clipping error is what we call it when you can see through an object that’s supposed to be solid. The object in front is supposed to ‘clip’ the invisible parts of the object that’s behind it from view. But it can also refer to a situation when one object that’s supposed to be solid goes through another object that is also supposed to be solid. Remember that a polygon is just a set of points on a plane. The computer has to extrapolate the surface of the plane. Imagine we’ve got a football field, but we describe it to the computer by just recording the four points on the edges of the field, the extreme ends of each end zone. We don’t have to tell the computer about points on the twenty yard line or the fifty yard line or whatever because we’ve described the entire plane of the football field in just four points.
There are two basic reasons that clipping errors can occur: 1, there’s an error in the 3D database. The computer doesn’t know where in 3D space these points are. This could happen for a number of reasons. Maybe something walked into memory and trashed the database. And, 2, there’s a basic flaw in the algorithm that is used to determine clipping, or in this case, object collision. A lot of algorithms try to skip over checking for all collision or clipping points to save time. The theory behind it is that rather than check every point for clipping or collision just check every other point, or every tenth point or hundredth point. You get faster rendering times but you also get clipping and collision errors.
Before Stanhope could ask I volunteered that I didn’t know which was the case here – bad code or a bad database – until I looked at everything. “General,” I said, “I wouldn’t even hazard a guess at this point.”
“I cannot stress the urgency of this, Professor Grant,” Stanhope looked right into my eyes, “It is imperative that this program function properly before the Tuesday after next.”
“Do you know what that Tuesday is?” asked the Authoritarian Man.
“Nope,” I answered.
“It’s election day,” the Authoritarian Man answered.
CHAPTER 4.6
I followed Stanhope through the maze of corridors until we reached what must have once been an extraordinarily large gymnasium. The near side of the room held a row of high-end computer workstations. Arrayed on a work table in front of the workstations were a couple of dozen nVisor SX HMD units. The walls and the ceiling of the gym were covered in evenly spaced black and white disks. Each disk, which is called a ‘fiducial’, has a unique pattern cut out from the metal. I recognized the system from an abstract of an SBIR (Small Business Innovation Research, i.e. government funded) grant that I read a while back. When you put them together in a data matrix of fiducials you have a system for wide area mobile tracking.
I looked up at the Authoritarian Man. “You want a translation?” I asked.
“Yeah,” he nodded.
“HMDs are head-mounted displays for virtual reality environments. You put them on and you see, in stereovision, whatever the computer wants you to see. The nVisor SX is probably the top of the line. They cost about $25,000 each and there were a couple of dozen on the table so…(I stalled while I did the math)… that’s a cool $600,000 in toys right there.
“The fiducial system… by the way you know why they call the disks ‘fiducials’?”
“No.”
“Fiducial means ‘taken as standard of reference’ so in accounting ‘fiduciary duty’ means they didn’t cook the books. Anyway, I have no idea what the fiducial system cost. It’s one of those ‘if you have to ask you can’t afford it’ systems. Like I said, it was developed under an SBIR contract for the Army so you do the math. In conjunction with head mounted cameras it constantly tracks your position in 3D space.
“Bottom line is this: you combine nVisor SX HMDs with the fiducial tracking system and you’ve got a complete VR – that’s Virtual Reality – system where you can have a couple of dozen people running around in a gymnasium but the computer is keeping track of them in a completely different 3D space while feeding back to each user a unique view of what they should be seeing in the VR environment.”
“In other words,” the Authoritarian Man said, “you have the ultimate combat mission training environment.”
“That would probably explain all the weapons that were neatly stacke
d in racks on the other wall,” I volunteered.
Colonel Finley was waiting for us in the gym. “Professor Grant,” Finley began, “I’m here to make sure you have everything you need.” He handed me a 3 x 5 index card. “This will be your user name and password to get into the system. Do you need anything else?”
“Yeah,” I answered, “a pot of coffee and an ashtray.”
Finley and Stanhope left and I pulled up a chair in front of a workstation. I flipped over the index card and read the user name: HWANLEEPARK and the password: LEONIDAS both of which surprised me.
“Why is that?” asked the Authoritarian Man.
“Well, Hwan Lee Park is a professor specializing in VR at Carnegie Mellon,” I answered. “Why would they be giving me his user name? And, for that matter, where the hell was Hwan Lee Park? He was the VR expert. He probably wrote most of this code. Why isn’t he debugging it?”
“And the password?”
“Yeah, that was pretty weird, too. LEONIDAS was the Spartan king who died defending the pass at Thermopylae in 480 BCE. I didn’t know what any of this was about but I sure wasn’t getting a warm fuzzy feeling.”
I logged into the system, and started going through the code. There were hundreds of files. I have to admit it was pretty well commented; Park’s no slouch. But, still, I figured this was going to be a ‘needle in a haystack’ kind of a problem.