v0.1 · closed betaProfessional video production API for agents

Give your AI agent
a professional video production engine.

Your agent writes the edit plan. FrameLane renders the video.
Built with Rust. GPU native. No React. No browser. No Lambda.

Request access →View docs
No credit card required · API + MCP · Preview before render
console.framelane.io/render/job_01HX5DG
live
FRAMELANE
029302df.mp40:00 / 0:00
Render log
00:00downloading assets: 1.2 GB
00:031920×1080 h264 30 fps
00:03gpu: NVIDIA L4
00:04hdr detected
00:04stereo · loudness −14 LUFS
00:05dropped transition (×2)
00:05init decoders · 720 frames
00:06render frame 72 / 720
00:08·render frame 288 / 720
00:11·render frame 623 / 720
00:--·encode → mp4 1080p
00:--·upload
00:--·done · total 38.2s
00:--·deliver via webhook
EST. COMPLETION
00:18s

What agents can make
with FrameLane.

Start with real footage. Let your agent define the edit. FrameLane renders the final video.

USE CASE

Layered video composition

AGENT PROMPT

Stack two full-frame clips with vintage and bokeh effects, drop in a bordered PiP at second 30, sequence four text layers with fade, difference, overlay, and evaporate motion — export 3840×2160.

Vintage effectBokeh blurPiP overlayText motionDifference blend4K export

Stack video layers with effects, add a picture-in-picture overlay, and sequence text with blend and dissolve motion — one render job.

job_01HX5DGdone ● total 18.2s

Everything an agent needs
to produce video.

A complete editing and rendering pipeline exposed through API, SDKs, and MCP.

Asset ingest

Upload or reference video, audio, images, fonts, and LUTs. FrameLane handles metadata, proxies, transcoding, and problematic media inputs.

{
  "source_url": "https://cdn.example.com/clip.mp4"
}

How FrameLane
works.

The rendering engine is written in Rust and built on wgpu. The same codebase compiles to a native binary that runs on Vulkan on GCP GPU instances, and to WebAssembly that runs against the browser's GPU API in your web application.

Rustmemory-safe core
wgpuGPU abstraction
WebGPUin-browser preview
VulkanLinux / GCP
GPU-accelerated effects on every platform
Fragment shaders with parallel control over every pixel
No "looked fine in the browser" surprises
INrender_job.json{ elements, duration, format }
FRAMELANE RENDERER
Rust · wgpu
fragment shaders

Built for real video,
not just motion graphics.

  • GPUNo GPU on Lambda

    Lambda and Vercel Sandbox do not have GPUs. You are limited to CPU-only rendering.

    FrameLane renders on GPU. Every job.

  • RenderingCSS animations are forbidden

    CSS transitions or animations are FORBIDDEN — they will not render correctly.

    FrameLane is GPU-native. No browser. No frame simulation. No flickering.

  • AI AgentsAgents have to write React

    No React, no proprietary DSL. AI-first — agents already speak HTML/JSON.

    FrameLane is JSON-in, video-out. Any agent, any language, one API call.

  • PerformanceGrinds to a crawl with real video

    After about 20–30% of rendering 4k video is complete, it grinds to a crawl and renders at about 5fps and continues to slow.

    GPU decode, GPU encode, parallel rendering.

Capability
FrameLane
Remotion
Shotstack
FFmpeg
Timeline editing
Yes
limited
Yes
Template only
Yes
Manual
GPU effects and animations
Yes
No
CSS only
No
No
AI background removal
Yes
In pipeline
No
No
No
Separate
Gaze correction
Yes
No
No
No
Preview = render output
Yes
WASM
Yes
Sometimes wrong
No
No
MCP / agent native
Yes
No
No
No
4K + HDR tonemapping
Yes
No
Browser bound
limited
limited
Manual
No browser required
Yes
No
Core architecture
Yes
Yes
Built with
Rust/WGPU
React
FFmpeg wrapper
C

Get started
in seconds.

Install the SDK and start building with FrameLane — from ingest to render in a single API call.

# 1. Create render
curl -X POST https://api.framelane.io/v1/renders \
  -H "Authorization: Bearer $FRAMELANE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "width": 1920,
    "height": 1080,
    "duration": 30,
    "elements": [
      {
        "type": "video",
        "source_url": "https://storage.example.com/raw-footage.mp4",
        "in_point": 0, "out_point": 30
      },
      {
        "type": "text",
        "text": "Hello World",
        "font_family": "Inter",
        "font_size": 48,
        "text_color": "#ffffff",
        "animation_preset": "typewriter",
        "time": 0, "duration": 30,
        "x": "50%", "y": "90%"
      },
      {
        "type": "image",
        "id": "logo",
        "source_url": "https://storage.example.com/logo.png",
        "time": 0, "duration": 30,
        "x": "90%", "y": "10%",
        "width": "10%", "height": "10%",
        "z_index": 1
      }
    ]
  }'

# 2. Poll until completed and download the result
curl https://api.framelane.io/v1/renders/{id} \
  -H "Authorization: Bearer $FRAMELANE_API_KEY"