Matrix — component for generative & ascii (html)
For AI agents: find the right skill in one call —
curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add.mdto its path. Before generating anything, show the person the options on the use-case page.
Columns of green glyphs raining down a black screen, each trail fading behind its bright leading character
- Install:
pnpm add @tsparticles/engine @tsparticles/slim @tsparticles/preset-<name> - Registry: tsparticles · Framework: html · License: MIT
- Docs and preview: https://particles.js.org/demos/recipes/matrix
- Source: https://github.com/tsparticles/presets/blob/main/presets/matrix/src/options.ts
- Example: https://skills.varg.ai/previews/lib-tsparticles-matrix.mp4?v=373641 (Rendered by varg from the library’s own code (tsParticles · rendered by varg))
- Time: Drive from the frame. Runs on its own clock (requestAnimationFrame, timers, springs or CSS). Drive it from frame / fps before rendering, or the render drifts.
- Runs: local render, free
- Aspect: any
Prompt that renders it frame-exact
Use the tsParticles Matrix preset (https://particles.js.org/demos/recipes/matrix, MIT, options in github.com/tsparticles/presets/blob/main/presets/matrix/src/options.ts) as a full-frame background for hacking, security, data or AI beats, behind white or green type. Load @tsparticles/engine and @tsparticles/preset-matrix (or its CDN bundle tsparticles.preset.matrix.bundle.min.js), call loadMatrixPreset(tsParticles), then tsParticles.load({ id, options: { preset: "matrix", fullScreen: { enable: false } } }) into a full-frame div. Pre-roll a couple of seconds of ticks so the rain already fills the screen. tsParticles ticks on requestAnimationFrame and derives each step from the frame timestamp, so make it deterministic: seed Math.random before loading, swap requestAnimationFrame for a queue you flush once per video frame with the timestamp frame × 1000 / fps (keep fpsLimit at or above the video fps), and render frames in order from the moment it starts (it is a running simulation, so replay from that point after a backwards seek). Swap the green for a brand color, change particles.number.value for density, and adjust move.speed for a calmer or more frantic rain.
Used in
- Math animation
- Whiteboard & hand-drawn
- Live-coded music video
- Shader loop
- Generative art loop
- ASCII & retro looks
More generative & ascii
- ASCII Render Pass —
npx hyperframes add ascii-render-pass - ASCII Trail Reveal —
npx hyperframes add ascii-trail-reveal - Fractal Noise —
npx hyperframes add fractal-noise - Gabor Noise —
npx hyperframes add gabor-noise - Worley Noise —
npx hyperframes add worley-noise - ASCII Render —
npx shadcn@latest add @remocn/ascii-render