ReMapping — rendering productions and configuring outputs
How to inspect, preview, render, verify and configure productions in the ReMapping folder. Every command below assumes you start in the project root:
cd /Users/ramiyarheydari/Documents/Remapping
In one line. Work down the pipeline in order —
validate→film inspect→still→preview→draft→render→verify. Everything fromstillonwards writes files; everything before it only reports.
Render commands create files. They write inside the selected production, normally into its
outputs/ folder and its .remapping/jobs/ folder. Inspection commands (§2) only
report information.
- What a production contains
- Inspect before rendering
- Render one still image first
- The three render modes
- Render command options
- Where rendered files go
- Verify an existing video
- Generate subtitles
- Output configuration in
production.toml - Output profiles
- Create a custom output profile
- Jobs, interrupted renders and recovery
- The recommended workflow
- Key practical notes
What a production contains
Each production is a self-contained film folder:
productions/reference/
├── production.toml # Production and output settings
├── src/film.py # Film, scenes, animation, narration scripts
├── assets/ # Imported media: audio, images, video, etc.
├── takes/ # Recorded narration takes
├── voice/lexicon.toml # Pronunciation choices
├── outputs/ # Delivered video, subtitles, manifests, stems, logs
└── .remapping/jobs/ # Render jobs and checkpoints
The production folder is the argument to every command:
uv run remapping <command> productions/reference
Inspect before rendering
Validate the production
uv run remapping production validate productions/reference
Checks that production.toml, the film entry point, the media declarations and the production
rules are valid. Run this first when a production is new or after changing configuration.
List the film structure
uv run remapping film list productions/reference
Shows sequences and scenes — the way to find the scene IDs used by targeted stills and renders.
Inspect the planned film
uv run remapping film inspect productions/reference
Shows planned scene durations, frame ranges, transitions and narration state. This is the best pre-render check when you want to understand what the film will actually produce.
Plan without rendering
uv run remapping plan productions/reference
Validates and writes a FilmPlan without creating video frames — it catches planning
problems early, before any render time is spent.
Render one still image first
A still is the fastest way to check composition, typography, safe areas and one specific moment.
uv run remapping still productions/reference --scene equation --time 8
--scene equationselects one scene.--time 8renders at eight seconds into that scene.
Three worked examples:
uv run remapping still productions/reference --frame 600
Renders one image from the complete reference film at global frame 600. At the reference
film's 60 fps authoring rate that is roughly ten seconds in. Use it when you know the exact
frame you want.
uv run remapping still productions/reference --frame 600 --show-safe-area --show-anchors
The same frame with diagnostic overlays: --show-safe-area draws the protected title/text
area (confirming important text is not too close to the edge), and --show-anchors draws the
named anchor points used by layout and animation. This is a debugging image, not a clean
final still.
These two flags currently do nothing. The overlays are not drawn — the flags are lost
between RenderSettings and SceneSettings. Cause, fix and workaround are in
implementation request 2.
uv run remapping still productions/reference --time 5 --output check.png
Renders one image at five seconds into the film and names the file check.png. Use
--time when elapsed time is easier to think in than frame counts. The output goes to the
production's output area unless another allowed path is supplied.
| Option | Meaning |
|---|---|
--frame N | Select one exact global film frame. |
--time SECONDS | Select a moment by elapsed time. |
--scene ID | Select a scene, and interpret --time within it. |
--output NAME.png | Choose the filename for the generated still. |
The three render modes
| Mode | Profile | Default output | Use it for |
|---|---|---|---|
| preview | preview-540p30 | outputs/preview.mp4 | Animation, layout, timing, general look — fast. |
| draft | review-1080p30 | outputs/draft.mp4 | Client review, all scenes in sequence, estimated narration timing. |
| render | the production's profile | outputs/<film-id>.mp4 | Verified delivery. |
Preview — fastest visual check
uv run remapping preview productions/reference
uv run remapping preview productions/reference --output first-look.mp4
A quick, non-certified diagnostic movie using preview-540p30, one worker, and the default
filename.
Draft — a complete review version
uv run remapping draft productions/reference
A non-certified, low-cost full-film review version using review-1080p30.
Render — verified delivery
uv run remapping render productions/reference --draft-timing --workers auto
The full renderer. It plans the film, renders contiguous frame ranges, encodes segments, joins
them, mixes audio, verifies the delivered file, and only then writes it to outputs/.
When to drop --draft-timing. Omit it only once every narration line has a current,
approved take. The reference production has no narration takes, so it needs --draft-timing
for a complete render.
Render command options
uv run remapping render productions/reference [options]
| Option | Meaning | Example |
|---|---|---|
--profile NAME | Chooses an output profile. | --profile youtube-2160p60 |
--workers N | Number of CPU render workers, or auto. | --workers 4 |
--gpu-workers N | Metal conversion workers for supported 10/12-bit profiles. | --gpu-workers 2 |
--seed N | Overrides the deterministic random seed. | --seed 42 |
--output NAME | Output filename/path, relative to the production output area. | --output review.mp4 |
--manifest NAME | Chooses the render-manifest filename. | --manifest review.manifest.json |
--overwrite | Allows replacing an existing output file. | --overwrite |
--stems | Also exports separate audio-bus WAV files. | --stems |
--no-audio | Silent diagnostic output — not a certified narrated final. | --no-audio |
--keep-temporary | Keeps intermediate render files for debugging. | --keep-temporary |
--resume JOB_ID | Resumes a compatible interrupted render job. | --resume job-20260816-101500-ab12cd |
--scene ID | Renders named scenes only. Repeat for several. | --scene title --scene equation |
--draft-timing | Uses estimated narration timing instead of approved takes. | --draft-timing |
Common examples
Fast 540p diagnostic render:
uv run remapping preview productions/reference
Full reference render with estimated narration timing and separate audio stems:
uv run remapping render productions/reference \
--draft-timing \
--workers auto \
--stems
Render only two scenes for review:
uv run remapping render productions/reference \
--draft-timing \
--scene title \
--scene equation \
--output selected-scenes.mp4
Render a vertical preview production with its vertical profile:
uv run remapping render productions/three-d-to-two-d \
--profile vertical-preview-540x960 \
--draft-timing \
--workers auto
A final output, after narration is fully recorded and approved:
uv run remapping render productions/reference \
--profile final-1080p60 \
--workers auto \
--stems
Where rendered files go
For the reference production:
productions/reference/outputs/
├── reference.mp4 # Main delivered video
├── reference.manifest.json # Exact record of inputs/settings/output
├── reference.srt # Subtitle file, when generated
├── stems/ # Optional separate audio buses
│ ├── reference.narration.wav
│ ├── reference.music.wav
│ ├── reference.sfx.wav
│ ├── reference.generated.wav
│ ├── reference.video.wav
│ └── reference.master.wav
└── logs/ # Render/report logs
The exact main filename depends on the film ID, the selected profile/container, and
--output.
Verify an existing video
uv run remapping verify productions/reference/outputs/reference.mp4
Reads the delivered video and reports duration, codec, size, pixel format, frame rate and audio-stream count.
To check it against a known built-in profile's technical contract:
uv run remapping verify productions/reference/outputs/reference.mp4 \
--profile final-1080p60
Generate subtitles
uv run remapping subtitles productions/reference
Creates outputs/reference.srt from the narration plan. With no recorded takes it uses
planned/estimated timing.
uv run remapping subtitles productions/reference \
--output captions.srt \
--profile final-1080p60
Output configuration in production.toml
Every production has a production.toml. In productions/reference/production.toml the base
render configuration is:
[render]
profile = "final-1080p60"
design_size = [1920, 1080]
fps = "60"
codec = "h264"
load = 0.2
seed = 0
| Setting | Meaning |
|---|---|
profile | Default delivery profile when --profile is omitted. |
design_size | Authoring canvas size — it fixes the intended aspect ratio, not the delivery resolution. |
fps | Film authoring frame rate. |
codec | Base/default video codec choice. |
load | Scheduling hint used when choosing workers automatically. |
seed | Deterministic seed for repeatable renders. |
Design size vs delivery size
These are different concepts, and confusing them is the usual cause of a refused render:
design_size = [1920, 1080] → how artwork is authored
output profile = 960 × 540 → fast preview delivery
output profile = 3840 × 2160 → 4K delivery
The output profile must have the same aspect ratio as the design size. ReMapping refuses a mismatched profile rather than stretching the video — a hard error is better than a subtly wrong deliverable.
Output profiles
A profile defines the complete delivery contract: size, frame rate, container, codec, pixel format, colour metadata, bitrate/rate control, audio, and encoder settings.
uv run remapping profile list
uv run remapping profile list --family youtube
uv run remapping profile list --size 2160p --hdr
uv run remapping profile list --codec prores
uv run remapping profile show youtube-2160p60-hdr
uv run remapping profile encoders
profile listfinds available profiles;--family,--size,--hdrand--codecfilter it.profile showdisplays every setting in one profile.profile encodersreports what this machine can actually encode.
| Family | Intended use |
|---|---|
preview | Small, fast review files; not certified delivery. |
web | General web delivery. |
youtube | YouTube-oriented SDR/HDR delivery. |
social | Vertical and square social video. |
broadcast | Broadcast-oriented 10-bit/4:2:2 and fractional-rate outputs. |
cinema | DCI cinema sizes and rates. |
master | Editing/archive masters — ProRes, DNxHR. |
hdr | BT.2020 PQ/HLG HDR profiles with mastering metadata. |
A documented high-frame-rate family does not exist yet — that is implementation request 3.
Create a custom output profile
Define it in the production's production.toml:
[output_profiles.my-delivery]
size = [2560, 1440]
fps = "60"
container = "mp4"
codec = "hevc"
pixel_format = "yuv420p"
colour_primaries = "bt709"
transfer = "bt709"
matrix = "bt709"
range = "limited"
purpose = "1440p web delivery"
[output_profiles.my-delivery.rate_control]
mode = "vbr"
target_bps = 16000000
max_bps = 24000000
[output_profiles.my-delivery.encoder]
preset = "slow"
Then render with it:
uv run remapping render productions/reference \
--profile my-delivery \
--draft-timing \
--workers auto
| Mode | Required fields | Use case |
|---|---|---|
vbr | target_bps, max_bps | Most web/video deliveries. |
cbr | target_bps, buffer_bps | A fixed-rate requirement. |
cq | value, encoder name | Constant-quality encoding. |
codec | none | Codecs such as ProRes/DNxHR that manage the rate. |
Jobs, interrupted renders and recovery
Render jobs are saved under .remapping/jobs/.
uv run remapping job list productions/reference
uv run remapping job status productions/reference --job JOB_ID
uv run remapping render productions/reference --resume JOB_ID
job listlists past and current jobs, and whether each can resume.job statusshows a job's history, settings, output and errors.--resumecontinues a compatible interrupted job. It refuses if the source inputs or the requested settings have changed — which is the correct behaviour, not an obstacle.
If a render only fails in parallel, test with a single worker:
uv run remapping render productions/reference --draft-timing --workers 1
The recommended workflow
For a production with no final narration takes yet, in order:
uv run remapping production validate productions/reference
uv run remapping film inspect productions/reference
uv run remapping still productions/reference --scene title --time 1
uv run remapping preview productions/reference
uv run remapping draft productions/reference
uv run remapping render productions/reference --draft-timing --workers auto --stems
uv run remapping verify productions/reference/outputs/reference.mp4
uv run remapping subtitles productions/reference
For a final narrated production, add the voice-recording and approval workflow before the
last render. A final render requires every narration line to have a current take and the
approvals the project demands. The proposed interface for that recording pass is
implementation request 1.
Key practical notes
- Start with
stillorpreview. A full final profile can take very much longer. - Use
--draft-timingwhile voice recording is incomplete. - Use
--stemswhen an editor or sound review needs the individual narration, music, effects, generated, video and master WAV tracks. - Use
--overwriteonly deliberately — it replaces an existing output. - Use
--keep-temporaryonly for troubleshooting. It preserves intermediate artifacts and can consume significant disk space. - Run
profile encodersfirst before choosing advanced HEVC, ProRes, HDR or high-bit-depth profiles — the machine may not be able to encode them. - A successful final render verifies the delivered file against its selected profile before placing it in the output path (§4.3).