Skip to content
NAMEFRAMEApply for Pilot

The parisian street capture.

A Haussmann-era block with cafe terraces, parked cars and a delivery truck. People are re-placed every frame across five pavements and the camera works from two metres to thirty, so the same street appears both along its length and looked down on. It is the only capture here whose reproduction has been measured: the same job run twice returned identical masks, depth and camera poses on all three hundred frames. 300 frames, 4,719 labelled instances across 4 classes, graded C · 76.3 out of 100 by the run's own validator, whose findings are listed further down, in full.

Map
L_Showcase_01
Frames in the run
300
Labelled instances
4,719
Resolution
1280×960
Seed
20260903
Validator grade
C · 76.3/100

What it is for

Street-level and low-aerial detection of people, bicycles and vehicles in a dense city block, under eleven weather presets and every hour from six to eighteen.

How the labels were made

Every label was derived from the engine's own per-instance ID buffer and the camera transform that rendered the frame, not from a model and not by hand. What occludes what is decided by the GPU on the same pass that draws the frame.

Engine
Unreal Engine 5.8
Camera
Five street zones, from head height to above the rooftops, 1280×960
Classes
person, bicycle, car, truck
Annotation formats
YOLO, COCO, per-instance ID buffers, per-frame metadata JSON
Packaged
300 of 300 frames, across 1 archive
Version
1.0

What the frames look like

Frames from across the run, downscaled for the web. Nothing here was selected for looking good; they are the report previews the capture wrote.

Aerial frame plugin_000000 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000027 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000054 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000082 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000109 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000136 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000163 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000190 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000217 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000245 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000272 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrameAerial frame plugin_000299 of the Unreal Engine parisian street capture, with 127 labelled instances outlined by NameFrame
L_Showcase_011280×960 per frameReport previews, downscaled for the web

Download the archive.

One archive, holding the whole run.

The same run is published on the Hugging Face Hub, with a dataset viewer over the frames: huggingface.co/datasets/NameFrame/paris-unreal-synthetic.

Parisian street · complete capture

603 MB

All 300 frames of the run: images, YOLO labels, the same labels as COCO, per-instance segmentation, per-frame camera metadata, the capture contract and the run's own report. 4,719 labelled instances. Depth is left out: it is 1.37 GB per capture of float32 nobody training a box detector will open, and the job files to re-capture it are published.

Frames
300
Annotated instances
4,719
Format
ZIP

Counted from the run’s own labels: 300 of 300 requested frames matched a label file in the export.

  • images/ rendered RGB frames, unmodified PNG
  • segmentation/ per-instance ID buffers, one colour per instance
  • labels/ YOLO boxes, one text file per frame
  • annotations/instances.json the same labels in COCO format
  • metadata/ per-frame camera, actor and spawn-manifest records
  • reports/ this capture's own report and validation output
  • capture.json the run contract: classes, camera policy, seed
  • data.yaml class names, ready for a YOLO trainer
Download 603 MB

SHA-256381fd7710836ff030c18232aef3bc7b1e9d9b0c8a283909d455e6b64b635e6e9

Known limitations

The validator graded this run C · 76.3/100, and its report ships inside every archive. Here is what it and we know is wrong with the data.

  • The validator took 11 points off for cross-split-leakage: exact or near-identical images cross train/val/test (dHash <= 4) (11 of 300). It is one of the reasons the run scored 76.3 rather than 100.
  • The validator took 7.12 points off for class-imbalance: rarest/commonest class ratio 0.110. It is one of the reasons the run scored 76.3 rather than 100.
  • The validator took 5 points off for near-duplicate-images: visually near-identical images in one split (dHash <= 4) (43 of 300). It is one of the reasons the run scored 76.3 rather than 100.
  • The validator took 0.35 points off for underexposed-images: mean luminance < 35.0 (13 of 300). It is one of the reasons the run scored 76.3 rather than 100.
  • The validator took 0.23 points off for blurry-images: variance-of-Laplacian < 100.0 (7 of 300). It is one of the reasons the run scored 76.3 rather than 100.
  • The capture checked itself for people it could see and did not label: 0/16 visible (243 frames engine, 57 depth) people unlabelled (0.00%, 300/300 frames). The check ships inside the pack.
  • One map, one seed and one camera policy. A model trained on this capture alone has seen one place; the eight captures are published together for that reason.
  • The archive carries COCO boxes rather than COCO polygons. The per-instance ID buffers ship alongside them and are the mask ground truth.
  • A detector trained on all eight of these captures and nothing else reached 0.350 recall on real drone footage. Synthetic data alone did not close that gap, and this archive is published so the number can be argued with rather than believed.
  • Six of the 300 frames are rendered close to black: the pixels their labels cover average below 18 out of 255, and they carry 90 labelled instances between them. The labels are correct and nobody can confirm them by eye. They ship with the archive rather than being quietly removed, and can be dropped at export with --filter-min-label-luma 18.
  • Four frames contain no labelled instance at all. For detection those are valid negatives; for anything that expects every frame to carry an object they are not.

The checks behind those numbers, and how a run is graded, are on the dataset quality page, and the validator itself is described under dataset validation.

Terms, plainly

Free to download, read, train on and benchmark against. Publish whatever results you get, including bad ones. What you may not do is repackage the pack and sell it as your own dataset.

The images depict environment and prop content licensed for use inside Unreal Engine projects. Redistribution rights for that underlying content are not granted with these packs, so check the source licence before publishing derivatives. The full text ships as TERMS.txt inside each archive.

Citation

If you publish anything you got out of this data, this is how to point at the exact run it came from. The seed and the map are the part that matters: they are what makes the run reproducible.

NameFrame. "Parisian street: synthetic computer-vision dataset." Version 1.0, generated with Unreal Engine 5.8 on L_Showcase_01, seed 20260903. https://getnameframe.com/datasets/paris

Need this scene, but yours?

This capture came out of one NameFrame run: a map, a class list, a camera policy and a seed. Change any of them and you get a different dataset with the same ground truth guarantees. That is what the generator is for.