Skip to content
shinyobjectzPublic

About

Render Anything Engine (for Anyone): video, motion, games and 3D as React, rendered on the GPU

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

raea's cat

raea

Render Anything Engine (for Anyone)

One GPU engine for video, motion, games, 3D and documents, written as React and TypeScript,
rendered faster than it plays, on the device you already own.

raea.io · Why we built it · How it works · Settings · Agent skill

licence FSL-1.1-ALv2 status canary macOS, Apple Silicon


Canary. raea is in active development and changes daily. It builds and renders on a Mac with Apple Silicon, and parts of it are rough. Expect breaking changes, missing docs, and things that only work the way we use them.

What it is

raea renders compositions: React components that draw a frame for a given moment, written with raea. The engine runs them inside Bevy on the GPU, composites video with fused compute kernels, encodes in hardware, and keeps everything it drew as data you can query. The same file renders to an MP4, plays live as a game, or renders one frame for an agent to look at.

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.mp4

Get started

Requirements: macOS on Apple Silicon, Rust (stable), bun, Xcode command-line tools.

git clone https://github.com/shinyobjectz/raea && cd raea

# the CLI: render, play, run and test compositions (one Cargo workspace, one target/)
cargo build --release -p raea-cli
target/release/raea render sdk/react/bench/games/pong/edit.tsx -o pong.mp4

The raea app's agent needs a model. Put a key in ~/.raea/env; OpenRouter is the default, and Anthropic, Z.ai, DeepSeek, Moonshot or any Anthropic-compatible endpoint work through RAEA_LLM_PROVIDER:

mkdir -p ~/.raea && echo "OPENROUTER_API_KEY=sk-or-..." >> ~/.raea/env

Everything else is optional; docs/settings.md lists every setting, and how to run the small API behind generated music and speech yourself.

Use it from your agent

  • Agent skill. sdk/skills/raea/SKILL.md teaches any agent to write, render and check raea compositions. sdk/skills/raea-bevy covers 3D and games drawn by Bevy.
  • Claude Code plugin. /plugin marketplace add shinyobjectz/raea, then /plugin install raea@raea.
  • MCP. With the raea app running, claude mcp add --transport http raea-app http://127.0.0.1:7457/mcp gives an agent its tools: state, screenshot, send, act, wait, logs, hear, say.

What's in here

Folder What
engine/render/ raea-render: the Bevy renderer an edit's rows draw through, the GPU encode path, the media verbs
runtime/js/ React and HTML on bevy_ui: the page a composition's 2D draws on, tested against Chrome
core/k/, systems/k/ The render path's kernels in a small K dialect: interpreted on the CPU, compiled to WGSL, bit-exact
io/media/ Decode and encode behind one seam: VideoToolbox, software codecs, AV1, a muxer
systems/mix/, systems/tone/, engine/seedling/ One mixer core for live play and offline render, Tone's instruments and effects on it, and bevy_seedling on it
core/animate/, engine/bevy-plugins/ Frame-pure animation (easing, tweens, springs), and Bevy plugins compiled into the engine
core/calls/, engine/native/, io/shell/, engine/modules/ The native-call registry, its JavaScriptCore binding, the shell's natives, and the in-process TypeScript loader
engine/bundle/ The in-process TypeScript bundler (Rolldown)
engine/sandbox/ A WASI sandbox for command-line tools on the iPhone (experimental)
gpu/device/, io/trace/ The one shared GPU device and its telemetry, and the flight recorder each run leaves
sdk/raea/ raea, the TypeScript SDK: its spec, conformance suite and source
sdk/react/ raea: runs raea compositions in Bevy; render, play, run, test; the iPhone build
sdk/shell/ The agent's shell
sdk/skills/ Agent skills for working in raea
engine/cli/ The agent's raea command
systems/footage/ Reading footage the way an editor does
systems/ml/, systems/speech/ Models on ONNX Runtime, and Pocket TTS speech on it
tools/ Build helpers: the JIT-signing linker wrapper, setup scripts
docs/ Cross-cutting docs and settings

Each folder has a README saying what it is and what it depends on. Behaviour specs written in Gherkin (.feature) sit beside the code they specify.

Licence

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.

About

Render Anything Engine (for Anyone): video, motion, games and 3D as React, rendered on the GPU

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages