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

Latest commit

 

History

3 Commits

Folders and files

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/motion. 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/motion";

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-motion render hello.tsx -o hello.mp4

void is the Mac app built on raea: a black window you talk to. Describe a reel, a promo or a game; its agent writes the composition, renders it, checks the frames and the sound, and plays it on its stage.

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-react --bin raea-motion
target/release/raea-motion render sdk/react/bench/games/pong/edit.tsx -o pong.mp4

# void, the Mac app
cargo build --release -p raea-void && target/release/void

void'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 void running, claude mcp add --transport http void http://127.0.0.1:7457/mcp gives an agent void's tools: state, screenshot, send, act, wait, logs, hear, say.

What's in here

Folder What
engine/html/ The core crate (raea): HTML and CSS rendering without a browser (Blitz, Stylo, Vello), the compositor, fonts, a C API
engine/rdb/ An edit as typed tables on Bevy's World, and the Bevy renderer that draws it
engine/kgpu/ K on the GPU: a small array language compiled to WGSL, bit-exact with its interpreter
engine/media/ Decode and encode behind one seam: VideoToolbox, software codecs, AV1, a muxer
engine/mixer/, engine/seedling/ One mixer core for live play and offline render, and bevy_seedling on it
engine/animate/, engine/bevy-plugins/ Frame-pure animation (easing, tweens, springs), and Bevy plugins compiled into the engine
engine/native/, engine/modules/ The native-call layer on JavaScriptCore, and the in-process TypeScript loader
engine/browser/, engine/bundle/ The agent's browser, and the in-process TypeScript bundler (Rolldown)
engine/sandbox/ A WASI sandbox for command-line tools on the iPhone (experimental)
engine/gputrace/ GPU telemetry
sdk/motion/ @raea/motion, the TypeScript SDK: its spec, conformance suite and source
sdk/react/ raea-motion: runs @raea/motion compositions in Bevy; render, play, run, test; the iPhone build
sdk/shell/, sdk/data/ The agent's shell; a project's record, and a brief's facts and checks, as data
sdk/brief/ The .brief plan format
sdk/skills/ Agent skills for working in raea
apps/void/ void, the Mac app: the window, the stage, the agent, voice, its MCP server, evals
apps/cli/ The agent's raea command
ai/agent/ The agent loop, its multi-provider model layer, a Gherkin parser, traces
ai/perception/, ai/meaning/ Reading footage the way an editor does; frame embeddings (SigLIP 2) as columns, searched with K kernels
ai/ml/, ai/score/ Models on ONNX Runtime; the compiler from a .brief to a composition
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