Vortex Studio on Linux

Vortex Studio is available on the Linux platform, albeit in a more limited capacity. 

Features and Capabilities

For Linux-based operating systems, Vortex Studio applications enable the simulation of dynamic models. While lacking advanced graphic rendering capabilities, engineering information of the simulation can be viewed on a remote Windows system through the Vortex Remote Debugger.

The Linux variant does not encompass all Vortex Applications, like the Vortex Editor. Nevertheless, editing can be done on Windows and later transferred to a Linux-based simulator. Distributed simulation is not available on Linux.

Here is the list of supported features.

  • Multibody dynamics

  • Terrain

  • Powertrain modeling

  • Advanced tire modeling

  • Rigid tracks

  • Flexible tracks

  • Cable systems

  • Earthwork systems

  • Python 3

See Features and Capabilities Overview for all available features of Vortex Studio.

Requirements

Only the Linux distributions officially supported by Vortex Studio are endorsed, although the Vortex binaries may still work on other distributions.

Distribution

Version

Architecture

Compiler

Distribution

Version

Architecture

Compiler

Ubuntu

22.04

x86-64

GCC11, C++17

Installation

Vortex Studio Download

Installation files for the Vortex® Studio family of products are available from the CM Labs' Asset Store.

  1. Head to the Web Asset Store - CM Labs.

    CM-Labs-Download.png

  2. Select the latest version of Vortex Studio in the list and click on the eye icon.

    Select Version.png
  3. In the component list, locate the Vortex Studio for Ubuntu 20XX.X package and click on the download button.

Vortex Studio Installation

To install Vortex Studio on Linux:

  1. Create a destination directory at your desired location.

  2. Navigate into the directory you just created.

  3. Copy the Vortex Studio .tar.gz archive inside the directory where you wish to install it.

  4. Decompress the archive with the following command:

    tar xf Vortex_Studio_*_x64_gcc11.tar.gz

Licensing

Vortex Studio licensing remains consistent between Windows and Linux, although there are variations in the tools available. For a detailed overview of Vortex Studio Licensing, please refer to the following links:

Vortex Studio Licensing

Node-lock Licenses

Generating Node-Locked LicenseFiles on Linux

Floating Licenses

License Server

Setting Up a License Server on Linux

Generating Floating License Files for a License Server on Linux

Connecting to a License server

Connecting your Computer to a License Server on Linux

Running a Simulation with Vortex

Setup file

The Vortex Studio Director does not support Linux. In Linux, the only options available are to start a dynamics simulation using the SimApp executable or a custom executable or Python script.

SimApp is a unified Vortex application designed for simulating Vortex content. When initiating a SimApp process on Linux without specifying a setup file, the application will automatically utilize the default s_imapp_DynamicsOnly.vxc_ located in the resources folder. This default setup file comprises solely of a Dynamics module and the Earthworks systems module.

To create your own setup file, you need to use the Vortex Studio Editor on Windows.

Content 

To create content for your simulation, you must use the Vortex Studio Editor on Windows. The content saved must be copied or shared with the Linux system, with the same folder hierarchy.

File paths in Vortex are always saved relative to each other unless it is not possible to create a relative path or a path is explicitly defined as absolute.

Running a simulation

Vortex content files can be provided as command-line arguments to the SimApp executable.

To initiate the simulation, simply run the SimApp executable via the command line and include the content files as extra arguments. Utilize the --config switch to designate the setup file for usage. Any extensions that are incompatible with Linux will be deactivated automatically.

$ ./SimApp myScene.vxscene --config mySetup.vxc

Some information will be displayed in the terminal as the simulation runs, according to the logging level.

If the argument --config is omitted, the setup file simapp_DynamicsOnly.vxc from the resources folder will be used. 

For the list of all supported arguments by the SimApp executable, invoke the application with only the --help switch.

Automatic Content Loading

When operating the application, it is recommended to load content during editing mode and switch to simulation mode while running the simulation. The default configuration file, s_imapp_DynamicsOnly.vxc_, configures the application to start in simulation mode since changing the mode via the command line is not supported.

To incorporate the content loader extension into the application, it should be included in the setup file. Once correctly configured, the specified content will load during editing mode and seamlessly transition to simulation mode thereafter, regardless of the initial application mode.

The content loader extension allows for the utilization of absolute Linux paths. However, if the content files referenced in the Content Loader are relative to the setup file on disk, when shared or copied to Linux, the relative paths will be maintained, ensuring proper loading of all content.

See the Loading Content at Start-Up section of the Simulator Setup User Guide for more details.

Stopping the simulation

Ctrl + C will stop the command running Vortex.

Debugging a simulation

The optimal method for debugging simulations on Linux is through the use of the remote debugger. This debugger, a Windows application, establishes a network connection to retrieve simulation data. In this setup, the Vortex simulation application on Linux (e.g. SimApp) functions as the server, while the Vortex Remote Debugger on Windows acts as the client. To enable this configuration, the setup file utilized by the Linux simulation application must be configured to allow Remote Access with a specified Listening Port. Initiate the simulation on Linux using this setup file and establish a connection to it through the Remote Debugger on a Windows PC.

From a Windows command line prompt you can start the Remote Debugger client simply with the following command:

C:\CM Labs\Vortex Studio <Version>\bin> SimApp.exe --config ..\resources\config\VortexRemoteDebugger.vxc

See the Remote Debugger User Guide for more information. 

Python remote debugging

You can also make your own remote debugging application with grpc and Python.

See Remote debugging with Python for more details.

Additional Information

Running on WSL2

Running the Linux version of Vortex on WSL2 (Windows Subsystem for Linux) closely mirrors running it on physical hardware.

For setup tips and key distinctions, kindly consult Simulating with Vortex on Windows Subsystem for Linux - WSL2.

Tutorials

Not all tutorials are accessible on Linux. While there are C++ tutorials available, it's worth noting that certain features may not be available.

Python tutorials are exclusively accessible on Windows by default. Although they can be adapted to run on Linux, some may need adjustments due to the unavailability of all features.

Building the c++ tutorials

Before building the tutorials, some build tools must be installed.

Now to build the tutorials navigate to the tutorials of your Vortex Linux installation and run CMake.
To generate the Makefiles for a Release target, you can run:

When all the files are generated, run the make command

The executables are created to the bin folder.

A First Vortex Application

Here is a straightforward guide on creating a basic Vortex application to validate your ability to utilize the Vortex SDK for initiating your development journey. This application will establish a Vortex application, integrate the dynamics module, define gravity, incorporate a component, and observe its descent over 300 steps (equivalent to 5 seconds at the standard 60Hz simulation rate). Throughout each step, the position of the component will be displayed.

First setup a project directory somewhere on your system. Here we will create a workbench directory in our home folder:

Then using the text editor of your choice we will create myVortexApp.cpp with the following content:

 

To compile it into an executable let’s call the g++ compiler. In this example, the Vortex Studio installation is under /opt/Vortex_Studio

And finally to execute it, our executable needs to know where the Vortex libraries are. There are many ways to achieve this under Linux (please consult your distribution documentation) but the simplest way in this example is to prepend the invocation of the executable with the proper LD_LIBRARY_PATH

And you should have a falling part: