Projects and Scenes
Use this page when you need to understand what is stored in an Oden project, how to edit a Streamer or Player project, and where the old reference-style settings now fit.
Project files
Oden projects are .vproj files using libconfig syntax.
They store scenes, entities, inputs, output settings, network links, plugin paths, and project-specific view settings.
| Project | Typical owner | Common path |
|---|---|---|
Streamer project |
Vehicle computer or Fleet Streamer service |
|
Player project |
Operator station or fleet-assigned Player profile |
Project-specific path chosen from |
Application config |
Local application instance |
Windows: |
Prefer editing projects through the GUI.
Edit .vproj files directly only for repeatable deployment changes that you can validate in Oden before shipping.
Edit a Streamer service project
When Oden Fleet Streamer runs as oden-streamer.service, stop the service before editing the same project in the GUI.
sudo systemctl stop oden-streamer.service
sudo oden-streamer /opt/oden-streamer/oden-vehicle-config.vproj
sudo systemctl start oden-streamer.service
The service runs as root, so the project file may be owned by root.
If saving fails, check ownership and reopen with the required permissions.
To edit a headless Streamer remotely, run Streamer with the configurator mode enabled and connect from a Player project that contains both a Remote Streamer entity and a Streamer Configurator entity.
The configurator streams the Streamer GUI to the Player so the project can be edited without a monitor on the vehicle computer.
Remote configurator workflow:
-
Start the Streamer with
--headless --configuratorand the project you want to edit. -
Start the Player and connect to the vehicle.
-
Add a
Streamer Configuratorentity to the Player scene. -
Select the entity and press the connect button in its
Remote Streamersection. -
Edit the Streamer GUI in the streamed configurator window.
-
Save the Streamer project and restart the service when the edited project is used by
oden-streamer.service.
| Some keyboard shortcuts may not work through the Streamer Configurator window. |
GUI areas
- Top menu
-
Use
Fileto open, save, import, and export project material. UseEditto undo, redo, copy, paste, add, and delete entities. By default,Paste Entityreplaces pasted video inputs with clone streams to the original inputs. Use Ctrl+Shift+V when you intentionally want to copy the original inputs instead. UseWindowfor fullscreen behavior. UseHelpfor license activation, license info, changelog, manual, and About.
Common menu entries:
| Menu | Use |
|---|---|
File |
Open, save, and reopen recent projects. Import or export scenes, cameras, and templates when part of a project should be reused. Close the current project or exit the application. |
Edit |
Cut, copy, paste, add child entities, and delete selected entities. Many actions show their current keyboard shortcut in the menu. |
Window |
Control display mode and fullscreen behavior where the current application exposes those actions. |
Help |
Open the changelog, this manual, About, license entry, license information, and license revocation actions. For license workflow details, see Activate Licenses. |
- Sidebar
-
Root Entityholds the active scene graph.Sceneslists scenes in the project.Raw Recordingrecords runtime video and scene data for later playback or support.NetworkandOutputappear on Streamer.Plugins,Com Channels,Statistics,Project Settings, andApplication Settingsare shared concepts. The Player also exposes Player-specific settings such as HMD options when those features are available. - 3D viewport
-
Hold the left mouse button and use W, A, S, and D to move the viewport camera. Use Q and E to move down and up. Use the home icon or Ctrl+Q to return to the origin. Oden uses a right-handed coordinate system:
-Zis forward,+Yis up, and+Xis right. Entity positions use meters, rotations use degrees, and scale is unitless.
Scenes and entities
A scene is a tree of entities.
The root entity holds child entities such as 2D video, text, models, output alignment, webview-facing video layout, Remote Streamer, and Streamer Configurator entities.
Add entities by selecting the intended parent and using Add Child.
Drag entities in the tree to rearrange them.
Parent position, rotation, and scale are applied to child entities, so an empty Entity is useful as a grouping node, pivot, or shared transform.
For stable projects, place related siblings under a clear shared parent instead of creating deep trees only to move several items together.
Common entity choices:
| Entity | Use |
|---|---|
|
Show a video input or a received stream in a Player scene. Configure placement, size, curvature, stereo eye visibility, border, chroma key, matte key, and input source. |
|
Place a static image in the scene. |
|
Place labels, debug values, or operator hints in a native scene. |
|
Load and inspect a 3D model. Use collision mesh settings only when the project requires interaction or physics-like picking behavior. |
|
Lay out child entities in rows or columns using web-style flex concepts. Use it for native multi-camera layouts when a webview is not controlling placement. |
|
Receive video, audio, network stats, and Streamer feedback from a vehicle. Configure network links, audio receive/send, video codec expectations, reorder behavior, and stream diagnostics here. |
|
Open the Streamer GUI from the Player side. Useful for headless Streamer setup and service deployments. |
|
Map Streamer-side video sources into the encoded output. Use it when the Streamer output is composed from several video sources or when alignment must be controlled before encoding. |
|
Loads a |
|
Creates one clonable texture from several video sources. Use it when several sources should be combined before another entity displays or clones them. |
|
Mirrors the content of another scene. Use it to reuse shared scene content, such as a dashboard or common overlay, without duplicating the original entities. |
Useful entity details:
- 2D Image
-
Loads static scene graphics from
.png,.jpg, or.jpegfiles. Alpha is supported for formats that carry transparency. Convert unsupported image formats before importing them. - Text
-
Exposes text content, color, glow, glow size, glow color, font, font height, and resolution settings. Use it for in-scene labels and instrumentation that should stay native to Oden rather than inside a webview.
- Model
-
Loads glTF models. Use
Clone Modelor instanced rendering when a project needs several copies of the same model.Openloads the model file. Environment lighting can improve reflections but increases GPU work.Inspect Modelis for temporary inspection; changes made there are not saved back to the source asset. Collision meshes are mainly for plugin interaction and project-specific picking workflows. - External Scene
-
Keeps scene content in a separate
.vscenefile. Use it for version-controlled shared scenes, reusable camera rigs, or scenes that several projects import. Child entities remain editable in Oden.Save Scenewrites the.vscenefile, andAuto Savekeeps the external scene updated when the parent project is saved. - Streamer Configurator
-
Connects a Player-side configurator window to a Streamer GUI. Use direct server address entry when discovery cannot find the Streamer. Automatic discovery works best on the same local network. Use
Bind AddressorBind IPwhen the computer has several interfaces and the configurator should use a specific one. The configurator UI scale follows the Player-side setting, the top-right controls set maximum width and height, and the bottom-right handle resizes the streamed window.
For camera/source configuration, see Camera Inputs. For Player layout details, see Player Layout.
Project settings
Project settings are saved inside the .vproj file.
Use them for behavior that should travel with the project rather than the local computer.
Important settings:
- Startup Scene
-
Scene opened when the project starts.
- Background
-
Default background mode or color. Use
Default,Default, Only For Orbit Camera, orColorwhen available. SetBackground Colorwhen the project should render against a fixed color. - Camera Eye
-
Which eye the monitor viewport shows when stereo/HMD output is configured.
- Show Grid and Grid Height
-
Viewport grid display and height.
- Force Feedback
-
Enables force feedback for supported joysticks.
- Auto Video Packing
-
Automatically packs visible video into the encoded Streamer output. Use per-megapixel bitrate in stream settings when output resolution changes dynamically.
- View
-
Field of view, position, rotation, project-default view, and saved states. Use
Reset View To Project Defaultto return to the saved view. UseSet View As Project Defaultafter positioning the viewport for the production layout.Save Current Staterecords a named view state, andClear All Saved Statesremoves the saved list.
Save the project after changing project settings. For production projects, reopen the project and verify that the selected startup scene and saved view are still correct.
Application settings
Application settings are local to the computer and application config file. Use them for display and interaction behavior that should not necessarily travel with every project file.
- Window Mode
-
Windoweduses a normal resizable window.Windowed Fullscreenfills the screen without native fullscreen.Fullscreengives the lowest display latency on one monitor.Spanning Fullscreenis windowed fullscreen across multiple screens. - Monitor
-
Selects the display used by fullscreen and windowed-fullscreen modes when several monitors are attached.
- Hide GUI on Startup
-
Starts the Player with commissioning controls hidden. The GUI can still be toggled with the configured shortcut, normally Ctrl+H.
- Inhibit Mouse Look
-
Prevents mouse motion from moving the viewport camera. Enable this for operator stations where the mouse is part of an external UI.
- VSync
-
Disable VSync for lowest latency unless a project-specific display setup needs it.
- MSAA
-
Multisample anti-aliasing. Enable only when the visual quality benefit is worth the extra GPU cost.
- Rendering Mode
-
Selects display projection behavior such as single projection, separate projection, spanning fullscreen, cylindrical, or dome-specific projection modes where available. Use normal single-display modes unless the deployment has a measured multi-projector or dome requirement.
- Auto Template
-
Path to a
.vtemplatefile applied to loaded projects. Use it for repeatable deployment defaults, not for ad-hoc project edits. - Camera Calibration
-
Path to stored
.cameracalibration presets. The path may contain environment variables and must end with a slash, for exampleC:/dev/Cameras/. - Shrink View When GUI Visible
-
When enabled, Oden uses only the visible viewport while the GUI is shown. When disabled, Oden uses the full window as the viewport even behind the GUI, so entities do not move when the GUI is hidden.
- Keyboard shortcuts
-
Many menu actions show their shortcut in the menu. Keep shortcut changes documented for operator stations. Each shortcut uses a key plus optional Ctrl, Shift, Alt, or Super modifiers. Modifiers can be combined. Set a shortcut to
[Inactive]when the action must not be available from the keyboard.
Additional local behavior settings can include scroll mode, inverted mouse, GUI color mode, full project files, no prompt on exit, and only-show-exit-dialog.
Use these as deployment controls for the local workstation, not as project behavior that should follow the .vproj to another machine.
Local files and directories
Application config, licenses, dome data, and global plugins are local to the machine.
Do not assume they travel with a .vproj project file.
| Data | Typical location |
|---|---|
Application config |
Windows: |
License data |
Stored under the per-application Oden data root for the activated user.
Typical roots are Windows |
Project plugins |
Project file directory or configured |
Global plugins |
Directory beside the Player or Streamer executable. |
Dome and calibration assets |
Project-specific path or configured calibration preset directory. |
Launch modes
Use command-line flags in service files, startup scripts, or troubleshooting sessions.
| Flag | Use |
|---|---|
|
Linux Streamer mode where the GUI is not rendered. Use it for services, vehicle computers, and embedded platforms. |
|
Allows a Player |
|
Runs the Player with the window hidden. Toggle with Ctrl+Shift+H. |
|
Allows more than one Streamer instance on the same computer. Use only when ports, project files, licenses, and capture devices are intentionally separated. |
|
Passes plugin-specific parameters from the launcher instead of storing them in the project. |
For service deployment, see Deployment.