Render Anything Engine (for Anyone)
Tell your AI what to make. Videos, motion graphics, 3D and games, written as React and TypeScript
(the code your AI already writes) and rendered on your own GPU, faster than they play.
raea.io · Made in raea · Why raea · Docs · Releases
Canary. raea changes daily. Releases run on macOS (Apple Silicon), Linux (x86_64) and, new and least tested, Windows (x86_64). Expect breaking changes, rough edges and gaps in the docs.
curl -fsSL https://raea.io/install | shThe installer puts the raea command under ~/.raea, links it into ~/.local/bin, and adds raea's agent skills to
~/.claude/skills, so Claude Code (or any agent that reads that folder) knows how to write, render and check raea
work. Run it again to update. The engine is free and needs no account. Tarballs and checksums are on the
releases page.
On Windows 10 or 11, in PowerShell:
irm https://raea.io/install.ps1 | iexIt does the same under ~\.raea and adds raea to your PATH. raea needs the Microsoft Visual C++ Redistributable
(x64), which most machines already have, and a DirectX 12 or Vulkan GPU driver.
A composition is a React component that draws a frame for a given moment:
import { AbsoluteFill, Composition, interpolate, registerRoot, useCurrentFrame } from "raea";
function Hello() {
const f = useCurrentFrame();
return <AbsoluteFill style={{ background: "#000", color: "#fff", fontSize: 120, opacity: interpolate(f, [0, 20], [0, 1]) }}>Hello</AbsoluteFill>;
}
registerRoot(() => <Composition id="hello" component={Hello} width={1920} height={1080} fps={30} durationInFrames={90} />);raea render hello.tsx -o hello.mp4On an Apple Silicon Mac those 90 frames render in about a second. The same file can play live as a game
(raea play), render one frame for an agent to look at (-o frame.png --frame 45), or be checked against a quality
floor (raea check hello.mp4). raea init starts a project, and raea --help lists every verb.
- Video and motion graphics. Layout, text, Tailwind, SVG and animation, composited on the GPU and encoded in
hardware where the machine has it. Footage is cut by what's said in it (
raea cut), andraea checkcatches clipped text, low contrast, unsafe areas, freezes and loudness problems before anyone watches. - Games. Input, physics, sound and 3D, played live with
raea play, and exported as a program of their own (raea export-game). - 3D. Scenes in TypeScript drawn by Bevy 0.20: cameras, lights, materials, glTF models, Gaussian splats, and Bevy plugins compiled into the engine.
- Sound. One mixer for live play and offline render, instruments and effects, and local models for foley and
instrument notes (
raea sao,raea tokensynth). - Built for agents. Everything it draws stays queryable as data, so an agent can render a frame, look at it, and fix what's wrong without a person in the loop.
- Agent skills.
sdk/skills/raeateaches an agent to write, render and check raea compositions;sdk/skills/raea-bevycovers 3D and games. The installer adds both to~/.claude/skills. - Claude Code plugin.
/plugin marketplace add shinyobjectz/raea, then/plugin install raea@raea. - Craft guides.
raea guideprints the floor every edit is held to and the guides for pitches, explainers, stories, games, motion, music and layout.raea context PROJECTsays what to read before working on a project.
Requirements: Rust (stable) and bun. On macOS, Xcode's command-line tools; on Linux, the ALSA, fontconfig and Vulkan libraries.
git clone https://github.com/shinyobjectz/raea && cd raea
cargo build --release -p raea-cli --no-default-features
target/release/raea render sdk/react/bench/games/pong/edit.tsx -o pong.mp4--no-default-features builds the public engine, as the releases are. The default features add one hosted service,
Content Credentials signed by raea's signing server, which isn't part of this repository. raea sends nothing on its
own: no telemetry, crash reports or update checks. What reaches the network is what you ask for (a remote URL in a
composition, a model downloaded on first use, a raea gen step on a provider you hold a key for), and RAEA_OFFLINE=1
refuses all of it. docs/settings.md lists the settings raea reads.
The workspace is layered, from pure building blocks up to the command.
| Folder | What |
|---|---|
core/ |
Pure building blocks: the kernel language (K, interpreted on the CPU and compiled to WGSL), easing and animation, shapes, fonts, the scene and wire formats |
gpu/ |
The one shared GPU device and its telemetry |
io/ |
Decode and encode (VideoToolbox, software codecs, AV1, a muxer), files, network, npm packages, traces |
systems/ |
Engine systems: layout, canvas, compositing, filters, mixing, speech, ML on ONNX Runtime, footage reading, lighting, contact checks for 3D parts, splats |
runtime/ |
Running a composition: the JavaScript engine seam (JavaScriptCore on macOS, QuickJS elsewhere), React and HTML on Bevy, baking, encode, live play |
engine/ |
The renderer (engine/render), the in-process TypeScript bundler, the Bevy plugin catalog, and the raea command itself (engine/cli) |
apps/ |
The crates behind the CLI's verbs: check, play, games, media |
sdk/ |
raea, the TypeScript SDK (sdk/raea), its 3D, physics, audio, video and UI packages, the craft guides, and the agent skills |
vendor/ |
Patched upstream crates, under their own licences (vendor/vendor.toml says why each is patched) |
tools/ |
Build and release helpers |
Behaviour specs written in Gherkin (.feature) sit beside the code they describe.
raea is under the Functional Source License 1.1, ALv2 Future License (FSL-1.1-ALv2), copyright Shane Murphy. Use it, change it, build on it and pass it on for anything except a product that competes with raea. Each version becomes Apache-2.0 two years after its release. Third-party parts keep their own licences; see NOTICE.