# Project Configuration

Choose portal-managed configuration, native Oden project layout, or webview video layout.

Last validated: 2026-05-05

Use this page when you need to decide how the operator layout and vehicle project should be configured.

## Preferred portal configuration

For self-serve projects, the preferred path is portal-managed configuration. The portal should let you create the vehicle/operator setup, choose the first layout, and assign the web-based controls without editing `.vproj` files by hand.

That portal configuration can drive:

-   Which vehicle an operator can access.
    
-   Which controls, gauges, and widgets appear.
    
-   Which web project or operator page opens.
    
-   Which video regions are visible to the operator.
    

## Native Oden project layout

Use native `.vproj` configuration when you need direct control over scene entities. This is the fully flexible path.

Native layout tools include:

Entity positions

Place 2D video, images, text, models, webviews, and other entities directly in the scene.

Flexbox layout

Arrange child entities in rows or columns using Oden’s native flexbox entities.

Output Alignment

Arrange Streamer-side video sources before encoding.

Project Settings

Store startup scene, view, auto video packing, and other project-specific behavior.

Application Settings

Store local display behavior such as fullscreen, hidden GUI, and VSync.

For the detailed low-level model, see [Projects and Scenes](projects-and-scenes.md) and [Player Layout](player-layout.md).

## Webview OdenVideo layouts

Use webview layout when the operator UI is a web app. The web page creates DOM elements for video regions, and Oden draws video into those regions.

In React or plain HTML, the core idea is:

```html
<div id="front-camera" data-camera-id="Front"></div>
```

```javascript
const odenClient = getOrCreateOdenLayoutClient();
odenClient.registerVideo("front-camera", document.getElementById("front-camera"));
```

For multi-vehicle layouts, use `vehicle_name:stream_name` so Oden can map the DOM region to the correct Remote Streamer.

See [Webview and JavaScript SDK](../integrate/webview-sdk.md) for the SDK details.
