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.

In the editor

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.

As BPIR text
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 — author as text

Read the graph out, edit the text, compile it back in.

Read as text — decompile for review

Turn the graph into readable text for inspection and AI context.

Next: Namespaces →