Text IRs
Unreal's most powerful assets — Blueprints, materials, animation graphs, control rigs —
are visual node graphs locked inside binary .uasset files. You can only really read them
by opening the editor and tracing wires by hand. PinWright's text IRs turn those graphs into clean,
readable text: something you can diff, review, and hand to an AI to author.
Why a text IR changes what your assistant can do
An AI assistant is good at exactly one representation: text. Ask it to wire a node graph blind, through dozens of “create node / connect pin” calls, and small mistakes compound. Give it the same graph as a compact, line-based language, and it reads the whole thing, edits a few lines, and hands it back. That is what an IR (intermediate representation) is here: a faithful text form of the graph, on the way in and on the way out.
A Blueprint BeginPlay graph: a Print, an IsValid check, a Branch, two exec paths reconverging at the end — a dozen nodes and wires you read by following pins across the canvas.
entry event BeginPlay() {
call PrintString(InString: "Hello")
%valid = call IsValid(Object: $MyRef)
%b = branch(%valid) [true -> @ok, false -> @end]
@ok:
set Score = 100
@end:
call PrintString(InString: "Done")
}
Diffable in version control
A change to a graph becomes a few changed lines in a pull request, instead of an opaque binary blob you cannot review.
Reviewable like code
You read what changed and why in plain text, so an AI edit to a Blueprint or material is as auditable as an edit to your source.
The format an AI can author
One consistent, line-based language per graph type — the assistant learns it from a handful of examples and writes whole graphs reliably.
Faithful, not lossy
Node identity and layout are preserved. Decompile twice and you get identical text; on the round-trip IRs, text back to graph is lossless too.
Two kinds of IR
Every IR reads a graph out to text. Some also compile text back in, so your assistant can author and edit those graphs as text; the rest are read-only for now.
- Round-trip — read the graph as text and compile edited text back into the asset. Full authoring.
- Read as text — decompile the graph to text for review and context. Compile-back is a future follow-up.
Round-trip — author as text
Read the graph out, edit the text, compile it back in.
Blueprint graph logic — events, functions, and control flow as line-based text.
Material and Material Function graphs — the shader node network as text.
Animation Blueprint graphs — state machines and blend logic as text.
Control Rig (RigVM) graphs and rig hierarchy — procedural rigging as text.
Read as text — decompile for review
Turn the graph into readable text for inspection and AI context.
Behavior Trees — composites, decorators, services, and tasks as text.
Niagara systems, emitters, and module scripts — VFX graphs as text.
MetaSound Source and Patch graphs — the audio node network as text.
SoundCue graphs — the classic sound node tree as compact text.
PCG graphs — procedural-generation nodes and edges as text.