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.



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)

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 CountSpecifies 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).
Enable Multi-Threaded SolverIndicates whether the multi-threaded solver is enabled
Enable Multi-Threaded CollisionsEnables whether collision intersects and broad-phase to run multithreaded.
GravityGravity vector
Default Contact ToleranceDefault contact tolerance
Enable Auto SleepIndicates whether auto sleep is enabled
Enable Animated-Animated CollisionIndicates whether collision detection for animated/animated part pairs is enabled
Enable Animated-Sleeping CollisionIndicates whether collision detection for animated/sleeping part pairs is enabled
Contact Surface NormalizationWhen 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.
Enable Enhanced Profiling

Enable / Disable detailed profiling inside the physics solver and other areas.

Enabling profiling might have an impact on the simulation performance.

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.

Stepping Mode

Dynamics Stepping Mode

  • Single Step: single dynamics step per application update
  • Uniform Substeps: application step is uniformly subdivided according to the desired frame rate
  • Fixed Substeps: application step is subdivided into fixed number of substeps
Desired Uniform Substep Frame RateDesired frame rate of dynamics substeps in Uniform Substeps stepping mode.
Number of Fixed SubstepsNumber of dynamics substeps in Fixed Substeps stepping mode.
Partition Coupling MethodMethod for coupling partitions in a scene split via use of Solver Groups.
  • Point Force Coupling: Iterative, point-force-based partition coupling with low cost but slow convergence. Preferred for weakly coupled and compliant simulations, such as heaps of light or compliant objects.
  • Schur Complement Coupling (Optimized): Optimized implementation of iterative schur-complement based partition coupling with higher cost but excellent convergence. Preferred for large and stiff simulations, such as big, heavy machinery.
Partition Coupling Max IterationsMaximum 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.
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.

Partition Coupling Cycle BreakerEnables the cycle breaker feature for the Schur Complement Coupling method. If a cycle is detected during pivoting, this feature escapes from it.
Cycle PreventionEnables 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.

Parallel Solver Error ReductionEnables 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.
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 StartingEnables 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.
Automatically Set Max Thread CountAutomatically 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.

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 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.

Show CursorEnable mouse cursor on the window.
Enable Frame LimiterEnable Frame Limiter at the start of the application. This option cannot be changed after the application starts.
Enable PickingEnable object picking in the 3d Window.
Enable SSAOEnable Screen Space Ambient Occlusion effect.
AnisotropySets the level of anisotropic filtering to apply to all texture fetches.
Anti-AliasingSets the anti-aliasing mode.
Frame SkipNumber of frames to skip when rendering.
Keep Inactive Lights
Vehicle Trace LimitThe number of persistent vehicle traces.
Vehicle Trace Fadeout TimeThe time it takes, in seconds, for a vehicle trace to fade out when it is obsolete.
Highlight Contour ColorColor of the contour highlight. Alpha is used to mix with the scene to hide the effect.
Highlight Object ColorColor 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 3241001521

See Using the Keyboard in a Simulator for more information


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


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 3241001521

See Using the Windows Keyboard Module in a Simulator 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.

Debug ModeEnables Debug Mode. The application will log additional information
Device DetectionIndicates if device detection is enabled
Connected DevicesShows the device connected and their associated joystick extensions
Generate JoystickA 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.

EnableEnables the device
Buttons/Axis ValueIndicates if device detection is enabled
IndexIndex of the device as enumerated by the OS. This index can be overridden at runtime with the USB Device Settings Page

Unique identifier of the device across the application.


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.

Fill Nodes InfoFill node information, for debugging purposes
Baud RateUnless otherwise specified, the CM Labs standard is 250 kbps
Heartbeat Signal LostTime 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 DevicesSetting 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 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.

All Network Configuration extension parameters are managed by the Vortex Director application. Do not modify these parameters.

If the Vortex Director is not used to launch the distributed simulator, see Deploying Manually for help about setting up this extension. 


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.


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.


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 The Content Debugger Tab

See Measuring Performance Using the Content Debugger and 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.

EnabledWhen true, data collection is enabled. Enabling data collection can affect the performance of the simulation. The default value is false.
Enable DetailsWhen true, enables data collection details (such as extension size).
Log Interval PeriodThe 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 FileDirectory 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.

See The Network Data Tab

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.

See The Network Processes Tab


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.

Load in EditingForces the application mode to "editing" to load content.
Simulate after loadAfter all content files are loaded, the application will change the application mode to "simulating".
Content FilesList 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

Recorder Module

The recorder module enables the capability of the Kinematic Recorder. It must be added to the master node.

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

See Record and playback

For additional modules for the console, see Console Extension, Module, and Page Reference.