flow field
canvas 2d · curl noise
A grid of noise-derived angles steers a fixed particle pool. Trails come from fading the previous frame rather than clearing it.
A creative-coding skill for Claude Code and claude.ai. It takes the interface you are building, in a repo or a claude.ai artifact, and gives it motion, identity and intention, written as production code on your own stack.
scroll to paint
No image file ships with this site. The ink you have been scrolling through is painted on a canvas, stroke by stroke, at the pace of your own scroll, by the same kind of code genjutsu writes into a project. Here are three more techniques, running live, each named.
Everything routes through two skills. In Claude Code they are slash commands. On claude.ai you simply ask. Both read your project before they touch it, and both audit their own work before they call it finished.
/genjutsu:cast
Gives an interface motion.
/genjutsu:paint
Builds a visual universe from nothing.
cast adapts to what already exists. paint replaces the visual layer entirely. Same sub-skills underneath, opposite entry points.
genjutsu does not empty fifteen manuals into the context window. The two skills detect your stack and load only the modules that apply, so a Compose project never pays for Metal shaders and a static site never pays for Three.js.
Loaded on every invocation, or whenever the context calls for them.
Loaded from what your package.json actually contains.
Detected from Package.swift or an xcodeproj, iOS and macOS distinguished.
Detected from your Gradle files, including Compose Multiplatform.
One craft, three runtimes. No wrapper and no lowest common denominator: what lands in your project is what that platform actually wants.
AI already writes interfaces that are clean, correct and forgettable. The gap is not capability, it is the absence of a position. genjutsu gives Claude one, and holds it to it.
Motion foundations load before a single line is written. Duration chosen by context, easing chosen by direction, and the more often an interaction fires the shorter it gets.
One sentence, stated out loud and validated, naming what moves and what deliberately does not. No thesis, no code.
Reduced motion, frame budget, exit animations, focus rings, contrast at every frame of a transition. Run every time, not when it is convenient.
No dependency is installed without asking first. If your project already chose GSAP, that choice is respected instead of argued with.
Same skill, same brush. The terminal, or the browser.
Claude Code
Two slash commands, typed inside a Claude Code session. The first adds the marketplace, the second installs the plugin. Then run /genjutsu:cast or /genjutsu:paint.
claude.ai · web and apps
One file, the whole skill. Upload it in your claude.ai settings under Customize, then Skills, and enable it. Invoke /genjutsu in any chat, or simply describe what you want. That link always serves the newest release straight from GitHub. Requires the code execution feature, available on Pro, Max, Team and Enterprise plans.