ASCII scene engine for Reeldemo promos. Kaleidoscope mirrors, particles, jellyfish, and more. Tune a scene below and watch the loop update live. Built in Rust.
Interactive
Pick a scene from the engine registry (kaleidoscope patterns, particle clouds, or jellyfish) and tune params live.
Use cases
ASCII scene loops power the Reeldemo org page and product promos. Same engine in browser and CLI.
Export HTML or ANSI from stills and procedural scenes. Match color schemes to brand palettes without a motion graphics pipeline.
Particles, jellyfish, and future creature packs share one luma-to-charset pipeline. Some scenes use mirrors, others render directly.
Scene registry with structured params so scripts and tools can list, switch, and tune scenes the same way the demo does.
Package
Browser demos vendor @reeldemo/kaleidoscope-engine as ESM.
CLI and npm publish follow once the scene API settles. Until then, use the live demo and the engine repo.
// Scene registry (Node / browser ESM)
import { createDefaultRegistry, EngineController } from "@reeldemo/kaleidoscope-engine";
const registry = createDefaultRegistry();
const engine = new EngineController(registry);
engine.setScene("particles", { count: 160, colorScheme: "neon" });
const { ascii } = engine.renderFrame({ format: "html" });
Engine
@reeldemo/kaleidoscope-engine: registry, tick/sample, luma-to-ASCII rasterizer. Kaleidoscope is one plugin among many.
Every scene fills a luminance grid; the same charset and palette hooks render HTML, ANSI, or plain text.
TypeScript ESM for demos. Rust core with napi bindings follows once the scene API stabilizes.
Switch scenes, tune params, and export promos from the browser demo or the engine repo.