# Status dot — native-HD revision

One editing atom, revised against **actual 1920×1080 official distributed
footage**, not an enlarged 480-line proxy. This is not an uncompressed
production master. **Fresh independent HD critique is pending**; neither this
revision nor its technical tests add an atom count or award quality acceptance.

## What is reconstructed

The complete white frame and its centered dot: gray → yellow → blue → orange
→ lavender → pink → green, with early one-way growth. The dot does not pulse
repeatedly or return to gray. Green is a color state, not a claim that work has
completed. No font, wording, logo, image input or audio is used.

The source is *You can just keep the work moving | ChatGPT Work*, OpenAI channel,
video ID `wIf9yMGalPU`. `PROVENANCE.json` contains the official source URL,
acquisition identity, SHA256 and exact source clock.

| Property | Frozen pair |
|---|---|
| Canvas | 1920×1080, square pixels, 16:9 |
| Cadence | 30/1 fps, progressive |
| Source frames | [445,474), last included frame 473 |
| Source seconds | [445/30,474/30), or 14.833333333–15.800000000 |
| Duration | 29 frames, exactly 29/30 second |
| Source PTS | [227840,242688), timebase 1/15360 |
| Local PTS | 0 through 14336, step 512; exclusive end 14848 |
| Encoding | H.264 High, yuv420p, CRF1, BT.709, no audio |
| Alignment | Both start at local frame 0; offset 0; playback rate 1 |

The first separate leftward movement is source frame 474, outside this range.
There are no added handles, pauses or fades. Looping a player does not establish
an observed source loop.

## Files

- `media/candidate.mp4`: frozen HD remake, with a sanitized render receipt.
- `PAIR.json`: movie hashes, exact clocks and unassigned HD review status.
- `src/model.mjs`: measured HD palette/radii and the shared SVG generator.
- `src/index.jsx`: the single Remotion composition, `StatusDotHD`.
- `svg/`: all 29 standalone full-frame SVG states and `resolve-controls.csv`.
- `RESOLVE.md`: a numeric manual generator/mask recipe. Native Resolve execution
  has not been tested; this is not a Resolve project or an import certificate.
- `PACKAGE_MANIFEST.json`: checksums for the runnable package's included files.
- `RIGHTS.md`: source research and dependency-license boundaries.

The source excerpt `original.mp4` is a **separate paired artifact**, not bundled
in this code ZIP. Its checksum is in `PAIR.json`. It is a CRF1 playback re-encode
from the actual HD AV1 reference; it is not byte-identical to that AV1 file.
Direct-source comparisons measure its re-encoding error separately. No full
source film, private acquisition path, contact sheet or local log is bundled.

## Run after unzipping

Run these commands **inside the extracted `status-dot-hd-r01` folder**.
Requirements: Node 22.18 or later, npm, FFmpeg/ffprobe with libx264 and an
installed compatible Chromium, or Remotion's managed browser. No Python, sibling
repository, old atom, source movie, private service or licensed font is needed
to render the candidate.

```sh
node scripts/verify-package.mjs
npm ci
npm test
npm run probe
npm run svg
npm run render
npm run probe -- renders/candidate.mp4
```

`npm run render` writes `renders/candidate.mp4`; it does **not** overwrite the
frozen `media/candidate.mp4`. Existing outputs are refused. Choose another name
with `npm run render -- --output renders/recheck.mp4` for a repeat run.

Browser discovery can be overridden with `--browser` followed by the full path
to a compatible Chromium executable. `--ffmpeg` selects another FFmpeg binary.
On a restricted Linux host with a network-interface discovery error, add
`--loopback-only`. That optional shim affects this process only; it edits no
system settings. If no browser path is supplied, Remotion may download its
managed browser and therefore require network access. `npm ci` also needs the
public npm registry or a populated package cache.

The renderer produces PNG frames from the SVG model, then encodes those outputs
using system FFmpeg. Its `scale` filter performs RGB-to-BT.709 conversion without
changing the frame dimensions; `setsar=1` explicitly sets square pixels. PNGs
are generated outputs, never source screenshots or raster inputs.

`npm run studio` opens the one composition for editing. Editing the model changes
the reconstruction; regenerate the SVGs and rerender rather than treating the
frozen movie's receipt as proof of changed code. Manifest verification checks
the original archive contents and will correctly fail after edits.

## Native-HD measurements and limits

Fresh source measurements use central 16×16 median RGB values and native luma
area estimates. The HD palette is `#4a4a4a`, `#ffdf77`, `#4ba9fd`, `#ff9b5c`,
`#dcc7fc`, `#fed6d7`, `#4ccd80`. In particular, yellow and several other colors
differ from the old proxy fit. Radii start at 28.434 px, grow through the samples
in `RESOLVE.md`, and settle at 35.7 px — not the 36 px from scaling the proxy's
16 px radius. Center remains (960,540).

These are empirical reconstruction choices, not recovered official design
tokens or an authored easing curve. A clean analytic circle omits AV1 ringing,
chroma residue, slight edge asymmetry and background noise. Source compression
also biases color-weighted centroids; the candidate does not turn those
fluctuations into jitter or a repeated pulse. The native full-frame pair, not
downscaled previews or whole-frame average errors, is the review target.

Technical checks establish source binding, clocks, geometry-only SVGs, silence
and reproducibility. They do not decide whether the reconstruction meets the
native-HD quality bar. The earlier 480 pair is preserved separately and supplies
no HD acceptance. This package has not been deployed or independently approved.
