Viewport
HoloOcean simulations are run in a pop-up window known as the “viewport”.
Hotkeys
There are a few hotkeys you can use to control the viewport when the window is open and the
environment is being ticked (with calls to tick()
or step()
).
The “AgentFollower”, or the camera that the viewport displays, can be manipulated as follows:
Key |
Action |
Description |
---|---|---|
|
Toggle camera mode |
Toggles the camera from a chase camera and perspective camera, which shows what the agent’s camera sensor sees. |
|
Toggle spectator mode |
Toggles spectator mode, which allows you to free-cam around the world with the mouse or WASD commands. |
|
Move camera |
Move the viewport camera around when in spectator/free-cam mode. |
|
Descend |
For spectator/free-cam mode |
|
Ascend |
For spectator/free-cam mode |
|
Turbo |
Move faster when in spectator/free-cam |
|
Cycle through agents |
When not in spectator/free-cam mode, cycles through the agents in the world |
|
Toggle HUD |
The HUD displays the name and location of the agent the viewport is following, or the location of the camera if the viewport is detached (spectator mode) Note that this will interfere with the ViewportCapture sensor |
Opening Console
Pressing ~
will open Unreal Engine 5’s developer console, which has a few useful
commands. See the Unreal Docs
for a complete list of commands.
Useful Commands
stat fps
Prints the frames per second on the screen.
Using HoloOcean Headless
On Linux, HoloOcean can run headless without opening a viewport window. This can happen automatically, or you can force it to not appear.
Headless Mode vs Disabling Viewport Rendering
These are two different features.
Disabling Viewport Rendering is calling the
(should_render_viewport()
)
method on a HoloOceanEnvironment
. This can be
done at runtime. It will appear as if the image being rendered in the viewport
has frozen, but cameras other sensors will still update correctly.
Headless Mode is when the viewport window does not appear. If Headless Mode is manually enabled, it will also disable viewport rendering automatically.
Forcing Headless Mode
In holoocean.make()
, set show_viewport
to False
.
Note
This will also
disable viewport rendering
(should_render_viewport()
)
If you still want to render the viewport (ie for the
ViewportCapture
) when running headless,
simply set
(should_render_viewport()
)
to True
Automatic Headless Mode
If the engine does not detect the DISPLAY
environment variable, it will
not open a window. This will happen automatically if HoloOcean is run from a
SSH session.
Note
This will not disable viewport rendering, meaning the simulaito nwill still be generating the displayed images, but they will not be displayed. When running over an SSH session, be sure to manually disable viewport rendering to avoid wasting resources.