Adding Assets #

The main repository for the SVL Simulator does not contain art assets. We have moved these assets to external repositories so users can easily add their own. Adding assets is only supported when cloning simulator source with Unity Editor in developer mode.

Currently there are several open-source examples.

Environments:

Vehicles:

NPCs:

Pedestrians:

Table of Contents

Adding an Asset top#

All assets have been removed from Simulator source code. When working in developer mode and building custom binaries, users must build assets locally for npcs and pedestrians.

Assets need to be cloned into a specific location in the project:

  • simulator/Assets/External/Environments for Environments
  • simulator/Assets/External/Vehicles for Vehicles
  • simulator/Assets/External/NPCs for NPCs and Bicycles
  • simulator/Assets/External/Pedestrians for Walkers, Scooters and Animals

Clone the desired asset into the appropriate folder. Do not change the name of the folder that the asset is cloned into, it must match the name of the asset.

For environments: simulator/Assets/External/Environments/Mars must contain simulator/Assets/External/Environments/Mars/Mars.unity

For vehicles: simulator/Assets/External/Vehicles/Rover must contain simulator/Assets/External/Vehicles/Rover/Rover.prefab

For npcs: simulator/Assets/External/NPCs/DefaultNPC must contain simulator/Assets/External/NPCs/DefaultNPC/Jeep/Jeep.prefab

For pedestrians: simulator/Assets/External/Pedestrians/Walkers must contain simulator/Assets/External/Pedestrians/Walkers/Bob/Bob.prefab

Setup an Asset top#

  • For map assets setup see here.
  • For ego vehicle asset setup see here.
  • For npc asset setup see here.
  • For pedestrian asset setup see here.

Building Assets top#

Assets are built using the same build script as the simulator. Follow the build instructions through step 17.

NPCs and Pedestrians must be built locally for custom binaries. They must be added to AssetBundles folder to be loaded by the simulator binary or in editor source in developer mode.

IMPORTANT Windows and Linux support must be installed with Unity to build assetbundles

Asset development top#

In the Unity editor, the menu entry Simulator > Development Settings opens a panel of settings helpful while developing and testing assets.

At the top you will find general information about the cluster instance your editor represents such as the web user interface instance it is linked to and under which id. Below there are convenience buttons to link the instance without opening the Loader scene, managing the cluster on web user interface and to refresh the displayed data.

Version lets you choose or enter the version string that is used to connect with web user interface and influences linking and asset version matching as served by web user interface to the simulator in the Unity Editor.

The following simulation settings only apply when you enter play mode from a Map scene instead of the Loader scene. You can configure list of simulation variables such as interactive, time of day that influcence the behaviour of the simulation as you hit play in the Unity Editor.

Ego Vehicle Setup lets you choose and configure the Ego Vehicle used for development runs. You can choose between cloud and local vehicles.

For local vehicles, this lists the vehicle prefabs found under simulator/Assets/External/Vehicles/, and allows you to enter a json sensor configuration to add to the vehicle upon simulation start. The sensor json configuration supports web user interface provided sensors referenced by plugin Id - these will be downloaded as required. It also supports local source code of sensors found under simulator/Assets/External/Sensors/ if you enable the Debug Mode under Simulator > Developer Debug Mode and (as of 2021.2.2) also have an Assetbundle of your sensor built once.

For cloud vehicles, it lists all Vehicles in your web user interface library and their sensor configurations, this is intended to quickly iterate on Map development with an already existing vehicle.

Lastly, you can select which NPCs will be part of the simulation run.