Repository navigation
Home

A browser-based audiovisual reader. RISE presents text through time, image, sound, and procedural visuals, so a book can be read as a timed stream or a typeset page.
Live app → · Architecture · Documentation
Status: Open beta · License: Apache 2.0 · Built by Mateo Robles (SyberLabs), with engineering infrastructure by Seth Carlson
- Chamber – the reading instrument. Combine a text with a pace, visuals (museum art, NASA/ESA/ESO astronomy, fractal flames, strange attractors, or none) and Web Audio sound.
- Stream and Page – one source, two projections: text arriving over time, or a paginated typographic layout.
- Library – curated public-domain literature, philosophy, poetry, and scripture, prepared through an editorial pipeline that tracks edition, structure, provenance, and rights.
- Chapel – the complete Douay-Rheims Bible (73 books), plus the Rosary and Stations of the Cross paced by a liturgy engine.
- Workshop and Vault – author your own audiovisual compositions and save them in the browser.
-
AI reading request (optional) – describe what you want to read and a bounded decision model picks a book and presentation from the held catalog. Bring your own model: Connect OpenRouter (hosted Jev, billed to your OpenRouter account) or Run locally (
npm run local: RISE and pinned Kev-4B on your GPU, no hosted bill). See docs/USER-OWNED-AI.md and docs/LOCAL-RISE.md. - Journeys (unpublished draft) – Heaven and Household is source-bound against Milton and Bryant and remains outside the public catalog.
Reading runs entirely in the browser, except optional visual direction, which sends sections of the text to your own AI connection (OpenRouter or Kev on your computer). Your files and saved work stay in browser storage. See Privacy.
- Vanilla JavaScript single-page app built with Vite; one-way pipeline from source text → timed units → pacing → compiled session → clock-driven player.
- Content-addressed data plane: book text is served as SHA-256-named JSON and verified on every read, which removed 15.4 MB from the JavaScript bundle.
-
First load held under a 64 KB brotli budget enforced in CI;
npm run measure:first-loadprints today's size and request count. -
Thousands of Vitest unit and integration tests plus Playwright browser tests, including real
ffmpegencoding and live Chromium rendering. - Generated architecture diagram and tested design contracts, so documentation cannot drift from the code.
-
Edge backend: Cloudflare Workers serve the app and a static public decision catalog. The backend runs no AI model and stores no model credential; decisions run on the reader’s own connection. (The optional Live page, switched off in production, would pass a reader’s own OpenAI key through once to open a session; see PRIVACY.md.) A GitHub Actions job runs for each push to
main; it rebuilds, deploys and checks the live site only when its commit is still the tip ofmainat the deploy step, so superseded pushes are skipped and the newest deploys.
Stack: JavaScript (ES modules) · Vite · Web Audio API · Canvas 2D · IndexedDB · Cloudflare Workers · Vitest · Playwright · GitHub Actions
Requires Node.js 20.19+ or 22.12+ and npm.
git clone https://github.com/SyberLabs/RISE.git
cd RISE
npm ci
npm run dev # http://localhost:5173/In the app: Try RISE → pick a reading → Begin. Use Page to switch to the paginated view.
Your assistant can present an answer in RISE: it writes the answer as a short reading, and RISE shows it in the chat as a card. You press Play; your device's own voice reads it, the words appear as they are spoken, and RISE's drawn imagery, or a diagram or figure your assistant wrote as SVG or scene code, plays behind them.
-
Add it in Claude: Customize > Connectors, then + Add > Add custom connector. Name it RISE, use the URL
https://rise.syberlabs.io/api/mcp, and choose No sign in. Turn it on for a chat from the + button, under Connectors. - Authentication: none. No account, no key, no payment.
-
Tools:
rise_present(present a reading) andrise_guide(the format reference for a style). Both are read-only. - What to ask: "Explain how black holes bend light, and present it in RISE." or "Give me a two-minute RISE reading on why the sky is blue, in the Signal look."
More prompts, the looks, troubleshooting and the contact are at https://rise.syberlabs.io/apps. See also the Privacy Policy and Terms.
rise.current.v1 is the reading an assistant writes, compiled through the existing Session Compiler. It accepts bounded segments, a closed visual selection, and exact-span Dive notes, which the current product does not present. See the contract and sample document. To compile the sample locally:
node --input-type=module -e "import fs from 'node:fs'; import { compileRiseCurrent } from './src/core/rise-current.js'; const input = JSON.parse(fs.readFileSync('docs/examples/current-v1.json', 'utf8')); const session = compileRiseCurrent(input); console.log(session.atoms.length, session.experienceProgram.schema);"The server is worker/mcp-server.mjs; the card it serves is src/live/host/.
Read AGENTS.md (working principles) and docs/PROJECT-KNOWLEDGE.md (known pitfalls and the reasoning behind non-obvious decisions) before changing anything.
Pull requests must pass the same checks CI runs:
npm run test:run # unit and integration tests
npm run test:e2e:gate # fast browser pass (a few minutes)
node scripts/ci-hygiene.mjs # licenses, credits, reader-facing names
npm run security:audit && npm run security:compat
npm run build && npm run measure:first-load # first-load size budget
npm run docs:diagram && npx vitest run src/core/system-design.test.js
npm run scriptorium:ciThe full test suite needs ffmpeg and Playwright Chromium (npx playwright install chromium). The browser tests start their own server. Release and rollback steps are in docs/RELEASING.md.
src/
├── audio/ Web Audio, recitation, sound systems
├── components/ UI rooms: Chamber, Library, Chapel, Workshop, Vault, …
├── content/ Archive catalogs, Chapel, imagery, certification records
├── core/ Session compiler, chunking, pacing, player, content store
├── page/ Page projection and layout
├── sources/ Text and image providers
└── visuals/ Procedural and sourced visual systems
scripts/ Corpus preparation, catalog building, CI gates, offline media
worker/ Cloudflare Worker (public decision catalog; retired AI routes answer 410)
local/ Local RISE: launcher, loopback bridge, pinned Kev server
RISE uses motion, changing light, and sound. It respects reduced-motion settings and offers calmer modes; readers sensitive to flashing or rapid motion should use them. RISE makes no medical or therapeutic claims.
Application code is licensed under Apache 2.0. Names, authored compositions, curated texts, and referenced visual works carry their own terms; see ASSET-LICENSES.md and NOTICE. Archive texts are public domain. Visual works are shown by reference under their holding institutions' licenses and are never redistributed from this repository.
Published from README.md. Edits made here are overwritten on the next push to main.
Start here
- COMPOSER-FIRST-ROADMAP
- VISION
- PROJECT-KNOWLEDGE
- ARCHITECTURE
- SYSTEM-DESIGN-REVIEW-2026-08-22
- ACCOUNT-SAVES
- RELEASING
- PLUS-CUSTOMER-LIFECYCLE
- AGENTS
Release
Pilot
- LIVE-CURRENT
- LIVE-HANDOFF
- LIVE-MCP
- DIRECTORY-SCREENSHOTS
- INSPECTOR-RUN-2026-10-10
- CLAUDE-RUN-2026-10-10
- CREATIVE-CONTROL-EVALS
- PERCEPTION-EVAL
- SOUND-LEVELS
- WORDING
- RUN-2026-10-08
- COMPOSER-INSTRUMENTS
- CHATGPT-DEMO
- EMBED-WITNESS
- RISE-GATE0
- CHATGPT-HOST-2026-10-04
- LIVE-002-HOST-2026-10-05
- EMBED-STAGE-HOST-2026-10-07
- RELEASE-GATES-2026-10-07
- EMBED-SAFETY-2026-10-05
- LIVE-GEMINI
- LIVE-EVALUATION
- LIVE-RED-TEAM
- CURRENT-CONSOLIDATION
- RISE-CHANGES
The Archive - texts and their editing
- ARCHIVE-CANON-SPEC
- ARCHIVE-CLEANSING-SPEC
- CORPUS-REVIEWER-PROMPT
- TYPESETTING-CANON
- PHRASE-CHUNKING-STUDY
- CHUNKER-AWARENESS-STUDY
- LIBRARY-SPEC
- SOL-PD-ACQUISITIONS-DOSSIER-LITERATURE-2026-07-28
Authoring - scores, rooms, and rendering
- EXPERIENCE-PROGRAM-SPEC
- LIVE-CURRENT-EVENTS-V1
- RISE-CURRENT-V1-SLICE
- RISE-SDK
- SCRIPTORIUM-SPEC
- WORKSHOP-COMPOSITION-STUDIO-SPEC
- AGENT-COMPOSITION-AND-RENDER-SPEC
- NARRATION-LANE-SPEC
- RECITATION-SPEC
- SCRIPTORIUM-STRENGTHENING-SPEC
Reading surfaces
- PAGE-MODE-SPEC
- RHYTHMIC-VISUAL-PRESENCE-SPEC
- LATERAL-TRAVERSAL-SPEC
- CONTINUOUS-FIELD-SPEC
- JEV-VARIANCE
- INVOCATION-SKINS
- PHASE-2-SAFETY-SPEC
- SPATIAL-CHAMBER-SPEC
- Premium_Mobile_Chamber
Imagery - what may be shown, and on whose authority
- MUSEUM-ATLAS
- SOURCE-CURATION-SPEC
- SOURCE-EXPANSION-SPEC
- ATRIUM-IMAGERY-SPEC
- PERICOPE-IMAGERY-SPEC
- icon-museum-request-draft
- TEXT-ATTUNED-IMAGERY-SPEC
The Chapel
Direction and unbuilt work
Affect and the Emotions room
Reading decision service and retired gate
Product direction and team tracking
- README
- READER-DIRECTION
- CONSOLIDATED-READER
- COMPOSER-FIRST-ROADMAP
- TRACKER-DESIGN
- 2026-10-03-direction-decisions
- 2026-10-04-composer-decision
- 2026-10-05-consolidated-reader-decisions
- 2026-10-05-embed-stage-decision
- 2026-10-06-score-speech-service-roadmap
- 2026-10-07-current-with-a-look
- 2026-10-07-reader-control-and-replay
- 2026-10-05-one-colour-vocabulary-design
- 2026-10-07-chrome-follows-theme
- 2026-10-07-gallery-follows-with-works
- 2026-10-05-canonical-home-design
- 2026-10-04-reader-evidence
- 2026-10-original-performance-roadmap
- 2026-10-08-voice-hardening-2-findings
- 2026-10-09-feelings-sounds-parked
- 2026-10-10-connector-directory-readiness
- 2026-10-10-connector-submission-packet