Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions quest/m0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ cameras, packaging, signing) that one monorepo no longer pays off.
- **Pin:** moq is a `moq` git submodule whose crates are path dependencies,
as in moq.pro, so the studio compiles against one moq checkout.
- **moq-scene** moved here with the app, its only consumer. The
[viewer-side composition](/quest/m1/compose/README.md) epic (now m1) moved whole:
[viewer-side composition](/quest/m2/compose/README.md) epic (now m2) moved whole:
browser composition ships as a package from this repository layered on
`@moq/watch`, and the server composite is a headless binary here rather
than a moq-cli subcommand, so moq never depends on the studio.
Expand All @@ -77,7 +77,7 @@ broadcast reaches viewers, not the fallback. Sources are not published to the
relay by default (decided 2026-11-03 on
[moq-dev/studio#21](https://github.com/moq-dev/studio/pull/21)), because
each encoding costs an encoder session and consumer GPUs have few, so the
[viewer-side composition](/quest/m1/compose/README.md) epic moved to m1.
[viewer-side composition](/quest/m2/compose/README.md) epic moved to m1.
Overlays and animation render into the program here, and travel to viewers
in the layout track only once that epic lands.

Expand Down
13 changes: 7 additions & 6 deletions quest/m1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,8 @@

## Goal

The work held until m0 ships. A studio broadcast can be composed by its
viewers and by a server from the sources' own tracks and a layout track,
matching the program the studio composites, so a viewer can toggle and
prioritize elements. The studio gains features m0 left out: overlay assets
and restarts, and isolated guest recordings.
The work held until m0 ships. The studio gains features m0 left out:
overlay assets and restarts, and isolated guest recordings.

## Plan

Expand All @@ -17,11 +14,15 @@ default (decided 2026-11-03 on
encoding every source for viewers costs more encoder sessions than a consumer
GPU has. Viewer-side composition waits until m0 ships.

Viewer-side composition moved to m2 on 2026-11-07 (maintainer, on
[moq-dev/studio#97](https://github.com/moq-dev/studio/pull/97)): no viewer
can fetch a source's track until a source is published independently, which
is m2.

Broadened 2026-11-04 (maintainer, /quest-plan): m1 also holds studio
features planned as follow-ups of m0 work but not needed to ship it, rather
than opening an m2 for them.

## Required

- [Viewer-side composition](/quest/m1/compose/README.md) - sources as their own tracks plus a layout track, composed by viewers and by a server
- [Rune UI spike](/quest/m1/rune-spike.md) - the monitors prototyped on Rune, with a verdict on moving the UI off egui
5 changes: 5 additions & 0 deletions quest/m2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ Opened 2026-11-05 (maintainer, /quest-plan) for publishing a source
independently, which no service uses yet. A quest moves up to m0 or m1 when a
consumer appears.

Viewer-side composition moved here from m1 on 2026-11-07 (maintainer, on
[moq-dev/studio#97](https://github.com/moq-dev/studio/pull/97)): it composes
from sources published independently, so it follows that quest.

## Required

- [Published independently](/quest/m2/publish-independently.md) - a source opts out of the program and publishes its own track for services that place it themselves
- [Viewer-side composition](/quest/m2/compose/README.md) - independently published sources plus a layout track, composed by viewers and by a server
- [Overlays drop their Blitz panic guard](/quest/m2/overlay-blitz-release.md) - the next Blitz release lets overlay checks parse without `catch_unwind`
14 changes: 10 additions & 4 deletions quest/m1/compose/README.md → quest/m2/compose/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,15 @@ viewer composes from fetchable tracks matches the program today. When this
epic starts, define the reference picture (such as the program with the
independent sources layered over it) and replan those bullets.

Moved to m2 on 2026-11-07 (maintainer, on
[moq-dev/studio#97](https://github.com/moq-dev/studio/pull/97)): nothing in m1
can fetch a source's track, so nothing can read a layout. The layout waits on
[Published independently](/quest/m2/publish-independently.md), and the
browser, server, and controls quests wait on it through the layout.

## Required

- [Layout track](/quest/m1/compose/layout.md) - the live scene state as a hang JSON track on the media clock, specified in the hang draft
- [Browser composition](/quest/m1/compose/browser.md) - `@moq/watch` composes a broadcast with a layout track through moq-scene's browser build
- [Server composition](/quest/m1/compose/server.md) - a headless compositor renders the program from sources and layout, headless
- [Viewer controls](/quest/m1/compose/controls.md) - viewers toggle elements and the layout's priorities steer what they fetch
- [Layout track](/quest/m2/compose/layout.md) - the live scene state as a hang JSON track on the media clock, specified in the hang draft
- [Browser composition](/quest/m2/compose/browser.md) - `@moq/watch` composes a broadcast with a layout track through moq-scene's browser build
- [Server composition](/quest/m2/compose/server.md) - a headless compositor renders the program from sources and layout, headless
- [Viewer controls](/quest/m2/compose/controls.md) - viewers toggle elements and the layout's priorities steer what they fetch
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ studio, compared within a stated tolerance.

## Required

- [Layout track](/quest/m1/compose/layout.md) - what the browser composes
- [Layout track](/quest/m2/compose/layout.md) - what the browser composes
- [moq-video's browser backends are pinned](/quest/m0/pin-browser-video.md) - browser frames into wgpu
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ of them is on, at the highest priority among them.

## Required

- [Browser composition](/quest/m1/compose/browser.md) - the viewer that exposes the toggles
- [Browser composition](/quest/m2/compose/browser.md) - the viewer that exposes the toggles
14 changes: 14 additions & 0 deletions quest/m1/compose/layout.md → quest/m2/compose/layout.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,17 @@ viewer can fetch; the rest reach viewers only in the program.
Decided 2026-11-05 (maintainer, /quest-plan): the layout serializes the
scene model with scene sources, published scenes, and audio scenes, not the
canvases and mixes they replaced.

Decided 2026-11-07 (maintainer, on
[moq-dev/studio#97](https://github.com/moq-dev/studio/pull/97)): this quest
waits on [Published independently](/quest/m2/publish-independently.md), since
until then no viewer can fetch a track the layout names, and the epic moved to
m2 with it. Once that lands, replan this quest around the epic's reference
picture, which decides what the layout carries. Rejected: replanning now
around the program with the independently published sources layered over it,
and building the full-scene layout as written above while no viewer can use
it.

## Required

- [Published independently](/quest/m2/publish-independently.md) - the source tracks a viewer can fetch, which the layout names
2 changes: 1 addition & 1 deletion quest/m1/compose/server.md → quest/m2/compose/server.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ and document it in `README.md`.

## Required

- [Layout track](/quest/m1/compose/layout.md) - what the server composes
- [Layout track](/quest/m2/compose/layout.md) - what the server composes
2 changes: 1 addition & 1 deletion quest/m2/publish-independently.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ user does, so `README.md` documents them.

## Related

- [Viewer-side composition](/quest/m1/compose/README.md) - the m1 epic that composes from independently published sources
- [Viewer-side composition](/quest/m2/compose/README.md) - the epic that composes from independently published sources