Which Python version and modules are available?
Scripts run on Blender 5.0 by default: its bundled Python (3.11) with bpy, mathutils and the standard library. With blender='5.2', the Python bundled with Blender 5.2. No pip installs, no network.
JANCTION Render runs your bpy script inside Blender 5.0 (5.2 or 5.3 if you pass blender='5.2' or '5.3') on a JANCTION GPU and renders the result. Send the script as text (scene_script in MCP) or as a .py file (CLI / HTTP). The script only builds the scene, camera and frame range; the service sets Cycles, resolution and samples. No local Blender needed. Each new key starts with a welcome credit of up to 500 JPY (100 JPY with no card, 400 JPY more after registering a card, which is not charged) (14 days); after that, previews stay free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second. AI agents connect at https://render.janction.jp/mcp (remote MCP with OAuth; connecting creates a free key).
Updated 2026-11-12
What it does Your own .blend, bpy script or 3D file (glTF/GLB, FBX, USD, OBJ...) rendered to images or video on a cloud NVIDIA GPU, from an AI app, the terminal or the browser. The first preview needs no payment.
What it does not do It does not speed up the Blender viewport on your machine, does not take non-Blender video, simulations or general GPU jobs, and an AI that is not connected cannot render on its own.
Paste your AI's script and tryTry your own file for free
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.
import bpy, math
for ob in list(bpy.data.objects):
bpy.data.objects.remove(ob, do_unlink=True)
scene = bpy.context.scene
scene.frame_start, scene.frame_end = 1, 24
bpy.ops.mesh.primitive_monkey_add(location=(0, 0, 1))
cam = bpy.data.objects.new("Camera", bpy.data.cameras.new("Camera"))
scene.collection.objects.link(cam); scene.camera = cam
cam.location = (6, -6, 4); cam.rotation_euler = (math.radians(60), 0, math.radians(45))
sun = bpy.data.objects.new("Sun", bpy.data.lights.new("Sun", "SUN"))
scene.collection.objects.link(sun)
scene.camera; add a light or pass environment='studio'. If both are missing the service adds an automatic camera and sun and says so in warnings.frame_start / frame_end; animate with obj.keyframe_insert("rotation_euler", frame=n). obj.animation_data.action.fcurves was removed in 5.0; for linear motion set bpy.context.preferences.edit.keyframe_new_interpolation_type = 'LINEAR' first.mat.use_nodes (always on); build materials through mat.node_tree.bpy.ops.render.render or change render settings; do not read the network (the sandbox has none).os.environ["JR_ASSETS_DIR"] to find them.# command line pip install janction-render export JANCTION_RENDER_SERVER=https://render.janction.jp janction-render preview scene.py --frames 1-24 janction-render render scene.py --frames 1-24 --size 1280x720 --samples 64 --wait # HTTP curl -X POST https://render.janction.jp/v1/files -H "X-API-Key: $K" -F [email protected]
From an agent, the script is passed as the scene_script argument of render_preview / render_final; the returned scene_id avoids re-sending it.
| 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) | Plugins (older menu: Customize → Connectors) → Add custom connector → https://render.janction.jp/mcp. "Connect" opens a page that creates a free key |
| Claude Team / Enterprise | An owner adds https://render.janction.jp/mcp under Organization settings → Connectors; each member then presses Connect with their own account. In organizations that turn Skills off, Claude Desktop also blocks plugins from November 30 (use the connector URL, or ask the admin to turn Skills on) |
| ChatGPT | Plugins (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 Code | claude 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: Plugins (older menu: Customize → Connectors) → Add custom connector → https://render.janction.jp/mcp. Works without changing the session's network settings (guide) |
| Codex | codex mcp add janction-render --url https://render.janction.jp/mcp (the sign-in page opens right away; if Codex later says the server needs login, run codex mcp login janction-render; with a key, add --bearer-token-env-var JANCTION_RENDER_API_KEY) |
| Cursor / VS Code | Add to Cursor Add to VS Code Add to LM Studio The button opens the editor; confirm and it is added. Manual: Streamable HTTP at https://render.janction.jp/mcp |
| Antigravity CLI / Gemini CLI | agy 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 |
| OpenCode | Add https://render.janction.jp/mcp under mcp in ~/.config/opencode/opencode.json with "type": "remote", then opencode mcp auth janction-render (OAuth). Guide |
| Qwen Code | qwen 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 CLI | copilot 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 Chat | Add a custom (remote MCP) connector with https://render.janction.jp/mcp in each app's Connectors settings (Grok: Plugins → New connector → Custom, guide; Perplexity: Settings → Connectors → Custom → Remote, Pro / Max / Enterprise, OAuth; Le Chat: workspace admin, OAuth or a Bearer key) |
| Gemini app (gemini.google.com) | On the web: Settings → Connected Apps → Custom apps, add the MCP URL https://render.janction.jp/mcp (web only, English interface, with activity saving on). Sign-in is the OAuth consent page |
| Manus | Connectors → Create → Add MCP by URL with https://render.janction.jp/mcp (remote MCP only; OAuth or a Bearer key) |
| MiniMax (MiniMax Code) | One streamable-http entry in the MCP settings: url https://render.janction.jp/mcp, and Authorization: Bearer jr_… in headers |
| 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) |
| JetBrains (AI Assistant, Junie) | AI Assistant: Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add → connect over HTTP with {"mcpServers": {"janction-render": {"url": "https://render.janction.jp/mcp"}}}. Junie: the same url in ~/.junie/mcp/mcp.json (Authorize opens the browser), or "headers": {"Authorization": "Bearer jr_…"} |
| Kiro (IDE, CLI) / Amazon Q Developer CLI | Kiro: "url": "https://render.janction.jp/mcp" under mcpServers in ~/.kiro/settings/mcp.json (in the IDE, open a folder: MCP SERVERS appears in the Kiro panel and the authorization page opens; in the CLI, /mcp auth janction-render). With a key: "headers": {"Authorization": "Bearer ${JANCTION_RENDER_API_KEY}"} (add the variable to Mcp Approved Env Vars). Amazon Q Developer CLI: "type": "http" and the same url in the agent configuration, then /mcp to sign in |
| Microsoft Copilot Studio | Tools → Add a tool → New tool → Model Context Protocol → Server URL https://render.janction.jp/mcp. Authentication: OAuth 2.0 with Dynamic discovery, or API key (Header, name X-API-Key, value jr_…). Set the agent's Settings → Generative AI → Orchestration to Yes (generative orchestration), or it will not use the tool |
| LM Studio (0.3.17 or later) | Program tab → Install → Edit mcp.json: {"mcpServers": {"janction-render": {"url": "https://render.janction.jp/mcp", "headers": {"Authorization": "Bearer jr_…"}}}} |
| Cherry Studio | Settings → MCP Servers → Add → Import from JSON: {"mcpServers": {"janction-render": {"type": "streamableHttp", "baseUrl": "https://render.janction.jp/mcp"}}}. Turn it on and press "Sign-in required." to open the consent page in the default browser. If no tools show after signing in, turn the server off and on again (with a key: "headers": {"Authorization": "Bearer jr_…"}) |
| Windsurf, Cline, Goose, Amp, Auggie, Warp, Zed, Roo Code, Continue and other MCP clients | Streamable 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 |
The script runs with --factory-startup inside an isolated, disposable environment (no network access, time limit) on one GPU, then the service applies the render settings and renders the requested frames. Warnings and the log tail come back with the job.

| job | GPU time | note |
|---|---|---|
| preview, 4 frames (720p split in 4 tiles, 16 samples, denoised) | about 4 s | round trip about 8 s; the image comes back inline |
| final, 24 frames at 1280x720, 64 samples → MP4 | about 60 s | measured 2026-09-30 / 10-01 (59 s and 58 s) |
| final, one 1920x1080 frame at 128 samples | about 11 s | the estimator's baseline; heavy scenes take longer |
These are individual observations of simple scenes (2026-09-30 to 10-01 UTC, NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96 GB). The 4-GPU-second example used a rotating cube, four 640x360 tiles and 16 samples. GPU time includes Blender startup and scene loading; it is distinct from completion time including queue and transfers. See conditions, round trips and reproduction files. These are not speed guarantees.
render_estimate gives the number before rendering; once a scene has been rendered once, the estimate uses that scene's own measurement.
Pricing (since 2026-10-08): Each new key gets 100 JPY of GPU time free with no card (1,000 GPU-seconds, 14 days) for previews and finals, and 400 JPY more once a card is saved on a Stripe page that charges nothing (once per card): up to 500 JPY in all. After it is used up or expires, previews are free up to 2 GPU-minutes per key per day and final renders are paid from prepaid credit at 0.1 JPY per GPU-second. Top-ups (paid) start at 100 JPY. The first top-up during the 14-day welcome period counts 1.5x, with the bonus capped at 500 JPY (100 JPY buys 150 JPY of credit). Top-ups of 2,000 JPY or more get 10 to 20% extra (not combined with the first-top-up bonus; the larger one applies). Top-up bonuses are separate from the welcome credit and the card-saving credit. Payment is on a Stripe Checkout page. One full welcome credit per network every 30 days; further keys from the same network use what is left of that network's credit. A job without enough credit gets HTTP 402 payment_required with a checkout_url. Final renders go up to 3,000 frames per instruction (automatically split internally under one job id), 1080p (1920x1080) on free time and up to 4K (3840x2160) on prepaid credit. The free preview time resets at 00:00 UTC (09:00 JST). No sign-up: connecting creates a key. Inputs and results are deleted 24 hours after last use (normally 7 days for keys that have paid 500 JPY or more in total) and never used for training.
If you cannot add a connector to your AI (plan or administrator settings), the same result is one step away: send the prompt below to the AI and paste the code it returns into the paste-and-render page. The preview needs no payment.
Write a Blender 5.0 bpy script that builds <describe your scene here>. Add a camera and set scene.camera, and add one light. Do not call render and do not change render settings. Reply with the code only.
To fix something, give the AI the preview's notes (too dark, cut off, no light) and paste the rewritten script again.
Scripts run on Blender 5.0 by default: its bundled Python (3.11) with bpy, mathutils and the standard library. With blender='5.2', the Python bundled with Blender 5.2. No pip installs, no network.
Only files you sent as assets, through JR_ASSETS_DIR. To render an existing .blend, send the .blend itself instead of a script.
The service sets Cycles with its own resolution, samples and denoising. Materials, lights, world and camera come from your script; if a world or light is missing, defaults are added and reported in warnings.