Skip to main content
seriesmith is driven by two files you write (or have Claude write from a screenplay):
  • series.json, the series config: who and what is in the show (characters, props, vehicles), the places, how they look and sound, and how the show is rendered and delivered. Written once, shared by every episode.
  • ep01.md, the episode script: every shot in a few lines, in order: where, who, how close, how long, what happens, what is said, the camera and the sound.
From those, Build makes the shot list; the Refs tab makes the pictures the config describes (each character’s sheet, each prop, a plate for each place); and every shot renders from its lines and its pictures. Change a line, and only the shots it touched render again. This page follows one real scene through: LAST LIGHT, a rooftop chase in the rain. The three files are in the repo as they came out, in examples/demo/, and the finished episode is the trailer.

The three files

To convert your own, see Screenplay to episode. The rest of this page is what the conversion did, and why, so you can write or correct these files yourself.

1. The show, once

Before any shot, the series config settles how the whole show looks and is delivered. None of it is in the screenplay; all of it has to be right before the first take.
series.json
  • series: the frame rate and the render size (1344×768 is MiniMax H3’s own).
  • proxy: the size of the quick draft pass, for judging the cut before the finals.
  • style.look: one sentence that opens every shot’s prompt and every picture’s: the medium, the lens, the light, the grade. It says nothing about the story.
  • speech.pace: how fast lines are spoken, which decides how long a shot with dialogue needs to be.
At the end of the file, how dialogue sounds and how the master is made:
series.json
audio.mode: generate means the model invents each voice from its description, so nothing is recorded first. upscale.master is the recipe every shot is finished by on its way to a 1080p master (Finishing).

2. Characters: what the camera can see

The screenplay introduces Mara in a line:
screenplay.fountain
and she leaves the script for the series config:
series.json
  • design is said in every shot she’s in, beside her picture, so it’s what she looks like and nothing else. A courier is her job, not her appearance: it’s gone. What a screenplay leaves to the costume department (her skin, her top, her trousers, her boots) is spelled out, because the model has no costume department.
  • sheet is her picture: four views stitched into one, made in the Refs tab from the design. It goes in with every shot she’s in, so she is the same Mara in shot one and shot twenty-seven.
  • voice is how her lines sound.
The script then names her by her key, mara, and her lines by MARA.

3. Props and vehicles, and a change of state

THE CASE is a prop with a picture of its own, like a character. When it opens, it’s a different picture, so the open case is a variant of it (of: case): the same case, its own sheet.
series.json
The drone is a vehicle, which works the same way. In the script, props and vehicles go on the with: line, after the characters on who:.

4. Places: one angle each

Each slugline becomes a location: a description, and a plate, the picture of the place behind the action. But a plate is one camera position, and a scene shot from several sides needs one per side. So EXT. ROOFTOP - WATER TOWERS became three: the roof, the stairwell door Voss comes out of, and the aisle Mara runs down.
series.json
of: water_towers marks it as an angle of the same place. The sequence header names the main location; a shot picks an angle with plate:.

5. A scene becomes shots

The screenplay’s water-towers scene:
screenplay.fountain
became three shots. Every ## is a cut:
ep01.md
What changed on the way:
  • One action, one shot. Her boots smash through a puddle is a moment of its own: an extreme close-up (size: ecu) of a second and a half.
  • The writing became something to film. He doesn’t run. He doesn’t need to. can’t be drawn; stops on the tar, perfectly still can.
  • Directions on screen. toward frame left where she runs keeps the chase going one way across the cut.
  • The line gets its shot and its delivery. Voss speaks in a medium close-up (mcu, so his face reads), dur: auto makes the shot as long as the line takes, and (calm, carrying easily over the rain) is how he says it.
  • Every shot has a camera and a sound. The screenplay leaves both to the crew; the model needs them said.
The sequence header above them names the place, and the shots under it are there unless they pick an angle:
ep01.md

6. What stays out of the script

ep01.md
Transitions are made in the edit, not rendered. So are titles and credits (the series’ intro and outro go around the master). A // line is a comment.

Then

1

Put the two files in an episode folder

series.json and ep01.md together (or import them: Project folders → Import series…).
2

Build

The shot list for both passes, with any warnings: a line too long for its shot, a name the config doesn’t have.
3

Make the pictures

Refs → Generate missing: Mara’s and Voss’s sheets, the case, the drone, a plate for each place.
4

Render the shots

Shots → Generate missing, then Play all. Fix what’s wrong in the script, and Re-render stale renders only what changed.

Writing an episode

Every field of both files, from a first episode to copy.

A scene broken into shots

Another screenplay scene, worked through cut by cut.