Archive Logo.jpg

February 12, 2005

Entity State Beach-balls.

I've been wanting to write this post for a long time, inspired by this photo.

As I've mentioned now and again, I was a simulations geek for the Army, a skillset I have carried on in my second career. On a previous task I was working a huge distributed Live-Virtual-Constructive event, where we were linking in live sites, such as a Navy command ship, real soldiers on the ground, the Marines in simulation, air assets in constructive and virtual modes, linking sites from coast to coast, corner to corner, live in real-time.

One hell of an effort, from which we learned a lot, not the least of which was... exercises that big, given the current state of the technology, probably are not worth the overall effort that went into it - as a training exercise. As an experiment, which it was, it was very valuable as we learned a lot - both what works, and what NOT to do next time, as well as pushed the tech envelope well beyond what it started at.

One of the things you have to do in the testing and integration phase of an event like this is ensure that all the bits and pieces fit together and can communicate. The backbone of mixing live, virtual and constructive (constructive is 'classic' wargaming engines, vice virtual, which are simulators) is the Distributed Interactive Simulation (DIS) protocol data unit. This is the basic transactional unit between otherwise unrelated programs, interfaces, and people. Every entity that will be shared among the participants is uniquely identified by a DIS PDU which is a packet of data that defines the attributes of the item. What it is, where it's located, what direction it's heading, at what speed, etc. It carries just the basic information needed. The other gizmo's on the network can then filter out stuff they don't need/can't use, and only pull in those packets that are relevant.

Among the things that this is used for is for example a UAV simulator, which 'flies' over the battlefield and looks at stuff. This info is then fed to an image generator, which, using the data in the PDU, selects the appropriate image for display on the operators console. Therein lies the potential for trouble.

You have to make sure that terrain databases in the various sims match, or you get things like helicopters which are flying underground, with perhaps only the rotor showing. Or, even better - you are demo-ing for a visiting General and the helicopter pops up from behind the treeline and fires a Hellfire. In the viewer, you see the bird pop-up, get the firing signature - and the sim, due to a terrible miscalculation of scale, spawns an M1 Abrams graphic instead of a Hellfire, which then speeds off, smashing into the T-72 which obligingly blows up.

Much hilarity ensues. Well, after everyone starts breathing again because the General thinks it's funny...

In this exercise we were doing integration testing of ADA assets. Specifically we were checking whether or not SA-7s in the ground sim (JCATS for anyone who cares) could acquire, hit, and knock down UAVs being flown in MUSE. We were using the UAV viewer because you can do a lot of troubleshooting much faster when you can see things - especially things like terrain mismatch etc.

Anyway, we had a PDU mapping problem. The VR generator had no mapping for the SA-7 missile - so it went to it's default - what we call the Entity State Beachball. It just generates a globe for a visual, with whatever attached attributes it's supposed to have.

In this case, we had several problems. The visual map was missing, so we got beach-balls. The missile launcher parameters were incorrect, too. We got the right soldier image - a man holding a launcher - but pretty much everything else was wrong.

We were treated to the visual of a single-shot missile launcher firing off beach-ball after beach-ball, as if it was a belt-fed auto-launcher. And the balls would go sailing off, ballistic default, to arc out over the virtual battlespace and land - and bounce, and bounce, and bounce, losing a little bit of energy each time, coming to rest when it hit something or ran out of energy. Like a kid with a ping-pong ball bazooka.

Since we were testing, there were about a dozen of these guys. All lofting their beach-balls into the air, to come down, bouncy, bouncy, bouncy. And, since they never detonated, they never went away, so the beach-balls started piling up in the valley, too.

Yeah, we fixed it, and at least that one was not being demo'd for a General... but now you might understand why I can't help but chuckle whenever I see that picture!