I began my career in simulation fresh out of college, joining the F-16 Avionics Test Station team at General Dynamics (later Lockheed Martin). My initial work involved FORTRAN programming on a mainframe, building engineering simulators to rigorously test the aircraft’s flight computers. Each electrical and digital signal was simulated, ensuring compliance with every requirement.
The F-16 version I worked on represented a significant upgrade to its avionics systems. We simulated a network of roughly 20 computers, each running independently and connected via a military-standard bus. Suppliers provided most systems, like the radar or inertial navigation unit, but four core flight computers defined the F-16’s unique characteristics: the Fire Control Computer, Stores Management Set, Up Front Controls, and Multi-Function Displays. I contributed to simulators that allowed each Lockheed-produced flight computer to be tested in a lab environment while realistically simulating in-flight conditions.
I played a role in the transition from a monolithic FORTRAN simulator to a “C” based model where each avionic system was a separate executable. This ran on a custom Lockheed “General Purpose Processor,” which came with the challenges of cross-compilation and debugging.
Throughout my time there, I was responsible for various models including the Stores Management Set, Multifunction Display, Data Transfer Unit, and several weapon models. After experience as a junior lead, I became Technical Lead for the Modular Mission Computer test station team. We migrated the simulation to a UNIX/Sun-based host. Collaboration with other teams allowed us to bring aircraft simulation and flight program emulation to the desktop, empowering flight program developers to work and debug much earlier in the process.
A brief detour into the dot-com world led me back to simulation at ZedaSoft, where we created marketing simulations for the F-22 business development team. This work reunited me with veteran simulation engineers from Lockheed. Over several years, we developed a Java-based simulation architecture inspired by the web technologies we’d encountered during the dot-com era. This framework is the subject of US Patent 8150664: Container-based architecture for simulation of entities in time domain, where I’m listed as an inventor.
During the development of CBA at Zedasoft, incorporating OpenGL into our solution was crucial. Our existing C/C++ simulations relied heavily on OpenGL, but we needed to integrate it with Java. Since JOGL (Java OpenGL) wasn’t yet available, I devised a custom solution. I created a Java library that mapped most OpenGL function calls to Java methods. This library would serialize the commands and send them over a network stream to a C++ application. The C++ application would deserialize these commands, convert them back into OpenGL instructions, and execute the rendering using native OpenGL library calls. This innovative approach enabled us to enter the simulation market approximately five years earlier than we’d have been able to with JOGL.