Simulation 3D Scene Configuration
Libraries:
Offroad Autonomy Library /
Simulation 3D
Aerospace Blockset /
Animation /
Simulation 3D
Automated Driving Toolbox /
Simulation 3D
Robotics System Toolbox /
Simulation 3D
Simulink 3D Animation /
Simulation 3D /
Environment
UAV Toolbox /
Simulation 3D
Vehicle Dynamics Blockset /
Vehicle Scenarios /
Sim3D /
Sim3D Core
Description
The Simulation 3D Scene Configuration block implements a 3D simulation environment that is rendered by using the Unreal Engine® from Epic Games®. Simulink® 3D Animation™ integrates the 3D simulation environment with Simulink so that you can query the world around the vehicle and virtually test perception, control, and planning algorithms. Using this block, you can also control the position of the sun and the weather conditions of a scene. For more details, see Sun Position and Weather.
You can simulate from a prebuilt scene or from custom scenes designed and built in RoadRunner. To do so, you must first export scenes from RoadRunner and specify the path to the exported scene artifacts in the Project parameter of the Simulation 3D Scene Configuration block.
Tip
The Simulation 3D Scene Configuration block must execute after blocks that send data to the 3D environment and before blocks that receive data from the 3D environment. To verify the execution order of such blocks, right-click the blocks and select Properties. Then, on the General tab, confirm these Priority settings:
For blocks that send data to the 3D environment, Priority must be set to
-1
. That way, these blocks prepare their data before the 3D environment receives it.For the Simulation 3D Scene Configuration block in your model, Priority must be set to
0
.For blocks that receive data from the 3D environment, Priority must be set to
1
. That way, the 3D environment can prepare the data before these blocks receive it.
For more information about execution order, see Control and Display Execution Order (Simulink).
Examples
Import RoadRunner Scene into Unreal Engine Using Simulink
Use Simulation 3D Scene Configuration block to import RoadRunner scene and generate semantic segmentation and vision detection data.
Parameters
Scene
Scene SelectionScene source — Source of scene
Default Scenes
(default) | RoadRunner
| Unreal Executable
| Unreal Editor
Source of the scene in which to simulate, specified as one of the options in the table.
Option | Description |
---|---|
Default Scenes | Simulate in one of the default, prebuilt scenes specified in the Scene name parameter. |
RoadRunner | Simulate in a RoadRunner scene. To import the scene, specify the RoadRunner file in the Project parameter. To export a scene from RoadRunner, use the option CARLA Filmbox in Export Using CARLA Filmbox (RoadRunner). |
Unreal Executable | Simulate in a scene that is part of an Unreal Engine executable file. Specify the executable file in the Project name parameter. Specify the scene in the Scene parameter. Select this option to simulate in custom scenes that have been packaged into an executable for faster simulation. |
Unreal Editor | Simulate in a scene that is part of an Unreal Engine project ( Select this option when developing custom scenes. By clicking Open Unreal Editor, you can co-simulate within Simulink and the Unreal Editor and modify your scenes based on the simulation results. |
Scene name — Name of prebuilt 3D scene
Empty scene
| Straight road
| Curved road
Name of the prebuilt 3D scene in which to simulate, specified as one of these options. For details about a scene, see its listed corresponding reference page.
Empty scene
— Empty SceneStraight road
— Straight RoadCurved road
— Curved Road
Dependencies
To enable this parameter, set Scene source to
Default Scenes
.
Project name — Name of Unreal Engine executable file
VehicleSimulation.exe
(default) | valid executable file name
Name of the Unreal Engine executable file, specified as a valid executable project file name. You can either browse for the file or specify the full path to the project file, using backslashes. To specify a scene from this file to simulate in, use the Scene parameter.
By default, Project name is set to
VehicleSimulation.exe
, which is on the MATLAB® search path.
Note
If you select a custom Unreal executable file built with a version of Unreal Engine that is not compatible with the current version of MATLAB, you receive one of these error messages:
"Incompatible version of 3D Simulation engine: Undefined"
: For Unreal executable built for a MATLAB release prior to R2023b"Incompatible version of 3D Simulation engine: 23.2.0"
: For Unreal executable built for MATLAB R2023b or later
To resolve these errors, you must migrate the Unreal project and rebuild the executable with the latest support package installed. For more information, see Customize 3D Scenes for Vehicle Dynamics Simulations (Vehicle Dynamics Blockset).
Example: C:\Local\WindowsNoEditor\AutoVrtlEnv.exe
Dependencies
To enable this parameter, set Scene source to
Unreal Executable
.
Scene — Name of scene from executable file
/Game/Maps/HwStrght
(default) | path to valid scene name
Name of a scene from the executable file specified by the Project name parameter, specified as a path to a valid scene name.
When you package scenes from an Unreal Engine project into an executable file, the Unreal Editor saves the scenes to an internal folder within the executable
file. This folder is located at the path /Game/Maps
. Therefore, you
must prepend /Game/Maps
to the scene name. You must specify this
path using forward slashes. For the file name, do not specify the
.umap
extension. For example, if the scene from the executable in
which you want to simulate is named myScene.umap
, specify
Scene as /Game/Maps/myScene
.
Alternatively, you can browse for the scene in the corresponding Unreal Engine project. These scenes are typically saved to the
Content/Maps
subfolder of the project. This subfolder contains
all the scenes in your project. The scenes have the extension
.umap
. Select one of the scenes that you packaged into the
executable file specified by the Project name parameter.
Use backward slashes and specify the .umap
extension for the
scene.
By default, Scene is set to
/Game/Maps/HwStrght
, which is a scene from the default
VehicleSimulation.exe
executable file specified by the
Project name parameter. This scene corresponds to the prebuilt
Straight Road scene.
Example: /Game/Maps/scene1
Example: C:\Local\myProject\Content\Maps\scene1.umap
Dependencies
To enable this parameter, set Scene source to
Unreal Executable
.
Project — Name of Unreal Engine project file or RoadRunner file
valid project file name
Name of the Unreal Engine project file or RoadRunner file, specified as a valid project file name. You can either browse for the file or specify the full path to the file, using backslashes. The file name must contain no spaces.
To simulate scenes from Unreal Engine project file in the Unreal Editor, click Open Unreal Editor. If you have an Unreal Editor session open already, then this button is disabled.
To run the simulation, in Simulink, click Run. Before you click Play in the Unreal Editor, wait until the Diagnostic Viewer window displays this confirmation message:
In the Simulation 3D Scene Configuration block, you set the scene source to 'Unreal Editor'. In Unreal Editor, select 'Play' to view the scene.
To simulate a RoadRunner scene, browse for the folder containing the exported RoadRunner scene files, then specify the Filmbox (.fbx
) file.
You can export a RoadRunner scene using the option CARLA
Filmbox in Export Using CARLA Filmbox (RoadRunner). This option
exports these three files to a folder:
Filmbox (
.fbx
) fileASAM OpenDrive (
.xodr
) fileXML (
.rrdata.xml
) file
Tip
Semantic segmentation in Simulation 3D Camera and
Simulation 3D Lidar uses the XML (.rrdata.xml
)
file. The ASAM OpenDRIVE® (.xodr
) file provides object data and lane ground
truth data for the Simulation 3D Vision Detection Generator to
generate detections. When you specify the Filmbox (.fbx
) file
as the Project parameter, check that the XML
(.rrdata.xml
) and ASAM OpenDRIVE (.xodr
) files are in the same folder.
Dependencies
To enable this parameter, set Scene
source to RoadRunner
.
Scene view — Placement of virtual camera that displays scene
Custom
| Scene Origin
| vehicle name
Configure the placement of the virtual camera that displays the scene during simulation.
If your model contains no vehicle blocks, then during simulation, you view the scene in free camera mode from a camera positioned at the scene origin. The camera movement uses the Z-up left-handed (LH) Cartesian coordinate system. To change the view to a custom viewpoint, set Scene view to
Custom
. Then, set the Initial viewer translation and Initial viewer rotation values to view the scene in free camera mode at the specified viewpoint.If your model contains at least one vehicle block, then by default, you view the scene from a camera attached to the first vehicle that was placed in your model. To change the view to a different vehicle, set Scene view to the name of that vehicle. The Scene view parameter list is populated with all the Name parameter values of the vehicle blocks contained in your model.
If you add a Simulation 3D Scene Configuration block to your model before adding any vehicle blocks, the virtual camera remains positioned at the scene origin. To reposition the camera to follow a vehicle, update this parameter.
Scene Controls
When Scene view is set to Scene Origin
or
Custom
, you can change the location of the camera to navigate in
the scene during simulation using keyboard and mouse control. You can also change the
camera location when the simulation is paused.
To navigate in the 3D environment, use these keyboard shortcuts.
Keyboard Shortcut | Camera Control |
---|---|
W | Move forward. |
Shift+W | Move faster in the forward direction. |
S | Move backward. |
Shift+S | Move faster in reverse direction. |
A | Move left. |
Shift+A | Move faster toward left. |
D | Move right. |
Shift+D | Move faster toward right. |
Q | Move up. |
Shift+Q | Move faster in the upward direction. |
E | Move down. |
Shift+E | Move faster in the downward direction. |
Mouse scroll wheel | Control the camera distance from the cursor point. |
Shift+mouse scroll wheel | Camera moves faster. |
Mouse right-click and drag | Orbit around the cursor point. |
O | Attach camera to actor under the cursor point. |
Mouse left-click and drag | Orbit around the actor after camera attaches to the actor. |
P | Detach camera from the actor. |
L | Record the current viewpoint and display |
1 to 9 | Access the stored viewpoints, if available. |
Tab | Cycle the view between all vehicles in the scene and the viewpoint at the start of the simulation, in the forward direction. |
Shift+Tab | Cycle the view between all vehicles in the scene and the viewpoint at the start of the simulation, in the reverse direction. |
I | Display the keyboard shortcuts on the screen. |
Vehicle Views
When Scene view is set to a vehicle name, during simulation, you can change the location of the camera around the vehicle. You can also set the view to a vehicle during simulation by pressing Tab.
To smoothly change the camera views, use these keyboard shortcuts.
Keyboard Shortcut | Camera View | |
---|---|---|
1 | Back left |
|
2 | Back | |
3 | Back right | |
4 | Left | |
5 | Internal | |
6 | Right | |
7 | Front left | |
8 | Front | |
9 | Front right | |
0 | Overhead |
For additional camera controls, use these keyboard shortcuts.
Keyboard Shortcut | Camera Control |
---|---|
Tab | Cycle the view between all vehicles in the scene. |
Mouse scroll wheel | Control the camera distance from the vehicle. |
L | Toggle a camera lag effect on or off. When you enable the lag effect, the camera view includes:
This lag improves visualization of overall vehicle acceleration and rotation. |
F | Toggle the free camera mode on or off. When you enable the free camera mode, you can use the mouse to change the pitch and yaw of the camera. This mode allows you to orbit the camera around the vehicle. |
Sample time — Sample time of visualization engine
.02
(default) | real positive scalar
Sample time, Ts, of the visualization engine, specified as a real positive scalar. Units are in seconds.
The graphics frame rate of the visualization engine is the inverse of the sample
time. For example, if Sample time is
1/60
, then the visualization engine solver tries to achieve a
frame rate of 60 frames per second. However, the real-time graphics frame rate is
often lower due to factors such as graphics card performance and model
complexity.
By default, blocks that receive data from the visualization engine inherit this sample rate.
Display 3D simulation window — Unreal Engine visualization
on
(default) | off
Select whether to run simulations in the 3D visualization environment without visualizing the results, that is, in headless mode.
Consider running in headless mode in these cases:
You want to run multiple 3D simulations in parallel to test models in different Unreal Engine scenarios.
Dependencies
To enable this parameter, set Scene source to
Default Scenes
or Unreal
Executable
.
Weather
Override scene weather — Option to control the scene weather and sun position
off
(default) | on
Select whether to control the scene weather and sun position during simulation. Use the enabled parameters to change the sun position, clouds, fog, rain, and snow.
This table summarizes sun position settings for specific times of day.
Time of Day | Settings | Unreal Editor Environment |
---|---|---|
Midnight | Sun altitude: -90 Sun azimuth: 180 | |
Sunrise in the north | Sun altitude: 0 Sun azimuth: 180 | |
Noon | Sun altitude: 90 Sun azimuth: 180 |
This table summarizes settings for specific cloud conditions.
Cloud Condition | Settings | Unreal Editor Environment |
---|---|---|
Clear | Cloud opacity: 0 | |
Heavy | Cloud opacity: 85 | |
Heavy | Enable Volumetric clouds: Selected Cloud Coverage: 50 Cloud layer altitude: 6 |
|
This table summarizes settings for specific fog conditions.
Fog Condition | Settings | Unreal Editor Environment |
---|---|---|
None | Fog density: 0 | |
Heavy | Fog density: 100 |
This table summarizes settings for specific rain conditions.
Rain Condition | Settings | Unreal Editor Environment |
---|---|---|
Light | Cloud opacity: 10 Rain density: 25 | |
Heavy | Cloud opacity: 10 Rain density: 80 |
This table summarizes settings for specific snow conditions.
Snow Condition | Settings | Unreal Editor Environment |
---|---|---|
Heavy | Snow density: 50 |
Sun azimuth — Azimuth angle from south to horizontal projection of the sun ray
90
(default) | any value between 0
and 360
Azimuth angle in the horizontal plane measured from the south to the horizontal projection of the sun rays, in deg.
Use the Sun altitude and Sun azimuth parameters to control the time of day in the scene. For example, to specify sunrise in the north, set Sun altitude to 0 deg and Sun azimuth to 180 deg.
Dependencies
To enable this parameter, select Override scene weather.
Sun altitude — Altitude angle between sun and horizon
40
(default) | any value between -90
and 90
Altitude angle in a vertical plane between the sun's rays and the horizontal projection of the rays, in deg.
Use the Sun altitude and Sun azimuth parameters to control the time of day in the scene. For example, to specify sunrise in the north, set Sun altitude to 0 deg and Sun azimuth to 180 deg.
Dependencies
To enable this parameter, select Override scene weather.
Enable geospatial sun — Option to enable geospatial sun
off
(default) | on
Select this check box to enable geospatial sun. Enabling geospatial sun is useful to simulate conditions near the poles or at locations with disproportionate lengths of day versus night.
Dependencies
To enable this parameter, select Override scene weather.
Latitude — Latitude of geolocation on earth
0
(default) | scalar
Latitude of geolocation on earth, specified as a scalar, in deg.
Dependencies
To enable this parameter, select Override scene weather and Enable geospatial sun.
Longitude — Longitude of geolocation on earth
0 (default) | scalar
Longitude of geolocation on earth, specified as a scalar, in deg.
Dependencies
To enable this parameter, select Override scene weather and Enable geospatial sun.
Date (YYYY-MM-DD) — Date
2023-01-01 (default) | integer
Date, specified as an integer in the format YYYY-MM-DD
.
Dependencies
To enable this parameter, select Override scene weather and Enable geospatial sun.
Time (HH:MM:SS) — Time
10:30:00
(default) | integer
Time, specified as an integer in the format HH:MM:SS
.
Dependencies
To enable this parameter, select Override scene weather and Enable geospatial sun.
Time zone — Time zone
-5.0
(default) | any value between -12.0
and 12.0
Time zone specifies the number of hours offset from the Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT).
Dependencies
To enable this parameter, select Override scene weather and Enable geospatial sun.
Daylight saving time — Option to enable daylight saving time
off
(default) | on
Select this check box to enable daylight saving time.
Dependencies
To enable this parameter, select Override scene weather and Enable geospatial sun.
Cloud speed — Unreal Editor Cloud Speed global actor target value
1
(default) | any value between -100
and 100
Parameter that corresponds to the Unreal Editor Cloud Speed global actor target value. The clouds move from west to east for positive values and east to west for negative values.
Use the Cloud opacity and Cloud speed parameters to control clouds in the scene.
Dependencies
To enable this parameter, select Override scene weather.
Cloud opacity — Unreal Editor Cloud Opacity global actor target value
10
(default) | any value between 0
and 100
Parameter that corresponds to the Unreal Editor Cloud Opacity global actor target value, in percent. Zero is a cloudless scene.
Use the Cloud opacity and Cloud speed parameters to control clouds in the scene.
Dependencies
To enable this parameter, select Override scene weather.
Enable volumetric clouds — Option to enable volumetric clouds
off
(default) | on
Select this check box to enable volumetric clouds.
Dependencies
To enable this parameter, select Override scene weather.
Cloud coverage — Unreal Editor Cloud Density global target value
1.0
(default) | any value between 0
and 100
Parameter that corresponds to the Unreal Editor Cloud Density global actor target value, in percent.
Use the Cloud coverage parameter to control clouds in the scene.
Dependencies
To enable this parameter, select Override scene weather and Enable volumetric clouds.
Cloud layer altitude — Unreal Editor Layer Bottom Altitude global actor target value
6
(default) | any value between 5
and 20
Parameter that corresponds to the Unreal Editor Layer Bottom Altitude global actor target value, in km.
Dependencies
To enable this parameter, select Override scene weather and Enable volumetric clouds.
Fog density — Unreal Editor Set Fog Density and Set Start Distance target values
0
(default) | any value between 0
and 100
Parameter that corresponds to the Unreal Editor Set Fog Density and Set Start Distance target values, in percent.
Dependencies
To enable this parameter, select Override scene weather.
Rain density — Unreal Editor local actor controlling rain density, wetness, rain puddles, and ripples
0
(default) | any value between 0
and 100
Parameter corresponding to the Unreal Editor local actor that controls rain density, wetness, rain puddles, and ripples, in percent.
Use the Cloud opacity and Rain density parameters to control rain in the scene.
Dependencies
To enable this parameter, select Override scene weather.
Enable raindrops on camera lens — Option to enable raindrops on camera lens
off
(default) | on
Select this check box to enable raindrops on the camera lens.
Dependencies
To enable this parameter, select Override scene weather.
Snow density — Unreal Editor global actor controlling snow density
0
(default) | any value between 0
and 100
This parameter corresponds to the Unreal Editor global actor that controls snow density, in percent.
Dependencies
To enable this parameter, select Override scene weather.
More About
Sun Position and Weather
To control the scene weather and sun position, on the Weather tab, select Override scene weather. Use the enabled parameters to change the sun position, clouds, fog, and rain during the simulation.
Use Sun altitude and Sun azimuth to control the sun position.
Sun altitude — Altitude angle in a vertical plane between the sun rays and the horizontal projection of the rays.
Sun azimuth — Azimuth angle in the horizontal plane measured from the south to the horizontal projection of the sun rays.
Alternatively, select Enable geospatial sun to use Latitude, Longitude, Date, Time, and Time zone to control sun position. Enabling geospatial sun is useful to simulate conditions near the poles or at locations with disproportionate lengths of day versus night.
This table summarizes sun position settings for specific times of day.
Time of Day | Settings | Unreal Editor Environment |
---|---|---|
Midnight | Sun altitude: -90 Sun azimuth: 180 | |
Sunrise in the north | Sun altitude: 0 Sun azimuth: 180 | |
Noon | Sun altitude: 90 Sun azimuth: 180 |
Use Cloud opacity and Cloud speed to control clouds in the scene.
Cloud opacity — Unreal Editor Cloud Opacity global actor target value. Zero is a cloudless scene.
Cloud speed — Unreal Editor Cloud Speed global actor target value. The clouds move from west to east for positive values and east to west for negative values.
Select Enable volumetric clouds to use Cloud coverage and Cloud layer altitude to control volumetric clouds in the scene.
Cloud coverage — Unreal Editor Cloud Density global actor target value.
Cloud layer altitude — Unreal Editor Layer Bottom Altitude global actor target value.
This table summarizes settings for specific cloud conditions.
Cloud Condition | Settings | Unreal Editor Environment |
---|---|---|
Clear | Cloud opacity: 0 | |
Heavy | Cloud opacity: 85 | |
Heavy | Enable Volumetric clouds: Selected Cloud Coverage: 50 Cloud layer altitude: 6 |
|
Use Fog density to control fog in the scene. Fog density corresponds to the Unreal Editor Set Fog Density.
This table summarizes settings for specific fog conditions.
Fog Condition | Settings | Unreal Editor Environment |
---|---|---|
None | Fog density: 0 | |
Heavy | Fog density: 100 |
Use Cloud opacity and Rain density to control rain in the scene.
Cloud opacity — Unreal Editor Cloud Opacity global actor target value.
Rain density — Unreal Editor local actor that controls rain density, wetness, rain puddles, and ripples.
This table summarizes settings for specific rain conditions.
Rain Condition | Settings | Unreal Editor Environment |
---|---|---|
Light | Cloud opacity: 10 Rain density: 25 | |
Heavy | Cloud opacity: 10 Rain density: 80 |
Use Snow density to control snow in the scene.
Snow density — Unreal Editor global actor that controls snow density.
This table summarizes settings for specific snow conditions.
Snow Condition | Settings | Unreal Editor Environment |
---|---|---|
Heavy | Snow density: 50 |
Version History
Introduced in R2022bR2024a: New parameters available to simulate additional weather conditions
Use new weather parameters to simulate additional weather conditions.
Weather | Parameters |
---|---|
Sun |
|
Cloud |
|
Rain |
|
Snow |
|
R2023b: Import RoadRunner Scene into Unreal Engine Simulation Environment
Use the Simulation 3D Scene Configuration block to import a RoadRunner scene and simulate in the scene. To specify the source of scene, select the
Scene source parameter as RoadRunner
. Then, in the
Project parameter, specify the Filmbox (.fbx)
file
corresponding to the RoadRunner scene. For an example, see Import RoadRunner Scene into Unreal Engine Using Simulink.
R2023b: Camera View Improvements to View the Virtual World
Use the Simulation 3D Scene Configuration block to view the virtual world
from a camera positioned at a custom viewpoint. To set the custom viewpoint, select
Scene view as Custom
and set the Initial
viewer translation and Initial viewer rotation values. You
can also use keyboard shortcuts and mouse controls to navigate in the virtual world
scene.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)