Vortex Studio Demo Scene package

Vortex® Studio Demo Scene package is here to guide you through the diverse features of Vortex Toolkit in a straightforward and practical way.

Inside the Demo Scene package, you'll find a range of scenes and mechanisms that showcase the capabilities of Vortex Toolkit. These scenes are designed to provide you with a hands-on experience, allowing you to explore and understand the toolkit's functionalities.

The package also includes Unity projects demonstrating the seamless integration of Vortex with Unity. These projects serve as practical examples, showing you how Vortex enhances Unity-based projects.

 

Downloading and installing Vortex packages is explained in Download and Installation

The Demo Scenes folder can be found under the CM Labs installation, in the C:\CM Labs\Vortex Studio Content <version>\Demo Scenes folder for the appropriate Vortex version.

Directory

Contents

assets

The Asset folder contains the actual Vortex scene files, which link to the required mechanisms and objects in the other folders.

Environment Terrains used in scenes

Equipment All the mechanism files for vehicles, machinery and props

localization Translation in other languages (used by Vortex Launcher)

Scenario Vortex Scenes that can be loaded in Vortex Player and Vortex Editor

Training Assets used in tutorials

Verification Python scripts demonstrating Vortex scripting for vehicles verification

bin

Unity executables built from projects in UnityProjects folder. Started by the Vortex Launcher

plugins

dll that is used with the demo for Asset Bundle Unity integration

resources

Configuration files

UnityProjects

Example projects for the three Unity integration packages that can be loaded with the Unity Editor

UnityIntegrationDemoProject for com.cmlabs.vortex.integration.unity

IntegrationDemoProject for com.cmlabs.vortex.integration

StandaloneDemoProject for com.cmlabs.vortex.integration.standalone

How to explore Demo Scenes content

Open and edit content in Vortex Studio Editor

You can use Vortex Studio Editor to explore the Demo Scene content, learn how it works, and modify it for your purpose. See Vortex Studio Editor for more information.

  1. Double-click on the Vortex Studio Editor icon on your desktop.

  2. Open files using the menu in the editor.

    1. Any Vortex file (*.vxscene, *.vxmechanism) can be dragged and dropped from a file browser directly inside Vortex Editor.

  3. Once the file is loaded, you can navigate the content and see how it was done.

Scenes have different cameras and roles — usually a default, free-fly camera and additional cameras attached to vehicles. Those features are usually activated following the active Role.

The Vortex Studio Editor has a different behaviour when it comes to roles. The editor is its own seat, and by default, if no role is activated, it is as if all the roles were active at once, allowing the user to use everything. This leads to some side-effects, like controlling all vehicles at once and having HUDs overlap, for example.

You can activate a single role to simulate the same behaviour on a simulator.

  • (optional)Filter the explorer view to only show roles, click on the funnel icon, and select Simulation Role 

  • Locate the role you want to activate.

  • Right-click on the desired role and select Activate

     

  • Each time a role is activated, the previous one is deactivated automatically

A role can also be deactivated following the same steps. The activate option will read deactivated if the role is active.

Human Machines Interfaces are UI elements with custom controls. When a scenario is launched from the Vortex Studio Player, new tabs are created for each HMI.

As explained in the previous section, the Vortex Editor has a different behaviour when it comes to roles. In this case, the Vortex Editor won't open an extra window for the HMI when the simulation starts. Instead, the HMI can be interacted with through the Console tab. This tab appears under the 3D View whenever a Console Page is in a mechanism.

Some mechanisms in the Demo Scenes such as the Excavator in the Vortex Studio Content Starting Guide#Excavator-Dump-Truck-Section scenario have a HMI.

For more information, a tutorial on how to create an HMI is also available.

Simulate Content in Vortex Studio Player

Vortex Studio Player is a distributed simulator that can be used to load Vortex content and simulate it. See Vortex Studio Player for more information.

  1. Double-click on the Vortex Studio Player icon on your desktop.

  2. This main window is the interface used to load content and get information about your simulation:

  3. Any Vortex file (*.vxscene, *.vxmechanism) can be dragged and dropped from a file browser directly inside the browser tab of the window:

     

  4. Double-click on an object in the browser list to load it in memory. It will then be ready for simulation
    Scenes have different cameras and roles — usually a default, free-fly camera and additional cameras attached to vehicles. Select a role to enable the controls associated with that role, and select the camera associated with the role to get the correct viewpoint (respectively "r" and "c" keyboard keys in the graphics 3D window)
    Alternatively, use the Roles and Seats tab in the Player to activate a specific role (click on the "Roles" column entry and select a role from the drop-down menu).

Use Vortex Launcher

Vortex® Launcher is a desktop-based launcher tool that simplifies the user workflow when launching a Simulation. See Vortex Launcher for more information.

Start the Vortex Launcher with the shortcut on the desktop. This will give you access to simulations created from the three Unity integration packages. On the login page, type your name and log in.

Unity Integration Demo has been created with Integrating Vortex Studio with full Unity workflow - com.cm-labs.vortex.integration.unity

We still support our older Unity integration

Unity Standalone Project has been created with Integrating Vortex Studio in a standalone Unity project - com.cmlabs.vortex.integration.standalone

Unity Asset Bundle Integration Demo has been created with Integrating Unity as Graphics Renderer in a Vortex distributed simulator - com.cmlabs.vortex.integration

 

The Unity projects that are the sources for these demo are located in the C:\CM Labs\Vortex Studio Content <version>\Demo Scenes\UnityProjects

Unity Integration Demo Projects

The Unity integration Demo Projects show the possibilities of combining Unity and Vortex. See Integrating Vortex Studio with Unity for more information about Unity integration packages.

How to use the Unity demo projects

Before opening the Unity Hub, make sure Vortex Studio is installed, along with the Vortex Studio Demo Scene.

  1. Open the Unity Hub and click ADD on the Projects tab.

     

  2. There is a sample Unity project in the Vortex Demo Scene package. Navigate to C:\CM Labs\Vortex Studio Content 2022.X\Demo Scenes\UnityProjects and add a project to Unity Hub. You can then open the project by clicking it in the list.

     

 

Important Note

The Unity demo projets need one of the Vortex Studio Unity Integration packages supplied with the Vortex Studio installation.

By defaults, the demo projects expect the packages to be found at C:\CM Labs\Vortex Studio <version>. In case Vortex Studio is installed elsewhere (e.g. on another drive), it is possible to make a symbolic link pointing to the expected installation folder.

It is also possible to change the path of the Vortex package with Unity Package Manager.

UnityIntegrationDemoProject

This Unity project uses com.cmlabs.vortex.integation.unity. The full integration of Unity with Vortex Studio offers the advantage of the standalone integration - full Unity workflow, two-way communication between Vortex and Unity (through VHL interfaces), etc. - in addition to the advantage of the integration for distributed simulation - distributed simulation, cable system, earthworks, etc. The integration can be added to any HDRP Unity project by installing the package com.cm-labs.vortex.integration.unity.

For more information, see Integrating Vortex Studio with full Unity workflow - com.cm-labs.vortex.integration.unity.

 

IntegrationDemoProject

This Unity project uses com.cmlabs.vortex.integration.

For more information about this integration, based on using Asset Bundles prefab, see Integrating Unity as Graphics Renderer in a Vortex distributed simulator - com.cmlabs.vortex.integration

StandaloneDemoProject

This Unity project uses com.cmlabs.vortex.integration.standalone.

The standalone integration gives all the control to Unity, but requires extensive scripting for communication between Vortex and Unity. More details at Integrating Vortex Studio in a standalone Unity project - com.cmlabs.vortex.integration.standalone

Vortex Demo Scenes content

The assets/Scenario folder contains the actual scene files, which link to the required mechanisms and objects in the other folders.

The Vortex Demo scenes require a gamepad device to control the different vehicles. If you have a different type of control device, you might need to adjust the connections and mapping using the Vortex Studio Editor. However, you can navigate through the 3D space using the mouse in combination with the Q, W, E, A, S, and D keyboard keys. Navigation is also possible when the simulation is running.

Defense Vehicles Scene

Several armored vehicles that can be driven over a variety of terrain types.

Engineering Parkour

An empty plain with modular terrain elements that can be used to build your own custom test track.

EOD Scene

This tense night scenario shows an Explosive Ordnance Disposal (EOD) specialist using a tethered Packbot to inspect and move a suspicious suitcase.

Excavator Scene

A standard 36-ton Excavator digging and filling a Dump truck with soil in a construction zone.

Forklift in Warehouse

A Forklift moving boxes and pallets from one set of shelves to another.

Mobile Crane Scene

A rough terrain crane lifting concrete pipes from a flatbed trailer in a constrained environment (houses, trees). A second configuration features a spreader bar used to lift longer concrete pipes.

Offshore Scene

Top Side: Vessel with Knuckle-Boom Crane. This scenario features an intervention vessel using a knuckle crane to lift an EDP out of the water and onto the deck.

Sea Bed: Subsea Field with ROV. The same Offshore scenario features a generic remotely operated vehicle inspecting a typical subsea field. The ROV is equipped with controllable arms and is connected to the intervention vessel through the feeder cable.

Sports Car Scene

Terrain with several different materials where a sport car can be driven.

Terrain Demo

This vortex Scene is used UnityIntegrationDemoProject Unity project to show how Vortex simulation handles a Vortex vehicle driving on a Unity terrain.

Defense Vehicles

This scene provides a number of simulated combat units: Two eight-wheeled Light Armoured Vehicle (LAV), with and without Hull Protection Kit (HPK, heavy armor which reduces maneuverability), and MATV wheeled transport and an M1A2 main battle tank.

Highlights

  • The LAV features a semi-automatic transmission with 14 gears (6 reverse and 8 forward speeds).

  • The LAV driver can engage the 8x8 mode by locking all differentials for increased all-terrain performance.

  • Flat tire faults can be triggered by the Instructor VHL Interface of the LAV.

  • Both the LAV and M-ATV include tire models for hard and soft surfaces.

  • The M-ATV has an automatic transmission that can be overridden by the driver.

  • The M-ATV has multiple driving modes: 2WD, 4WD, and 4WD with locked differentials.

  • The M1A2 features an automatic transmission with a pivot gear to turn on the spot.

  • The turrets can be controlled via the D-pad. It is possible to fire the main gun with blank ammunition, with a recoil effect.

  • All vehicles of the scene use the multi-texturing feature. The LAV has textures for different levels of dirt and mud, which can be linked to the odometer (the vehicle gradually gets dirtier).

  • The LAVs and M-ATV leave a dust trail when moving across certain types of terrain.

Operation Notes

  • Before starting the simulation, you can activate a mechanical configuration to remove the LAV's turret.

  • The vehicles can be driven from either position (driver or gunner), only the viewpoint changes.

  • Put the vehicle in gear and use the throttle to start moving.

  • Flat tire faults can be triggered from the Instructor VHL Interface for the LAV.

Simulation Notes

  • The Scene Configurations panel includes several different starting points for the vehicles.

  • The antenna's graphic model is divided in five pieces. Parts connected with hinge constraints are used to create the flexible antenna.

  • The wheels of the LAV and M-ATV have specific Tire Models for a simulated response on different terrain types.

  • Two cameras are placed in the mechanisms to provide independent points of view for the operators (driver and gunner).

  • A viewpoint extension is placed in the mechanisms for use with multiple displays (refer to the documentation under the Displays and Viewpoints topic).

  • The Vehicle Systems use braking and engine torque tables that are suitable for heavy equipment. Additional tables are available in the Equipment/Resources folder.

  • Each wheel of a vehicle can be defined as 'steerable'. The LAV's four front wheels are configured as such.

  • The models use the latest Vehicle Systems features: transition time between the gears, maximum torque on differential locks, and minimum and maximum travel of the suspension.

  • The HPK Armor is a separate mechanism that is attached, at the scene level, to another instance of the base LAV model. Note that both armor and vehicle have corresponding attachment points set up at the mechanism level.

  • The LAV also has four Attachment Points on the chassis corners that can be used to hook towing cables and other equipment.

  • The LAV and M-ATV have a script and particle emitters that use the "Material in Contact" wheel output to drive the emission of dust particles of a color matching the ground material.

  • The LAV model uses the multi-texturing feature to present both a clean and dirty appearance. By modifying the alpha value of the layers, it's possible to progressively dirty up the vehicle (either by manual control or via a script).

Python Scripts

  • Differential Lock handles which differential components are locked. Note that the two rear axles are locked permanently on the LAV (this can be changed in the differential script).

  • Gear Value returns the exact gear mode and number for the VHL output interface.

  • LAV Controller handles the gear (Park, Gear Up, and Gear Down) and engine state of the vehicle. It takes various inputs such as current gear, throttle, and brake signals (either from the VHL or another script), and returns values to the Vehicle Systems to put the LAV in motion.

  • Recoil applies forces similar to the ones generated when firing the gun if the "fire" button is pushed on the gamepad.

  • Turret Controller controls the turret's motions using switch inputs rather than analog since the turret is controlled from the digital D-Pad instead of an analog joystick.

  • Inline Help manages the display of the joystick control diagram in the lower-left corner of the screen.

  • Dust and Splash Logic looks at the vehicle's speed and the wheels' Material in Contact output, and use the two to control a pair of particle emitters attached to the rear wheels. The particles are emitted at a rate proportional to the vehicle's speed and with a color matching the ground currently in contact with the wheels.

  • M1A2 Controller handles the gear (Park, Gear Up, and Gear Down) and engine state of the vehicle. It takes various inputs such as current gear, throttle, and brake signals (either from the VHL or another script), and returns values to the Vehicle Systems to get the tank in motion. Pivot Steer is available to turn the tank on the spot.

  • Tire Pressure Logic controls the pressure in the tires depending on the driver's selected mode.

  • ABS and TC Logic simulates the presence of anti-lock brakes and a traction control system.

  • Spring Compression Display Logic is used to visually deform and compress the spring models in the suspension of the M-ATV.

Mobile Crane

This sample provides an example of a typical rigging scenario: a mobile crane has been set up in a suburban construction field where it is used to unload and move sections of concrete pipes. The model combines Vehicle Systems with Cable Systems and advanced logic.

Highlights

  • Cable Systems for both the mobile crane and the spreader bar.

  • Rigging is simulated via a Hooking extension to attach the hooks and loops as needed.

  • The hydraulic systems are simulated via a Python script with a low-pass filter to provide a feel similar to the real vehicle.

  • The Vortex Studio Human library is used for all avatars present in the scene, including the slingers and supervisor.

  • The trees and other vegetation come from the Vortex Studio Vegetation library.

  • Configurations at the Scene level are used to model three different starting situations: unloading a transport truck, using a spreader to lift a wide load, and dangerous over-extension.

  • All components of the scene use the multi-texturing feature. The terrain is a Graphics Gallery.

Operation Notes

  • While the featured model includes the crane's normal driving capabilities, the scene's scenario locks the crane in operation mode for simplicity.

Note: The crane will not accept commands until the outriggers are fully deployed.

  • The engine throttle must be used in combination with the respective hoist, boom, and turret commands.

  • The D-pad can be used to control the point of view of the operator.

  • The scene uses color-coding to indicate the state of the rigging. The hook and slings must be brought close to one another to allow them to be attached.

    • If the hook is red, the Anti-Two Block is activated; the hook is too close to the boom's pulley. You must lower the hoist.

    • If the hook is green, you are in range to attach the load's sling to the hook. Make sure the hook is properly positioned above the load.

    • If the hook is yellow, the load is being attached. Do not move the crane or hook.

    • A blue hook means that the load is properly attached.

  • The truck and trailer can be backed up to get them closer to the crane for unloading. Make sure the truck driver's Role is active or you will not be able to drive it!

Simulation Notes

  • The mobile crane assembly includes some features to increase the fidelity of the model, such as:

    • The hydraulic controls (turret, boom elevation, and extension) are matched with a low pass filter to add inertia.

    • The turret and booms have some relaxation in their constraints to provide torsion under heavy lifting. o The weighted hook contains a hinge constraint with friction to avoid torsion when the load is rotating. Cable Systems has the Enable Breakage parameter turned on.

    • When the maximum tension (50,000N) is exceeded for more than 120 steps (approx. 2 seconds), the crane's cable is cut.

  • The Hooking extension adds a constraint between each sling cable attachment point and the hook attachment point. This operation is performed when the simulation is started. When the hook is within the attraction distance and the "attach" command is triggered, the Max Force value is applied to attract the sling attachment point onto the hook progressively.

Python Scripts

  • Anti-Two Block measures the distance between the hook and the pulley and locks the drum if they are too close.

  • Drum takes inputs from the throttle and joystick and combines them to drive the drum, up to the maximum length of the cable (which is set as a parameter).

  • Gear Value returns the exact gear mode and number for the VHL output interface. In this case, the script is inactive since the crane will not be driven.

  • Hydraulic Boom takes inputs from the throttle and joystick and combines them to drive the boom, acting on the constraint linking the boom's hydraulic cylinders. The signal is processed via a low-pass filter to give a similar feeling to real hydraulics.

  • Mobile Crane Controller is the main control scrip of the vehicle. It handles the gear (Park, Gear Up, and Down) and engine state of the vehicle. It takes various inputs (either from the VHL or other scripts), and returns values to the Vehicle Systems and constraints to get the crane in motion. Since the crane is locked in place, not all functions are used.

  • Outriggers handle the movements of the crane's stabilizers. It takes inputs from the Controller script and deploys the outriggers as needed.

  • Telescopic Boom takes inputs from the throttle and joystick and combines them to drive the telescopic boom, acting on the constraint linking the boom's hydraulic sections. Like for the main boom, the signal is processed via a low-pass filter to give a similar feeling to real hydraulics. There's input from the Anti-Two Block script that locks the boom if the hook and pulley get too close.

  • Turret takes inputs from the throttle and joystick and combines them to rotate the turret, acting on the constraint linking the latter to the crane body. Again, the signal is processed via a lowpass filter.

  • Inline Help manages the display of the joystick control diagram in the lower-left corner of the screen.

  • HUD Controller manages the display of the speed, RPM, and current gear at the bottom right of the screen.

  • Hook Colorization handles the color of the hook. The hook's color comes from the VHL input, depending on the conditions in the scene. Note that this script is placed at the scene level, not in the mechanism, since it involves data interaction from several elements (the crane, the hook, the spreader, and the concrete pipe).

 

Offshore Top Side – Vessel with Knuckle-Boom Crane

This scene features an offshore scenario to demonstrate the use of Vortex Studio in a marine environment. It includes a controllable knuckle boom crane mounted on a vessel to transfer equipment from the vessel to the seabed.

Highlights

  • This scene illustrates how Vortex Studio can be used to perform lift planning and validation in an offshore environment.

  • The ocean simulation includes wave modeling, water surface reflections, and propeller effects. It is possible to change the waves' size and the wind force during the simulation.

  • The Vortex Studio Human library is used for all avatars present in the scene, including the slingers and supervisor.

  • The Hooking of equipment is controlled via Python scripting.

  • Vessel operations can be simulated using crew avatars on the vessel deck (the signaler role is controllable with a gamepad to walk around the ship).

  • All components of the scene use the multi-texturing feature. o Texture masks allow the ships' windows to reflect light differently than the hull o The equipment has a "used" appearance, with scratches and dents

  • The moving support vessel uses scripting to combine particle effects with the Buoy extension to create a bow wave/splash.

  • The environment uses the Skydome and Ocean features to add detailed cloud layers as well as wind streaks on the water surface.

  • The crane operator position has a Viewpoint set for multiple-display use.

Operation Notes

  • Use the crane control to hoist up the subsea module and land it on the vessel deck.

  • Unhook the subsea module using the gamepad.

  • During the simulation, a script can control the motion of the knuckle-boom crane drum to compensate for the heave motion of the vessel.

  • Select the Signaler Role to walk around the vessel deck in the first-person view using the gamepad controller.

Simulation Notes

  • The scene includes two intervention vessels with equipment on deck, a Floating Production Storage and Offloading (FPSO) ship, and a subsea module (EDP) hooked to a knuckle-boom crane.

  • The observation intervention vessel is used to illustrate the bow wave and thruster wash effects.

The former automatically move in wide circles around the scene.

  • Ocean properties are defined in the Ocean Dynamics extension under the Environment Properties. By changing the inputs and parameters of this extension in the Vortex Studio Editor, it is possible to alter the sea state and sea current.

  • Under the Ocean Dynamics, the Ocean Graphics extension can be used to tune ocean visibility (fog, silt) and ocean reflection/color.

  • Environment controls (such as the time of the day and weather conditions) can be changed under Environment/SkyDome.

  • You can also change the shape and properties of the cloud cover via the Custom Cloud extension. Python Scripts

  • Underwater Visibility Control lets the user toggle between topside and subsea visibility levels directly from the gamepad.

  • Inline Help manages the display of the gamepad control diagram in the lower-left corner of the screen.

  • Propeller Speed returns a propeller speed based on the vessel's own speed. This is used to set the propeller wash effect.

  • Crane Controller takes inputs from the VHL (and thus gamepad) and combines them to drive the boom and stick, acting on the constraint linking the crane together. The signals are processed via a low-pass filter to give a similar feeling to real hydraulics.

Offshore Sea Bed – Subsea Field with ROV

This scene provides an offshore scenario to demonstrate the use of Vortex Studio in a marine environment. It includes a Remotely Operated Vehicle (ROV) with robotic manipulators and tooling to perform subsea interventions.

Highlights

  • Vortex Marine is used to simulating the hydrodynamics of an underwater vehicle (ROV).

  • This scene showcases the three types of cables available in Vortex Studio:

    • Generic Cable: flexible cables used to model the tether cable connecting the ROV to the Tether Management System (TMS) and to model the umbilical connecting the TMS to the LARS system on the offshore vessel.

    • Catenary: used to model the flexible risers connecting the FPSO to the subsea modules on the seabed.

    • Pipeline: used to model fixed pipelines on the seabed.

  • The scene is also a good example of modeling and control of robotic manipulators using joint-by-joint control or inverse kinematics using Python scripting.

  • Ocean modeling including sea current and underwater visibility.

  • ROV features an automatic station-keeping feature to facilitate the use of the arms.

  • A configuration allows the simulation to generate silt in the water if the ROV comes close to the sandy seabed.

  • All components of the scene use the multi-texturing feature. o The sub-sea terrain has a natural look with no tiling visible up close o The equipment has a "worn out" appearance, with scratches and dents

  • The sub-sea terrain is a Graphics Gallery, which allows the use of multi-texturing.

Operation Notes

  • Before launching the simulation, you can select whether the ROV will carry arms or not via a scene configuration.

  • When piloting the ROV, make sure you spool out enough tether to properly operate the remote vehicle.

  • Different cameras can be used to monitor ROV interventions:

  • Docking Camera: the docking camera is used to assist the ROV operator during the latching of the ROV into the TMS.

  • ROV Camera: camera located in front of the ROV during normal ROV interventions. Allows the operator to navigate the ROV and perform manipulations using the robotic manipulators on the ROV.

  • Titan4 Camera: this camera is installed on the wrist of the Titan4 robotic manipulator. It can be used for better visibility when grasping objects.

  • Third-Person View Camera: this is a camera to monitor ROV operations from an observer point of view. You can control the view of this camera by clicking on the left mouse button and using the mouse to position the camera.

  • Use the gamepad buttons to toggle between the ROV and the robotic manipulators. If the ROV Operator role is active, the HUD/image in the down-right corner of the screen will highlight which equipment is currently being controlled.

  • You can toggle between clear or realistic underwater visibility.

  • This scene also illustrates how simulation can be used to perform subsea accessibility studies.

The torque tool installed on the ROV can only be partly inserted into the AAV Bucket on the
Christmas Tree due to contact between the top of the ROV and the top of the Christmas Tree (see picture below). Using the Vortex Studio Editor, the torque tool can be repositioned lower on the ROV in order to be able to fully insert it into the AAV bucket.

Simulation Notes

  • Ocean properties are defined in the Ocean Dynamics extension under the Environment Properties. By changing the inputs and parameters of this extension in the Vortex Studio Editor, you will be able to alter the sea state and sea current. Under Ocean Dynamics, you will also find the Ocean Graphics extension which can be used to tune ocean visibility (fog, silt) and ocean reflection/color.

  • Control of the ROV thrusters is achieved using seven thrusters extensions located in the ROV mechanism (see below).

  • The arms are equipped with cable grabbing and cutting extensions – activate the Configurations as needed. You will need to manually match the extensions' contact material with a cable, in order to grab or cut the latter.

Python Scripts

  • ROV Multiple Device Selection lets the user toggle between the various controls and tools attached to the ROV.

  • ROV Controller checks the desired ROV velocity coming from the gamepad and computes the required thruster speeds necessary to create that motion. It then outputs the control signals to the thruster extensions.

  • Thruster Joystick Command checks the signals coming from the gamepad and computes a direction signal to feed to the ROV Controller script.

  • Camera Controller checks the joystick inputs for the camera and turns them into a tilt velocity for the constraint that attaches the camera to the ROV.

  • Torque Tool Display checks the number of rotations made by the tool and converts them into the text to be displayed.

  • Titan4 Joystick Mapping takes the various joystick inputs and converts them into velocities suitable for use by the Inverse Kinematic script.

  • IK – Titan4 takes the current and desired positions of the arm, and computes the required joint motions required to complete the command.

  • Rig Master Joystick Mapping takes the various joystick inputs and converts them into velocities suitable for use by the Inverse Kinematic script.

  • TMS Drum Control takes the gamepad input and converts it into an angular velocity for the drum constraint. It also imposes a limit to that speed via a set parameter.

Excavator and Dump Truck

This scene provides a digging scenario on loam soil with a 36-ton excavator and a three-axle construction truck vehicle. The excavator features both a bucket and a dozing blade to move soil around with. The truck combines a Vehicle Systems model with simple logic to drive it; in addition, it provides a control for both brake and retarder combined.

Highlights

  • The excavator mechanism provides a hydrostatic Vehicle Systems model with rigid tracks. The logic provides hydraulic controls for all actuators with a low pass filter to simulate inertia.

  • The entire area between the orange cones can be dug into, including the loose soil pile to the left. Soil can be excavated using the bucket or pushed with the dozer blade. Excavated soil can be dumped in the truck or added to the pile. The SSM soil graphic feature is enabled.

  • The Vortex Studio Human library is used for all avatars present in the scene, including the operator and supervisor.

  • The trees and other vegetation come from the Vortex Studio Vegetation library. Via a configuration, a concrete pipe can be buried in front of the starting position of the excavator. It cannot be dug out of the ground, but it can be uncovered and re-buried.

  • All components of the scene use the multi-texturing feature.

  • The terrain is a Graphics Gallery.

  • Both the excavator operator and truck driver positions have a Viewpoint for multiple display use.

Operation Notes

  • The Excavator comes with two control modes, digging or driving.

    • To dig with the excavator, use the controls to operate the turret and the hydraulic actuators of the boom and arm.

    • To drive the excavator, switch to Drive mode, and use coordinated left and right track commands to move forward, backward, or turn. The excavator can pivot in place.

    • The excavator's dozer blade can be lowered or raised in either mode.

  • The truck can be driven and its bed emptied.

  • The excavator can use either a standard or a narrow bucket. Activate the associated mechanical configuration to equip the desired one.

  • Some of the excavator controls are managed by a Vortex Studio Content Starting Guide#Vortex-Editor-HMI-Information. More information about the HMI is presented in the Vortex Studio Content Starting Guide#excavator-dump-truck-console-feature-section section. 

Simulation Notes

  • Scene configurations include several different starting points and options for the simulation.

  • Boom and arm have some relaxation in their constraints to provide torsion under heavy forces. The visuals of the dug soil use the Screen Space Mesh (SSM) feature. This fills the space between soil particles and helps create the illusion of loose earth.

  • The Soil Layer tool, combined with empty collision geometries, is used to generate the loose soil pile. Adjusting the Relative Density field will change the pile's shape as it settles. The starting shape can also be modified by changing the collision geometries in the Soil Pile mechanism.

  • The Soil Layer tool is also used to create the buried concrete pipe (it is set to 'non dig-able'). Note that the collision geometry of the latter is slightly smaller than the graphic to ensure good visual interaction with the soil flowing around it.

  • A VHL interface is used to change the bucket soil material configuration from the scene to avoid changing the mechanism file for each soil type. In the Player, this is accessed via the Content Debugger tab: open the Content folder, then the Scene folder, then the Excavator folder, and locate the Earthwork Bucket entry. A simple Cable system is used to model the flexible sections of the excavator's hydraulic lines. The forces of the lines are prevented from affecting the parts of the vehicle. They are attached in order to optimize the simulation.

  • The Mirror extension is used to create a reflective surface in the cab's left-side mirror. Since the right-side mirror cannot be seen without changing the point of view, it has been left bare to improve performance.

  • The glass windows of the cab have a slightly colored, yet transparent (Alpha) graphic material with Reflections enabled.

  • The truck model features soft soil tire models tuned for loam and mud operations.

Python Scripts

  • Actuator Controller takes inputs from the VHL and joystick and uses them to drive the arm, acting on the constraint linking the arm's hydraulic cylinders. The signal is processed via a lowpass filter to give a similar feeling to real hydraulics.

  • Engine Controller controls the state of the engine, and whether the excavator is in digging or driving mode.

  • Mode Dispatcher takes the command signals and sends them to the proper destination, depending on the operating mode currently selected (digging or driving).

  • Sound Controller checks the current status of the excavator and plays the associated sounds from a set series of .wav files.

  • Inline Help manages the display of the joystick control diagram in the lower-left corner of the screen.

  • Bucket Controller animates the truck bed when it moves up and down.

  • Gear Value returns the exact gear mode and number for the VHL output interface.

  • Truck Controller is the main control scrip of the vehicle. It handles the gear (Park, Gear Up, and Down) and engine state of the dump truck. It takes various inputs (either from the VHL or other scripts), and returns values to the Vehicle Systems and constraints to get the truck in motion. This script also mixes the brake and retarder values so the driver does not have to bother with controlling them separately.

  • Differentials Controller turns the differentials on the truck on or off. If desired, this script could easily be merged with the Truck Controller script, to reduce the total number of scripts running in the scene.

  • HUD Controller manages the display of the speed, RPM, and current gear at the bottom right of the screen. Note that this script is placed at the scene level so it can be used by both the truck and the excavator.

Packbot for Explosive Ordnance Disposal

This scene provides a remotely-operated, tracked robot used for bomb disposal, reconnaissance, and surveillance. It is available as a tethered, wire-guided version and a wireless radio-controlled one. The Packbot can climb stairs, relay video from the mounted cameras, and grab small objects such as a suitcase, as demonstrated in this example. Highlights The gripper showcases Vortex Studio's grasping simulation capabilities. The inverse kinematics controls make it easy for untrained operators to control the arm: simply push the claw toward where you want it to go. The robot comes with two onboard cameras, one in the base and one at the top of the arm. They can be controlled in either mode. The lower one has a spotlight attached to perform an inspection in dark places (under the truck, for example).

Highlights

  • The optional optic-fiber control tether auto-spools out the back of the robot as it moves about. It can be paid out or reeled in manually if needed.

  • The Vortex Studio Human library is used for all avatars present in the scene, including the robot operator, police officers, and crowd.

  • All components of the scene use the multi-texturing feature.

  • The scene is set at night to showcase emissive textures. Both the vehicles and the buildings have self-illuminated textures for windows and light sources.

Operation Notes

  • The robot can be controlled using a gamepad with four directions. When using full left or right, it roughly turns on the spot (depending on flipper position).

  • To operate with a tether, navigate to the Scene Configurations panel and activate the configuration for the tether.

 Note that the tether automatically spools out when the Packbot moves, but this can be overridden with the gamepad's shoulder buttons.

  • By selectively raising or lowering the flippers (forward tracks), the robot can cross obstacles such as stairs or curbs.

  • When set to Gripper mode, the arm uses invert kinematics for control: the joysticks control the gripper's position in space and not the various joints of the arm.

  • The robot's gripper can grab the suitcase's handle. Switch to Gripper Mode to access the controls for the gripper, wrist, and arm.

Simulation Notes

  • The robot mechanism uses a Vehicle Systems with four tracks controlled by two electric motors for left and right propulsion. On each side, the tracks are connected together to a single motor using a shaft.

  • The detailed collision geometries for the gripper's fingers were generated with the V-HACD convex decomposition feature, set to Intermediate.

  • Two filters are connected to the camera to simulate the low-bandwidth and interference of the remote connection: noise and black & white.

  • By default, the tether is not present (to model a radio-controlled robot). To add it to the scene, select the scene configuration called "Tethered Packbot.".

  • The tether is an adaptive cable with greatly reduced stiffness. The openings of the box at the rear of the robot are modeled with two Cable Ring constraints.

  • Emissive textures are included to illuminate the night scene in conjunction with numerous point lights. The street lamps use a lightmap instead of individual light sources to save on processing power. The map was generated by taking a screenshot of the scene viewed from the top and using a graphic program to paint the desired lighting.

Python Scripts

  • Warning Lights uses sin waves to provide oscillating values for the Intensity of the police truck's emergency lights.

  • Arm Controller takes the various gamepad inputs and converts them into velocities suitable for use by the Inverse Kinematic script.

  • Cameras Controller checks the gamepad inputs for the camera and turns them into a tilt velocity for the constraint that attaches the camera.

  • Chassis Controller takes the flipper, direction, and speed signals and converts them into motions for the flippers' constraints, and engine values for the Vehicle Systems.

  • Gripper Controller takes input signals for the gripper and wrist and converts them into motion via the gripper and wrist's motor constraints.

  • Packbot Controller is the main dispatcher script for the Packbot. Input signals from the VHL and joystick are sent to the proper destination based on the operating mode (driving/gripper).

  • Spooling Controller takes the joystick input and current chassis velocity and uses them to provide an angular velocity for the tether drum constraint. The script includes a built-in scaling factor ("ratio"), which could be extracted into a set parameter instead if desired.

  • IK Controller takes the current and desired positions of the arm, and computes the required joint motions required to complete the command.

  • Inline Help manages the display of the joystick control diagram in the lower-left corner of the screen.

Forklift in Warehouse

This scene provides a medium-duty forklift with pallets and boxes to move around in a warehouse.

Highlights

  • The forklift is a basic mechanism built with parts and constraints.

 Note: the model does not use Vehicle Systems or Hydraulics Systems.

  • Cable Systems are used to model the lift chains on the forklift.

  • The forklift is equipped with twin spotlights and a custom rotating warning light.

  • The Vortex Studio Human library is used for the forklift driver.

  • The ambient lighting is provided by multiple real-time light sources.

  • Some boxes can be moved between racks. Movable boxes have a slightly different color.

  • All components of the scene use the multi-texturing feature. Change the forklift's color!

  • The forklift driver position has a Viewpoint set for multiple display use.

Operation Notes

  • The right stick both steers and sets the desired gear; accelerate/brake with the triggers.

  • The rear wheels are powered and steerable; this gives the forklift a very tight turning radius. Both front wheels are free.

  • The steering wheel and speed lever models follow the motion of the vehicle, providing additional visual feedback to the operator.

  • It is possible to tilt the driver's viewpoint with the D-Pad to help to place boxes on shelves.

  • The carriage can be extended up and down, tilted forward and back, and the forks shifted left and right. Note that the mast can go quite high – keep an eye on the ceiling.

Simulation Notes

  • The Scene Configuration feature includes different starting points for the simulation.

  • You can change the color of the vehicle's body by selecting one of the mechanical configurations in the forklift mechanism.

  • The warehouse is a Mechanism in itself, with the Assembly set to Static.

o Note that no Terrain object is used in this scene.

  • For improved performance and frame rate, not all racks and boxes can be interacted with.

  • Multiple light sources cast real-time shadows across the scene.

  • A basic Skybox is used to provide a sky backdrop to the windows.

  • The rotating warning light uses multiple transparent planes and a custom script to recreate the halo effect. It is set to not cast shadows to save on processing power; if a powerful computer is used, shadows could be enabled for a more realistic appearance.

  • A Vortex Studio Human driver figure is placed within the cab. The Human Dynamic and Human Control elements have been removed since they are not needed: the driver figure is completely enclosed within the cabin's collision geometry.

Python Scripts

  • Forklift Controller takes various input signals from the VHL interface (which is itself connected to the Joystick extension), and applies a low-pass filter to simulate the hydraulics. The signals are then outputted to the various constraints to make the forklift respond to the controls. It is possible to adjust the reaction time by changing values within the script.

  • Revolving Light Controller puts together two spotlights and creates a rotation animation for them. The resulting position data is also used to drive the graphic nodes of the rotating light and the simulated light halos attached to it.

  • Camera Controller changes the orientation of the driver's viewpoint based on the D-Pad inputs.

  • Linear Speed Calculator is used for the HUD display.

 

Engineering Test Terrain

The Engineering Test Terrain asset provides an environment where vehicles and mechanisms can be tested under different operating conditions. There are various modules and obstacles to interact with.

Highlights

  • Modules provide several obstacles to test vehicle crossing capabilities.

  • Changing the material of the ground allows different types of driving surfaces (e.g. sand, ice, snow) to be simulated to test vehicle slipping and road holding.

  • All components of the scene use the multi-texturing feature.

Operation Notes

  • The engineering test terrain is intended as a configurable environment. Simply select, copy, and move props around in Vortex Editor as needed to create a customized path.

  • Different materials can be set for the ground or modules to test traction.

  • The LAV from the Defense Vehicles scene is included to quickly begin testing.

Simulation Notes

  • The props are created as Mechanisms to allow them to be moved around; if they were part of the Terrain, they would not be selectable.

  • All props are set as Static to improve simulation performance.

  • The new Scene Configuration feature includes several different starting points for the simulation.

Sports Car Scene

The SPORTS CAR SCENE provides an environment where vehicles and mechanisms can be tested under different road conditions. There are various modules and obstacles to interact with.

Highlights

  • Sandpit practice

  • Sand road

  • Gravel

  • Mud

  • Asphalt/Wet Asphalt

  • Snow

  • Ice

  • obstacles (rocks, bumps.....)

Operation

  • Forward Drive D1/D8

  • Reverse Drive R1/R6

  • Park and Neutral

  • Steering, Throttle, and Brake