Updated 2026-10-07
Put one camera object per angle in the bpy script (for example Iso, Top, Front, Side, CloseA, CloseB, CloseC), then call render_preview(scene_script=..., cameras=['Iso','Top','Front','Side','CloseA','CloseB','CloseC'], environment='studio'): all seven come back tiled in one labeled image in about 5 GPU seconds. When it looks right, render_final with the same cameras list returns one 1080p PNG per camera (camera_files tells which is which). One job instead of seven; the preview sheet costs the same as a single 720p frame.
Paste this into ChatGPT (with the JANCTION Render connector), Claude.ai, Claude Code or Cursor:
Build a Blender scene of a white ceramic mug on a light grey studio floor. Add seven cameras named Iso, Top, Front, Side, CloseA (rim), CloseB (handle), CloseC (base). Preview all seven with JANCTION Render in one sheet using cameras=[...] and environment='studio'. Show me the sheet; when I say OK, render one 1920x1080 PNG per camera.
render_preview(scene_script="...", cameras=["Iso","Top","Front","Side","CloseA","CloseB","CloseC"], environment="studio")
# -> one labeled sheet (3 columns), final_estimate and quota_left_today
render_final(scene_id="<from the preview>", cameras=["Iso","Top","Front","Side","CloseA","CloseB","CloseC"],
width=1920, height=1080, samples=128, environment="studio")
# -> frame_0001.png .. frame_0007.png; camera_files = {"Iso": "frame_0001.png", ...}
Each camera is a normal Blender camera object: cam = bpy.data.objects.new("Top", bpy.data.cameras.new("Top")), placed and aimed in the script. The service switches scene.camera between renders inside one Blender session, so the scene is loaded once.
environment='compare' on a single-camera preview shows studio / sunset / overcast / night in one image; pick one and pass it with the cameras list. environment_visible=false keeps the HDRI lighting on a flat grey backdrop; transparent=true with output="png" gives an alpha background for web pages.
Up to 8 cameras per job, one frame per camera (frame_start picks it). Not combinable with orbit, environment='compare' or a single camera. For an animation from several cameras, submit one job per camera.
| 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 |
| 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.
Free beta (as of 2026-10-01): 10 GPU-minutes per key per day (20 per network), final renders up to 240 frames at 1080p. Quotas reset at 00:00 UTC (09:00 JST). New jobs exceeding the quota are rejected with HTTP 429 quota_exceeded and resets_at; they are not queued for the next day. Resubmit after the quota resets. No sign-up: connecting creates a key. Inputs and results are deleted 24 hours after last use and never used for training. Paid plans will be announced on this site and in llms.txt before they start.
No. The sheet is tiled into one 1280x720 image, so seven tiles cost about the same GPU time as one 720p frame, plus a few seconds of Blender start-up.
The job (and the MCP result) carries camera_files, a map from camera name to file name; frame_0001.png is the first camera in your list, and so on.
Not in one job: cameras renders one frame per camera. Submit one final per camera with frame_start..frame_end, or use orbit=true for a turntable.
Yes. Add the connector URL in ChatGPT's Developer mode (Settings → Connectors); the consent page creates a free key. No Blender and no GPU on your side.
JANCTION Render v0.4.19 · JasmyLab Inc. · Updated 2026-10-07 · Tested with Blender 5.0, JANCTION Render 0.4.19 · 日本語