JANCTION Render について
JANCTION Renderは、AIエージェントや3D制作向けのクラウドGPUレンダリングサービスです。Blenderプロジェクト、スクリプト、各種3Dファイルを受け付け、シーン診断付きプレビューや画像・MP4を返すため、ローカルのBlenderやGPUは不要です。
主な機能
- 01クラウドGPUでのBlenderシーン描画
- 02スクリプトと各種3Dファイルの受付
- 03診断フィードバック付きプレビュー
- 04ターンテーブル動画と製品画像の生成
- 05フレームまたはMP4の出力
- 06レンダリングジョブの見積もりと確認
活用シーン
- 01エージェントが生成したBlenderシーンのプレビュー
- 023Dモデルからのターンテーブル動画作成
- 03GLBファイルからの製品画像生成
- 04BlenderプロジェクトからのMP4アニメーション作成
MCP 対応
JANCTION Renderは、`https://render.janction.jp/mcp`のリモートMCPサーバーとローカルstdio MCPサーバーを通じてレンダリングツールを公開します。リモート接続ではBearerトークン認証を利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://render.janction.jp/mcp?src=registryclaude mcp add --transport http jasmylab-janction-janction-render https://render.janction.jp/mcp?src=registry{"mcpServers":{"jasmylab-janction-janction-render":{"type":"http","url":"https://render.janction.jp/mcp?src=registry"}}}Cursor で開く{"servers":{"jasmylab-janction-janction-render":{"type":"http","url":"https://render.janction.jp/mcp?src=registry"}}}VS Code で開く{"mcpServers":{"jasmylab-janction-janction-render":{"type":"http","url":"https://render.janction.jp/mcp?src=registry"}}}{"mcpServers":{"jasmylab-janction-janction-render":{"serverUrl":"https://render.janction.jp/mcp?src=registry"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
JANCTION Render
JANCTION Render とは?
JANCTION Render は Blender 用のクラウド GPU レンダーファームです。AI エージェントは MCP サーバーまたは HTTP API として呼び出せます。.blend
ファイル、bpy スクリプト、または 3D ファイル(glTF / FBX / USD)を送信すると、数秒でプレビューを確認でき、JANCTION の
NVIDIA GPU からフレームまたは MP4 を取得できます。各プレビューでは、暗すぎる、白飛びしている、ライトがない、オブジェクトが
フレーム外にあるといった問題点の判定と、修正用の bpy コードも返されるため、エージェントは最終レンダリングの前にシーンを修正できます。ローカルの Blender
や GPU は不要です。新しいキーには 100 JPY のウェルカムクレジット(30 日ごとにネットワークごとに 1 回。ネットワーク上で追加発行されたキーは残額を共有)を付与し、課金されないカードを保存するとさらに 400 JPY を付与します(カードごとに 1 回)。その後は GPU 秒あたり 0.1 JPY です(プレビューは 1 日あたり最大 2 GPU 分まで無料)。
JasmyLab Inc. が運営しています。
AI エージェントは Blender をローカルで実行せずに、JANCTION GPU で Blender プロジェクトをレンダリングできます。Claude、ChatGPT、 Claude Code、Codex、Cursor、または任意の MCP クライアントから利用できます。MCP サーバー(リモートおよび stdio)、HTTP API、CLI に対応しています。
JANCTION Render は SmartRender(JasmyLab が提供する、デスクトップで利用する人向けの分散レンダリング)とは別の製品であり、Render.com または Render Network とは 提携していません。2026-10-08 時点の数値です(一次情報源は https://render.janction.jp/facts.json)。新しいキーには 100 JPY のウェルカムクレジット(1,000 GPU 秒、14 日間有効、カード不要)を付与します。30 日ごとにネットワークごとに 1 回付与され(ネットワーク上で追加発行されたキーは残額を共有)、料金が発生しないページでカードを保存するとさらに 400 JPY を 1 回付与します(カードごとに 1 回)。その後、プレビューは 1 日あたり最大 2 GPU 分まで無料で、最終レンダリングはプリペイドクレジットから GPU 秒あたり 0.1 JPY で課金されます(有料利用は 2026-10-08 に開始)。最終レンダリングは 1 指示あたり最大 3,000 フレームまで対応します(1 つのジョブ ID のまま内部で自動的に分割されます)。無料時間は 1080p、プリペイドクレジット利用時は最大 4K に対応します。入力データと結果は最後の利用から 24 時間後に削除されます(合計 500 JPY 以上を支払ったキーでは通常 7 日間)。
公式サイト:https://render.janction.jp · MCP エンドポイント:https://render.janction.jp/mcp · ファクトシート:https://render.janction.jp/facts
ターミナルから数秒で、無料かつ登録不要でお試しいただけます(uv が必要です。または pip install janction-render を実行して uvx を省略してください)。
uvx janction-render try # renders a sample scene and shows the free GPU time of your new key
uvx janction-render preview scene.blend # your .blend, bpy script or 3D file
uvx janction-render render scene.blend --frames 1-48 --output mp4 --wait
uvx janction-render turntable model.glb # a 360-degree turntable MP4 in one command (a path or an https link)
uvx janction-render shots model.glb --transparent # four product shots (PNG)
1つのコマンドで作成できるもの(実際の出力)
2026-10-10に、本番GPU(NVIDIA RTX PRO 6000 Blackwell)でKhronosの WaterBottleサンプル(パブリックドメイン、CC0)からレンダリングしたものです。 どの行もコピーすれば、そのまま実行できます。料金はGPU秒あたり0.1 JPYで、新しいキーのウェルカムクレジットの範囲内です。
| コマンド | GPU時間 | 料金 | |
|---|---|---|---|
![]() | uvx janction-render shots https://github.com/KhronosGroup/glTF-Sample-Assets/blob/main/Models/WaterBottle/glTF-Binary/WaterBottle.glb | 13.9 s | 約1.4 JPY |
![]() | uvx janction-render turntable https://github.com/KhronosGroup/glTF-Sample-Assets/blob/main/Models/WaterBottle/glTF-Binary/WaterBottle.glb | 85.2 s | 約8.5 JPY |
![]() | uvx janction-render render https://render.janction.jp/samples/ex12_logo_ring_spin.py --frames 1-48 --size 1280x720 --engine eevee --output mp4 --wait | 54.1 s | 約5.4 JPY |
商品写真は1920x1080のPNGファイル4枚です。ターンテーブルとアニメーションはMP4です(ここではGIFとして表示しています)。ご自身の.glb、.blend
またはbpyスクリプトをリンクの代わりに指定します。スクリプト付きの例はこちら:https://render.janction.jp/examples
3Dファイルをリポジトリに保管していますか?誰でも自分のAIまたはターミナルからレンダリングできるボタンを追加しましょう (GitHubやHugging Faceのファイルページへのリンクはそのまま使えます。https://render.janction.jp/go で作成できます)。
[](https://render.janction.jp/go?scene=https://github.com/you/repo/blob/main/model.glb)
公式サイトのガイド
- GPUなしでBlenderをレンダリングする方法
- エージェントから利用する場合:Claude Code + Blender · Codex + Blender · Cursor + Blender · ChatGPT + Blender · レンダリング用Blender MCPサーバー
- AIエージェント向けのおすすめレンダーファーム(2026年):JANCTION、BlendSwap、 Sceneplane、ModalまたはRunPod上の独自ワーカー、ローカルのBlender MCPを並べて比較
- ヘッドレスBlenderをAPIとして使う · glTF、GLB、FBXからMP4へ · 360度の商品動画 · Blenderのレンダリング費用
- bpyスクリプト付きの例 · 比較 · 日本語のご案内
なぜ使うのか?
- GPUもBlenderのインストールも不要です。 シーンはエージェントが作成するbpyスクリプト、
.blend、または3Dファイルにできます。Blenderは当社のGPU上で実行されます。 - エージェント向けに設計されています。 まずプレビュー(GPU数秒で1〜4フレーム)を作成し、最終レンダリングの前に時間と費用の見積もりを確認できます。修正方法を含む構造化エラー、キーごとの利用上限、
Idempotency-Keyによる安全な再試行にも対応しています。 - 3Dファイルとターンテーブルに対応しています。 glTF / GLB、FBX、USD、OBJ、STL、PLY、Alembicは、カメラとHDRIライティングを備えた空のシーンに読み込まれます。
orbit=Trueを指定するとターンテーブルを作成できます。固定料金のレンダリングは、POST /v1/outcomes/turntableと/product-shotで利用できます。 - 制限を明確にしています。 新しいキーには、カード登録不要のウェルカムクレジット100 JPYが付与されます(14日間有効。30日ごとにネットワークあたり1回まで)。課金されないカードを登録すると、さらに400 JPYが付与されます。その後はGPU秒あたり0.1 JPYです(プレビューは1日あたり最大2 GPU分まで無料)。最終レンダリングは1つの指示あたり最大3,000フレームで、自動的に内部で分割されます(無料枠では1080p、プリペイドクレジットでは最大4K)。JANCTION独自のGPU(NVIDIA RTX PRO 6000 Blackwell)上で実行され、GPUが混雑している場合はジョブがキューで待機します。所要時間の目安にもその旨が表示されます。入力と結果は、最後に使用されてから24時間後に削除されます(合計500 JPY以上を支払ったキーでは、通常7日後)。トレーニングには一切使用されません。
- Render.comとは異なります。 同じ単語ですが、別の製品です。
クイックスタート
Claude.ai / ChatGPT(インストール不要)。 設定 → コネクター → https://render.janction.jp/mcpを追加 → 接続(同意ページで無料キーが作成されます)。次に、以下を貼り付けます。
https://render.janction.jp/samples/cube_scene.py のプレビューをレンダリングしてください
数秒で4フレームのプレビューが返されます。パソコン上のファイルの場合は、https://render.janction.jp/upload にドロップして12時間有効なリンクを取得し、「このファイルをレンダリングしてください:」と指示します。
Claude Code。
claude mcp add --transport http janction-render https://render.janction.jp/mcp
次に/mcpを実行して認証し、「Blenderでカメラのフライスルーを備えた小さな街並みのシーンを作成し、janction-renderでプレビューをレンダリングしてください」と依頼します。
HTTP(任意の言語)。
curl -s -X POST https://render.janction.jp/v1/keys # -> {"api_key": "jr_..."} no sign-up
curl -s -X POST https://render.janction.jp/v1/files -H "X-API-Key: $KEY" -F "[email protected]" # -> {"scene_id": "f_..."}
curl -s -X POST https://render.janction.jp/v1/jobs -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"scene_id":"f_...","kind":"preview","frames":[1]}' # -> job_id; then GET /v1/jobs/{job_id}
独自のエージェントやアプリから利用する
Python(pip install janction-render。最初の呼び出しで無料キーが作成され、~/.janction-render.jsonに保存されます):
from janction_render.client import Client
c = Client() # or Client(api_key="jr_...")
scene = c.upload("scene.py") # a bpy script, a .blend, or a .glb / .fbx / .usd / .obj file
job = c.submit(scene["scene_id"], kind="final", frame_start=1, frame_end=48, output="mp4")
job = c.wait(job["job_id"], timeout=1800)
print(job["status"], c.download(job["job_id"], "out", only="mp4"))
プリペイドクレジットによる従量課金で、サブスクリプションは不要です(料金:https://render.janction.jp/pricing)。
ポーリングの代わりに、POST /v1/jobsにnotify_url(https)を渡すと、ジョブ完了時にJSON POSTが1回送信されます(job.done / job.failedとダウンロードリンクを含みます)。Idempotency-Keyヘッダーを使えば、安全に再試行できます。OpenAPI:https://render.janction.jp/openapi.json
アプリの完全なサンプル(ユーザーがGLBをアップロードし、アプリが固定料金のプロダクトショットを注文し、Webhookが画像を保存します):
https://render.janction.jp/blender-render-api#embed
エージェントフレームワークは、キーをベアラートークンとして指定し、リモートMCPサーバーhttps://render.janction.jp/mcpに接続します(curl -s -X POST https://render.janction.jp/v1/keysを実行すると、サインアップ不要でキーを取得できます)。
OpenAI Agents SDK(タイムアウトを長めに設定してください。render_previewは画像が返るまで待機するため、デフォルトの5秒より長くかかります):
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main():
async with MCPServerStreamableHttp(name="janction-render", client_session_timeout_seconds=120,
params={"url": "https://render.janction.jp/mcp",
"headers": {"Authorization": "Bearer jr_..."}}) as render:
agent = Agent(name="3D artist", instructions="Render Blender scenes with janction-render.", mcp_servers=[render])
result = await Runner.run(agent, "Render a preview of https://render.janction.jp/samples/cube_scene.py")
print(result.final_output)
asyncio.run(main())
LangChain(pip install langchain-mcp-adapters):
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
async def main():
client = MultiServerMCPClient({"janction-render": {"url": "https://render.janction.jp/mcp", "transport": "streamable_http",
"headers": {"Authorization": "Bearer jr_..."}}})
tools = await client.get_tools() # render_preview, render_final, render_status, render_download, ...
print([t.name for t in tools])
asyncio.run(main())
OpenAI Responses API(リモートMCP。クレジットを使用するため、render_finalは承認を繰り返し求めます):
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-5",
tools=[{"type": "mcp", "server_label": "janction_render", "server_url": "https://render.janction.jp/mcp",
"authorization": "jr_...",
"require_approval": {"never": {"tool_names": ["scene_info", "render_preview", "render_estimate",
"render_status", "render_download"]}}}],
input="Render a preview of https://render.janction.jp/samples/cube_scene.py and give me the image link.",
)
print(resp.output_text)
Anthropic Messages API(MCPコネクター。fallbacks="default"を指定すると、拒否されたリクエストがフォールバックモデルで再実行されます):
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-5-5",
max_tokens=16000,
betas=["mcp-client-2025-11-20", "server-side-fallback-2026-07-01"],
fallbacks="default",
mcp_servers=[{"type": "url", "url": "https://render.janction.jp/mcp", "name": "janction-render",
"authorization_token": "jr_..."}],
tools=[{"type": "mcp_toolset", "mcp_server_name": "janction-render"}],
messages=[{"role": "user", "content": "Render a preview of https://render.janction.jp/samples/cube_scene.py"}],
)
for block in response.content:
if block.type == "text":
print(block.text)
Google ADK:
import os
from google.adk.agents import Agent
from google.adk.tools.mcp_tool import MCPToolset, StreamableHTTPConnectionParams
agent = Agent(
name="renderer",
model="gemini-2.5-flash",
instruction="Render Blender scenes with JANCTION Render: preview first, ask before a final render.",
tools=[MCPToolset(connection_params=StreamableHTTPConnectionParams(
url="https://render.janction.jp/mcp",
headers={"Authorization": "Bearer " + os.environ["JANCTION_RENDER_API_KEY"]}))],
)
Pydantic AI:
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPToolset
render = MCPToolset("https://render.janction.jp/mcp", headers={"Authorization": "Bearer jr_..."})
agent = Agent("anthropic:claude-opus-5-5", toolsets=[render])
このパソコン上のAIアプリを1つのコマンドで接続し、プロジェクト内のすべてのコーディングエージェントに、レンダリングのタイミングと方法を伝えます。
uvx janction-render connect # lists Claude Code, Codex, Gemini CLI, Cursor, Windsurf, VS Code and the step for each
uvx janction-render connect claude-code # applies one (or: connect all --yes)
uvx janction-render init # writes a short section to AGENTS.md and adds the server to .mcp.json
initは、CLAUDE.md、GEMINI.md、.cursor/、.vscode/がすでに存在する場合(または--claude、--cursor、--vscodeを指定した場合)にのみ変更します。これらのファイル内のほかの内容は保持し、変更するJSONファイルはバックアップします。
ローカルMCPサーバー(stdio)では、スラッシュコマンドとして表示されるプロンプトも利用できます。たとえばClaude Codeでは/mcp__janction-render__turntable_videoを使用できます。try_janction_render、render_my_scene、turntable_video、product_shots、scene_from_description、blend_to_mp4をお試しください。
MCP
リモート(Streamable HTTP、動的クライアント登録を使用する OAuth 2.1。Authorization: Bearer jr_... として生のキーを使うこともできます)
| クライアント | 方法 |
|---|---|
| Claude.ai(ウェブ、デスクトップ、モバイル) | Settings → Connectors → Add custom connector → URL を貼り付け → Connect |
| ChatGPT | Settings → Connectors → Advanced → Developer mode → Create → URL を貼り付け(OAuth) |
| Claude Code | claude mcp add --transport http janction-render https://render.janction.jp/mcp を実行し、/mcp で認証します |
| Codex | codex mcp add janction-render --url https://render.janction.jp/mcp |
| Gemini CLI / Antigravity CLI | gemini extensions install https://github.com/JasmyLab-JANCTION/janction-render(このリポジトリには gemini-extension.json が含まれています) |
| Kimi Code(Kimi K3 およびその他のモデル) | /plugins install https://github.com/JasmyLab-JANCTION/janction-render(このリポジトリには MCP サーバーとワークフロースキルを含む kimi.plugin.json が含まれています)、または ~/.kimi-code/mcp.json に {"mcpServers": {"janction-render": {"url": "https://render.janction.jp/mcp"}}} を設定し、その後 /mcp-config login janction-render を実行します(OAuth) |
| OpenCode | ~/.config/opencode/opencode.json に {"mcp": {"janction-render": {"type": "remote", "url": "https://render.janction.jp/mcp"}}} を設定し、その後 opencode mcp auth janction-render を実行します(OAuth) |
| Qwen Code | qwen extensions install https://github.com/JasmyLab-JANCTION/janction-render(このリポジトリには MCP サーバーとワークフロースキルを含む qwen-extension.json が含まれています)、または qwen mcp add --transport http janction-render https://render.janction.jp/mcp |
| GitHub Copilot CLI | copilot mcp add --transport http janction-render https://render.janction.jp/mcp を実行し、その後 /mcp auth janction-render で認証します(OAuth)。スキルを使う場合:copilot plugin marketplace add JasmyLab-JANCTION/janction-render と copilot plugin install janction-render@janction-render |
| Grok(grok.com) | Connectors → New Connector → Custom → URL を貼り付け |
| Perplexity(Pro / Max / Enterprise)、Le Chat(ワークスペース管理者) | URL を指定して、カスタムのリモート MCP コネクターを追加します |
| Notion Agent(Business / Enterprise) | Settings → Connections → Discover → Add Custom MCP → URL を貼り付け、その後サインインします(ワークスペース管理者がカスタム MCP サーバーを許可するとボタンが表示されます) |
| Cursor | .cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json に {"mcpServers": {"janction-render": {"url": "https://render.janction.jp/mcp"}}} を設定し、Cursor の案内に従ってサインインします(OAuth)。ワンクリックで追加:Cursor にインストール |
| VS Code(Copilot エージェントモード) | .vscode/mcp.json に {"servers": {"janction-render": {"type": "http", "url": "https://render.janction.jp/mcp"}}} を設定するか、code --add-mcp '{"name":"janction-render","type":"http","url":"https://render.janction.jp/mcp"}' を実行し、その後サーバーを起動してサインインします(OAuth) |
| Windsurf、Cline、Goose、その他の MCP クライアント | 上記の URL で Streamable HTTP を使用します(OAuth、または Bearer API キーヘッダー)。インストール手順:llms-install.md。Cursor のプロジェクトルール(使用するタイミング、プレビュー優先のフロー):integrations/cursor |
| Claude Desktop およびその他の stdio のみ対応するクライアント(npm) | {"mcpServers": {"janction-render": {"command": "npx", "args": ["-y", "janction-render"]}}}:npm パッケージ janction-render が OAuth を使って stdio と上記 URL を接続します(お持ちのキーには --key jr_...、uv 経由の Python stdio サーバーには --local)。Claude Code:claude mcp add janction-render -- npx -y janction-render |
リモートツールでは、scene_script(テキスト形式の bpy コード)、scene_url(.blend、.py、または 3D ファイルへの https リンク、あるいは https://render.janction.jp/upload からのリンク)、または scene_id に加えて、テクスチャや glTF の .bin ファイル用の asset_urls を指定します。結果はインライン画像とダウンロードリンクで返されます。リンクはキー不要で約 24 時間有効です(動画のみの場合は render_download(only="mp4"))。 |
Claude Code プラグイン(リモートコネクターとワークフローを含むスキル):
/plugin marketplace add JasmyLab-JANCTION/janction-render
/plugin install janction-render@janction-render
Stdio(ローカルファイルを送信)
パッケージは PyPI で janction-render として公開されています(npm ランチャーの janction-render は、uv がインストールされている場合、npx -y janction-render --local で実行します)。
# 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 / pipx
pip install janction-render
claude mcp add janction-render -e JANCTION_RENDER_SERVER=https://render.janction.jp -- janction-render-mcp
Codex:~/.codex/config.toml に追加します
[mcp_servers.janction-render]
command = "uvx"
args = ["--from", "janction-render", "janction-render-mcp"]
env = { JANCTION_RENDER_SERVER = "https://render.janction.jp" }
一時的な API キーは初回使用時に自動発行され、~/.janction-render.json にキャッシュされます。キーを固定するには
JANCTION_RENDER_API_KEY を設定します(クォータと、後に利用可能になるクレジットはキーに紐付きます)。同じキーは
リモートコネクターでも使用できます。接続ページに貼り付けてください。
ツール
| ツール | 説明 |
|---|---|
| `scene_info(scene_script | scene_url |
render_preview(..., frames="1-24", environment?, blender?) | 最大 4 フレーム(720p の予算)をフレームラベル付きでタイル表示し、画像をインラインで返します |
render_review(scene_path / scene_script / scene_url / scene_id, environment="studio") | 3D モデルまたは生成されたシーンを、スタジオ照明のもとで 4 方向(0/90/180/270 度)からチェックします。合格/警告/不合格、スコア、実行したチェック項目(ファイル、可視性、フレーミング、露出、照明)と修正コード、および 4 方向のビューを 1 枚の画像で返します。Stdio サーバーで、GPU 時間はプレビュー 1 回分と同じです |
render_estimate(scene_id, frame_start, frame_end, width, height, samples) | GPU 秒数、キュー待ち時間、「約 N 分」、残りの無料 GPU 時間内に収まるかを確認します。GPU 時間は消費しません |
render_final(scene_id, frame_start, frame_end, width, height, samples, fps, output, environment?, blender?, engine?, transparent?, notify_url?) | フレーム(png / exr)または動画(mp4 / webm / prores / gif / webp)を生成します。transparent=True にするとアルファ背景を保持します(png / exr / webm / gif / webp)。ジョブ完了時に notify_url へ JSON を 1 回 POST します。job_id と見積もりを返します |
render_status(job_id) | 進捗と ETA(eta.human)を返します。render_download(job_id, only="mp4" / "frames" / "all") はファイルまたはリンクを返します。render_cancel(job_id) |
billing() | 残りの無料 GPU 時間(ウェルカムクレジット、その後は本日の無料プレビュー時間)、クレジット、チャージリンク、自動チャージと月額プランのステータスを返します |
render_share(job_id, title?, note?, include_script?, listed?) | 画像または動画、条件、および(任意で)スクリプトを含む公開ページ /r/<id> を作成します。有効期限の 24 時間後も render_unshare まで存続します。listed=True にすると、レビュー後に /gallery に表示されます |
asset_search(query, kind) | Poly Haven 上の CC0 モデル/テクスチャ/HDRI を語句で検索します。結果には polyhaven:<id> とエントリーファイルが含まれます |
render_info() | オンラインまたは制限中のワーカー(GPU を別のワークロードに貸し出し中)、キュー、予想待ち時間、対応入力、環境プリセット、Blender のバージョンを返します |
render_preview / render_final のオプション:environment(プレビューでは studio、sunset、overcast、night、compare。environment_strength、environment_visible=False で、HDRI 照明を使ったフラットなグレーの背景にできます)、orbit / orbit_frames / orbit_elevation(ターンテーブル)、blender("5.2")、および assets(stdio:シーンと一緒に送信するローカルファイル。スクリプト内では os.environ["JR_ASSETS_DIR"] から参照します。.blend の外部ファイルは pip install janction-render[blend] で自動収集されます)、または asset_urls(リモート)。
CLI:janction-render inspect|preview|render|status|download|share|unshare|cancel|jobs|balance|topup|limits|outcomes|info。
API
POST /v1/keys -> {api_key} (header X-API-Key afterwards)
POST /v1/files multipart "file" (.blend|.py|.glb|.fbx|.usd|.obj|...) -> {scene_id}
POST /v1/files/{id}/assets multipart "files" textures, glTF .bin ... GET /v1/files/lookup?sha256= reuse an upload
POST /v1/estimate {kind, frames|frame_start/frame_end, width, height, samples, scene_id?} -> seconds, wall_seconds, human, quota, currency, expires_at
POST /v1/jobs {scene_id, kind: info|preview|final, frames|frame_start/frame_end, width, height, samples, camera, fps, output (png|exr|mp4|webm|prores|gif|webp), transparent, notify_url (https), engine (cycles|eevee),
environment, environment_strength, environment_visible, blender, orbit, orbit_frames, orbit_elevation} header Idempotency-Key makes retries safe
GET /v1/jobs/{id} status, progress, eta, artifacts[], cost, warnings, info, failure (code + fix) DELETE /v1/jobs/{id} cancel
GET /v1/jobs/{id}/artifacts/{name} PNG / MP4
GET /v1/jobs/{id}/archive?only=png every file of the job in one zip (frame sequences: one request instead of hundreds)
GET /v1/outcomes fixed-price outcomes; POST /v1/outcomes/turntable {scene_id, size, frames} POST /v1/outcomes/product-shot {scene_id, size, transparent?}
POST /v1/try JSON {scene_script | scene_url, frames?, width?, height?, environment?} (no key) -> first 720p preview + an API key to continue, in one response (1 per network per 24h)
POST /v1/drops multipart "file" (no key) -> a 12-hour https link to pass as scene_url (the /upload page uses this)
POST /v1/jobs/{id}/share {title?, note?, include_script?, listed?} -> {share_id, url} DELETE /v1/jobs/{id}/share GET /v1/shares
GET /r/{share_id} public page (no key) GET /gallery
GET /v1/assets/search?q=&kind=models|textures|hdris CC0 assets (Poly Haven) -> spec polyhaven:<id>
POST /v1/files/{id}/assets/urls {urls: ["https://...", "polyhaven:<id>"]} fetch assets server-side
GET /v1/me (quota, balance, limits) POST /v1/me/limits {job_yen?, day_yen?} spending caps per key
POST /mcp remote MCP (Streamable HTTP; Bearer api key or OAuth)
GET /.well-known/oauth-protected-resource/mcp OAuth discovery
POST /v1/billing/checkout {amount_yen} -> {checkout_url} POST /v1/billing/sync GET /v1/ledger
GET /openapi.json /llms.txt /llms-full.txt /ja/llms.txt /facts.json /version.json /capabilities.json /pricing.json /status.json
無料 GPU 時間を超過するジョブで、クレジットが不足している場合は、checkout_url(ユーザーに表示してください)、topup_yen、および無料時間でジョブのどれだけをカバーできるかを含む 402 payment_required が返されます。400 beta_limit はジョブが大きすぎることを意味します(分割してください)。すべての API エラーには retryable、possible_fix、docs_url が含まれます。失敗したジョブには、コードと推奨される対応を含む failure が含まれます。
支出上限を超えるジョブは、何も予約される前に 403 spend_cap_exceeded で拒否されます。
例
エージェントが作成できるシーンスクリプトです(サービスがエンジン、解像度、サンプル数、デノイズを設定し、スクリプトがシーン、カメラ、フレーム範囲を設定します)。
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)
デフォルトは Cycles です。より低コストのアニメーションには engine="eevee" を指定してください(ジョブごとにシェーダーのコンパイルに約 7 秒かかった後、フレームあたりのコストは約半分になります)。
Blender 5.0 では、マテリアルは常にノードを使用します。diffuse_color ではなく、Principled BSDF の Base Color を設定してください。スクリプトはネットワーク接続のない隔離コンテナーで実行されます。詳細は samples/cube_scene.py、samples/polyhaven_room.py を参照してください。実測時間:https://render.janction.jp/benchmarks
料金
新しいキーには、100 JPY のウェルカムクレジット(1,000 GPU 秒、14 日間有効、カード不要)が付与され、プレビューと最終レンダリングに利用できます。ネットワークごとに 30 日間でクレジット 1 回分が付与されます(同じネットワーク上の後続のキーでは、残りを共有します)。Stripe のページでカードを登録すると(請求は発生しません)、カード 1 枚につき 1 回、さらに 400 JPY が追加されます(合計最大 500 JPY)。使い切るか有効期限が切れた後は、プレビューは 1 日あたり最大 2 GPU 分まで無料で、最終レンダリングはプリペイドクレジットから GPU 秒あたり 0.1 JPY かかります。クレジットは Stripe Checkout ページでカード購入できます(500 JPY から。2,000 JPY で 2,200 JPY 分、5,000 JPY で 5,750 JPY 分、10,000 JPY で 12,000 JPY 分のクレジットを購入できます。ウェルカム期間中の初回チャージは 1.5 倍として計算され、ボーナスは最大 500 JPY です)。課金されるのは、無料時間でカバーされない部分のみです。最終レンダリングは指示ごとに最大 3,000 フレームまで対応します(内部で自動的に分割され、ジョブ ID は 1 つです)。無料時間では 1080p、プリペイドクレジットでは最大 4K(3840x2160)に対応します。POST /v1/estimate では、GPU 時間を使う前に、課金額(cost.estimated_yen)、通貨、有効期限を確認できます:https://render.janction.jp/pricing
トラブルシューティング
| 表示される内容 | 意味 | 対処方法 |
|---|---|---|
402 payment_required | ジョブに必要な料金が、キーの残りの無料クレジットを超えています | 返信の tell_user に、このレンダリングの料金とチャージで購入できる内容が示されます。checkout_url で支払い(500 JPY から)を済ませ、同じジョブを再送信するか、フレーム数または解像度を下げてください |
script_blocked | bpy スクリプトがサンドボックスで禁止されている機能(ネットワーク、プロセス、ctypes など)を使用しています | GPU ワーカーにはネットワーク接続がありません。ウェブ上のファイルは asset_urls=[...](MCP)または POST /v1/files/{scene_id}/assets/urls で渡し、jr_assets.path('<name>') で開いてください。urllib / requests のみを理由に拒否されたスクリプトは、キーの失効判定の対象になりません |
script_path / scene_path | シーンが自分のコンピューター上のファイルを参照しています | ファイルをアセットとして送信し、名前(相対パス)で参照してください |
McpError: Timed out while waiting for response(OpenAI Agents SDK) | SDK はデフォルトで、ツールの応答を 5 秒間待ちます | MCPServerStreamableHttp(..., client_session_timeout_seconds=120)(「独自のエージェントまたはアプリから」を参照) |
ジョブが queued のままで、eta.human に GPU が貸し出し中と表示される | GPU がしばらく別のワークロードと共有されています | ユーザーに待ち時間を伝え、ポーリングする代わりに後で render_download(job_id, wait_seconds=45) を呼び出してください |
429 rate_limited | 短時間にリクエストを送りすぎています | Retry-After 秒待ってから再送信してください |
| 暗すぎる、白飛びしている、またはオブジェクトがフレームから外れている | プレビューの判定に、問題の内容と修正用の bpy コードが示されます | 修正を適用し、最終レンダリングの前に再度プレビューしてください(数秒)。3D ファイルは実際のサイズに合わせて自動的にフレーミングされます |
Claude、ChatGPT、または Codex からの 401 | コネクターのサインインの有効期限が切れています | コネクターを再接続する(Claude Code では /mcp)か、キーを X-API-Key / Authorization: Bearer jr_... として渡してください |
ドキュメント
- ファクトシート(回答が食い違う場合の一次情報):https://render.janction.jp/facts · JSON:
/facts.json、/version.json、/changelog.json、/status.json - エージェント向け:https://render.janction.jp/llms.txt(すべてのガイドの全文:`/llms-full.txt`)
- ガイド:エージェント向けレンダーファーム · GPU なしで利用する ·
MacBook で Cycles が遅い場合 ·
Claude · ChatGPT · Claude Code ·
Codex · Cursor · bpy スクリプト ·
API · 比較 · 製品 · 日本語版は
/ja/ - ステータス:https://render.janction.jp/status · セキュリティと保持期間:https://render.janction.jp/security · 変更履歴:https://render.janction.jp/changelog
機能の詳細
- 入力:
.blendファイル(テクスチャも一緒に送信されます)、シーンを構築する bpy Python スクリプト(ローカルに Blender は不要)、または空のシーンにインポートする 3D ファイル(glTF/GLB、FBX、USD、OBJ、STL、PLY、Alembic)。 environment="studio" | "sunset" | "overcast" | "night"を指定すると、同梱の HDRI(CC0)でシーンを照らし、最初のレンダリングに適した状態にします。environment="compare"を指定すると、同じフレームを4種類すべてのプリセットでプレビューし、ラベル付きの1枚の画像にまとめるため、エージェントが選択できます。.gltfまたは.objを読み込むと、.bin/.mtl/ テクスチャも(同じフォルダー、または同じ URL のフォルダーから)自動的に一緒に読み込まれます。orbit=Trueを指定すると、任意のシーンまたはインポートしたモデルをターンテーブル表示にできます。オービットカメラが対象の周囲を1周します(orbit_framesのデフォルトは24です。プレビューでは0/90/180/270度を表示し、frame_endを指定しない最終レンダリングでは1周分の MP4 が生成されます)。カメラのフレーミングでは平らな床や壁は無視されます。orbit_target(オブジェクト名またはx,y,z)とorbit_distance(倍率)で撮影を調整できます。- GPU を別のワークロードに貸し出している間、ツールは待機せず、キューに入ったジョブと待ち時間の見積もり(GPU が貸し出されてからの時間、通常の貸出時間、あとどれくらいかかるかを示す
eta.gate)をすぐに返します。 - ジョブのレンダリング中、
render_statusは実行中のチャンク内で完了したフレーム数をカウントするため、ETA は数秒ごとに更新されます。 - MCP Apps に対応するホスト(Claude のウェブ版やデスクトップ版など)では、プレビュー、進捗状況、ダウンロードリンクが、チャット内のインタラクティブなパネルにも表示されます。パネルには画像、進捗バー、「MP4 を開く」、および
environment="compare"のプレビュー後に表示されるプリセットボタンがあります。リモートコネクターと stdio パッケージの両方にパネル(janction_render/mcp_app.html)が含まれています。無効にするにはJR_MCP_APPS=0を設定してください。 - CC0 アセットを名前で検索:
asset_search("wooden table")で Poly Haven のモデル、テクスチャ、HDRI を検索できます。asset_urls(リモート)またはassets(stdio)にpolyhaven:<id>を指定すると、GPU 上のJR_ASSETS_DIR/<id>/にファイルが配置され、すぐにインポートできます(bpy.ops.import_scene.gltf(filepath=os.path.join(os.environ['JR_ASSETS_DIR'], 'wooden_table_02', 'wooden_table_02_1k.gltf')))。シーンスクリプトではimport jr_assetsを使って、次のように簡潔に記述できます:jr_assets.import_model('wooden_table_02')、jr_assets.apply(floor, jr_assets.material('wood_floor_deck', scale=2))(Principled BSDF にディフューズ/ノーマル/ラフネス/メタルを設定)、jr_assets.world_hdri('studio_small_09')。samples/polyhaven_room.pyを参照してください。 - 共有するレンダリングを選んで
render_shareを実行すると、公開ページ(/r/<id>、X と Discord 用の OGP)が作成され、共有を解除するまで公開されます。 - Blender 5.0、GPU 上での Cycles(ワーカーに Blender 5.2 がある場合、
blender="5.2"を指定すると Blender 5.2 が選択されます。利用可能なバージョンはrender_infoに表示されます)。
Blender アドオンおよび DCC ツール(エージェントではなく、人向け)
- Blender 拡張機能(
addons/blender/、Blender 4.2 以降):プロパティ → レンダー内に、プレビュー、見積もり、最終レンダーを行う JANCTION Render パネルを追加します。開いているファイルのコピーと、相対パスで参照されるテクスチャがアップロードされ、結果は.blendファイルと同じ場所に保存されます。拡張機能リポジトリhttps://render.janction.jp/extensions/index.jsonからインストールするか(Preferences → Get Extensions → Repositories → + → Add Remote Repository)、zip をhttps://render.janction.jp/extensions/janction_render-0.1.2.zipからインストールしてください(このリポジトリからpython scripts/build_blender_addon.pyでビルドできます)。ガイド:https://render.janction.jp/blender-addon - Maya、Houdini、Cinema 4D(
integrations/):USD/FBX/Alembic にエクスポートし、テクスチャとともにアップロードして Cycles でレンダリングし、結果を開きます。プレビュー、最終レンダー(MP4)、ターンテーブルに対応しています。標準ライブラリの Python のみを使用します。jr_submit.pyは共通クライアントです。ガイド:https://render.janction.jp/maya-houdini-cinema4d
セルフホスト
サーバー(FastAPI + SQLite、リモート MCP エンドポイントを含む)とワーカー(使い捨ての Docker コンテナ内の Blender、--network none --cap-drop ALL)は内部リポジトリにあり、まだこのパッケージには含まれていません。このリポジトリにはクライアント側の機能である stdio MCP サーバー、CLI、HTTP クライアント、サンプル、Claude Code プラグイン、Blender アドオン、DCC ツールが含まれています。
MCP レジストリ
このサーバーは、公式 MCP レジストリに io.github.JasmyLab-JANCTION/janction-render として登録されています(リモート:https://render.janction.jp/mcp)。
mcp-name: io.github.JasmyLab-JANCTION/janction-render
セキュリティ
脆弱性の報告については、SECURITY.md をご覧ください。データ保持、分離、外部テストの概要はセキュリティページに記載されています。
ライセンス
パッケージ、MCP サーバー、CLI、DCC ツールは MIT ライセンスです(LICENSE を参照)。addons/blender/ の Blender 拡張機能は、Blender がアドオンに求める GPL-3.0-or-later ライセンスです。JasmyLab Inc. が運営しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。


