CoolFace
Datasetpublic

NameFrame/dead-city-unreal-synthetic

Dead city: a synthetic detection capture rendered in Unreal Engine 300 rendered frames from a single Unreal Engine environment, carrying 10,693 labelled object instances. Every box and every mask here is read out of the engine's own per-instance ID buffer at render time. No model produced these labels and no one drew them by hand, so a label is wrong only where the scene description behind it is wrong. The environment was built by George Shachnev, who sent us the map and agreed… See the full description on the dataset page: https://huggingface.co/datasets/NameFrame/dead-city-unreal-synthetic.

sourceHugging Faceotherupdated 14d agoView on Hugging Face
0likes248downloads
Dataset Card

Dead city: a synthetic detection capture rendered in Unreal Engine

300 rendered frames from a single Unreal Engine environment, carrying 10,693 labelled object instances. Every box and every mask here is read out of the engine's own per-instance ID buffer at render time. No model produced these labels and no one drew them by hand, so a label is wrong only where the scene description behind it is wrong.

The environment was built by George Shachnev, who sent us the map and agreed to it being captured and to being named here. The frames and the labels are ours; the environment is his, and no part of it is redistributed here.

The capture

Engine5.8.1-56057345+++UE5+Release-5.8
MapDeadCity_Demo01
Frames300
Instances10,693
Resolution1280 x 720
Horizontal FOV62 deg
Camera policyrandom, 0 authored zones
Lens profilerandom at 0.6
Time of day07:30 to 16:00
Weatherscene (300 frames)
Master seed20260911
Validatorgrade A, 90.3 out of 100

Placement, pose and camera pose are sampled deterministically from the master seed (deterministic_per_logical_frame_and_instance), so the same seed over the same scene reproduces the same 300 frames.

Classes

idclassinstances
0person6,859
1bicycle1,305
2scooter720
3skateboard354
4wheelchair462
5bench562
6chair431

By COCO's scale thresholds: 8,532 small, 2,161 medium, 0 large. The mean box covers 0.08% of the frame, which makes this a small-object capture.

Layout

images/          rendered RGB frames, unmodified PNG
segmentation/    per-instance ID buffers, one colour per instance
labels/          YOLO boxes, one text file per frame
annotations/     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

Frame N is the same scene across images/, segmentation/, labels/ and metadata/. No split is imposed: all 300 frames sit in one pool, so you can split them however the experiment needs.

Decode segmentation/*.png with a library that hands you channels in the order the file declares. The instance colours are exact 8-bit values, and a silent channel swap turns a correct mask lookup into an empty one.

Measured quality

This archive ships the validator's own output rather than a summary of it. From reports/validation.json:

  • —Corrupt images: 0 of 300
  • —Frames with no labels: 0
  • —Near-duplicate images: 11
  • —Cross-split leakage: 0
  • —Mean luminance 69.6; 72 underexposed frames, 0 overexposed
  • —Reconciled frame by frame: 300 requested, 300 images, 300 label files, 10,693 annotations

Known limitations

  • —The validator took 7.59 points off for class-imbalance: rarest/commonest class ratio 0.052.
  • —The validator took 1.83 points off for near-duplicate-images: visually near-identical images in one split (dHash <= 4).
  • —The validator took 0.21 points off for underexposed-images: mean luminance < 35.0.
  • —The validator took 0.07 points off for blurry-images: variance-of-Laplacian < 100.0.
  • —Check build-provenance did not pass: BUILDPROVENANCEUNVERIFIED: UNVERIFIEDREPOSITORYCOMMIT.
  • —Check labels-vs-rgb did not pass: 35/1080 labelled instances are invisible in rgb.png (3.24%, 30/300 frames) -- masks painted where nothing was drawn: skateboard (1110, 322, 1125, 345) in plugin000000; bench (384, 397, 460, 441) in plugin000000; person (49, 58, 75, 91) in plugin000001; person (601, 267, 629, 287) in plugin000002.
  • —Depth-probed people the engine could see, against people labelled: 0/34 engine-visible people unlabelled (0.00%, 300/300 frames).
  • —Rendered imagery carries a synthetic-to-real domain gap. Treat it as pre-training or augmentation material rather than a substitute for a real-world evaluation set.

Provenance and terms

The frames were rendered in Unreal Engine and labelled from the engine's instance buffers by NameFrameCapture, an editor plugin. capture.json carries the full build record, including the plugin and job hashes and the checks the build could not verify.

Environment and prop assets in the scene are licensed from third parties for use inside Unreal Engine projects. The rendered images and their labels are published here; the source assets are not, and no .uasset or map file is included. Read LICENSE before redistributing the imagery itself.

The capture pipeline, the other environments in this series and the measurements behind them are documented at <https://getnameframe.com>.