oxframe-sdk

mcp
Security Audit
Warn
Health Warn
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Motion graphics as Rust code, made for AI agents. A scene is an async fn; oxframe check returns a storyboard and a report that points to the line to fix. Native, deterministic rendering to MP4, WebM, ProRes or PNG — no browser, no Node. Text, code, charts, matrices, formulas, 3D, sound.

README.md

oxframe-sdk

crates.io
docs.rs
license
playground

The oxframe showreel: functions on axes, a lit 3D cube, a linear map and a shader sea, every frame drawn by oxframe

The reel on oxframe.dev, made by examples/src/showreel.rs.

Status: oxframe is under very active development. The API is not stable yet and may change from version to version. Pin the exact version in your Cargo.toml and check the changelog before upgrading.

The Rust SDK of oxframe.

Procedural animation in Rust, modelled after Motion Canvas: a scene is an
async fn, and every .await on an animation is a frame boundary.

use oxframe::prelude::*;

#[oxframe::scene]
async fn intro(view: View) {
    let square = view.add(Rect::new().size(200.0).x(-300.0).fill(color!("#e13238")));
    all((
        square.x().to(300.0, 1.0),
        square.radius().to(100.0, 1.0),
    ))
    .await;
}

fn main() {
    Project::new("intro").scene(intro()).main();
}

Install the CLI and create a project; its src/main.rs starts from a scene
like this one:

Install oxframe-cli, oxframe init my-video, oxframe render, then the rendered square-to-circle scene plays — every frame drawn by oxframe

Made by examples/src/quickstart.rs (scripts/readme-gif.sh); the command output is oxframe-cli 0.21.0's.

cargo install oxframe-cli   # needs Rust; rendering needs ffmpeg on PATH
oxframe init my-video
cd my-video
oxframe dev                 # live editor — or:
oxframe render              # writes out/my-video.mp4

Or skip the install and open the playground.
(cargo run -p oxframe-examples --bin <name> runs the bundled examples from a
clone of this repo.)

With an AI agent

oxframe is made for agents that write the video and check their own
frames (oxframe check).

npx skills add oxygenframe/oxframe-sdk     # Cursor, Copilot, Codex, Claude Code and others

In Claude Code, the plugin adds the skill and the oxframe mcp server:

/plugin marketplace add oxygenframe/oxframe-sdk
/plugin install oxframe@oxframe

The same plugin works in Cursor (.cursor-plugin/): the skills and the
oxframe mcp server. Until it is listed in the Cursor Marketplace, load it
locally:

git clone https://github.com/oxygenframe/oxframe-sdk
cp -r oxframe-sdk/plugins/oxframe ~/.cursor/plugins/local/oxframe   # then reload Cursor

In Codex:

codex plugin marketplace add oxygenframe/oxframe-sdk
codex plugin add oxframe@oxframe

All of them need the CLI: cargo install oxframe-cli (or the
install script). Every release
gets a video of its notes from
release-video-action,
made with oxframe.

Crates

Crate Purpose wasm32
oxframe-core signals, tweens, Ease, Lerp (incl. path morphing, gradients), deterministic executor, all / sequence / spawn / wait_for / wait_until, seeded random yes
oxframe-2d scene graph: Rect, Circle (arcs, pies), Polygon, Star, Path, Line (smooth, arrows), Txt (rich spans, glyph morph), Code (highlighting, focus), Img (PNG/JPEG/SVG), Layout (flexbox/grid via taffy), Grid, Group; gradients, dashes, clip, blend modes, blur, shadow, z-index, anchor yes
oxframe-text text layout (parley) and glyph outlines (skrifa), embedded Inter and JetBrains Mono, syntax highlighter yes
oxframe-render Renderer trait; tiny-skia CPU backend; vello GPU backend (native and WebGPU into an OffscreenCanvas) yes
oxframe-export ffmpeg pipe (mp4, webm, ProRes 4444, PNG), audio muxing, waveform no
oxframe-preview protocol session; native WebSocket server session only
oxframe-protocol Command / Event, meta.json schema, TS types via ts-rs yes
oxframe-macros #[oxframe::scene], color!, ease!, tune! —
oxframe-components ready-made blocks: TitleCard, BulletList, CodeExplainer, FlowDiagram, Callout, LowerThird, EndCard; Axes with plots, bars and vectors; Matrix, Table yes
oxframe-3d Scene3d, meshes (cube, sphere, plane, cylinder, .glb models), lights, camera; deterministic software rasterizer shown through View3d (feature 3d) yes
oxframe-icons icon!("lucide:server"): Lucide, Tabler and Simple Icons; only the named icons go into the binary (feature icons) —
oxframe-math Math::new("x^2"): formulas set by Typst with a bundled math font (feature math, not in the playground) not used
oxframe facade: prelude, Project, Engine, project CLI (render, preview, check, inspect, snapshot, info), browser API (wasm feature); features gpu, 3d, icons, math, video, unstable-node-api yes

Examples

cargo run --release -p oxframe-examples --bin <name> -- render|preview|info
with intro, text, morph, layout, chart, particles, showcase,
effects, shapes, typography, benchmark.

Guarantees

  • Deterministic. The same code and meta.json give byte-identical frames:
    fixed dt = 1/fps, single-threaded executor, no wall clock, ordered maps only.
  • Exact timing. A tween that ends between frames hands its exact end time
    to the next one, so chains of non-frame-aligned durations do not drift.
  • meta.json is the source of truth for markers (wait_until), named
    eases (ease!) and tunables (tune!); code only supplies defaults, which are
    recorded on first run. Unknown keys are preserved; output is sorted and
    2-space indented.

Development

cargo test --workspace
cargo test --release -p oxframe-examples --test acceptance   # M0 acceptance, seek budget
cargo bench -p oxframe-examples --bench seek
cargo test -p oxframe-protocol --features ts                 # writes crates/oxframe-protocol/bindings
cargo test -p oxframe-render --features gpu --test golden    # CPU and GPU against golden frames
OXFRAME_UPDATE_GOLDEN=1 cargo test -p oxframe-render --test golden   # regenerate references (CPU)

License

Licensed under either of MIT or Apache-2.0 at your option.

Reviews (0)

No results found