FlexSim 2023 Update 2 includes support for the OpenUSD format and a Connector for NVIDIA Omniverse. These two features combine to make FlexSim more extensible than ever before.
About OpenUSD and NVIDIA Omniverse
Universal Scene Description, or OpenUSD, is an open-source 3D scene description that was developed by the 3D animation studio Pixar and was open-sourced in 2016. It was originally used for compositing the scenes in their films—Pixar could have all the assets in a shot (textures, lighting, cameras, etc.) and each asset could be worked on individually in their own software packages, separate from the main scene.
When developing the Omniverse platform, NVIDIA identified OpenUSD as a way to help developers connect previously disconnected 3D data and software via unified 3D asset pipelines and develop powerful new tools, applications, and services to simulate the physical world. The combination of OpenUSD and NVIDIA APIs also allows 3D projects to be worked on collaboratively, in separate applications and in real time.
USD Export
A central part of FlexSim’s OpenUSD support is the ability to export a model to OpenUSD. To do so, open the Omniverse Connector properties, which can be found in the Toolbox under Connectivity. Once you’ve chosen a file path to export your model to, you can select what you would like to include in the OpenUSD file:
- Meshes are the 3D geometry for the various objects in your model, so you can uncheck this box to only include a hierarchy of objects and their properties.
- The position of the 3D View can be exported and included as a camera in the OpenUSD file.
- Textures are not embedded into the OpenUSD file itself, so you can check this box to copy the textures to the same output directory as your OpenUSD export file and make them easier to distribute.
- You can also specify which object property tables to include in the export.
From here, you are free to load the OpenUSD file into any software with OpenUSD support. This allows you to easily load FlexSim models into other 3D software. FlexSim users have already begun using these features during beta testing, finding ways to better integrate FlexSim models into the tools they already use. Many 3D software products are continuing to add OpenUSD support, so FlexSim models will be able to be loaded into more software products.
Note: Your model will export as a snapshot of its current state. If you stopped in the middle of a model run with flowitems in an operator’s hands or moving along a conveyor, those flowitems will be included in the OpenUSD file.
USD Stage
The second major component of FlexSim’s OpenUSD support is the USD Stage. This object can be found in the Visual area of the 3D Object Library, and it allows you to load an OpenUSD file into a FlexSim model. Simply specify a file path to an OpenUSD file, and it will be loaded onto the stage. The USD Stage functions as a container for 3D objects—when the USD Stage container is saved, those FlexSim objects will be exported to the OpenUSD format.
By default, the USD Stage object is treated as a single object in FlexSim. If you check the Select Prims box in the Stage properties, you’ll be able to click on individual prims that are drawn in the 3D View. This will open the Prim panel in the properties, where you can view prim data; click the Tree icon next to the Prim Path field to see its hierarchy and properties.
Wait, what’s a prim? A Primitive, or “prim,” is the basic unit or element of an OpenUSD file. A polygonal mesh such as a basic cone shape would be an example of a prim. Each prim has a name and can have one or more properties, usually attributes or relationships to other prims. Prims are the nodes in the tree of objects that define an OpenUSD stage.
NVIDIA Omniverse Live
FlexSim’s NVIDIA Omniverse Connector enables highly advanced OpenUSD workflows, including NVIDIA Omniverse Live. When you connect to a USD Stage on an Omniverse Nucleus server, you can create or join a live session with other users on different 3D software platforms. This means real-time, bi-directional collaborative editing of OpenUSD stages. In the video below, FlexSim is live connected in a session with USD Composer, a fully extensible, foundational, reference application within the Omniverse platform. When flowitems reach the 3D objects on the USD stage, the transform updates are sent to USD Composer, so you can see flowitems moving across the work cell in a live, running FlexSim model.
We’re excited to see what applications are discovered by the FlexSim community. Perhaps better workflows to get a facility’s layout into FlexSim? Or maybe rendering your model using photorealistic materials and shaders in another application? The possibilities are vast and exciting, and they’ll continue to grow as we further develop and refine these features.