What makes FLAMES a true simulation framework, and why does it matter?
What is the difference between a “simulation application” and a “simulation framework”?
A “simulation application” is a ready-made product that serves specific purposes. A simulation application simulates a specific set of systems (such as airplanes, sensors, and munitions) at a specific resolution and fidelity and supports a fixed set of interfaces to external systems (such as real-world systems and other simulations).
A “simulation framework” is a set of tools that provide a foundation upon which developers can create custom simulation applications tailored to their specific needs. A simulation framework does not simulate any systems. The framework provides tools that allow developers to create software that simulates almost any system at any desired resolution and fidelity. The tools also allow developers to create interfaces to almost any external system.
How to determine if a simulation is an application or a framework?
“System-specific” software simulates specific systems such as airplanes, sensors, munitions, and human behavior. To determine if a simulation is an application or a framework, examine how “system-specific” software is implemented using the information in the table below.
How “system-specific” software is implemented in a simulation “application” | How “system-specific” software is implemented in FLAMES, a true simulation “framework” |
Integrated into the application and tightly coupled with the application | Not included in FLAMES. All system-specific software is implemented in plugins to FLAMES. |
Delivered with the application | Not delivered with FLAMES. Plugins that contain system-specific software can be created by developers. Several ready-made plugins are available in the FLAMES Store. |
Cannot be separated or removed from the application | Always separate from FLAMES, because FLAMES does not contain any system-specific software. |
The ability to add new system-specific software to the application is limited or is not supported at all. | Plugins to FLAMES can contain software that simulates almost any system at nearly any level of resolution and fidelity. |
Not available in source code form. | Source code to all of the system-specific software in the FLAMES Store is available in source code form in GitHub repositories. |
What are examples of simulation applications?
We won’t drop specific names here, but nearly every well-known simulation product is a simulation application. They sometimes describe themselves as frameworks, but they are not. They are ready-made products that simulate a specific set of systems and that support a specific set of external interfaces. They sometimes provide an application programming interface (API) that allows a limited degree of customization, but this does not make them a framework. They do not implement system-specific software the way a true framework does, as described in the table above, and they often provide little or no support for adding new interfaces to external systems.
What are examples of simulation frameworks?
FLAMES is a commercially available simulation framework. There may be others, but we are not aware of them.
What are some of the advantages of a simulation application?
Simulation applications may provide the functionality you require without the need to do any software development. If you can find a simulation application that does exactly what you need and that will meet all of your needs in the future, you should probably buy it. This can provide you with the simulation capabilities you need in the most timely and cost effective manner.
What are some of the advantages of a simulation framework?
If you cannot find an existing simulation application that will meet your needs both now and in the future, you may need to develop a custom simulation (or pay someone to develop it for you). Rather than attempting to develop a custom simulation from scratch, you should consider developing your simulation using a simulation framework. If you choose a mature, full-featured framework like FLAMES, the magnitude of the development (and sustainment) effort will be dramatically reduced because the time and money required to develop the simulation will be dramatically reduced. You will also have the flexibility to simulate almost any system you need and integrate your simulation with almost any external system. In addition, with FLAMES, you will get a simulation that is easy to use and loaded with capabilities.