2026 10 original performance roadmap - SyberLabs/RISE GitHub Wiki
RISE Roadmap
From Model-Authored Scores to Realtime Performance
Status: Product and architecture direction
Date: October 2026
0. Thesis
RISE is a runtime for model-authored experiences.
A model should not be limited to producing words into a chat box. RISE gives it a controlled audiovisual environment in which it can coordinate:
- language
- voice
- imagery
- sound
- pacing
- depth
- interaction
- reader-directed changes
The long-term product is not merely a renderer for completed model output.
RISE becomes a harness in which a model performs.
There are two distinct modes of authorship.
Composition
The model creates a complete audiovisual score before playback.
intent
↓
model
↓
Experience Program
↓
RISE
↓
performance
Scriptorium already approximates this model.
Live Performance
The model speaks and modifies the environment during the same conversational act.
reader
↓
model session
├─ speech
├─ visual actions
├─ audio actions
├─ pacing actions
└─ interaction
↓
RISE
These modes share the same semantic language and runtime. They differ only in when the specification arrives.
1. Architectural Law: One Semantic Center
rise.experience-program.v1 remains the canonical durable representation of a RISE experience.
It already describes the relationships RISE needs:
- movement
- visual
- audio
- narration
- pace
- swell
- thread
- transition
and anchors them to stable source coordinates.
The Experience Program is therefore the semantic center of RISE.
rise.current.v1 remains useful, but it should be understood as a simplified model-facing adapter, not the final expressive language of RISE.
Current
↓
Experience Program
Scriptorium
↓
Experience Program
Live events
↓
Experience Program
Workshop
↓
Experience Program
RiseSDK
↓
Experience Program capabilities
No second runtime and no competing score format should emerge.
2. Gate 0: Prove Realtime Host Interleaving
Before further investment in ChatGPT-specific Live architecture, determine what ChatGPT Live actually permits.
The decisive question is:
Can GPT-Live modify a persistent RISE interface multiple times during one spoken assistant turn?
A voice interface alone does not make RISE realtime.
If interaction remains:
reader speaks
↓
model finishes reasoning
↓
tool call
↓
RISE performs
then the system remains turn-based.
The required experiment is deliberately tiny.
Expose a persistent RISE surface with one operation:
rise.setVisual({
visual,
intensity
})
Ask GPT-Live to explain something with several semantic stages while changing the visual between stages.
Instrument:
VOICE_START
TOOL_CALL
VISUAL_CHANGE
TOOL_CALL
VISUAL_CHANGE
VOICE_END
The successful ordering is:
VOICE_START
↓
speech
↓
RISE mutation
↓
speech continues
↓
RISE mutation
↓
speech continues
↓
VOICE_END
Also determine whether the persistent widget can emit reader interaction back into the same Live conversation without requiring a new conversational session.
Gate 0 outcomes
If host interleaving works: ChatGPT Live becomes a viable host for canonical Live RISE.
If tool calls interrupt speech but speech resumes afterward: still viable. Tool calls themselves become semantic synchronization points.
If all RISE actions occur only before or after a completed assistant turn: ChatGPT remains a Composer host, not the canonical Live host.
RISE should not distort its architecture to simulate realtime inside a fundamentally turn-based host.
3. Phase 1: Consolidate the Semantic Architecture
Before adding capabilities, explicitly codify the relationship between the existing systems.
The architecture should state:
Experience Program
= durable score
Experience Events
= changing score over time
Session
= compiled executable presentation
Player
= temporal execution
Chamber
= presentation environment
Current becomes:
rise.current.v1
↓
small Experience Program
Scriptorium becomes:
capability context
↓
model
↓
complete Experience Program
Live becomes:
model actions
↓
Experience Events
↓
evolving Experience Program
This phase should remove conceptual ambiguity before adding another protocol.
4. Phase 2: Renderer Manifests
RISE already contains a substantial visual system, but model-facing Live currently exposes only a tiny fraction of it.
Every usable visual renderer should receive a formal manifest.
Example:
id: attractor
description:
persistent strange-attractor filaments of light
tags:
chaotic
continuous
atmospheric
abstract
requirements:
canvas2d
parameters:
intensity number 0..1
speed number 0..3
density number 0..1
palette enum
reducedMotion:
supported
estimatedCost:
low
The manifest must be machine-readable and validated against the renderer implementation so metadata and actual capabilities cannot drift.
This turns the existing collection of renderers into an addressable instrument library.
5. Phase 3: Queryable Capability Catalog
The model should not receive an enormous static list of every visual RISE can perform.
RISE should expose a bounded catalog interface.
Conceptually:
catalog.search({
query: "quiet luminous topology"
})
catalog.describe({
id: "harmonograph"
})
Search results should expose:
- id
- description
- tags
- parameters
- required capabilities
- performance class
- accessibility properties
- visual family
The catalog should include existing:
- procedural surfaces
- field renderers
- work engines
- admitted image collections
- audio capabilities
- voices
- later RiseSDK renderers
Model selection becomes retrieval rather than memorization.
6. Phase 4: Realtime Experience Events
This is the foundational Live abstraction.
Introduce a realtime protocol above the durable Experience Program.
For example:
rise.experience-events.v1
The model should be able to progressively propose:
experience.open
source.open
source.append
cue.add
cue.update
cue.remove
source.seal
experience.complete
A cue uses the same vocabulary as the Experience Program.
Example:
cue.add
lane: visual
anchor:
source: answer-1
fromCharacter: 0
toCharacter: 86
cue:
kind: field
renderer: attractor
config:
intensity: 0.45
Then:
cue.add
lane: audio
anchor:
same source span
cue:
kind: soundscape
soundscapeId: night-drive
The realtime reducer continuously produces a valid Experience Program prefix.
No separate Live score format should exist.
7. Phase 5: Commit Horizon
Realtime authorship requires explicit temporal authority.
The model may revise the future.
It may not rewrite the reader's experienced past.
PAST PRESENT FUTURE
██████████████ | ████ | ░░░░░░░░░░░░
immutable locked editable
The runtime should distinguish:
Committed history
Already presented. Immutable.
Active window
Currently spoken or rendered. Only safe bounded controls may apply.
Future score
May still be modified by the model.
This gives RISE a foundational law:
Generation may revise anticipation, never history.
The existing Live reducer's immutable committed segments are the beginning of this model. The commit horizon makes it finer-grained.
8. Phase 6: Full Live Lane Exposure
Once Experience Events exist, expose the compositional abilities Scriptorium already possesses.
A live model should eventually be able to control:
visual
audio
narration
pace
thread
swell
transition
Not all of these need to arrive simultaneously.
The first useful subset is:
text
visual
visual parameters
audio
pace
That alone is enough to establish a substantially richer medium.
Visual overlap is explicitly deferred.
One active visual lane is sufficient for the first full product.
SPAN A SPAN B SPAN C
attractor → neural → generated-field
rain → silence → tone
slow → normal → deliberate
9. Phase 7: Reader Control Channel
Realtime does not only mean the model changes RISE.
The reader must be able to redirect the environment while it is running.
The deterministic local grammar remains the immediate floor:
more vibrant
calmer
slower
faster
less dense
pause
resume
These should map directly to bounded typed operations without inference.
Everything outside that grammar may be sent to the active model session.
Example:
reader:
"Show me that as a diagram."
↓
model:
catalog.search(...)
visual.set(...)
The target should remain:
visible response begins within approximately one second for local controls.
10. Phase 8: Local Neural Voice Clock
Browser speechSynthesis should remain a compatibility fallback, not the canonical voice architecture.
Build a VoiceRenderer boundary that can accept local lightweight neural models.
The renderer contract should expose more than speak(text).
It should produce:
audio chunk
word start
word end
character span
duration
Conceptually:
VoiceRenderer.open(segment)
→ audio(...)
→ mark({
fromCharacter,
toCharacter,
startTime,
endTime
})
→ end(...)
This permits the voice to become the authoritative RISE clock.
Investigate lightweight local engines such as Pocket TTS and other browser-capable models against:
- cold startup
- model download
- first audible sample
- realtime factor
- CPU/GPU interference with visuals
- memory
- voice quality
- word alignment
- interruption latency
The existing narration lane should remain the semantic representation of spoken spans.
11. Phase 9: Model Perception
The model cannot genuinely perform in a room it cannot observe.
RISE should expose bounded runtime events upward.
Examples:
playback.position
playback.held
playback.resumed
dive.opened
dive.closed
visual.parameterChanged
interaction.valueChanged
These events describe observable actions and state.
RISE should never silently promote them into psychological claims.
Allowed:
reader moved slider to 0.7
reader paused
reader replayed passage
Not allowed:
reader is confused
reader is bored
reader dislikes this
The provider receives facts about the interaction, not inferred states of mind.
12. Phase 10: Scenes and Interactive Widgets
Only after the model can control and perceive the current environment should RISE introduce interactive scenes.
The first scene system should use a closed widget catalog:
- slider
- draggable node diagram
- graph
- step-through
- labelled diagram
- selector
The model declares composition and bindings as data.
Example:
scene:
visual: neural-network
widget:
slider
binding:
slider.value
→ visual.learningRate
Reader action:
slider changed
↓
RISE event
↓
model
↓
spoken explanation
Generated arbitrary UI is not needed for the first scene system.
13. Phase 11: RiseSDK
RiseSDK turns the renderer contract into a stable platform interface.
Built-in visuals, reader-created visuals, team visuals, and eventually model-generated visuals should target the same abstraction.
A renderer supplies:
manifest
create()
frame()
dispose()
and operates through a narrow rendering API.
RiseSDK should freeze only after the internal renderer manifest and catalog system has survived real use.
The SDK is therefore deliberately late.
14. Phase 12: Generated Visual Admission
Model-generated code should not execute directly inside RISE.
The correct rule is:
Untrusted model code never executes with RISE authority.
A model may propose a RiseSDK renderer.
RISE then processes it through an admission pipeline.
model-generated source
↓
parse
↓
static restrictions
↓
manifest validation
↓
sandbox compile
↓
frame tests
↓
parameter sweep
↓
performance budget
↓
error check
↓
content hash
↓
admitted renderer
On failure, RISE returns structured diagnostics to the model.
The model may repair and resubmit.
On success, the runtime receives an ID such as:
generated:sha256:...
The Experience Program contains only:
renderer id
parameters
anchor
Never raw code.
15. Generated Renderer Sandbox
Generated and third-party renderers should not receive access to the RISE application environment.
Preferred architecture:
sandbox worker
↓
RiseSDK
↓
OffscreenCanvas
↓
ImageBitmap / validated frame output
↓
RISE compositor
The renderer should not receive:
window
document
fetch
WebSocket
localStorage
IndexedDB
cookies
ChatGPT bridge
provider credentials
It should receive only bounded primitives such as:
time
dimensions
parameters
seeded randomness
drawing primitives
Execution budgets should cover:
- memory
- CPU time
- frame time
- initialization
- output dimensions
- reduced motion
- failure recovery
This allows generative extensibility without giving model output application authority.
16. Phase 13: Performance Materialization
A completed realtime experience should be convertible into a durable Experience Program.
This closes the loop:
live performance events
↓
materialize
↓
Experience Program
↓
Vault
↓
replay / edit / render
A live session can therefore become:
- a replayable experience
- an editable Workshop composition
- an offline render
- a shareable artifact
Realtime and authored work remain two temporal forms of one system.
17. Phase 14: Product Hosts
Once the performance kernel is stable, individual integrations become hosts rather than architectures.
ChatGPT Composer
ChatGPT authors a complete score and invokes RISE.
ChatGPT
↓
Experience Program / Current adapter
↓
RISE
ChatGPT Live
Only canonical if Gate 0 proves same-turn interleaving.
GPT-Live
├ speech
├ RISE actions
└ receives interaction events
Standalone RISE Live
RISE owns the model transport and therefore the full realtime control loop.
Other model providers
Adapters translate provider-specific streaming and tools into the same Experience Event protocol.
Embed / developer product
Applications embed the RISE runtime and expose the same model-facing capability interface.
18. What Is Foundational
The roadmap divides into three strata.
Foundation
Must be correct before substantial expansion:
Gate 0
semantic convergence
renderer manifests
catalog
Experience Events
commit horizon
basic live lanes
voice clock
Medium
Makes Live RISE genuinely reciprocal:
reader control
model perception
scenes
widgets
Platform
Expands the vocabulary without compromising the kernel:
RiseSDK
generated renderer admission
performance materialization
multiple product hosts
Do not build platform breadth before the foundation is stable.
19. Immediate Execution Order
The next concrete sequence should be:
-
Finish the minimal #368 Begin activation fix and complete ordinary ChatGPT acceptance. Treat browser TTS as an acceptance mechanism, not the final voice architecture.
-
Run Gate 0 inside ChatGPT Live with one persistent widget and one visual mutation tool. Do not widen the protocol first.
-
Record the result as a product-level architecture decision:
- ChatGPT supports Live RISE, or
- ChatGPT supports RISE Composer only for now.
-
Write the semantic convergence specification:
- Experience Program = durable score
- Experience Events = realtime score mutation
- Current = simplified adapter
-
Build renderer manifests for the existing RISE visual vocabulary.
-
Build the queryable catalog over those manifests.
-
Specify and prototype
rise.experience-events.v1with only:- source text
- visual selection
- visual parameter change
- audio selection
- pace
-
Add the commit horizon and prove future cues can change without rewriting experienced history.
-
Prototype the local neural
VoiceRendererseparately, including timing marks. -
Combine the voice clock and Experience Event prototype into the first provider-independent true Live RISE demo.
That demo should be deliberately simple:
A model explains one concept aloud while it changes a single visual, changes one visual parameter, changes atmosphere, and responds to one reader interruption without restarting the experience.
If that does not feel meaningfully different from ordinary voice mode plus a visualizer, stop and evaluate before expanding the system.
20. Product Definition
The pieces can now be named clearly.
Experience Program
The score.
Experience Events
The live performance language.
Catalog
The instruments available to the model.
RiseSDK
The instrument interface.
Scriptorium
Batch model composition.
Workshop
Human composition and revision.
Chamber
The stage.
Player
The clock and execution engine.
RISE Live
A model performing through Experience Events while the reader is present.
RISE Composer
A model authoring an Experience Program before performance.
The long-term system is therefore:
A model composes or performs through a bounded audiovisual language. RISE validates the language, owns execution, preserves the relationship between media and source, and lets the reader redirect the experience while it is happening.
The model proposes.
RISE disposes.
The reader remains in control.
Published from docs/product/discussions/2026-10-original-performance-roadmap.md. Edits made here are overwritten on the next push to main.