Home / Articles / A film studio on a laptop: Claude builds, animates and renders a 26-second RiskMandate film in Unreal Engine 5.8 on an unattended MacBook Air, with no mouse and nobody at the keyboard
A film studio on a laptop: Claude builds, animates and renders a 26-second RiskMandate film in Unreal Engine 5.8 on an unattended MacBook Air, with no mouse and nobody at the keyboard
By Dinis Cruz · 2026-11-14 · article v1.1.0, 2 versions · newsroom v0.14.82 · unreal-enginevideoagentsmcpriskmandateclaudevaultsexperimentarticle
Abstract: I gave a MacBook Air to Claude and Unreal Engine 5.8, and in one session we went from an install that failed at 100% to a pipeline that turns a chat into a finished film. Claude designs a scene, builds it inside the editor through Unreal's new MCP plugin, animates it in Sequencer, renders it with Movie Render Queue and hands back a titled MP4, with nobody at the keyboard. The first production is a 26-second brand film for RiskMandate, about reach, mandate and gap, rendered at 2560 by 1440: 108 blocks rise around a glowing agent, the inner rings turn green, a barrier rises between them, and the camera cranes up into a seal. Two things made it work: Unreal 5.8's experimental Unreal MCP plugin, which exposes about fifty toolsets to an agent, and a small job runner in a folder for what no toolset could do yet, which is render to video. The films play on this page, streamed piece by piece from a new vault the newsroom will use for every video, with its read key published here.
In short
- A laptop became a film studio. An unattended MacBook Air, Unreal Engine 5.8 and Claude: from a chat to a titled MP4, with no mouse and nobody at the keyboard.
- The first film: 26 seconds for RiskMandate, reach, mandate and gap, rendered at 2560 by 1440.
- The key piece is Unreal's new MCP plugin, which gives an agent about fifty toolsets inside the editor.
- What no toolset could do, a folder did: a job runner that runs any Python dropped into an inbox, including the render.
- Watch all three videos on this page: the render test and both versions of the film, streamed from the newsroom's media vault.
- It is one session old, and the list of what to improve is long.
Watch it
Three videos, in the order they were made. Each plays here, decrypted in your browser piece by piece from the newsroom's media vault, an encrypted vault whose read key is published on this site, so anyone can read it and nobody can change it.
The same vault also has the original files and a player of its own: open the newsroom's films and videos.
From a failed install to a working editor
The machine is a MacBook Air (M2, 16 GB) on macOS Tahoe, logged in as a standard, non-admin account. Three things stood in the way:
- The install failed at 100%. The Epic launcher could not write its manifest because the folder was owned by another account. The fix was to give the folder back to the working user.
- The Metal toolchain was missing. Newer Xcode ships the shader compiler separately; downloading it as the normal user, not through sudo, finally worked.
- Sleep. The laptop has to stay on power with automatic sleep off, or an unattended render stops.
Connecting Claude to the editor
Unreal 5.8 includes an experimental Unreal MCP plugin, which runs a Model Context Protocol server inside the editor. With only the base plugin on, Claude saw a single toolset. With All Toolsets on, it saw about fifty: the scene, actors, Blueprints, materials, Sequencer, Niagara particles, procedural generation and more. Setting the server to start with the editor is what makes the machine work unattended.
Epic also ships around twenty Agent Skills that an agent can read through MCP: outdoor lighting, materials, Blueprints, particles. The lighting skill explained the first test's white-out (point lights at 40,000 candela instead of single digits), and its exposure rules shaped the film's lighting.
Closing the gap with a folder
No toolset could render a sequence to video. Two discoveries closed the gap:
- Unreal runs a Python file at startup. Claude wrote a small job runner into it: every two seconds it checks an inbox folder for Python files, runs each inside the editor, and writes the result to a done folder. That opens the whole of Unreal's Python interface, including Movie Render Queue, by dropping a file into a folder.
- A tool that claimed success had not done the work. Enabling the render plugin through its toolset reported success and never changed the project file, so Claude edited the project file directly.
From there, the loop is five steps: Claude writes a job; Unreal builds the level, materials, meshes, lights and sequence; a second job queues the render; a Linux sandbox on the Mac encodes the frames with ffmpeg; Claude adds the titles and delivers the MP4.
The film
The brief came from riskmandate.ai and its brand page: reach, mandate, gap, brand green on near-black, quiet and precise. The film is entirely abstract:
| Time | On screen |
|---|---|
| 0 to 2.5 s | One agent, many systems: a green agent glows alone in the dark |
| 2.5 to 8 s | Know their reach: 108 grey blocks rise in rings around it |
| 9 to 12.5 s | Define their mandate: the inner rings turn brand green |
| 13 to 17 s | Control the gap: a dark metal barrier rises between mandate and reach |
| 17 to 22 s | Give agents access, not free rein: the camera cranes overhead into a seal |
| 22 to 26 s | The end card |
The scene is built in code: about 264 animated pieces, each with its own keys, staggered by ring and angle, and a camera path computed so it never spins the wrong way.
Version 2 added bevelled meshes with 4 cm rounded edges, new materials with an edge sheen, softer light with Lumen bounce, and four temporal samples per frame. Version 1 rendered in about three and a half minutes at 1080p; version 2 took about 26 minutes at 1440p.
What went wrong
- A tool reported success without doing the work. Always check the file it claimed to change.
- Stale copies. The tool that copied files to the Mac cached by file name, so updated files kept their old contents. Every job now gets a new name.
- Jobs ran inside jobs. Loading a level let a second job start halfway through the first; the runner now takes one job at a time.
- Exposure. Physically based lights need physically sensible values; a stylised dark scene needs manual exposure.
Why this matters
This is a production pipeline that an agent drives end to end, on a laptop, from a conversation. The same loop makes a series as easily as one film: a short for each idea in an Agent Behaviour Policy (reach, mandate, gap, barriers, evidence), cut again for phones and social, rendered overnight from a queue of briefs. The craft list is long, from depth of field to a music bed, and none of it needs a person at the keyboard.
It is also a lesson in where agents stand today. The MCP plugin did most of the work, and the gap it left was closed by the oldest trick there is: a folder that a program watches. The most useful next step is to turn that folder into proper tools (build a scene, render a sequence, report progress) so nothing has to be copied at all.
What this does not claim
- It is one session, on one machine, with one film; the render times are from that machine.
- The Unreal MCP plugin is marked experimental by Epic.
- The film is silent and uses typed titles, not RiskMandate's approved logo files yet.
Where this comes from
My session notes, "Making the RiskMandate film with Claude and Unreal Engine 5.8", 13 November 2026, and the films themselves, in the newsroom's media vault. riskmandate.ai. Earlier on this site: RiskMandate and Manus, coding standards are behaviour policies.
Peer review Not reviewed yet. Review it
Threads
Builds on
- RiskMandate and Manus: mapping an Agent Behaviour Policy onto a general agent that can use your computer, your browser, your logins and 416 connectors, and the controls Manus already gives you How an Agent Behaviour Policy maps onto Manus: its reach, the controls it already gives you, and the gap between them.
- Coding standards are behaviour policies: describe how your agents should write code as intent, map it across every language and team with a fractal graph, and see which rules are kept by a barrier and which only by habit A coding standard is a behaviour policy: write it as intent, see what holds each rule, and map it across teams with a graph.
Continued by
- Always-on agents at team scale: Anthropic's five primitives for an agent that sleeps and wakes, set beside the around 250 named agents six of us ran at Web Summit, and the next problems once there are many Anthropic's five primitives for always-on agents, set beside the around 250 named agents six of us ran at Web Summit, and the next problems once there are many.
- Every hour is twenty years: the human behind Know the Reach, and why making a song and its video with AI made them more Silvio Switha's, not less Know the Reach was made with AI and by a person: Silvio Switha, whose twenty years as a musician shaped every choice. AI changed the speed, not the vision.
- Know the Reach: RiskMandate has a song on Spotify, and its music video is being made with AI, shot by shot, from about 2,300 words of human direction; this is how the first part was made RiskMandate's song Know the Reach is on Spotify; the first 53 seconds of its video were made with AI from about 2,300 words of direction.
Article No. 394 · start a reading list with it
Reviews
No reviews yet.