---
title: "Billboard"
section: "Layout & Helpers"
order: 1400
description: "Billboard — Vuer documentation"
---

# Billboard

The `Billboard` component wraps children so they always face the camera. This is ideal for:

- Creating labels that are always readable
- Building floating UI elements
- Displaying sprites and icons
- Making annotations visible from any angle

## Basic Usage

A minimal example that creates a billboard with text:

```python
from vuer import Vuer, VuerSession
from vuer.schemas import DefaultScene, Billboard, Text, OrbitControls

app = Vuer()

@app.spawn(start=True)
async def main(sess: VuerSession):
    sess.set @ DefaultScene(
        Billboard(
            Text(
                "I always face you!",
                key="billboard-text",
                color="orange",
                fontSize=0.1,
            ),
            key="billboard",
            position=[0, 0.5, 0],
        ),
        bgChildren=[
            OrbitControls(key="OrbitControls")
        ],
    )

    await sess.forever()
```

## Key Parameters

| Parameter | Type | Default | Description                       |
| --------- | ---- | ------- | --------------------------------- |
| `follow`  | bool | `True`  | Whether to follow camera rotation |
| `lockX`   | bool | `False` | Lock rotation on X axis           |
| `lockY`   | bool | `False` | Lock rotation on Y axis           |
| `lockZ`   | bool | `False` | Lock rotation on Z axis           |

## Learn More

For detailed examples of using `Billboard`, see:

- [3D Text Tutorial](/examples/visualization/3d_text) - Complete text rendering guide
