# Experimental features

> What is experimental right now, what that word promises, and how to turn each one on. Included with Studio and above.

- Canonical: https://realtimeavatar.ai/docs/experimental
- Updated: 2026-08-26

Some capabilities ship before their shape is settled. Rather than hide them behind a flag you have to ask us for, they are on your account from **Studio** up, opt-in per call, and listed here so you can see exactly what you are taking on.

## What "experimental" promises

It is a statement about the request shape, not a warning about quality:

- **The shape may change in a minor release**, without the deprecation window a stable field gets. Pin an exact SDK version if that matters to you.
- **It may be inert while it rolls out.** A call that asks for an experimental capability always connects and always behaves like a normal call; the extra behaviour may simply not happen yet. Nothing errors and nothing is billed differently.
- **It is off unless you ask.** Omit the field and your call is byte-identical to one made before the feature existed, so nothing that ignores this page can be affected by anything on it.

What the word never covers is a **trust boundary**. Inputs that are server-owned stay server-owned on every call — experimental or not — and that is enforced at the mint, not by convention. If a capability lets a conversation change something, the bounds are still yours to write and still unreachable from a browser.

## The register

Everything currently experimental, in full. When this list changes, this page changes with it — the plan bullet and this table read the same register.

### Runtime edit

The set behind your character is re-dressed while the call is running, following the conversation within a brief you write.

| Turn it on | `video.edits.live` — see [the reference](https://realtimeavatar.ai/docs/video#letting-the-look-follow-the-conversation) |
| --- | --- |
| Today | Accepted and carried end to end: the call connects and runs normally, and your brief is applied to the session. The re-dress itself does not reach every capacity tier yet, so a call may run to the end on its opening set. Nothing fails and nothing is charged differently when it does. |
| Included with | Studio and above |

## Using one

Experimental capabilities are configured exactly like stable ones — in your `session` policy, server-side, next to your key. There is no separate endpoint, header or flag to set:

```ts
session: async ({ avatarId }) => ({
  instructions: character.prompt,
  video: {
    edits: {
      instruction: "her studio at golden hour",   // stable: the opening set
      live: {                                     // experimental: runtime edit
        rules: "only change the room and the light, never her face or clothes",
        cooldownSeconds: 30,
      },
    },
  },
})
```

Because the opt-in is a field rather than an account setting, you can ship a call path that uses one and a call path that does not, in the same app, on the same avatar.

## Telling us it went wrong

These are the surfaces we most want to hear about, and the ones where a small report is worth the most. Include the `session_id` from the grant — it is the one handle that finds a specific call.

---

Realtime Avatar — realtime AI avatar API & SDK. Docs: https://realtimeavatar.ai/docs · Agent guide: https://realtimeavatar.ai/llms.txt
