A scene file describes a view of something: a photograph, a painting, or a render. It shows a place, a person, or an object from a viewpoint, with light and depth. Whether a camera captured the image or a hand or a program made it is a descriptor, not the type. No field carries a time.
envelope the same fields in every typemeasured computed from the file's bytes; the same value every timeobserved what a model saw or heard; never a recommendationmixed some parts measured and some observed; the description says whichderived computed from other fields; the writer regenerates it and never edits itNo time marks: an image has no time at any level. Positions are fractions of the frame, measured from the top left: x, y for a point and x, y, w, h for a box.
DSC_0412.HEIC.analyzemediaone JSON object next to the original
From top to bottom: the envelope with the camera's facts, what the image is, who and what is in it with boxes, and how the frame is built.
The envelopealways present, in this order
format
"analyzemedia"
Always this string.
version
"0.1"
Within a major version, changes only add fields.
type
"image/scene"
The writer declares the type. Readers don't second-guess it.
generatedmeasured
{ at, by, models }
When the writer made the file, which writer, and which models it used. Nothing per item.
sourcethe file, the camera, and, when the file carries them, where and when
name, bytes, sha256, quickHashmeasured
The hashes bind the sidecar to the file.
imagemeasured
{ format, width, height, orientation, colorSpace, bitDepth, hdr, alpha }
Width and height apply after orientation, so they match what a viewer shows.
The measured color and tone of the pixels. This is the same block as a footage frame.
quality[]observed
[ string ]
Conditions that are visible in the image: blurry, dark, overexposed, subject cut off, obstructed, noisy, compressed, watermarked, cropped, or low resolution. This isn't a grade.
Who and what is in iteach item has a box, because you look at a still image long enough to point at things
The subjects, lettered from left to right. description says who they look like and what they wear. eyeline is camera, left, right, down, up, or away. expression says what the face shows, in plain words. You read the size and position from the box.
objects[]observed
[ { text, box } ]
Things worth naming, each with a box. Brands and models are included when they are legible.
text[]observed
[ { text, kind, box } ]
Everything written in the picture, read as it appears. kind is scene text, sign, label, caption, handwriting, or watermark.
surroundingsobserved
string
Everything that isn't a subject, in one paragraph: what is behind the subjects, who else is there, and the small things that a viewer would miss at a glance.
compositionhow the frame is built
textobserved
string
The paragraph that a photographer would write: where the subject sits, what leads the eye, what balances what, and where the horizon and the empty space are.
devices[]observed
[ string ]
The framing devices in use: thirds, centered, symmetry, leading lines, diagonal, frame within a frame, pattern, fill the frame, negative space, layering, reflection, or silhouette.
subjectobserved
string | null
The main subject, named by its label in people[] or its text in objects[]. Its box lives there and isn't repeated. The value is null when the picture has no subject, such as a texture or a sky.
The example photograph, with its boxes drawn
people[A].box { x: .61, y: .42, w: .09, h: .34 }, objects[0].box { x: .40, y: .31, w: .02, h: .02 }, composition.subject: "A", devices: thirds, leading lines, reflection, negative spacesurroundings: "Wet sand in the foreground doubles her in reflection; flat sea and a low sun to the left; footprints lead from the bottom left corner to where she stands."
The photograph shows a woman in a yellow raincoat at the water's edge during golden hour. The dashed grid marks the thirds device. The blue boxes mark person A and the sailboat. The subject is "A", which points at her box. The horizon, the reflection, and the footprints appear in the sentences, not in fields.
A scene file answers the question "what does this picture show, and how is it built". You can use summary as alt text. The boxes let software point at things. form and composition let an editor pick and place the image. A scene file never holds time, camera motion, or layout. A photo of a screen is a scene, and its objects hold the screen.
Rules you can rely on
Position Positions are fractions of width and height from the top left, with two decimals: x, y for a point and x, y, w, h for a box. The format doesn't use pixels. source.image gives the pixel size.
Identity People are letters, from left to right. Lists are in reading order.
Absent versus empty A missing section means that the writer didn't analyze it. An empty section means that the writer analyzed it and found nothing.
Measured versus observed The grade is a property of the field, stated for every field. No field holds an opinion about quality, importance, or intent.
Vocabularies Each vocabulary is a closed list that includes other. Read an unknown value as other.
Types are declared A file has the type that it declares. The format defines no test to tell types apart.