Watch a long document instead of reading it.
For a document that has a presentation, the viewer shows a Play button. It opens a full-screen, narrated slideshow of the document's summary, on the web and in the native app.
This page has no screenshot of the Player on purpose. A presentation costs money to generate (a language model plans it, an image model draws it, and a voice narrates it), so the fleet showcase describes the Player in words rather than generating one for a capture.
Plan, make the media, assemble.
Generation runs only on the workstation, never in the production service, and only for documents in collections that are enabled for it.
Plan
A language model reads the document's Markdown and plans a short sequence of scenes, with a limit on how many get a moving clip.
Make the media
Each scene gets a still image, the hero scenes get short clips, and every scene gets narration.
Assemble
The scenes become one manifest, checked against its schema and sealed with an integrity hash, then published all or nothing.
Play
The web and native players stream the media from Lectern and verify each asset's hash before showing it.
Open format, capped cost, and no hotlinking.
- An open manifest
- A presentation is a manifest in a standalone PubMark profile,
org.renkara.chirp.player/0.1, written as canonical JSON with whole-number milliseconds. It is not tied to Lectern, so another producer can emit the same format and any conforming player can play it. - A spend cap
- Each run is estimated first, and a hard per-document cap stops it before any money is spent. Runs are idempotent: unchanged text with the same settings regenerates nothing.
- Assets by reference only
- The manifest names its media by identifier, and players fetch them from the Lectern host and check each hash. A conforming player cannot be pointed at media on someone else's server.
- Seeking and resume
- Media streams with byte-range support so the native player can seek, and the native app remembers where you stopped and supports Handoff between devices.