Vortex Studio Application Extensions and Modules
Depending on the pages and features you want to include in the user interface, you must and add different modules, extensions, and pages to your setup file.
Some modules and extensions are required for the interface to function properly. You can add the following extensions, modules, and pages. Most of these pages are used in the Vortex Studio Player.
See the player setup file (c:\cm labs\<Vortex Studio Version>\resources\config) for an example.
Dynamics
Engine
Also known as the dynamics module. This module is always on the master node.
To learn more about the engine, see Vortex Studio Dynamics Capabilities.
To learn about setting up the solver, see Solver Group (Automatic and Manual)
Parameters | Description | |
---|---|---|
Gravity | Gravity vector | |
Enable Auto Sleep | Indicates whether auto sleep is enabled | |
Enable Enhanced Profiling | Enable / Disable detailed profiling inside the physics solver and other areas. Enabling profiling might have an impact on the simulation performance. | |
Collisions | ||
Collision Geometry Max Count | Specifies the initial number of collision geometries allowed in the simulation (this is a guideline only, as Vortex® resizes this value if necessary). | |
Collision Geometry Pair Max Count | Specifies the initial number of pairs of collision geometries that might be colliding at any given time during the simulation (this is a guideline only, as Vortex resizes this value if necessary). | |
Default Contact Tolerance | Default contact tolerance | |
Enable Multi-Threaded Collisions | Enables whether collision intersects and broad-phase to run multithreaded. | |
Enable Animated-Animated Collision | Indicates whether collision detection for animated/animated part pairs is enabled | |
Enable Animated-Sleeping Collision | Indicates whether collision detection for animated/sleeping part pairs is enabled | |
Contact Surface Normalization | When enabled, the forces of contacts in the same contact surface (or patch) are modulated in order to produce consistent contact forces in situations where the number of contacts in the surface changes between steps. | |
Stepping | ||
Stepping Mode | Dynamics Stepping Mode
| |
Desired Uniform Substep Frame Rate | Desired frame rate of dynamics substeps in Uniform Substeps stepping mode. | |
Number of Fixed Substeps | Number of dynamics substeps in Fixed Substeps stepping mode. | |
Direct Solver | ||
Progressive Pivoting Mode | Enables the progressive pivoting mode, which measures the progress made throughout the solver iterations and switches to single pivoting if there is no progress for multiple iterations. | |
Optimized Cycle Detection | Enables the optimized cycle detection mode, which caches the current iterate's solution before pivoting and starts single pivoting from this cached solution to save time. | |
Cycle Prevention | Enables cycle prevention, which reduces the chance of the LCP solver encountering a cycle, but might cause an increase in the resultant LCP error. When enabled, the number of pivots per LCP variable is limited to the number specified by the 'Cycle Prevention LCP Variable Pivot Limit'. | |
Cycle Prevention LCP Variable Pivot Limit | Specifies the maximum number of pivots allowed per LCP variable, which is used to prevent cycles in the LCP solver. Only takes effect when 'Cycle Prevention' is enabled. | |
Step Warm Starting | Enables warm starting between time steps in the constraint solver, which will reuse the solver's results from the previous simulation step in the upcoming simulation step in order to speed up the solver calculations. | |
Friction Warm Starting | Enables warm starting between friction calculations in the constraint solver, which will reuse the solver's results from the previous friction calculation in the upcoming iteration in order to speed up the solver calculations. | |
Partitioning | ||
Enable Partition Optimizer | When enabled, the parts and constraints in a given partition are sorted in such a way as to create the simplest problem possible for the solver. This extra sorting step takes a small amount of time to do but usually yields a net benefit because it reduces solver time. In certain cases, that reduction is considerable. This is why this optimization is enabled by default. | |
Partitioning → Threading | ||
Enable Multi-Threaded Solver | Indicates whether the multi-threaded solver is enabled | |
Automatically Set Max Thread Count | Automatically determine the optimal number of threads usable by the dynamics engine. This should be always enabled unless deterministic simulation results are required across computers with different numbers of CPU cores. | |
Max Thread Count | Maximum number of threads that should be used by the dynamics engine. Only used if "Automatically Set Max Thread Count" is disabled. The number of threads utilized by the simulation system will not exceed the number of available CPU cores. | |
Partitioning → Coupling Solver | ||
Partition Coupling Method | Method for coupling partitions in a scene split via use of Solver Groups.
| |
Partition Coupling Max Iterations | Maximum number of iterations allowed during partition coupling. In each coupling iteration, all interacting partitions will be solved once, and the interaction forces between them will be calculated. This process continues until the maximum number of coupling iterations has been reached or the method has converged to the solution. Choosing a higher number of coupling iterations can produce more accurate solutions, while potentially impacting dynamics simulation performance. | |
Partition Coupling Cycle Breaker | Enables the cycle breaker feature for the Schur Complement Coupling method. If a cycle is detected during pivoting, this feature escapes from it. | |
Parallel Solver Error Reduction | Enables the error reduction feature for the Parallel Solver. Only takes effect, when Schur Complement Coupling is selected as 'Partition Coupling Method'. In this mode, the solver calculates the error for the entire coupled system and returns the lowest error solution when no exact solution can be found. |
Earthwork Systems Module
Adding this module enables the earthwork systems feature of Vortex Studio. It must be added to the master node.
See the Earthwork Systems Tutorials for examples.
Hydrodynamics Module
Adding this module enables the MARIN XRI hydrodynamics features of Vortex Studio. It must be added to the master node.
See Vessel Simulation with MARIN XRI for more information.
Graphics
Graphics Module
Graphics Module handles all that is related to visuals. Unless on a single node application, the graphics module must be added to the slaves.
The Graphics module requires the presence of the Qt Module on the same node in order to function properly.
To learn more about the graphics, Vortex Studio Graphics Capabilities
Get more details about some Display Options of the editor, which are translated in modules parameters.
Parameters | Description | |
---|---|---|
Show Cursor | Enable mouse cursor on the window. | |
Enable Frame Limiter | Enable Frame Limiter at the start of the application. This option cannot be changed after the application starts. | |
Enable Picking | Enable object picking in the 3d Window. | |
Enable SSAO | Enable Screen Space Ambient Occlusion effect. | |
Anisotropy | Sets the level of anisotropic filtering to apply to all texture fetches. | |
Anti-Aliasing | Sets the anti-aliasing mode. | |
Frame Skip | Number of frames to skip when rendering. | |
Keep Inactive Lights | ||
Vehicle Trace Limit | The number of persistent vehicle traces. | |
Vehicle Trace Fadeout Time | The time it takes, in seconds, for a vehicle trace to fade out when it is obsolete. | |
Highlight Contour Color | Color of the contour highlight. Alpha is used to mix with the scene to hide the effect. | |
Highlight Object Color | Color of the object highlight. Alpha is used to mix with the scene to hide the effect. | |
Spawn Window | ||
Enable Rendering | ||
Enable Frame Capture Overlay | ||
Label Manager Rotation Threshold | ||
Label Manager Position Threshold |
Display Extensions
See Displays and Viewpoints to set up display extensions.
Keyboard Extension
Keyboard events are captured from a window and thus work with the graphics module.
The Keyboard extension from the graphic module don't work with Vortex's Unity Renderer. Use the new Windows Keyboard Module and Windows Keyboard Extension instead.
See 3758345808
See Using the Keyboard in a Simulator for more information
Audio
OpenAL Module
This module handles sound extensions set in content. This module is typically found on slave nodes.
See Sound for help setting up sound in your content.
The sound module requires the installation of the vc10 redistributable
See Redistributable
Devices
Windows Keyboard Module
This module handles inputs from Windows Keyboard extensions. The module must be added to a node to which the keyboard is physically connected. Only the nodes containing the module will update the keyboard state. The keyboard state is broadcasted to the other nodes of the simulation when used in a control preset, its behaviour is consistent with the behaviour of other USB devices.
Not to be confused with the Keyboard extension.
See 3758345808
See Keyboard Device User Guide for more information
USB Controllers
Vortex Studio supports USB gamepads that use the Microsoft DirectInput or XInput interfaces.
See the USB Devices User Guide for more information.
SDL Joystick Module
The module must be added to a node in which USB devices are physically connected. Only one node on that system can have the module.
Input | Description | |
---|---|---|
Debug Mode | Enables Debug Mode. The application will log additional information | |
Outputs | Description | |
Device Detection | Indicates if device detection is enabled | |
Connected Devices | Shows the device connected and their associated joystick extensions | |
Parameters | Description | |
Generate Joystick | A joystick extension will be generated for each device connected. The generated extensions varies between run of the application and cannot be used reliably by control presets. Set this to false and use the application joystick extension to get persistant device Id. | |
Device Identifier | Needed when generating joysticks and using a joystick module on multiples nodes. |
Application Joystick Extension
Set the extensions only on the node where the device will be plugged into. The should be a single extension per USB device.
Input | Description | |
---|---|---|
Enable | Enables the device | |
Outputs | Description | |
Buttons/Axis Value | Indicates if device detection is enabled | |
Parameters | Description | |
Index | Index of the device as enumerated by the OS. This index can be overridden at runtime with the USB Device Settings Page | |
Identifier | Unique identifier of the device across the application. |
CANopen
For additional information setting up CANopen devices, see the CANopen Controls User Guide.
CANOpen Module
Add the module only on the node that will handle the device and in which the device is physically plugged in.
Inputs | Description | |
---|---|---|
Fill Nodes Info | Fill node information, for debugging purposes | |
Parameters | Description | |
Baud Rate | Unless otherwise specified, the CM Labs standard is 250 kbps | |
Heartbeat Signal Lost | Time elapsed before the system determines the heartbeat is lost. The system supports device swapping while the application continues to run. Changing this setting can make the system less responsive when you swap devices. | |
Generate Devices | Setting for internal diagnostics only. | |
Debug Mode | Setting for internal diagnostics only. |
CANOpen Extensions
Add the extensions only on the node where the device will be plugged into.
See CANopen Controls User Guide for details about these extensions.
Network
Network Configuration
The Network Configuration extension monitors the data which is shared by different modules, such as the size of the data that is shared.
This extension is needed in a distributed simulator, on every node.
If the Vortex Director is not used to launch the distributed simulator, see Deploying Manually for help about setting up this extension.
UDP
Vortex supports UDP as a communication protocol.
The module and extensions are fully detailed in the Network Communication Interface guide.
See the Network Communication Tutorials for some examples using the extensions.
UPD Module
The UDP Module handles all the UDP extensions. It should be present only on a single node.
UDP Extensions
UDP Send
Data sender; set this extension in your content and connect it to its inputs.
The module will read from the inputs at each simulation step and send them to the given address and port.
UDP Receive
Data receiver; set this extension in your content and connect it to its outputs.
The module will read data, from the socket at the given address and port, every frame, then update the outputs of this extension.
User Interface
Vortex uses Qt for its default user interfaces.
See this guide about adding UI pages for additional reference.
See the Console Extension, Module, and Page Reference for additional information to set up UI pages in the Console.
QTModule
The QT Module handles all the Qt pages extension. All of the Vortex player pages require the Qt Module to be available.
Vortex Player - Page extensions
The Vortex Studio Player user guide has information on how to use these pages.
Dynamics Visualizer Page
This extension works only on a single node application where the Engine and graphics modules are on the same node.
Debugging
Content Debugger
The content debugger shows the content that is loaded on a single node. It can be looked at by hierarchy or modules.
See Measuring Performance Using the Content Debugger and Profiler
Profiler
The profiler allows monitoring modules and extension execution time. It only reports the information on the node it is on.
Enabling the profiler might have an impact on the simulation performance.
See The Profiler Tab
See Measuring Performance Using the Content Debugger and Profiler
Data Monitor Module
This module enables network data captures for debugging purposes.
Parameters | Description | |
---|---|---|
Enabled | When true, data collection is enabled. Enabling data collection can affect the performance of the simulation. The default value is false. | |
Enable Details | When true, enables data collection details (such as extension size). | |
Log Interval Period | The period (in seconds) at which the system updates the data monitor log. The default value is 1 second. | |
Dump Slave Data | The slave data dump is a CSV file with columns for Extension Path, Creation Key, Field Path, Data Type, and Data Size. When the value for this parameter changes from False to True, the system dumps slave data into the directory you specify with the Dump File parameter. After the system dumps the data, the parameter resets to False. | |
Dump File | Directory where to write the data file |
Enabling data capture might have an impact on the simulation performance.
Data Monitor Page
Shows network data sent and received from the node it is on. This page requires the presence of the Data monitor module to fully capture the data.
Process Monitor Page
This page gives an overview of all the Vortex processes of the simulator on the network.
The page can be added to any node.
Other
Content Loader
This application will load the designated content files when the simulator is ready, without any user intervention. Only the Content Loaded on the Master node will actually load content.
See Loading Content at Start-Up.
Parameters | Description | |
---|---|---|
Load in Editing | Forces the application mode to "editing" to load content. | |
Simulate after load | After all content files are loaded, the application will change the application mode to "simulating". | |
Content Files | List of the content files to load. Every instance is loaded at coordinates 0,0,0. |
Humans Module
This is the Vortex feature of character animations. It consists of a set of extensions that works together to show the dynamics and graphics aspect of the simulation.
It requires the installation of the package Vortex Studio Human Library.
The human module must be present on every dynamics and graphics node.
See Vortex Human - Legacy Documentation
Recorder Module
The recorder module enables the capability of the Kinematic Recorder. It must be added to the master node.
Parameters | Description | |
---|---|---|
Recording Frame Interval | Indicate the interval at which a frame is recorded. An interval of 1 means each frame is recorded while a higher value means some frames are skipped. |
See The Record and Playback Tab
For additional modules for the console, see Console Extension, Module, and Page Reference.