00  Ambient ASCII, rendered like weather

Loops that move like water.

Glyphloop turns math, your images, and your text into animations that repeat forever without a seam, and keep the colors of whatever they run across.

glyphloop$compose --over ship.jpg
This is a painting, processed by Glyphloop into living text. Its colors are kept, cell by cell, and the loop never seams.
01  A gallery of loops

Seven ways in. Or a single line of math.

Flow fields, wave interference, matrix rain, shaded 3D shapes. The expr and parametric3d sources take plain math, so a one-line formula becomes an animation and three lines become an object.

flowfield · waves · rain · shapes3d · expr · parametric3d · blobs
02  Composition

Lay an effect over your own images and text.

rain · screen over a portrait
flowfield · modulate over a logo

Drop in a photo, a video, a logo, or type some text. Glyphloop maps it to characters and keeps its own colors, cell by cell, then animates an effect through it.

modulatethe image breathes with the effect
displacewaves physically warp it
revealit assembles out of noise
insiderain falls only inside the subject
flowfield · reveal over a sunset
noise blobs · crisp PNG over live ASCII
02  Overlay

Keep a subject crisp.

Lay a transparent PNG on top of the finished ASCII and the effect renders only behind it. A figure, a product, a logo stays sharp while everything around it turns to text.

03  Seamless by construction

Every loop closes on itself.

Sources are pure functions of time. Noise is sampled along a circle in two extra dimensions, and every sine phase advances by a whole multiple of 2π per loop. The last frame wraps back to the first, exactly. No seam, no jump, no crossfade.

renderround(fps × duration) frames startt = 0 example24 fps × 10 s = 240 frames wrapframe 239 → frame 0
Knot shapes3d · 8s loop
04  Export

One loop, five ways out.

PNGStill frameThe current frame at 1–3× scale, alpha preserved.
GIFAnimated loopOne full loop, rendered frame by frame, seamless on wrap.
MP4VideoDeterministic H.264 via WebCodecs. Never drops a frame.
WEBSelf-contained embedRLE frames plus a tiny player. Honors reduced-motion.
ANSITerminal playerframes.ans + play.sh. Loop it right in a shell.
Source painting: a suited figure on a hillside at sunset
the source image, dropped into Glyphloop
the MP4 export · 6 s seamless loop · never a dropped frame
05  For humans and agents

Your AI already knows how to drive it.

Two lanes. Write math: an agent sends a small JSON preset over MCP or the CLI, previews the frame as text, and renders website-ready files, no browser needed. Or design: an agent builds a frame in HTML or canvas, drops the render in, and Glyphloop turns the whole design into living text with its colors kept. The jellyfish below was made the second way.

MCPnpx glyphloop mcp CLInpx glyphloop render HTMLdesign → drop → glyphs
# any agent, any project
$ npx glyphloop render \
  --preset flowfield-hero --out hero/

{ "ok": true, "fps": 24, "duration": 10,
  "frames": 240, "files": ["frames.json",
  "player.js", "index.html"] }

Proof, not promise. The aquarium below started as a single prompt to Claude and became the living text beside it.

1 · promptask Claude for a scene: a glowing jellyfish, three fish passing through, marine snow, a seamless 12 s loop
2 · canvasClaude writes one HTML file where every motion is periodic in the loop, so the last frame lands exactly on the first
3 · glyphsthe render drops into Glyphloop, which picks a character for every cell by brightness and keeps the colors
canvas animation, written by Claude in one prompt
the same loop, processed by Glyphloop · colors kept per cell
06  Launching soon

Get the first build.

The public beta is nearly ready. Drop your email and we'll send one launch note when it ships. Nothing else.

// you're on the list. we'll be in touch.
• • •