-
Notifications
You must be signed in to change notification settings - Fork 1
User interface
The simulator is composed of 5 main components:
- Menu bar
- 3D view
- Inspector / Tests
- Simulation options
- Timeline

The preferences menu has a few options to improve rendering performances:
- Shadows: toggle shadow rendering
- Antialiasing: toggle antialiasing (MSAA 4x + FXAA)
Inactive drones and UI panels visibility can be toggled in the view menu.
The 3D view renders the simulation (drones, base, search team's target position) while providing tools and helpers to navigate and interact with the scene.
A toolbar is located in the upper-left corner:
- A selected tool is always bound to the left mouse
- A tool action is relative to the hovered ground position by the mouse cursor
💡 Right-clicking on the ground will deploy a new drone at the same height as the base deployment height (top of the search team's target beam).
Sets the location of the search team's target position on the ground.
(a)
(b)
(c)
Some tools are provided to control the camera:
- View panning (a)
- Zoom in/out (b)
- Rotate camera (c)
Navigation tools are also mapped to keyboard + mouse combos:
- Middle mouse: rotate view
- Middle mouse + shift: pan view
- Scroll wheel: zoom in/out
Visualization options are located in the upper-left corner:
- Toggle drone vision rendering
- Toggle top-down/perspective camera
- Reset camera
(a)
(b)
Drone vision rendering disabled on image (a) vs enabled on image (b).
💡 Rotating the camera will automatically switch to the perspective camera.
(a)
(b)
Perspective camera on image (a) vs top-down camera on image (b).
The timeline provides controls to pause, resume and reset the simulation. It also records simulation frames: a simulation step which provoked a system change compared to the previous step (ex: drone motion, drone state modification, ...).
Dragging the cursor in the timeline's frame widget allows you to step back/forward the simulation or directly jump back in time.
Here are a few options and actions for the simulator:
- Kill Inactive: remove inactive drones from the system
- Graph display: for each drone draw a link to its visible neighbors of lower id
- Protocol: switches to a different protocol (and tries to auto migrate drone states). See how you can add your own protocol here.
- Movement time: how much time a drone's movement animation takes.
💡 Setting Movement time to 0ms will disable animated motion (max speed).
The left panel allows you to inspect the state of every drone for each frame of the simulation.
All tests operations (saving and loading) happens in the specified folder given to the Test directory path.
The bottom part of the test panel allows you to export the current frame as a test in the Test directory path. A test is written in a readable JSON format, see how you can write tests manually here.
A test will register from the selected frame:
- The current protocol
- The search team's target position
- All drones states
💡 Checking position relative to D will format all coordinates with an expression string parametrized by the drone's maximum movement distance. See write tests manually here.
To load a test, simply use the right arrow next to its name.
💡 the list can be refreshed by clicking on the button next to the Test directory path.
If a protocol raises an exception, the simulation stops and the current simulation step is discarded. An error message (a) is then shown in a popup window alongside the calculated drone state (b) that raised the exception:
(a)
(b)
💡 This popup doesn't block inputs, which means you can still move the camera around, interact, ...