GradientForge

Strand turns a few lines of JavaScript into living motion — one thread for a single focused animation, or many woven into a full composition. Define it once, ship it with a script tag.

Choose by the job, not the tier

One thread, or many, woven.

One strand

Strand Simple

A single generative animation, tuned with a handful of parameters. Drop it into a hero, a loading state, a favicon, or a logo mark. Nothing to orchestrate — one strand, one canvas, one line of markup.

<script src="strand.dev/s/loom-9x.js"></script>
  • Ships as a single script tag
  • Six parameters, live preview as you tune them
  • Renders under 4kb, zero dependencies
  • Pauses automatically for reduced-motion
Start a strand →
Many, woven

Strand Multi

Compose several strands on a shared timeline. Layer them, sync them to scroll or live data, and let them cross like threads on a loom. Built for dashboards, story-driven pages, and generative scenes with real structure.

strand.compose([threadA, threadB, threadC]) .timeline(scroll)
  • Unlimited strands per composition
  • Shared timeline with scroll-linked triggers
  • Live data can drive any strand's parameters
  • Exports as one bundled embed
Start weaving →
What Strand is

A loom for the web's motion.

Most sites still reach for video files or heavyweight animation libraries to put something alive on the screen. Strand is a hosted JavaScript renderer: you describe a piece of motion in a small, declarative config, and Strand compiles it into a self-contained script that draws directly to a canvas — no video weight, no framework lock-in, editable at runtime.

Every Strand animation is built from one idea: a thread. A thread is a single continuous motion — a wave, a pulse, a path a shape travels along. On its own, a thread is enough to carry a loading state, a hero backdrop, or a generative logo mark. That's Strand Simple.

// most people don't need a scene. they need one honest piece of motion, done well.

But some work is bigger than one thread. A dashboard that breathes with live data. A story-driven page where each section triggers its own motion. A generative art piece built from a dozen interacting paths. For that, threads are woven together on a shared timeline, synced to scroll, data, or each other. That's Strand Multi — the same primitive, composed.

Neither version is the "real" product and the other a lesser tier. They're two answers to two different jobs. Strand doesn't ask you to decide up front which kind of site you're building — it asks what this particular piece of motion needs to do, and gives you exactly that much.