raea 0.1.0-canary.3

The third canary of the raea engine: the raea CLI that renders, plays and checks compositions, games and apps written in React and TypeScript, with the SDK, the runtime and the agent skills beside it.

View as Markdown

The third canary of the raea engine: the raea CLI that renders, plays and checks compositions, games and apps written in React and TypeScript, with the SDK, the runtime and the agent skills beside it. It needs no account and talks to no raea server.

Terminal
curl -fsSL https://raea.io/install | sh

On Windows, in PowerShell: irm https://raea.io/install.ps1 | iex. Then:

Terminal
mkdir my-video && cd my-video && raea init
raea render

What changed since 0.1.0-canary.2

Apps, on the web or native. A TSX app is its own program now, and its file says where it runs: export const app = { target: "web" } (the default) draws it with Blitz, as before, and target: "native" draws it in a native window with Rune. It is one SDK either way: React, @raea/ui and Tailwind, plus @raea/rune for what only a native window has (window chrome, materials, effect slots). raea app run opens it, raea app bundle packs it with raea's own bundler, and raea app check drives it headless on either target with its own scripted steps (export const steps), writes the frames, and reports every prop or call the target can't honour in unmapped.json, never dropping one quietly. Both hosts (raea-rune-host and raea-page-host) ship in this archive. The raea skill's "Apps: web or native" section and sdk/rune/examples/ show two apps that pass the check on both targets.

React Three Fiber, both ways. An R3F scene runs inside a raea composition, a raea composition runs inside an R3F <Canvas> (or any three.js app, through Scene3d), and raea can export a composition as React Three Fiber source. Each way is held to the other renderer, and anything with no counterpart is listed, not lost. raea's solids are on the web too: the shape and web modules are attached to this release (SHA256SUMS beside them).

Ray tracing and denoising. <SolariLighting> turns on Bevy's Solari path tracer for a camera where the GPU can run it, MetalFX denoises and upscales it on the Mac, and raea render --aov writes each frame's motion vectors and depth beside its picture. raea neural mlxdlss runs MLX-DLSS on a render with raea's own motion and depth; its weights are NVIDIA's and yours to fetch, never shipped with raea.

Closer to Bevy. Any field of any component can be set from frame to frame, transforms are Bevy's Transform end to end, units are Bevy's, and each Bevy concept has one form in TSX. Bevy's own examples are being ported as the reference: instancing (thousands of entities sharing a mesh and material batch as Bevy batches them), <Material fragment> with your own shader file compiled as written, and <EnvironmentMapLight> with Bevy's prefiltered maps.

Skills that stay true. The raea and raea-bevy skills are partly generated from the CLI and SDK and checked against this release's raea before it ships: a stale reference, a retired name, a flag no command takes or a dead link stops the release.

Windows. The Windows zip is still building on GitHub's Windows runner and will be added to this release. Until it is, install canary.2 there: $env:RAEA_VERSION = "0.1.0-canary.2"; irm https://raea.io/install.ps1 | iex.

This release is built from v0.1.0-canary.3, which is an export of its own commit; the repository's main branch already has later work.

Known missing

  • A Bevy 3D view inside a native app. The native target draws UI; an embedded world is next (it needs Rune's wgpu backend on macOS, since its Metal backend has no depth or MSAA yet).
  • On the native target, the page below the app's root is painted white where the web paints it black.
  • On the web target, a label in a narrow box can wrap where Chrome wouldn't.
  • raea song is macOS only.
  • On Linux, an app's window (raea app run, on either target, and raea app check's web target) needs a display: X11 or Wayland, or Xvfb on a server. A minimal system also needs libxkbcommon-x11-0 libxcursor1 libxi6 libxrandr2 libx11-xcb1 libvulkan1 (Debian and Ubuntu names). The archive's README lists them.