Updated 2026-10-07
Blender renders headless with blender -b scene.blend -f 1 (or -P script.py), so an API around it is a queue that runs that command on a machine with an NVIDIA GPU, stores the frames, and hands out links; the work is everything around it: installing Blender and drivers, keeping GPU memory from one job leaking into the next, sandboxing user scripts, estimating time, retrying, and paying for a GPU that sits idle between jobs. JANCTION Render is that API already running on datacenter GPUs: POST a .blend, a bpy script or a 3D file, get a tiled preview in seconds, an estimate, the final frames or MP4, a webhook, and an MCP server for AI agents, with a free daily quota. Build your own when the farm must stay inside your network or runs all day; call the hosted one when jobs are bursty, an agent drives them, or there is no GPU at hand.
| Part | Doing it yourself | On JANCTION Render |
|---|---|---|
| Machine | an NVIDIA GPU box (cloud VM or on-prem), drivers, Blender 5.x, ffmpeg for video | NVIDIA RTX PRO 6000 (96 GB) in a datacenter, Blender 5.0 (5.2 when the worker has it), ffmpeg |
| Running a job | blender -b scene.blend -o //out/ -F PNG -f 1 or blender -b -P script.py; a worker loop; one job at a time per GPU | POST /v1/jobs or render_final; frames are split into chunks and queued |
| Isolation | a bpy script can read any file and open the network; you need a sandbox (container, read-only root, seccomp) per job | each render runs in a throw-away container with a read-only root and a script audit; security |
| Previews and estimates | write them: a low-sample tiled render, and a time model from past jobs | render_preview (1 to 4 frames in one image, a few seconds), render_estimate from measured per-frame times |
| Delivery | object storage, signed URLs, expiry, MP4 assembly | signed links valid 24 hours, MP4 / WebM / ProRes / GIF / WebP assembled, share pages |
| Agents | wrap the API as MCP tools yourself | remote MCP (OAuth) at https://render.janction.jp/mcp, stdio package on PyPI, tool descriptions written for agents |
| Cost | the GPU is paid for whether it renders or idles | free beta (10 GPU-minutes per key per day); planned 0.1 JPY per GPU-second, metered |
# one frame to PNG blender -b scene.blend -o //render/frame_#### -F PNG -f 1 # frames 1-48 to PNG, then a video with ffmpeg blender -b scene.blend -o //render/frame_#### -F PNG -s 1 -e 48 -a ffmpeg -framerate 24 -i render/frame_%04d.png -c:v libx264 -pix_fmt yuv420p out.mp4 # a scene built by a script (what an AI agent writes), rendered by the script's own settings blender -b -P build_scene.py
JANCTION Render runs the same thing; the script only builds the scene, the camera and the frame range, and the service sets resolution, samples, denoising, device and output. The agent-facing flow is on the API page; a batch / CI angle is on headless Blender in the cloud.
| from | how |
|---|---|
| A file on this computer (.blend, 3D file) | Drop it at /upload to get a 12-hour link (no sign-up), then tell the AI "Render this file: <link>". From inside Blender use the add-on; from a terminal the CLI uploads directly |
| Claude.ai (web / desktop / mobile) | Settings → Connectors → Add custom connector → https://render.janction.jp/mcp. "Connect" opens a page that creates a free key |
| ChatGPT | Settings → Connectors → Advanced → Developer mode → Create → https://render.janction.jp/mcp (OAuth) |
| Claude Code | claude mcp add --transport http janction-render https://render.janction.jp/mcp, then /mcp to authenticate |
| Codex | codex mcp add janction-render --url https://render.janction.jp/mcp |
| Cursor / VS Code | Add to Cursor Add to VS Code The button opens the editor; confirm and it is added. Manual: Streamable HTTP at https://render.janction.jp/mcp |
| Gemini CLI / Antigravity CLI | gemini extensions install https://github.com/JasmyLab-JANCTION/janction-render |
| Grok / Perplexity / Le Chat | Add a custom (remote MCP) connector with https://render.janction.jp/mcp in each app's Connectors settings (Grok: New Connector → Custom; Perplexity: Pro / Max / Enterprise; Le Chat: workspace admin) |
| Windsurf, Cline, Goose, other MCP clients | Streamable HTTP at https://render.janction.jp/mcp; OAuth or Authorization: Bearer <api key> |
| Terminal (stdio, sends local files) | claude mcp add janction-render -e JANCTION_RENDER_SERVER=https://render.janction.jp -- uvx --from janction-render janction-render-mcp |
| Inside Blender (for people) | The add-on; extension repository https://render.janction.jp/extensions/index.json. Maya / Houdini / Cinema 4D: submit tools |
The worker is part of the operated service, not a product you install. If the farm must stay inside your network, the table above lists what to build; the public API shape is documented in the OpenAPI so a self-hosted clone can speak the same calls to the same agents.
5.0 by default; 5.2 when the worker has it (blender='5.2'). Scripts should target the 5.x Python API (materials always use nodes, keyframes via keyframe_insert).
No. Network, subprocess and file access outside the job folder are rejected before the render (400 script_blocked) and audited at run time; bpy, math, mathutils, random and the standard geometry helpers are fine.
Yes, per key and per network: a daily GPU quota, per-job frame and pixel limits, and request limits. The numbers are at /facts and in each error response.
JANCTION Render v0.4.20 · JasmyLab Inc. · Updated 2026-10-07 · Tested with Blender 5.0, JANCTION Render 0.4.20 · 日本語