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 → · Engineering overview · 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. The server-side migration from Jev to Kev is in progress; no live Kev endpoint has been confirmed.
- 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. 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 of ~59 KB (brotli, 3 requests), held under a 64 KB budget enforced in CI.
-
~2,800 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, Neon PostgreSQL, Upstash Redis, and a server-configured decision provider for optional recommendations. Kev is the code default when configured with a pinned host and revision; explicit Jev rollback uses OpenRouter. No live Kev deployment has been confirmed. Releases use gated GitHub Actions with artifact verification and rollback.
Stack: JavaScript (ES modules) · Vite · Web Audio API · Canvas 2D · IndexedDB · Cloudflare Workers · PostgreSQL · Redis · 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.
rise.current.v1 is an experimental, sealed input for bringing a structured answer into the existing Session Compiler. It accepts bounded segments, a closed visual selection, and exact-span Dive notes. 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);"This input is provider-neutral and offline. It does not yet stream model tokens, synthesize or synchronize speech, or run inside ChatGPT.
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 (~2 min)
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 (recommendation API)
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
- IMAGE-STREAM-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
- 2026-10-16-mystery-school-complete-library
- 2026-10-13-mystery-school-plan