
Janction Render
io.github.KJdayoPublished by GitHub account KJdayov0.2.0Updated Oct 30, 2026
Render Blender scenes (.blend or bpy script) on JANCTION GPUs from AI agents: previews, frames, MP4.
The publisher's own server: render.ai Presentations
Overview
Renders Blender scenes, bpy scripts and 3D files on JANCTION cloud GPUs, returning previews, frames, MP4s and turntables without a local Blender or GPU.
- What you can do
- Inspect a scene and check cameras, frame range, objects, lights and missing files without rendering
- Render previews of up to four labelled frames, or review a model from four sides with a pass/warn/fail score and fix code
- Estimate GPU seconds and cost, then render finals as frames or video with environment presets, turntables, transparency and social exports
- Track job progress and ETA, download or cancel jobs, and publish a shareable public result page
- Check remaining free GPU time and credit, search CC0 Poly Haven models, textures and HDRIs, and query worker and queue status
- When to use it
- Useful when an assistant should produce Blender renders, turntables or product shots but the machine has no Blender install or GPU, or when an agent should preview and self-correct a generated scene before a paid final render.
- Requirements
- Either the remote endpoint (OAuth or a Bearer API key) or the local stdio package run with uvx or pip, which bridges to the service. A key is issued automatically on first use; JANCTION_RENDER_API_KEY can supply an existing one and JANCTION_RENDER_SERVER overrides the service URL. Network access to the service is required.
Installation
In SourceWeft
- Open Janction Render in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.KJdayo%2Fjanction-render/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"janction-render": {
"type": "http",
"url": "https://render.janction.jp/mcp"
}
}
}README
JANCTION Render
For current pricing, free credits, and usage limits, always refer to https://render.janction.jp/pricing and https://render.janction.jp/facts.json. Pricing and limits may change over time.
[JasmyLab-JANCTION/janction-render MCP server]
What is JANCTION Render?
JANCTION Render is a cloud GPU render farm for Blender that AI agents call as an MCP server or HTTP API. Send a .blend
file, a bpy script or a 3D file (glTF / FBX / USD), preview in seconds, and get frames or an MP4 back from JANCTION's
NVIDIA GPUs. Every preview also returns a verdict on what is wrong, such as too dark, blown out, no light or an object
out of frame, and the bpy code to fix it, so the agent can correct the scene before the final render. No local Blender
or GPU is needed. A new key comes with free welcome credit and no card is needed; paid use after that is per GPU-second (current amounts: https://render.janction.jp/pricing);
operated by JasmyLab Inc.
AI agents can render Blender projects on JANCTION GPUs without running Blender locally. Works from Claude, ChatGPT, Claude Code, Codex, Cursor or any MCP client: an MCP server (remote and stdio), an HTTP API and a CLI.
JANCTION Render is a separate product from SmartRender (JasmyLab's distributed rendering for people at a desktop) and is not affiliated with Render.com or the Render Network.
Official site: https://render.janction.jp · MCP endpoint: https://render.janction.jp/mcp · Fact sheet: https://render.janction.jp/facts
Try it from a terminal in a few seconds, free and with nothing to sign up for (needs uv; or pip install janction-render and drop the uvx):
What one command makes (real outputs)
Rendered on 2026-10-10 on the production GPU (NVIDIA RTX PRO 6000 Blackwell) from Khronos's WaterBottle sample (public domain, CC0); copy any line and it runs as is. The costs below were measured at 0.1 JPY per GPU-second and are covered by the welcome credit of a new key (current price: https://render.janction.jp/pricing).
The shots are four 1920x1080 PNGs; the turntable and the animation are MP4s (shown here as GIFs). Your own .glb, .blend
or bpy script goes in place of the link. More, with their scripts: https://render.janction.jp/examples
Keep 3D files in a repository? Add a button that lets anyone render them from their own AI or terminal (links to file pages on GitHub and Hugging Face work as they are; make one at https://render.janction.jp/go):
Guides on the official site
- How to render Blender without a GPU
- From an agent: Claude Code + Blender · Codex + Blender · Cursor + Blender · ChatGPT + Blender · Blender MCP server for rendering
- Best render farms for AI agents (2026): JANCTION, BlendSwap, Sceneplane, your own worker on Modal or RunPod and a local Blender MCP side by side
- Headless Blender as an API · glTF, GLB or FBX to MP4 · 360-degree product video · What a Blender render costs
- Examples with their bpy scripts · Compare · 日本語のご案内
Why use it?
- No GPU, no Blender install. The scene can be a bpy script the agent writes, a
.blend, or a 3D file; Blender runs on our GPUs. - Built for agents. Preview first (1-4 frames in a few GPU seconds), an estimate with time and cost before the final, structured
errors with the fix, spending caps per key, safe retries with
Idempotency-Key. - 3D files and turntables. glTF / GLB, FBX, USD, OBJ, STL, PLY, Alembic are imported into an empty scene with a camera and
HDRI lighting;
orbit=Truemakes a turntable. Fixed-price outcomes:POST /v1/outcomes/turntableand/product-shot.
- Honest limits. Free welcome credit for a new key with no card, then paid per GPU-second from prepaid credit (current amounts: https://render.janction.jp/pricing); finals up to 3,000 frames per instruction, run as parts of 240 under one job id (1080p on free time, up to 4K on prepaid credit), on JANCTION's own GPUs (NVIDIA RTX PRO 6000 Blackwell); when they are busy jobs wait in a queue and the ETA says so. Inputs and results are deleted 24 hours after last use (7 days, normally, for keys that have paid 500 JPY or more in total) and never used for training.
- Not Render.com. Same word, different product.
Quick start
Claude.ai (nothing to install). Plugins (older menu: Customize → Connectors) → Add custom connector → https://render.janction.jp/mcp → Connect (a free key
is created on the consent page). ChatGPT: Plugins (left sidebar) → Add → Create plugin → the same URL (OAuth; on Business workspaces an admin adds it). Then paste:
Render a preview of https://render.janction.jp/samples/cube_scene.py
A 4-frame preview comes back in a few seconds. A file on your computer: drop it at https://render.janction.jp/upload to get a 12-hour link, then "Render this file: ".
Claude Code.
Then /mcp to authenticate and ask: "Build a small street scene in Blender with a camera fly-through and render a preview with janction-render."
HTTP (any language).
From your own agent or app
Python (pip install janction-render; the first call creates a free key and keeps it in ~/.janction-render.json):
Pay per use with prepaid credit; no subscription is needed (prices: https://render.janction.jp/pricing).
Instead of polling, pass notify_url (https) to POST /v1/jobs and get one JSON POST when the job finishes (job.done /
job.failed, with download links); an Idempotency-Key header makes retries safe. OpenAPI: https://render.janction.jp/openapi.json
A complete app example (a user uploads a GLB, the app orders fixed-price product shots, a webhook stores the images):
https://render.janction.jp/blender-render-api#embed
Agent frameworks connect to the remote MCP server at https://render.janction.jp/mcp with the key as a bearer token
(curl -s -X POST https://render.janction.jp/v1/keys gives one, no sign-up).
OpenAI Agents SDK (keep the longer timeout: render_preview waits for the image, longer than the 5-second default):
LangChain (pip install langchain-mcp-adapters):
OpenAI Responses API (remote MCP; render_final keeps asking for approval because it spends credit):
Anthropic Messages API (MCP connector; fallbacks="default" reruns a declined request on a fallback model):
Google ADK:
Pydantic AI:
Connect the AI apps on this computer in one command, and tell every coding agent in a project when and how to render:
init touches CLAUDE.md, GEMINI.md, .cursor/ and .vscode/ only when they already exist (or with --claude, --cursor,
--vscode); it keeps everything else in those files and backs up JSON it changes.
The local MCP server (stdio) also offers prompts that show up as slash commands, for example /mcp__janction-render__turntable_video
in Claude Code: try_janction_render, render_my_scene, turntable_video, product_shots, scene_from_description, blend_to_mp4.
MCP
Remote (Streamable HTTP, OAuth 2.1 with dynamic client registration; a raw key also works as Authorization: Bearer jr_...)
Remote tools take scene_script (bpy code as text), scene_url (an https link to a .blend, .py or a 3D file, or a link
from https://render.janction.jp/upload) or scene_id, plus asset_urls for textures or glTF .bin files. Results come back as
an inline image plus download links that need no key and work for about 24 hours (render_download(only="mp4") for just the video).
Claude Code plugin (the remote connector plus a skill with the workflow):
Stdio (sends local files)
The package is on PyPI as janction-render (and the npm launcher janction-render runs it with npx -y janction-render --local when uv is installed).
Codex: add to ~/.codex/config.toml
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.
Tools
Options on render_preview / render_final: environment (studio, sunset, overcast, night, compare on previews; environment_strength,
environment_visible=False for a flat grey backdrop with HDRI lighting), orbit / orbit_frames / orbit_elevation (turntable),
blender ("5.2"), and assets (stdio: local files sent with the scene, found in the script through os.environ["JR_ASSETS_DIR"];
a .blend's external files are collected automatically with pip install janction-render[blend]) or asset_urls (remote).
Options for creators (2026-11-05; guide: https://render.janction.jp/blender-render-options):
render_preview(variations=[...]) renders 2-8 looks of one frame in one labelled sheet, and render_final(colors={...}) renders the chosen one;
compare_to=<earlier final job_id> adds compare.mp4 / .gif / .png / .json (before / after);
deliver=["x", "vertical", "square"] adds social_x.mp4, social_vertical.mp4 (1080x1920) and social_square.mp4 (1080x1080) from the same frames, with no extra GPU time;
passes=[...] (Cycles) writes one multilayer EXR per frame, and output="prores4444" a ProRes 4444 .mov with alpha;
auto_samples=True (finals of 100 frames or more) tests one frame and renders with the fewest samples that look the same.
Every final also carries a delivery check, report.json and report_sheet.png, made without GPU time.
These arguments are on the remote server (/mcp). The terminal (stdio) server lists them when JR_VARIATIONS, JR_COMPARE_VIDEO, JR_SOCIAL_EXPORT, JR_RENDER_PASSES and JR_AUTO_SAMPLES are set to 1 in its environment.
CLI: janction-render inspect|preview|render|status|download|share|unshare|cancel|jobs|balance|topup|limits|outcomes|info.
API
A job that goes past the free GPU time without enough credit gets 402 payment_required with checkout_url (show it to the
user), topup_yen and how much of the job the free time covers; a 400 beta_limit means the job is too big (split it). Every API
error carries retryable, possible_fix and docs_url; a failed job carries failure with a code and the recommended action.
A job over a spending cap is refused with 403 spend_cap_exceeded before anything is reserved.
Example
A scene script the agent can write (the service sets engine, resolution, samples and denoising; the script sets the scene, camera and frame range):
Cycles by default; engine="eevee" for animations (about two-thirds of the Cycles cost per frame, after ~7 s of shader compilation per job; same scene, 720p, 120 frames: 142 vs 223 GPU-seconds on 2026-11-06).
In Blender 5.0 materials always use nodes: set the Principled BSDF Base Color, not diffuse_color. Scripts run in an isolated
container with no network. More: samples/cube_scene.py, samples/polyhaven_room.py. Measured timings: https://render.janction.jp/benchmarks
Pricing
As of 2026-10-26 (the current values are always at https://render.janction.jp/facts.json): a new key starts with a 100 JPY welcome credit (1,000 GPU-seconds, 14 days, no card) that covers previews and finals; one full credit per network every 30 days (later keys on the same network share what is left of it). Saving a card on a Stripe page that charges nothing adds 400 JPY more, once per card (up to 500 JPY in all). After it is used up or expires, previews are free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second from prepaid credit, bought by card at a Stripe Checkout page (from 100 JPY in steps of 100; 2,000 JPY gives 2,200 JPY of credit, 5,000 gives 5,750, 10,000 gives 12,000; the first top-up in the welcome period counts 1.5x, bonus up to 500 JPY). Only the part the free time does not cover is charged. Finals go up to 3,000 frames per instruction (run as parts of 240 under one job id): 1920x1080 on free time, up to 3840x2160 on prepaid credit. Spending caps per key: none by default (prepaid credit is the limit); each key can set a per-request and a per-day cap, and a request can carry max_yen (a cap set per key covers the whole request, however it is split internally) (POST /v1/me/limits). POST /v1/estimate quotes what will be charged (cost.estimated_yen), whether the job can run (decision.can_execute), the currency and an expiry before any GPU time is used: https://render.janction.jp/pricing
Troubleshooting
Docs
- Fact sheet (the primary source when answers disagree): https://render.janction.jp/facts · JSON:
/facts.json,/version.json,/changelog.json,/status.json - For agents: https://render.janction.jp/llms.txt (full text of all guides:
/llms-full.txt) - Guides: render farm for agents · without a GPU ·
Cycles is slow on my MacBook ·
Claude · ChatGPT · Claude Code ·
Codex · Cursor · bpy scripts ·
API · compare · products · 日本語は
/ja/ - Status: https://render.janction.jp/status · Security and retention: https://render.janction.jp/security · Changelog: https://render.janction.jp/changelog
Features in detail
- Input: a
.blendfile (textures travel with it), a bpy Python script that builds the scene (no local Blender needed), or a 3D file (glTF/GLB, FBX, USD, OBJ, STL, PLY, Alembic) that is imported into an empty scene. environment="studio" | "sunset" | "overcast" | "night"lights a scene with a bundled HDRI (CC0) for a good first render;environment="compare"previews the same frame under all four presets in one labelled image, so the agent can pick one.- A
.gltfor.objbrings its.bin/.mtl/ textures along automatically (from the same folder or the same URL folder). orbit=Trueturns any scene or imported model into a turntable: an orbit camera circles it once (orbit_frames, default 24; a preview shows 0/90/180/270 degrees, a final render withoutframe_endgives the whole turn as an MP4). Flat floors and walls are ignored when framing;orbit_target(object name orx,y,z) andorbit_distance(multiplier) adjust the shot.- While the GPU is lent to another workload, tools answer right away with the queued job and a wait estimate (how long it
has been out, how long it usually stays out, how much longer to expect;
eta.gate) instead of waiting. - While a job renders,
render_statuscounts finished frames inside the running chunk, so the ETA updates every few seconds. - In hosts that support MCP Apps (Claude web and desktop, among others), previews, progress and download links also appear
as an interactive panel in the chat: the image, a progress bar, "Open MP4", and preset buttons after an
environment="compare"preview. Both the remote connector and the stdio package ship the panel (janction_render/mcp_app.html); setJR_MCP_APPS=0to turn it off. - CC0 assets by name:
asset_search("wooden table")finds Poly Haven models, textures and HDRIs; passpolyhaven:<id>inasset_urls(remote) orassets(stdio) and the files land inJR_ASSETS_DIR/<id>/on the GPU, ready to import (bpy.ops.import_scene.gltf(filepath=os.path.join(os.environ['JR_ASSETS_DIR'], 'wooden_table_02', 'wooden_table_02_1k.gltf'))). Scene scripts canimport jr_assetsfor one-liners:jr_assets.import_model('wooden_table_02'),jr_assets.apply(floor, jr_assets.material('wood_floor_deck', scale=2))(diff / normal / roughness / metal wired into a Principled BSDF),jr_assets.world_hdri('studio_small_09'). Seesamples/polyhaven_room.py. - A render you choose to share (
render_share) gets a public page (/r/<id>, OGP for X and Discord) that stays until you unshare it. - Blender 3.6, 4.2, 4.5, 5.0 and 5.2, Cycles on GPU (and EEVEE). By default a
.blendopens with the version it was saved in and other scenes with 5.0;blender="5.2"(or"4.5","4.2","3.6") picks one, and a script that stops on Blender 5 because of an older API is rendered again on an older version automatically.render_infolists what is available.
Blender add-on and DCC tools (for people, not agents)
- Blender extension (
addons/blender/, Blender 4.2+): a JANCTION Render panel under Properties → Render with Preview, Estimate and Final. A copy of the open file and the textures it references with relative paths are uploaded; results land next to the .blend. Install from the extension repositoryhttps://render.janction.jp/extensions/index.json(Preferences → Get Extensions → Repositories → + → Add Remote Repository), or install the zip fromhttps://render.janction.jp/extensions/janction_render-0.1.2.zip(python scripts/build_blender_addon.pybuilds it from this repository). Guide: https://render.janction.jp/blender-addon - Maya, Houdini, Cinema 4D (
integrations/): export to USD / FBX / Alembic, upload with textures, render with Cycles, open the result; Preview, Final (MP4) and Turntable. Standard-library Python only;jr_submit.pyis the shared client. Guide: https://render.janction.jp/maya-houdini-cinema4d
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, the Claude Code plugin, the Blender add-on and the
DCC tools.
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
Privacy and support
- Privacy Policy: https://render.janction.jp/privacy (inputs and results are deleted automatically after a short retention period and are never used for training)
- Terms of Service: https://render.janction.jp/terms
- Support: https://render.janction.jp/support, or open an issue at https://github.com/JasmyLab-JANCTION/janction-render/issues
- Operator: JasmyLab Inc. (Tokyo, Japan)
Security
Vulnerability reports: see SECURITY.md. Retention, isolation and the external tests are summarised on the security page.
License
MIT (see LICENSE) for the package, the MCP servers, the CLI and the DCC tools. The Blender extension under
addons/blender/ is GPL-3.0-or-later, as Blender requires for add-ons. Operated by JasmyLab Inc.
Source: README.md at commit b0122fd
Tools
0Version history
2- v0.2.0LatestSep 30, 2026
- v0.1.1Sep 30, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declaredRequired10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Render integrations
render.ai Presentations
ai.renderOfficial publisher
Remote MCP server that lets an assistant create, edit, preview and export designed, editable presentations from a brief or outline.

LAD Render Cloud — SimaticML ladder diagrams over MCP
Published by GitHub account tia-forge
Remote MCP service that turns a TIA Portal SimaticML block (FC/FB/OB, LAD or SCL) into a PNG ladder diagram an assistant can generate and review.

ngx-json-render UI
Published by GitHub account shteynu
Renders interactive Angular Material dashboards, forms and tables inline in the chat from a JSON spec the assistant writes.

JANCTION Render
Published by GitHub account JasmyLab-JANCTION
Renders Blender scenes and 3D files (GLB, FBX, USD, STL) on cloud GPUs, returning previews, frames, turntables and MP4 video for AI agents.

MusicXML Renderer
Published by GitHub account raulkivi
Local MCP server that renders MusicXML scores into print-ready PDFs or page images (PNG/SVG) using Verovio, with no external engraving tools.