Tutorial: your first dataset in Studio
From an open Unreal level to a scored, training-ready dataset, entirely inside the editor panel. Budget about twenty minutes the first time, most of it reading.
You need Unreal open with your level loaded, the NameFrameCapture plugin enabled, and at least one kind of actor in the level you want to detect. People, vehicles, crates, anything. If you have none, place a handful of the same static mesh actor and use those.
1. Open Studio and confirm the level#
Tools → NameFrame Studio.
The Home page shows the active map and a summary of NameFrame helper actors. Press Rescan Level. If the map name is wrong, you have the wrong level loaded. Fix that first, because everything downstream reads from it.
2. Check the inventory#
Go to Assets and press Refresh Inventory. You are looking for one thing: are the actors you intend to label actually in the list?
Press Validate Assets. Fix anything it reports now. A missing ground actor or an empty asset pool will not fix itself later.
3. Create a spawn zone#
Go to Scene.
Select an actor in the viewport near where you want targets to appear
The new zone gets created at that location.
Press Spawn Zone
A
NameFrameSpawnZoneactor appears. Move and scale it in the viewport like any other actor.Set its ground
Select the zone and your landscape or floor actor, then press Pick Ground. Targets get traced onto that surface instead of floating.
Press Preview Spawns
Temporary preview actors appear so you can see the distribution. Clear Preview removes them. They are never part of a capture.
The zone has no asset pool, or no ground was hit. Select the zone and check its Spawn Groups in the Details panel. Each group needs a label and at least one actor class or static mesh.
4. Define the class and assign actors#
Still on Scene, in the Classes and actors section:
Type a class name and press Add Class
Lowercase and singular works best:
person,car,crate. This string becomes the label in the exported dataset.Assign actors to it
Either select actors in the viewport and press Assign Selected on the class row, or type a name prefix and press Assign Prefix to catch every matching actor at once.
Exclude look-alikes
Select any actor that resembles a positive but must not be labelled, and press Ignore Selected. Unlabelled look-alikes are a classic source of a model that will not converge.
Press Refresh
Confirms the counts per class. A class with zero actors will produce zero labels.
5. Point the camera#
Go to Capture.
- Press a camera mode preset. Orbit is the safest starting point: it circles the sampled targets and rejects views with nothing in them.
- Press 1280 x 960 for resolution, or 640 x 640 if you are training a square-input detector.
- Set Distance (m) and Altitude (m) as ranges, say
8,25and10,20, so every frame differs. - Under Smart Viewpoint Validation, tick the resample option and set Min
targets to
1. Now frames that contain nothing get resampled instead of written. - Press Preview Camera and look at the viewport. If you are staring at sky or ground, adjust the altitude and press it again.
6. Render a preview#
Go to Preview Lab. Press 4, then Generate Preview.
Four real frames render through the production pipeline into a temporary folder. Flip between the RGB, boxes and segmentation layers.
Boxes are missing, offset, or wrapped around the wrong object. Fix the class assignment or the zone before generating thousands of frames. The preview is telling you the truth about what a full run will produce.
7. Configure the outputs#
Go to Dataset.
- NameFrame detects the installed Python runtime and keeps its workspace under the project automatically. A source checkout is needed only for developer workflows.
- Set the three output folders: raw capture, report, dataset. Use three distinct paths.
- Press Quick 100 for your first real run. Leave the seed at
42. - Leave Task as
boxunless you specifically need pose or segmentation. - Leave the split fractions at
0.2and0.1.
8. Preflight, then generate#
Go to Generate and work through the readiness row left to right:
Validate Scene
Zones, ground, labels, assets.
Validate Recipe
The configuration itself.
Dry Run
Writes the planned frame schedule without rendering. Skim it: do the sampled values look like the ranges you set?
Smoke Test
Five real frames, verified, with a temporary report that opens automatically. This is your go/no-go.
Generate Dataset
Leave all four pipeline stages ticked. Progress appears in the panel, and Cancel stops it while keeping completed frames.
9. Look at what you made#
Press Open Report, then Open Dataset.
In the report, look at the overlays rather than the summary numbers. Boxes should sit tightly on targets across a range of distances and angles.
The dataset folder contains the scorecard. A grade of A or B on a 100-frame run means the mechanics are sound and you can scale up. Anything lower, read the penalties, because they name the exact problem. See Quality, checks and scoring.
10. Scale up#
Once a 100-frame run grades well, go back to Dataset, press Train 10,000, and generate again. Change nothing else. The seed and the recipe stay the same, so the large run is the small run continued rather than a different experiment.
On the Dataset page, press Save recipe. That YAML file reproduces this entire configuration on another machine, in a month, or from the command line.