Brutalist Command: art run
Liam, in for Bear, explains art run, the one command that drives the whole review loop for a Brutalist reel. It builds a slate review cut, not a final master, and skips every slot already filled.
One command drives the whole review loop for a Brutalist reel: art run. Liam, in for Bear, describes it as a wrapper that gates the paperwork, lints the beat mix, renders every pending scene, drops each clip into its slot, and recompiles a review cut. The key point is what it does not do. It writes a slate version, not the final master.
Review cut versus final master
art run compiles a review cut with slate labels burned in for the beats that are not filled yet. art final is the different verb: no beat markers, atomic verification, a real deliverable. The two verbs leave two different files on disk. art run writes slug-slate.mp4, the review cut with beat markers. art final writes slug.mp4, the clean master, only after every gate passes and the compiler's atomic verification stamps a receipt beside it. If you see a slate label on your export, you ran the wrong verb. Both commands compile the same beats. The difference is what gets stamped on top and whether a receipt is written.
The dispatcher and the loop
The dispatcher is one case in the art file: three lines that match the exact string run, then run runtime/script/run.sh with every argument forwarded. There are no aliases, and everything the command does lives in that one shell script. In order, the script does the following:
- Gate F checks the paperwork triad: fact check, shot list, and prompts.
- Gate L lints the beat mix, including a rule against single-sentence text slides.
- Gate shape enforces chart shape for finance reels.
- A static preflight runs on every pending Manim scene, and Gate W checks WCAG contrast and margins on the same scenes.
- Each pending Manim scene is rendered, then audited by Gate B for layout before it is slotted.
- Every Remotion beat is filled.
- A slate cut is compiled.
- Gate V runs frame-level visual QC on the finished MP4.
Any gate can stop the build. Audio is the master clock: the compiler conforms every clip to the per-beat MP3 duration, never the other way around.
Skipping what is already done
art run only renders pending beats. If a slot is already filled, as with a Manim or media clip for that beat, the script skips it. That is how you iterate: change one beat, regenerate its audio, delete its old clip, and rerun. Nothing else on disk is touched.
A real run, and a real failure
Against a fixture reel with only a beat sheet, art run reports there are no Manim beats and nothing to render. It then hits Gate F, prints exactly which paperwork is missing, and stops. The video says this output is verbatim from the log.
After the three paperwork files are written, the run proceeds. Gates F, L, and shape pass, and the next stage, Remotion, fails in this workspace. The video attributes that to a browser launch and environment issue, not a bug in the reel. The lesson is the gate order: the log tells you which stage owns a failure.
Four knobs
ART_QC=0skips every gate.ART_STRICT=0downgrades gate warnings from blockers to warnings.- A third variable turns off Gate F alone.
- A height flag picks the render height, with 2160 as the default for 4K.
Everything else is forwarded to run.sh unchanged.
Key takeaways
art runis the loop you live in until the review is clean, and it produces a slate cut, not a master.art finalis the separate verb for the real deliverable.- The dispatcher is exact-match with no aliases, and all logic sits in
run.sh. - Gates run in a fixed order, and any one of them can stop the build.
- Audio is the clock, so clips conform to the narration length.
- Filled slots are skipped, which makes each rerun shorter.
- Environment variables whose names start with
ART_can quiet a gate when you know what you are doing.
Try it yourself
From your real folder, run art run once and read the last four lines. If a gate fails, the message names which one and how to unblock it. If a render fails, read the beat ID it printed and rerun that beat's audio and scene alone, then run art run again. It will skip every filled slot, and the loop should get one step shorter on each pass. The project lives in the brutalist.art repository.
Full transcript(auto-generated, with timestamps)
[0:00]Ciao. This is Liam in for bear. One command drives the whole review loop for a brutalist reel. Art run is the rapper. It gates the paperwork, lints the beat mix, renders every pending scene, drops each clip into a slot, and recompiles a review cut. It writes a slate version, not the final master. That is a different verb. Watch the writer walk this back. Art run does not render a final master. It compiles a review cut with slate labels burned in for the beats you have not filled yet. Art final is the different verb. No beat markers, atomic verification, a real deliverable. Art run is the loop you live in until
[0:33]The review is clean. The dispatcher is one case in the art file. Three lines, pattern run, exec bash on runtime/script/run.sh forward every argument. There are no aliases. The dispatcher matches only the exact string run. Everything the command does lives in that one shell script. Here is the loop the script actually runs in order. Gatef the paperwork triad fact checklist prompts. Gate L beatmix lint. No single sentence text slides. Gate shape finance chart shape enforcement. If this is a finance reel, get a static pre-flight on every pending man scene. Gate WW CAG contrast and margins on the same scenes. Then it renders each pending manom scene and
[1:10]Runs gate B layout audit on it before slotting. Then it fills every remotion beat. Then it compiles a slate cut. Then gate V frame level visual QC on the finished MP4. Any gate can stop the build. Audio is the master clock. The compiler conforms every clip to the per beat MP3 duration, never the other way around. And art run only renders pending beats. If a slot is already filled, manm/b03.mpp4 or media/b03.mpp4, the script skips it and moves on. That is how you iterate. Change one beat, regenerate its audio, delete its old clip, rerun. Nothing else touches the disc. Here is a real invocation against a fixture reel with only a beat sheet in
[1:49]It. No paperwork. Art run reports two lines, no man beats, nothing to render. Then it hits gatef prints exactly which paperwork is missing and stops. This is verbatim from the log. Nothing was invented for the video. Four knobs are worth knowing. Art QC equals 0 skips every gate. Art strict equals 0 downgrades gate warnings from blockers to slots. Anyway, art_fax equals 0 is the pvis exception. Gate f alone off. D- height picks the render height. The default is 2160 for 4K. Everything else is forwarded to run.sh unchanged. Two verbs, two files on disk. Art run slug-slate.mpp4. The review cut with beat markers burned in. Art final write slug.mpp4. The clean
[2:33]Master only after every gate passes and after the compiler's atomic verification stamps a receipt beside it. If you see a slate label on your export, you ran the wrong verb. Both commands compile the same beats. The difference is what gets stamped on top and whether the receipt is written. And here is the loop in flight. Same fixture reel, same beat sheet. Paperwork now written. Art runs again. Gate F passes, gate L passes, gate shape passes. Remotion is the next stage in this particular workspace fails. A browser launch and environment issue, not a bug in the reel. The point is the gate order recovery. Create the
[3:04]Three files. Rerun. If the next failure is not yours, the log tells you which stage owns it. So the surface art rung gates the paperwork, lints the beatmix, pre-flights every pending man scene, renders it, audits its layout, fills the remotion beats, compiles a slate cut, then frame checks the finished MP4. It writes slug-slate.mpp4, MP4 and it skips every slot already filled. There are no aliases. It is not the final command. Art final is audio is the clock. Every gate can stop it. Every environment variable named art something can quiet one of those gates when you know what you are doing. Your turn. Paste this into clawed code from your real folder.
[3:40]Run art run once. Read the last four lines. If a gate is the failure, the message names which one and how to unblock. If the failure, read the beat ID it printed and rerun that beats audio and scene alone. Then rerun art run. It will skip every filled slot. The loop should shorten by one on every pass. If it does not, a slot is not being written and the message names which one. Brutalist command art run. Lay him in for bear, for at humanitarians





