Material math from a single instruction — Time into Sine, wired and compiled inside the editor

I’ve been building a workflow that lets an AI client drive the Unreal editor directly: a declarative statement goes in, real assets come out inside the editor — blueprints, materials, animation blueprints, Niagara, and so on. The editor-side work is actual editor work, not a simulation: nodes get wired, assets get created, the result compiles and saves. Earlier topics here were mostly blueprint graphs; this one stays on a material.

Workflow

The client sends a statement to ForgeMindServer over MCP; the server translates it and talks to the running editor through a local bridge; a Companion plugin performs the editor-side operations. From the editor’s point of view nothing exotic happens — the same asset creation and node wiring you would do by hand, just issued as one call. In the recording the small dark window on the left is the instruction stream, one line per tool call with a status dot on the right; the editor on the other side of the frame is responding in the same session, not a separate take stitched in afterwards.

What the demo shows

The demo stays on one material graph and builds it in the order you would build it by hand: create the material, add a Time node, add a Sine node, wire Time into Sine, wire the sine into Emissive, compile, then read the graph back so the editor itself reports what it now holds. The window stays open after the last line, so the compiled state can be read on screen instead of caught mid-frame.

Material work also has its own friction, and it is not the wiring — it is the stage rules. Data that only exists in the vertex stage cannot be dropped straight into a pixel-stage input, and some pins are rejected at compile time rather than at connect time. Those are the moments where a declarative approach has to actually know the engine’s rules instead of guessing at them.

The frames are a real execution screen and can back the claim that the instruction → tool → editor chain actually runs. They are not a verification result: no pass rate, no case count, and a recording does not change the status of any case behind it.

Measured difference

For the blueprint case I keep coming back to — a For Each with Break loop — 20 node builds by hand versus 11 DSL lines, roughly 75% fewer operations. A single call on one blueprint replaces 50+ node-by-node operations. Version coverage is UE 5.0–5.8. Current coverage spans 24 content-production domains through 16 MCP tools. Both an OpenSource (Apache-2.0) build and a Commercial build exist; the open build is not the whole product, so please read the licence before assuming otherwise.

Looking for scenarios

I’d rather test against real production pain than my own demo cases. If you have material work that is pure repetition — a family of instances that differ only in a few scalars, the same sampling chain repeated across a dozen graphs, a stack of vertex-animation setups — describe it in this thread: the scenario, roughly how many nodes or assets, and how long it takes you today. I’ll run what fits the current coverage and report back honestly, including the cases it cannot do yet.

Source: GitHub GitHub - akimoto-akira/ForgeMind_OpenSource: ForgeMind — a game engine control platform with MCP as its interface: it exposes Unreal Engine project management, asset reading, launch/build/editor operations and other capabilities to AI clients through the MCP protocol. The current implementation targets UE (5.0–5.8), and the platform design is extensible to other engines. · GitHub

Gitee ForgeMind_OpenSource: ForgeMind —— 以 MCP 为界面的游戏引擎控制平台:通过 MCP 协议把 Unreal Engine 的工程管理、资产读取、启动/构建/编辑器操作等能力开放给 AI 客户端。当前实现为 UE(5.0–5.8),平台设计可扩展至其他引擎。