ASCII · Scenes · Promos

Kaleidoscope
ASCII

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.

Live demo

Pick a scene from the engine registry (kaleidoscope patterns, particle clouds, or jellyfish) and tune params live.

Where it fits

Landing heroes

ASCII scene loops power the Reeldemo org page and product promos. Same engine in browser and CLI.

Social ads

Export HTML or ANSI from stills and procedural scenes. Match color schemes to brand palettes without a motion graphics pipeline.

Custom animations

Particles, jellyfish, and future creature packs share one luma-to-charset pipeline. Some scenes use mirrors, others render directly.

Programmatic control

Scene registry with structured params so scripts and tools can list, switch, and tune scenes the same way the demo does.

Engine module

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" });

Under the hood

Scene plugins

@reeldemo/kaleidoscope-engine: registry, tick/sample, luma-to-ASCII rasterizer. Kaleidoscope is one plugin among many.

Shared pipeline

Every scene fills a luminance grid; the same charset and palette hooks render HTML, ANSI, or plain text.

Browser + Node

TypeScript ESM for demos. Rust core with napi bindings follows once the scene API stabilizes.

Build ASCII promo loops

Switch scenes, tune params, and export promos from the browser demo or the engine repo.

github.com/reeldemo/reeldemo-kaleidoscope