<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 加藤慧祐</title>
    <description>The latest articles on DEV Community by 加藤慧祐 (@_903a3934b362f0afe2a8).</description>
    <link>https://dev.to/_903a3934b362f0afe2a8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3202149%2Feb704b46-d350-4ee9-ad89-c8596a49e46e.png</url>
      <title>DEV Community: 加藤慧祐</title>
      <link>https://dev.to/_903a3934b362f0afe2a8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_903a3934b362f0afe2a8"/>
    <language>en</language>
    <item>
      <title>Codex and Claude Code MCP setup for JANCTION Render, and the limits that are easy to miss</title>
      <dc:creator>加藤慧祐</dc:creator>
      <pubDate>Fri, 02 Oct 2026 14:02:24 +0000</pubDate>
      <link>https://dev.to/_903a3934b362f0afe2a8/codex-and-claude-code-mcp-setup-for-janction-render-and-the-limits-that-are-easy-to-miss-4nji</link>
      <guid>https://dev.to/_903a3934b362f0afe2a8/codex-and-claude-code-mcp-setup-for-janction-render-and-the-limits-that-are-easy-to-miss-4nji</guid>
      <description>&lt;p&gt;JANCTION Render (&lt;a href="https://render.janction.jp" rel="noopener noreferrer"&gt;https://render.janction.jp&lt;/a&gt;) renders AI-written scenes and existing .blend files on a cloud GPU. It is a separate product from SmartRender, JasmyLab's distributed-GPU platform.&lt;/p&gt;

&lt;p&gt;Add &lt;code&gt;https://render.janction.jp/mcp&lt;/code&gt; and an agent can render a Blender scene on a cloud GPU. As of 2026-10-02 the beta is free: no sign-up and no card. You need an MCP client that allows a custom remote server. The quota is 10 GPU-minutes per key per day and 20 per network. A job past that limit is rejected with HTTP 429 &lt;code&gt;quota_exceeded&lt;/code&gt; and &lt;code&gt;resets_at&lt;/code&gt;. It is not queued until the next day, and splitting the job does not increase the daily quota. Resubmit after 00:00 UTC (09:00 JST). One job may be at most 240 frames at 1080p.&lt;/p&gt;

&lt;p&gt;This post is from JasmyLab, the operator of JANCTION Render. The service is a beta on one shared GPU, with no availability guarantee. The inference API on the same machine has priority.&lt;/p&gt;

&lt;p&gt;Site: &lt;a href="https://render.janction.jp" rel="noopener noreferrer"&gt;https://render.janction.jp&lt;/a&gt;&lt;br&gt;
Repository: &lt;a href="https://github.com/JasmyLab-JANCTION/janction-render" rel="noopener noreferrer"&gt;https://github.com/JasmyLab-JANCTION/janction-render&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What this MCP is
&lt;/h2&gt;

&lt;p&gt;It renders. It does not model the scene that is open in your desktop Blender. A local Blender MCP does that, and it does not require a discrete GPU: Cycles can render on a CPU. JANCTION Render accepts a &lt;code&gt;.blend&lt;/code&gt;, a bpy script, or a 3D file (glTF, FBX, USD, OBJ, STL, PLY, Alembic), runs Blender on a datacenter NVIDIA GPU, and returns a preview, frames, or an MP4.&lt;/p&gt;

&lt;p&gt;Default Blender is 5.0. Pass &lt;code&gt;blender="5.2"&lt;/code&gt; when &lt;code&gt;render_info&lt;/code&gt; or &lt;code&gt;/v1/health&lt;/code&gt; lists 5.2. On 2026-10-02 the public health endpoint listed both. The default engine is Cycles. Final jobs can set &lt;code&gt;engine='eevee'&lt;/code&gt;; each EEVEE job pays a shader-compile overhead, so short previews stay on Cycles.&lt;/p&gt;
&lt;h2&gt;
  
  
  Codex
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex mcp add janction-render &lt;span class="nt"&gt;--url&lt;/span&gt; https://render.janction.jp/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Authentication is OAuth. The consent page creates a free key. If the client cannot open a browser, a raw API key from &lt;code&gt;POST /v1/keys&lt;/code&gt; also works as &lt;code&gt;Authorization: Bearer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;There is a plugin marketplace entry on the same GitHub repository (&lt;code&gt;codex plugin marketplace add JasmyLab-JANCTION/janction-render&lt;/code&gt;). Marketplace install and a successful render are different checks. Confirm with &lt;code&gt;render_info&lt;/code&gt; before you trust a render.&lt;/p&gt;

&lt;p&gt;Prompt that matches the published sample:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Using JANCTION Render, build a glossy red cube rotating on a grey floor and show me a 4-frame preview.
If it looks right, call render_estimate, then render 24 frames at 1280x720 as an MP4.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Claude Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http janction-render https://render.janction.jp/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then &lt;code&gt;/mcp&lt;/code&gt; and authenticate. The same prompt works. Claude.ai's custom connector is a separate path (Settings → Connectors) and depends on the plan. Team and enterprise admins can disable custom MCP servers. Do not treat "it works in Claude Code" as "it works in every Claude surface."&lt;/p&gt;

&lt;p&gt;Setup pages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/codex-blender" rel="noopener noreferrer"&gt;https://render.janction.jp/codex-blender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/claude-code-blender" rel="noopener noreferrer"&gt;https://render.janction.jp/claude-code-blender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/llms.txt" rel="noopener noreferrer"&gt;https://render.janction.jp/llms.txt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A render, not a Blender session
&lt;/h2&gt;

&lt;p&gt;The useful order is fixed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;scene_info&lt;/code&gt; reads cameras, frame range, and missing files without rendering.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;render_preview&lt;/code&gt; returns 1–4 frames. The published 4-tile example (rotating cube, 640×360 tiles, 16 samples) was about 4 GPU seconds. The round trip that day was about 8 seconds. Those are different clocks.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;render_estimate&lt;/code&gt; returns a duration and whether the job fits today's quota.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;render_final&lt;/code&gt; renders frames and can join an MP4. &lt;code&gt;render_download&lt;/code&gt; returns files or 24-hour links.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GPU seconds include Blender startup and scene load on the worker. They are not "GPU chip only," and they are not the time from your keypress to the file on disk. Queue wait is extra. Whether the upload is inside the round-trip number depends on the path; do not assume every published case includes it.&lt;/p&gt;

&lt;p&gt;A 24-frame 1280×720 MP4 at 64 samples was about 58.7 GPU seconds, with a round trip around 65 seconds, on an NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition (96 GB). That scene is simple. Volumes and large textures will not scale the same way. Figures: &lt;a href="https://render.janction.jp/benchmarks" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks&lt;/a&gt; and &lt;a href="https://render.janction.jp/benchmarks.json" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks.json&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What fails in ordinary use
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;code&gt;.blend&lt;/code&gt; saved in a newer Blender than the worker you selected.&lt;/li&gt;
&lt;li&gt;Unpacked image textures. Pack them, or send them as assets. Missing textures render pink.&lt;/li&gt;
&lt;li&gt;Asking for more than 240 frames or above 1920×1080 in one free-beta job (&lt;code&gt;beta_limit&lt;/code&gt;). Split that job. Do not split in order to get more than 10 GPU-minutes today.&lt;/li&gt;
&lt;li&gt;Custom add-ons. The worker is stock Blender 5.0 or 5.2 plus the bundled HDRI presets and standard importers.&lt;/li&gt;
&lt;li&gt;Treating Colab, SheepIt, or Sceneplane as the same product. Colab's official FAQ does not promise a T4 or a 90-minute idle timeout. SheepIt has no MCP. Sceneplane's free tier, checked 2026-10-02, is 30 compute minutes per month and includes scene work, not a GPU-second quota. &lt;a href="https://sceneplane.online/" rel="noopener noreferrer"&gt;https://sceneplane.online/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing is billed during this beta. Pages that mention 0.1 JPY per GPU second are describing a planned rate, not an invoice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Primary pages
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/codex-blender" rel="noopener noreferrer"&gt;https://render.janction.jp/codex-blender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/claude-code-blender" rel="noopener noreferrer"&gt;https://render.janction.jp/claude-code-blender&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/free-blender-cloud-rendering" rel="noopener noreferrer"&gt;https://render.janction.jp/free-blender-cloud-rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/blender-mcp-comparison" rel="noopener noreferrer"&gt;https://render.janction.jp/blender-mcp-comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/benchmarks" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JasmyLab-JANCTION/janction-render" rel="noopener noreferrer"&gt;https://github.com/JasmyLab-JANCTION/janction-render&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blender</category>
      <category>mcp</category>
      <category>codex</category>
      <category>claude</category>
    </item>
    <item>
      <title>How to read a Blender cloud render benchmark: GPU seconds are not the round trip</title>
      <dc:creator>加藤慧祐</dc:creator>
      <pubDate>Fri, 02 Oct 2026 14:01:08 +0000</pubDate>
      <link>https://dev.to/_903a3934b362f0afe2a8/how-to-read-a-blender-cloud-render-benchmark-gpu-seconds-are-not-the-round-trip-3bp1</link>
      <guid>https://dev.to/_903a3934b362f0afe2a8/how-to-read-a-blender-cloud-render-benchmark-gpu-seconds-are-not-the-round-trip-3bp1</guid>
      <description>&lt;p&gt;JANCTION Render (&lt;a href="https://render.janction.jp" rel="noopener noreferrer"&gt;https://render.janction.jp&lt;/a&gt;) renders AI-written scenes and existing .blend files on a cloud GPU. It is a separate product from SmartRender, JasmyLab's distributed-GPU platform.&lt;/p&gt;

&lt;p&gt;A 4-second Blender preview and a 4-second round trip are not the same claim. JANCTION Render publishes both, for a few simple scenes, and they answer different questions. This note is how to reproduce the published matrix and how not to quote it.&lt;/p&gt;

&lt;p&gt;This post is from JasmyLab, which operates JANCTION Render. The numbers below are individual observations from production logs, not a speed guarantee and not a comparison against Colab, SheepIt, or another farm.&lt;/p&gt;

&lt;p&gt;Machine-readable table: &lt;a href="https://render.janction.jp/benchmarks.json" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks.json&lt;/a&gt;&lt;br&gt;
Human page: &lt;a href="https://render.janction.jp/benchmarks" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The two clocks
&lt;/h2&gt;

&lt;p&gt;GPU seconds are worker run time. They include starting Blender and loading the scene. They are not "the GPU was busy for this many seconds" in a profiler sense, and they do not include time the job spent queued while the GPU was lent to something else.&lt;/p&gt;

&lt;p&gt;Round trip is submission until the result is received. In the published cases the queue was empty. Input upload is not guaranteed to be inside that number for every case. Do not subtract GPU seconds from the round trip and call the remainder "upload," and do not add a guessed upload on top of GPU seconds.&lt;/p&gt;

&lt;p&gt;Checked against the production description on 2026-10-02:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;What was rendered&lt;/th&gt;
&lt;th&gt;GPU time&lt;/th&gt;
&lt;th&gt;Round trip&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;4-frame preview&lt;/td&gt;
&lt;td&gt;Rotating cube, four 640×360 tiles, 16 samples, scene lights&lt;/td&gt;
&lt;td&gt;about 4 s&lt;/td&gt;
&lt;td&gt;about 8 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Short MP4&lt;/td&gt;
&lt;td&gt;24 frames, 1280×720, 64 samples&lt;/td&gt;
&lt;td&gt;about 58.7 s&lt;/td&gt;
&lt;td&gt;about 65 s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GPU: NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96 GB. Dates on the benchmark page are in UTC. The 24-frame case is from 2026-09-30 / 2026-10-01 logs.&lt;/p&gt;
&lt;h2&gt;
  
  
  What you can re-run
&lt;/h2&gt;

&lt;p&gt;The matrix uses small scenes you can download, including &lt;a href="https://render.janction.jp/samples/cube_scene.py" rel="noopener noreferrer"&gt;https://render.janction.jp/samples/cube_scene.py&lt;/a&gt;. The page's command shape is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;janction-render render cube_scene.py &lt;span class="nt"&gt;--frames&lt;/span&gt; 1-24 &lt;span class="nt"&gt;--size&lt;/span&gt; 1280x720 &lt;span class="nt"&gt;--samples&lt;/span&gt; 64 &lt;span class="nt"&gt;--output&lt;/span&gt; png &lt;span class="nt"&gt;--wait&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those files reproduce the matrix scenes. They are not bit-identical to every historical Claude.ai transcript that produced a similar cube. If your re-run disagrees, keep your resolution, samples, frame count, engine, Blender version, and whether the queue was empty next to the number. Cycles is the default. EEVEE is available on final jobs and adds per-job shader compilation, so a one-frame EEVEE timing is a poor way to estimate a long EEVEE animation.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;render_estimate&lt;/code&gt; is the number to use for a new scene. After that scene has been rendered once, later estimates can use its own history. The published "about 11 seconds" for one 1920×1080 frame at 128 samples is the estimator's baseline for a light scene, not a promise.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the matrix seemed to say, and what it does not
&lt;/h2&gt;

&lt;p&gt;On those simple scenes, moving from 32 to 128 samples added roughly ten percent, and a 100-frame run was about four times a 24-frame run. Per-frame time was dominated by fixed work: scene build, denoising, file write. About 2.4 seconds per 720p frame and about 5.2 seconds per 1080p frame showed up in that table.&lt;/p&gt;

&lt;p&gt;That pattern is about those scenes. A volume, a large texture, or a shader that actually spends its time on samples will not follow it. The benchmark page says so. Quoting "samples are free, only resolution matters" without the scene is a misquote.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free quota is a third clock
&lt;/h2&gt;

&lt;p&gt;Beta quota is GPU seconds, defaulting in code to 600 per key per day and 1200 per network, resetting at 00:00 UTC. The 24-frame example above is about one GPU-minute, so several such clips fit in a day only while the scene stays that cheap. A heavier scene can exhaust the quota on the first final render. Crossing the quota returns 429 &lt;code&gt;quota_exceeded&lt;/code&gt; and &lt;code&gt;resets_at&lt;/code&gt;. The job is refused, not held. Splitting it does not mint a new daily budget.&lt;/p&gt;

&lt;p&gt;Nothing is charged during the beta. A planned rate of 0.1 JPY per GPU second is labeled as planned on the benchmark page. It is not a bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do not use these numbers against another service
&lt;/h2&gt;

&lt;p&gt;There is no controlled Colab run in this dataset. Colab's own FAQ says GPU type, idle timeout, and lifetime vary, and that free notebooks run for at most 12 hours depending on availability. &lt;a href="https://research.google.com/colaboratory/faq.html" rel="noopener noreferrer"&gt;https://research.google.com/colaboratory/faq.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is no controlled SheepIt run either. SheepIt is free and has no API. A long animation there can finish sooner when volunteers pick up frames. That is a different system. &lt;a href="https://www.sheepit-renderfarm.com/" rel="noopener noreferrer"&gt;https://www.sheepit-renderfarm.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sceneplane's free plan, as published on its site on 2026-10-02, includes 30 compute minutes per month. Compute there includes scene building and export. It is not a GPU-second figure you can subtract from the table above. &lt;a href="https://sceneplane.online/" rel="noopener noreferrer"&gt;https://sceneplane.online/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Primary sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/benchmarks" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/benchmarks.json" rel="noopener noreferrer"&gt;https://render.janction.jp/benchmarks.json&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/samples/cube_scene.py" rel="noopener noreferrer"&gt;https://render.janction.jp/samples/cube_scene.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://render.janction.jp/free-blender-cloud-rendering" rel="noopener noreferrer"&gt;https://render.janction.jp/free-blender-cloud-rendering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JasmyLab-JANCTION/janction-render" rel="noopener noreferrer"&gt;https://github.com/JasmyLab-JANCTION/janction-render&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blender</category>
      <category>rendering</category>
      <category>benchmarks</category>
      <category>gpu</category>
    </item>
  </channel>
</rss>
