Vol. 1 · No. 254Blender 3.6 / 4.2 / 4.5 / 5.0 / 5.2Cycles · EEVEE
JANCTION
Render · Blender on RTX PRO 6000 · Tokyo
0.1 JPYper GPU-secondFirst 100 JPYfree, no card
Front page / Options for creators: from the first look to a file you can deliver

Options for creators: from the first look to a file you can deliver

JANCTION Render has six options for people who render the same Blender scene many times. In a preview, variations renders 2 to 8 looks of one frame (lighting, strength, camera, object colours) in parallel and tiles them in one sheet: 4 variants took 9 seconds and 7.8 GPU-seconds in production. On a final, compare_to adds a before/after video against an earlier final, deliver adds versions for X, vertical 1080x1920 and square 1080x1080 cut from the same frames with no extra GPU time, passes writes compositing passes as one multilayer EXR per frame (output='prores4444' gives ProRes 4444), and auto_samples tests one frame and renders a final of 100 frames or more with the fewest samples that look the same. Every final also comes with a delivery check (report.json and a contact sheet) that uses no GPU time. AI agents connect at https://render.janction.jp/mcp (remote MCP with OAuth; connecting creates a free key).

Updated 2026-11-06

What it does Compare looks before the final, keep each version comparable, and get files ready to post or composite from one render request.
What it does not do It does not choose a look for you, edit the scene or post anything: the agent shows the results and the person decides.

Try your animationBuild it with an AI and try

Browser only; no connector or CLI needed. A 100 JPY welcome credit for a new key (14 days, no card; one per network every 30 days, further keys on the same network share what is left), and 400 JPY more for saving a card that is not charged (once per card); after that, previews stay free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second.

The six options

  • variations: Compare looks in one preview: render_preview(variations=[{label, environment, environment_strength, camera, colors}, ...]) renders 2-8 variants of the same frame in parallel and tiles them in one sheet labelled A, B, ... (GPU time is the sum of the variants; measured on 2026-11-05: 4 variants in 9 s, 7.8 GPU-seconds). Each variant comes back with its render_final args; colors={'Body': '#cc2233'} on render_final sets an object's Principled Base Color for that render only. Not with cameras, orbit or environment='compare'.
  • compare_to: Before / after: render_final(compare_to=<job_id of an earlier final of the same key>) also returns compare.mp4 (the two versions side by side, frames matched by number), compare.gif, compare.png (the most changed frame) and compare.json (a score per frame and the most changed frames). A single-frame final gives the before / after image.
  • deliver: Videos for social posts: render_final(deliver=['x', 'vertical', 'square']) on an animation also returns social_x.mp4 (fits X: up to 2 min 20 s and 512 MB, 1920x1080 from a 1080p render, otherwise 1280x720), social_vertical.mp4 (1080x1920) and social_square.mp4 (1080x1080). The whole frame is kept on a blurred fill; nothing is cropped. They are cut from the same frames on the server, with no extra GPU time.
  • passes: Compositing passes (Cycles finals): render_final(passes=['depth', 'mist', 'normal', 'diffuse', 'glossy', 'emission', 'ao', 'shadow_catcher', 'crypto_object', 'crypto_material']) writes each frame as one multilayer OpenEXR with those passes. Measured: about 35 MB a frame at 720p with 9 passes. A request is refused before it starts above 400 MB a frame or 20 GB in all (at 1080p: 165 frames with all 10 passes, 523 without Cryptomatte). output='prores4444' gives a ProRes 4444 .mov, with alpha when transparent=True.
  • auto_samples: Automatic samples (Cycles finals of 100 frames or more): render_final(auto_samples=True) first renders one frame (probe_frame, default the middle frame) at 32, 64, 128 and 256 samples up to the requested samples, keeps the lowest that looks the same as the requested samples (PSNR 40 dB or more), and renders the whole range with it. The test is billed like a preview; render_estimate(auto_samples=True) shows its cost and the saving. Shorter finals render at the requested samples and say so. Measured on 2026-11-05: a 120-frame room went from 512 to 64 samples and saved 434 GPU-seconds.
  • report: Delivery check on every finished final: report.json and report_sheet.png (a contact sheet) with frames requested and present, resolution, fps, the decoded frame count and length of the video, black frames, flicker and a rough noise estimate, and a verdict (deliverable / check / problem) in plain words. It runs on the server after the render, uses no GPU time and costs nothing.

Preview replies suggest the options that fit the scene in next_actions (for example, four lighting variants after a one-frame preview, or deliver for an animation of 24 frames or more). Nothing is added unless the call asks for it.

A typical round

render_preview(scene_id, variations=[
  {"label": "studio", "environment": "studio"},
  {"label": "sunset", "environment": "sunset"},
  {"label": "red body", "environment": "studio", "colors": {"Body": "#cc2233"},
  {"label": "top view", "environment": "studio", "camera": "Top"}])
# show the sheet, the user picks C
render_estimate(scene_id, frame_start=1, frame_end=120, width=1920, height=1080, samples=256, auto_samples=True)
render_final(scene_id, frame_start=1, frame_end=120, width=1920, height=1080, samples=256,
             environment="studio", colors={"Body": "#cc2233"},
             auto_samples=True, deliver=["x", "vertical", "square"], compare_to="j_...")
render_download(job_id, only="all")   # output.mp4, social_*.mp4, compare.*, report.json, report_sheet.png

Measured in production (2026-11-05)

OptionWhat came back
variations, 4 variantsone labelled sheet in 9 seconds, 7.8 GPU-seconds
compare_tocompare.mp4 with both versions side by side, and compare.json listing the 14 frames that changed
deliversocial_x.mp4 1280x720 from a 720p render, social_vertical.mp4 1080x1920, social_square.mp4 1080x1080
passes, all 10one multilayer EXR per frame with every pass present; about 35 MB a frame at 720p with 9 passes
output='prores4444'a ProRes 4444 .mov with alpha (transparent=True)
auto_samplesa 120-frame room: 512 samples requested, 64 used, 434 GPU-seconds saved
delivery checkreport.json and report_sheet.png on every final, verdict deliverable

What they cost

  • variations: the GPU time of the variants added together, like any preview.
  • compare_to, deliver and the delivery check run on the server after the render: no GPU time.
  • passes: a final with passes is estimated a little heavier per frame; the estimate says the size before anything is reserved.
  • auto_samples: the one-frame test is billed like a preview; render_estimate(auto_samples=True) shows the test and the saving first.

Connect

fromhow
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
ChatGPTPlugins (left sidebar) → Add → Create plugin → https://render.janction.jp/mcp (OAuth). Attach your .blend to the chat. On Business workspaces an admin adds it and shares it
Claude Codeclaude mcp add --transport http janction-render https://render.janction.jp/mcp, then /mcp to authenticate
Claude Code on the web (claude.ai/code)The same connector as Claude.ai: Settings → Connectors → Add custom connector → https://render.janction.jp/mcp. Works without changing the session's network settings (guide)
Codexcodex mcp add janction-render --url https://render.janction.jp/mcp
Cursor / VS CodeAdd 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
Antigravity CLI / Gemini CLIagy plugin install https://github.com/JasmyLab-JANCTION/janction-render or gemini extensions install https://github.com/JasmyLab-JANCTION/janction-render (the MCP server and the workflow skill)
Kimi Code (Kimi K3 and other models)/plugins install https://github.com/JasmyLab-JANCTION/janction-render (the MCP server and the workflow skill), or add https://render.janction.jp/mcp as a url entry under mcpServers in ~/.kimi-code/mcp.json and run /mcp-config login janction-render (OAuth). Guide
OpenCodeAdd https://render.janction.jp/mcp under mcp in ~/.config/opencode/opencode.json with "type": "remote", then opencode mcp auth janction-render (OAuth). Guide
Qwen Codeqwen extensions install https://github.com/JasmyLab-JANCTION/janction-render (the MCP server and the workflow skill), or qwen mcp add --transport http janction-render with https://render.janction.jp/mcp (stored as httpUrl). Guide
GitHub Copilot CLIcopilot mcp add --transport http janction-render with https://render.janction.jp/mcp, then /mcp auth janction-render in copilot (OAuth). With the skill: copilot plugin marketplace add JasmyLab-JANCTION/janction-render, then copilot plugin install janction-render@janction-render. Guide
DeepSeek Harness (dsh)One @deepseek-ai/dsh-mcp-client entry: transport: streamable-http, url: https://render.janction.jp/mcp, headers Authorization: Bearer with a key from POST /v1/keys (no OAuth). DeepSeek guide (API function calling too)
Grok / Perplexity / Le ChatAdd a custom (remote MCP) connector with https://render.janction.jp/mcp in each app's Connectors settings (Grok: Plugins → New connector → Custom, guide; Perplexity: Pro / Max / Enterprise; Le Chat: workspace admin)
Notion (Notion Agent)Business / Enterprise: Settings → Connections → Discover → Add Custom MCP → https://render.janction.jp/mcp, then sign in (the button shows when a workspace admin allows custom MCP servers)
Windsurf, Cline, Goose, other MCP clientsStreamable HTTP at https://render.janction.jp/mcp; OAuth or Authorization: Bearer <api key>
Claude Desktop and other stdio-only clients (npm)npx -y janction-render (in the client's mcpServers: {"command": "npx", "args": ["-y", "janction-render"]}). The npm package janction-render bridges stdio to https://render.janction.jp/mcp with OAuth; --key jr_… for a key you have, --local for the Python stdio server through uv
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

FAQ

Do I have to turn these on?

No. They are arguments of render_preview and render_final; a call that does not use them renders as before. The delivery check is added to every final by itself.

Do the social cuts crop my frame?

No. The whole frame is kept and the empty part is filled with a blurred copy of the picture, so nothing is cut off.

Why did auto_samples keep my samples?

A final shorter than 100 frames renders at the requested samples, because the one-frame test would cost more than it saves. The reply says so.

Related

Overview · All guides · llms.txt