Unreal Studio tour
NameFrame Studio is a docked panel inside the Unreal editor. It reads the level you already have open, lets you define what should be labelled and how the camera should move, then runs the whole capture-to-dataset pipeline for you. No terminal, no Python.
Opening the panel#
In the Unreal level editor: Tools → NameFrame Studio. It opens as a dockable tab you can park anywhere, next to the Details panel or across the bottom.
If you prefer the console, NameFrame.Studio.Open does the same.
The panel reads the active editor world, so load the level you want to generate from before you start. If the header says No editor world, you have no level open.
The nine pages#
Studio is one panel with nine destinations. The Home page numbers the six you move through in order. Settings and Preview Lab are side trips you take when you need them.
| # | Page | The question it answers |
|---|---|---|
| Home | What level am I on, and where do I go next? | |
| 1 | Assets | Does this level actually contain what I want to label? |
| 2 | Scene | Where do things spawn, and what are they called? |
| 3 | Capture | Where is the camera, and what is the weather doing? |
| 4 | Dataset | How many frames, where do they go, what format? |
| 5 | Generate | Is it ready, and can I run it now? |
| 6 | Results | What did I get, and how does it compare to last time? |
| Preview Lab | What would a handful of real frames look like? | |
| Settings | Local paths, and the AI/MCP endpoint. |
The mental model#
Three ideas explain nearly every control in the panel.
1. A recipe holds the configuration, not the panel
Everything you type is saved into a recipe, which is a YAML file. The panel is a view onto that file. Dataset → Save recipe writes it out, Load recipe reads one back in. That is also the file you would hand to a colleague, or commit.
2. Blank means "don't override"
Most fields on the Capture page are overrides. Leave a field empty and the loaded recipe's value is used. Type something and it wins for this run. That is why you can load a working recipe and change only the frame count.
3. Three output folders, kept separate on purpose
| Folder | Holds | Why separate |
|---|---|---|
| Raw capture | The rendered frames and the recorded truth | It is the source. Labels can be re-derived from it forever. |
| Report | Browsable HTML with overlays | Disposable. Regenerate whenever. |
| Dataset | YOLO/COCO images and labels, split | The thing you actually train on. |
The route through the panel#
Home: confirm the level
Check the map name and the helper summary. Press Rescan Level if you just changed something in the viewport.
Assets: confirm the content
Read the inventory. If your target actors are not listed here, nothing downstream will label them. Validate Assets tells you what is missing before you spend render time.
Scene: author the rules
Add a Spawn Zone where things should appear, a Target Zone for the camera to look at, and Exclusion Zones where nothing may spawn. Then define your classes and assign level actors to them.
This page also holds the population contract: spacing, slope, ground clearance and the advanced population rules.
Capture: camera, weather and throughput
Pick a camera mode preset (Orbit, Drone, Random, Fixed or Spline), then set resolution and any ranges you want randomised. Turn on Smart Viewpoint Validation so useless frames get resampled instead of shipped.
Pick exactly one weather driver: NameFrame's built-in weather, or Ultra Dynamic Sky/Weather if your project has it. The Capture Performance section at the bottom of this page trades render quality against throughput.
Preview Lab: look before you commit
Render 1 to 12 real frames into a temporary folder and flip between the RGB, boxes and segmentation layers. Your configured outputs are untouched. This is the cheapest way to catch a wrong camera height or an empty frame.
Dataset: size and destination
Set the three output folders, the frame count and seed, the annotation task, and the split fractions. Optionally apply a lens or sensor profile so the images look like they came from a real camera.
Generate: preflight, then run
Work left to right through the readiness row: Validate Scene, Validate Recipe, Dry Run, Smoke Test. Only then press Generate Dataset.
A progress widget shows frame counts and lets you Cancel. Cancelling keeps the frames already written.
Results: inspect and compare
Open the report and the dataset directly, or start the local Results API and browse indexed runs, saved views and run-to-run comparisons in your browser.
Why the preflight buttons matter#
A 10,000-frame run is hours of GPU time. Each readiness button costs seconds and rules out a different class of wasted run:
| Button | Catches |
|---|---|
| Validate Scene | Missing ground actor, empty asset pools, zones with no labels, unassigned targets. |
| Validate Recipe | Contradictory or invalid configuration, before Unreal renders anything. |
| Dry Run | A wrong randomisation plan. Writes the exact per-frame schedule with no rendering. |
| Preview Camera | A camera pointing at the sky, or buried in terrain. |
| Preview Actors | Spawn pools that produce the wrong assets. |
| Smoke Test | Everything else. Five real frames, verified, with a temporary report. |
Never start a run over 1,000 frames without a passing Smoke Test. It takes under a minute, and it is the difference between finding a problem now and finding it in three hours.