Official JANCTION Render: https://render.janction.jp
Short answer: upload the model, then order a turntable or product shots from a render API. JANCTION Render is a cloud GPU render farm for Blender that code and AI agents call. On it, a 24-frame 720p turntable of the Khronos glTF sample Duck took 42.56 GPU-seconds, and four 1440x1440 product shots with a transparent background took 12.73 GPU-seconds. At 0.1 JPY per GPU-second that is about 4 JPY and about 1 JPY, and each new key gets 500 JPY of GPU time free.
The code
pip install janction-render. The first call creates a free key and keeps it in ~/.janction-render.json.
from janction_render.client import Client
c = Client()
scene = c.upload("product.glb") # .glb, .gltf, .fbx, .usd or .obj, or a .blend
job = c.outcome("turntable", scene["scene_id"], size="720p", frames=24)
print(job["outcome"]["price_yen"]) # the price ceiling, known before anything renders
job = c.wait(job["job_id"], timeout=900)
print(c.download(job["job_id"], "out", only="mp4"))
shots = c.outcome("product-shot", scene["scene_id"], size="square", transparent=True)
shots = c.wait(shots["job_id"], timeout=900)
print(c.download(shots["job_id"], "shots", only="frames")) # 0, 90, 180 and 270 degrees
The same two orders exist in the HTTP API (POST /v1/files, then POST /v1/outcomes/turntable or POST /v1/outcomes/product-shot) and in the CLI (janction-render outcomes lists them).
What the two orders do
A turntable is one full rotation with an orbiting camera at 24 fps, in studio light unless you pick sunset, overcast or night. It comes in 720p or 1080p with 24, 48 or 96 frames. The camera sits 18 degrees above the model by default, and orbit_target centres it on one object when the file has several.
Product shots are four stills at 0, 90, 180 and 270 degrees, 1080p or square, with an optional transparent background.
The price is known before the render starts and works as a ceiling. A 720p turntable is at most 9, 16 or 30 JPY for 24, 48 or 96 frames, a 1080p one 16, 30 or 59 JPY, and product shots 6 JPY. The ceiling is reserved first, you pay the GPU seconds actually used up to it, and nothing is charged while the free GPU time covers the job.
Measured on the Duck
These are from one run on 2026-10-09, with the 120 KB Duck.glb from the Khronos glTF sample assets.
The upload took 0.8 seconds. The 720p, 24-frame turntable used 42.56 GPU-seconds. It waited 103 seconds behind three larger jobs that were already queued, then rendered in 18 seconds split across four workers, so the MP4 arrived 124 seconds after the order. The square product shots with a transparent background used 12.73 GPU-seconds, started at once and arrived 13 seconds after the order, as four 1440x1440 PNGs with an alpha channel.
An earlier measurement on the benchmarks page: a 48-frame full turn at 960x540 used 75.7 GPU-seconds (https://render.janction.jp/benchmarks).
From an AI agent instead of code
The service is also a remote MCP server at https://render.janction.jp/mcp for Claude, ChatGPT, Codex and Cursor, so "make a 360-degree video of this GLB" works in a chat. The agent can call render_preview with orbit=True first, which shows the model from 0, 90, 180 and 270 degrees, and then render_final with orbit=True, which renders the full turn as an MP4. Files on your disk go through https://render.janction.jp/upload when the chat app cannot read them.
Limits
A job goes up to 240 frames at 1080p. Inputs and results are deleted 24 hours after last use. There are two GPUs, so a job waits in a queue when both are busy, and the status page says so.
More: https://render.janction.jp/product-turntable, https://render.janction.jp/gltf-to-mp4 and https://render.janction.jp/product-shots-multi-angle. Prices: https://render.janction.jp/pricing
Official JANCTION Render: https://render.janction.jp. Code and client: https://github.com/JasmyLab-JANCTION/janction-render
Top comments (0)