# FlexSim

FlexSim is a discrete-event simulation software package developed by FlexSim Software Products, Inc. The FlexSim product family currently includes the general purpose FlexSim product and healthcare systems modeling environment (FlexSim HC).

## History

FlexSim development began in late-2001 as an unnamed development project of F&H Simulations, Inc., a U.S. distributor of F&H Holland's Taylor II and Taylor ED products. Development was initially led by Dr. Eamonn Lavery, with lead developer Anthony Johnson joining in April 2002. Before the end of 2002, the development project was renamed FlexSim, which coincided with F&H Simulations, Inc. changing its name to FlexSim Software Products, Inc. FlexSim was acquired by Autodesk, Inc. in 2023.
FlexSim 1.0 was released in February 2003. FlexSim used a major.minor.build software versioning scheme until version 7.7.4; beginning with version 16.0.0 on March 14, 2016, FlexSim transitioned to a year.update.bugfix versioning scheme.
Notable FlexSim Releases and Features :
| Version | Release Date | Notable Features |
| 1.0 | February 2003 | Initial Release |
| 2.0 | May 21, 2003 | Task Sequences |
| 3.0 | February 2, 2005 | OptQuest integration, User Libraries |
| 4.0 | March 7, 2007 | Fluid Library, FlexScript Model Logic (no need to compile C++) |
| 4.5 | January 9, 2009 | FlexScript Bytecode |
| 6.0 | March 23, 2012 | Multi-core Experimenter, FlexSim Web Server |
| 7.0 | October 14, 2013 | Module SDK, 64-bit, Stereoscopic 3D |
| 7.1 | March 10, 2014 | AGV and A* Modules |
| 7.5 | January 28, 2015 | Conveyor Module |
| 7.7 | November 23, 2015 | Process Flow Module, Virtual Reality |
| 17.0 | December 12, 2016 | FlexScript Machine Code |
| 18.0 | December 15, 2017 | People Module |
| 18.2 | August 8, 2018 | Cloud-based Experimentation/Optimization |
| 19.0 | January 4, 2019 | JT files import, bone direct animation |
| 19.2 | September 5, 2019 | RTX mode for real-time ray tracing |
| 20.1 | April 10, 2020 | HTTP FlexScript API |
| 20.2 | August 11, 2020 | Agent Module |
| 21.0 | December 4, 2020 | JSON FlexScript API, Chromium Embedded Framework |
| 21.2 | August 9, 2021 | GIS Module, object templating system |
| 22.0 | December 6, 2021 | Reinforcement learning tool |
| 22.1 | April 4, 2022 | Python connector |
| 23.2 | August 7, 2023 | Omniverse connector |

## Usage
### Manufacturing

FlexSim has been used in a variety of simulation projects involving both standard and flexible manufacturing systems. Some examples include studies to determine optimal buffer sizes, optimizing blend components in feed production, rescheduling problems in mixed-line production planning, optimizing electronics assembly lines, and steel production scheduling.

#### Industry 4.0

FlexSim has been used to automate simulation model development for more than a decade; a 2008 study described a FlexSim-based solution that communicates with Product Lifecycle Management (PLM) software to generate simulation models. With the ongoing trend of Industry 4.0 pushing manufacturers toward automation and improved communication, FlexSim has been used to develop computer simulation models for these applications.
FlexSim can be extended through C++, which allows the software to be integrated into systems involving real-time data communication. The software has been used for nearly real-time production planning, which improves upon the Master Schedule approach (which can get out of date and miss on-site changes). In one study, FlexSim was integrated into a dynamic data-driven application system to automatically generate simulation models via the XML language.

#### Robotics and Crane

FlexSim's standard object library contains a 6-axis robot object capable that contains both pre-built motion logic and the ability to create customized motion paths. FlexSim has been used to model and analyze robotic cells in manufacturing environments, including dynamic scheduling and control of a robotic assembly cell.
The standard object library also contains a crane object, "designed to simulate rail-guided cranes such as gantry, overhead, or jib cranes." FlexSim, through the use of the crane object, has been used to evaluate solutions to crane scheduling in a shipbuilding environment.

### Healthcare

In April 2009, FlexSim Software Products, Inc. released a standalone healthcare simulation product named FlexSim HC. It was developed as simulation package focused on modeling patient flows and other healthcare processes. The final release in original FlexSim HC development path was version 5.3.10 on February 19, 2019; beginning with FlexSim version 19.1.0 on April 29, 2019, FlexSim HC functionality was merged into the core FlexSim development and became a modeling environment within the software.
In practice, the FlexSim HC environment is used by healthcare organizations to evaluate different scenarios in their healthcare processes and validate the scenarios before they are implemented. The environment has been used in various patient care improvement initiatives, including studies to understand different treatment options in Labor & Delivery, deploying advanced practice nurses in treating non-urgent patients, and demonstrating simulation-based design of a breast-screening facility as both a process improvement tool and as a management training tool.
During the COVID-19 pandemic, FlexSim HC was used to analyze vaccination rollout efforts and improve patient flow at vaccination sites. Outside of the traditional healthcare setting, FlexSim has been used to dynamically calculate and visualize radiation exposure.

### Academia

FlexSim has been used extensively in academic research and conference proceedings worldwide. The software package is usually taught as part of an industrial engineering or systems engineering curriculum, often in a Systems Simulation course; however, FlexSim has also been introduced as part of undergraduate or graduate coursework in manufacturing engineering, operations research, business management, health systems engineering, and nursing.

### Other

As general purpose simulation software, FlexSim is used in a number of fields:
* Material handling: Conveyor systems, AGV, packaging, warehousing
* Logistics and distribution: Container terminal operation, supply chain design, distribution center work flow, service and storage layout, etc.
* Transportation: Highway system traffic flow, transit station pedestrian flow, maritime vessel coordination, custom traffic congestion, etc.
* Others: Oil field or mining processes, networking data flow, etc.

## Main features
### Robust standard objects

FlexSim includes a standard object library, with each object containing pre-built logic and task execution to mimic the resources found in real-world operations. FlexSim objects are defined and programmed in four classes: fixed resource class, task executer class, node class and visual object class. FlexSim uses an object-oriented design.

### Logic building tools

The logic for a FlexSim model can be built using very little or no computer code. Most standard objects contain an array of drop-down lists, properties windows, and triggers that allow the user to customize the logic required for an accurate model of the system. FlexSim also includes a flowcharting tool to create the logic for a model using pre-built activity blocks.

### Drag-and-drop controls

Users can build the model by dragging and dropping predefined 3D objects into a "model view" to layout and link the model. Experienced users also have the option to specify and modify object parameters and behaviors using FlexScript and C++ programming languages.