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

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

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

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.

 

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.

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

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.

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

 

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

 

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.

Default Value: 1

Pause Recording When Simulation Is Paused

Indicates that the recorder will not record frames while the simulation is paused.

Default Value: True

See The Record and Playback Tab

See Record and playback

 

 

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