Janction Render

io.github.JasmyLab-JANCTIONv0.2.1更新于 Oct 1, 2026

Render Blender scenes (.blend or bpy script) on JANCTION GPUs from AI agents: previews, frames, MP4.

已验证Streamable HTTP可网页运行Cloud & InfrastructureMedia & Design

概览

AI 生成的概览

在 JANCTION 云端 GPU 上渲染 Blender 场景,返回预览帧、耗时估算以及最终的 PNG 或 MP4 结果。

功能
让助手提交 .blend 文件、bpy 场景脚本或场景链接,并在远程 GPU 上渲染。工具包括:scene_info 在不渲染的情况下查看相机、帧范围和缺失文件;render_preview 返回最多四帧低成本的拼接预览图;render_estimate 给出 GPU 秒数、排队等待和配额是否够用;render_final 输出 PNG 或 MP4;render_status、render_download 和 render_cancel 用于任务控制;另有 billing 和 render_info 查看配额与可用工作节点。命令行工具提供相同操作。
适用场景
适合没有本地 GPU、本地渲染太慢,或希望助手通过预览、调整、再渲染来反复迭代场景的情况。也适合用 bpy 脚本构建场景、需要在最终渲染前快速获得视觉反馈的智能体工作流。
运行要求
远程方式:连接 Streamable HTTP 端点,使用 OAuth 2.1 或 Bearer API 密钥,无需安装。本地 stdio 方式:需要 Python 与 uvx 或 pip,以及 JANCTION_RENDER_SERVER 服务地址(默认 API 密钥并缓存在本地;可用 JANCTION_RENDER_API_KEY 固定密钥。需要网络访问。
安装前请注意
stdio 服务会把本地场景文件发送到远程服务,请勿提交机密素材。API 密钥关联配额以及日后的额度,JANCTION_RENDER_API_KEY 应视为机密。免费测试期每个密钥每天 10 GPU 分钟,之后计划按 GPU 秒计费,可能产生费用。输入和结果在最后一次使用后 24 小时删除。场景脚本在无网络的隔离容器中运行。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Janction Render,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "janction-render": {
      "type": "http",
      "url": "https://render.janction.jp/mcp"
    }
  }
}

README

JANCTION Render

[JasmyLab-JANCTION/janction-render MCP server]

A cloud GPU render farm for Blender, built for AI agents. Render Blender scenes on JANCTION GPUs from Claude, ChatGPT, Claude Code, Codex, Cursor or any MCP client: an MCP server (remote and stdio) plus a CLI. Use it to render Blender without a GPU, or when rendering locally is slow.

  • Input: a .blend file, or a bpy Python script that builds the scene (no local Blender needed).
  • scene_info reads the scene without rendering (cameras, frame range, missing files).
  • render_preview returns 1-4 low-cost frames tiled in one image within seconds, so the agent can look, fix, and repeat.
  • render_estimate says how long a render will take ("about 3 minutes") and whether it fits today's free quota.
  • render_final renders the frames on GPUs and joins them into an MP4; render_status reports the remaining time.
  • Free beta: no charges. Each key gets 10 GPU-minutes per day; a final render is up to 240 frames at 1080p. Paid plans (per GPU second, prepaid credit) will be announced on the service page before they start.
  • Inputs and results are deleted 24 hours after last use and are never used for training.

Status

Free beta. Service page: https://render.janction.jp (/v1/health, /llms.txt). Blender 5.0, Cycles on GPU.

Connect (remote MCP, nothing to install)

MCP server URL: https://render.janction.jp/mcp (Streamable HTTP). Auth is OAuth 2.1 with dynamic client registration: pressing "Connect" opens a page that creates a free API key (or takes one you already have). A raw API key also works as Authorization: Bearer jr_....

clienthow
Claude.ai (web, desktop, mobile)Settings → Connectors → Add custom connector → paste the URL → Connect
ChatGPTSettings → Connectors → Advanced → Developer mode → Create → paste the URL (OAuth)
Claude Codeclaude mcp add --transport http janction-render https://render.janction.jp/mcp, then /mcp to authenticate
Cursor, Windsurf, other MCP clientsStreamable HTTP at the URL above (OAuth, or a Bearer API key header)

Remote tools take scene_script (bpy code as text), scene_url (an https link to a .blend or .py) or scene_id; results come back as an inline image plus download links that need no key and work for about 24 hours.

Claude Code plugin (the remote connector plus a skill with the workflow):

/plugin marketplace add JasmyLab-JANCTION/janction-render/plugin install janction-render@janction-render

Install (stdio MCP, sends local files)

The package is on PyPI as janction-render.

# Claude Code (uvx runs it without a global install)claude mcp add janction-render -e JANCTION_RENDER_SERVER=https://render.janction.jp -- uvx --from janction-render janction-render-mcp
# or with pip / pipxpip install janction-renderclaude mcp add janction-render -e JANCTION_RENDER_SERVER=https://render.janction.jp -- janction-render-mcp

Codex: add to ~/.codex/config.toml

toml
[mcp_servers.janction-render]command = "uvx"args = ["--from", "janction-render", "janction-render-mcp"]env = { JANCTION_RENDER_SERVER = "https://render.janction.jp" }

A temporary API key is issued automatically on first use and cached in ~/.janction-render.json; set JANCTION_RENDER_API_KEY to pin one (quota and, later, credit belong to the key). The same key can be used from the remote connector: paste it on the connect page.

Then, in Claude Code:

Build a small street scene in Blender with a camera fly-through and render a preview with janction-render.

Tools

toolwhat
`scene_info(scene_scriptscene_url
render_preview(..., frames="1-24")up to 4 frames (720p budget) tiled with frame labels; returns the image inline
render_estimate(scene_id, frame_start, frame_end, width, height, samples)GPU seconds, queue wait, "about N minutes", fits today's free quota? No GPU time used
render_final(scene_id, frame_start, frame_end, width, height, samples, fps, output)PNG or MP4; returns job_id + estimate
render_status(job_id)progress and ETA (eta.human); render_download(job_id) files or links; render_cancel(job_id)
billing()free-beta quota (used today, daily limit, reset time); later balance and top-up link
render_info()workers online, queue and expected wait

CLI: janction-render inspect|preview|render|status|download|cancel|jobs|balance|topup|info.

Writing a scene script

python
import bpy, mathfor ob in list(bpy.data.objects):    bpy.data.objects.remove(ob, do_unlink=True)scene = bpy.context.scenescene.frame_start, scene.frame_end = 1, 24bpy.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 = camcam.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)

The service sets engine (Cycles), resolution, samples and denoising; your script sets the scene, camera and frame range. Scripts run in an isolated container with no network. See samples/cube_scene.py.

HTTP API

POST /v1/keys                                   -> {api_key}         (header X-API-Key afterwards)POST /v1/files  multipart "file" (.blend|.py)   -> {scene_id}POST /v1/estimate {kind, frames|frame_start/frame_end, width, height, samples, scene_id?} -> seconds, wall_seconds, human, quotaPOST /v1/jobs   {scene_id, kind: info|preview|final, frames|frame_start/frame_end, width, height, samples, camera, fps, output}GET  /v1/jobs/{id}      status, progress, eta, artifacts[], cost, warnings, info    DELETE /v1/jobs/{id}  cancelGET  /v1/jobs/{id}/artifacts/{name}             PNG / MP4POST /mcp                                       remote MCP (Streamable HTTP; Bearer api key or OAuth)GET  /.well-known/oauth-protected-resource/mcp  OAuth discoveryPOST /v1/billing/checkout {amount_yen} -> {checkout_url}   POST /v1/billing/sync   GET /v1/ledger   GET /v1/meGET  /llms.txt  /terms  /privacy  /legal  /security

During the free beta a 429 quota_exceeded response carries resets_at; a 400 beta_limit means the job is too big (split it). Once paid plans start, a 402 payment_required response carries checkout_url.

Self-hosting

The server (FastAPI + SQLite, with the remote MCP endpoint) and the worker (Blender in disposable Docker containers, --network none --cap-drop ALL) live in the internal repository and are not part of this package yet. This repository holds the client side: stdio MCP server, CLI, HTTP client, samples and the Claude Code plugin.

MCP registry

This server is listed in the official MCP registry as io.github.JasmyLab-JANCTION/janction-render (remote: https://render.janction.jp/mcp).

mcp-name: io.github.JasmyLab-JANCTION/janction-render

License

MIT (see LICENSE). Operated by JasmyLab Inc.

来源:README.md,提交 5b9c716

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.2.1最新Oct 1, 2026