Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

mixed: recap jeffrey-photos pipeline, slab stop/ambient refinements, knot pin

- recap: new audiences (general 48h, jeffrey-24h) and bin/jeffrey-photos.mjs
(gpt-image-2 + platter SHOOT/SELFIE refs, cached per segment); pipeline.fish
grows to 7 stages; build-filter parks subs at the bottom over the waveform;
slides.mjs gives puppeteer a 60s setContent timeout
- papers/jeffrey-platter: document `jeffreys/gens/` bucket convention +
manifest entry shape; sync give-page jeffreys-manifest.json
- slab: claude-stop now flips active→awaiting (active stays for menubar bars),
janitors dead claude_pids, recomputes "working" excluding awaiting;
lid-ambient detects all three shapes of "claude is running"
- knot/deploy: pin past v1.13.0-alpha to master SHA 3ff418d (no v1.14 tag yet)
- reports: 2026-04-29 knot master rebuild log

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+6193 -286
+3 -2
at/knot/deployment/deploy.sh
··· 21 21 KNOT_PUBLIC_PORT=5555 22 22 KNOT_INTERNAL_PORT=5444 23 23 APPVIEW_ENDPOINT="https://tangled.org" 24 - # Tag from https://tangled.org/@tangled.org/core (empty = build master HEAD) 25 - KNOT_VERSION="${KNOT_VERSION:-v1.13.0-alpha}" 24 + # Tag or commit SHA from https://tangled.org/@tangled.org/core (empty = build master HEAD). 25 + # Currently pinned to a master SHA past v1.13.0-alpha — no v1.14 tag exists yet. 26 + KNOT_VERSION="${KNOT_VERSION:-3ff418dad639a9755b9ef7509ed948578d89be8b}" 26 27 27 28 # PDS droplet — knot co-hosts here 28 29 PDS_DEPLOY_DIR="$SCRIPT_DIR/../../pds/deployment/digitalocean"
+30
papers/jeffrey-platter/README.md
··· 98 98 99 99 TBD: locate the script that generated the existing focal/POI values (OpenCV DNN + Haar cascades, per the give-page comment) and check it in to `portraits/jeffrey/bin/`. The manifest carries the *output* of that pipeline; the pipeline itself isn't in the repo yet. 100 100 101 + #### `jeffreys/gens/` — Generated images (gpt-image-2 + platter-grounded identity) 102 + 103 + Output bucket for any pipeline that synthesizes a new jeffrey-image conditioned on the platter refs (typically `SHOOT_REFS` + `SELFIE_REFS` from [`portraits/jeffrey/bin/generate-neo.py`](../../portraits/jeffrey/bin/generate-neo.py)). One PNG per successful gen, dated, never overwritten. 104 + 105 + **Filename convention:** `<context>-<segment>-<YYYY-MM-DDTHHMM>.png` — e.g. `recap-jeffrey-24h-02_menuband-2026-04-29T1630.png`. `context` says where the gen came from (e.g. `recap-jeffrey-24h`); `segment` is whatever locally-meaningful subdivision the producer cares about; the timestamp keeps regens distinct so we never lose a previous take. 106 + 107 + **Producers:** 108 + - [`recap/bin/jeffrey-photos.mjs`](../../recap/bin/jeffrey-photos.mjs) — auto-archives every gen here as part of the recap pipeline. Tone defaults to real+goofy candid (per memory). 109 + - [`portraits/jeffrey/bin/generate-neo.py`](../../portraits/jeffrey/bin/generate-neo.py) — currently writes one-offs to `~/Desktop`; promote to this bucket when a take is worth keeping. 110 + 111 + **Manifest entry shape** (under `buckets.gens.items[<filename>]`): 112 + 113 + ```json 114 + { 115 + "model": "gpt-image-2", 116 + "size": "1024x1536", 117 + "quality": "high", 118 + "refs": ["portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", "..."], 119 + "context": "recap-jeffrey-24h", 120 + "segment": "02_menuband", 121 + "generated": "2026-04-29T16:30:00.000Z", 122 + "bytes": 2520266, 123 + "prompt": "<full gpt-image-2 prompt — preserved for provenance>" 124 + } 125 + ``` 126 + 127 + The full prompt is kept inline so a year from now we can answer "what was the metaphor that produced this take?" without cross-referencing the source audience config (which has likely drifted by then). 128 + 129 + **Push to CDN:** `npm run assets:sync:up` after a batch of gens. The bucket is under the standard `system/public/assets/*` gitignore — git tracks the manifest entry, not the PNG bytes. 130 + 101 131 ### Social silos (canonical public faces) 102 132 103 133 - **Instagram (jeffrey solo, post-2023)** — https://www.instagram.com/whistlegraph/
+2617 -131
papers/jeffrey-platter/manifest.json
··· 11 11 "audited": "2026-04-28: aws s3 ls confirmed 55 contiguous --01..--55", 12 12 "tiers": "master (>10MB, --01..--10), mid (1–10MB, --11..--35), web (<1MB, --36..--55)", 13 13 "items": { 14 - "jeffery-av--01.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":24579271,"tier":"master"}, 15 - "jeffery-av--02.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":23031131,"tier":"master"}, 16 - "jeffery-av--03.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":23782694,"tier":"master"}, 17 - "jeffery-av--04.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":20180498,"tier":"master"}, 18 - "jeffery-av--05.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":21157608,"tier":"master"}, 19 - "jeffery-av--06.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":23912884,"tier":"master"}, 20 - "jeffery-av--07.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":26175514,"tier":"master"}, 21 - "jeffery-av--08.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":25539600,"tier":"master"}, 22 - "jeffery-av--09.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":24963289,"tier":"master"}, 23 - "jeffery-av--10.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":25466226,"tier":"master"}, 24 - "jeffery-av--11.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3442326,"tier":"mid"}, 25 - "jeffery-av--12.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4923364,"tier":"mid"}, 26 - "jeffery-av--13.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4916244,"tier":"mid"}, 27 - "jeffery-av--14.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4650693,"tier":"mid"}, 28 - "jeffery-av--15.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4516921,"tier":"mid"}, 29 - "jeffery-av--16.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4489196,"tier":"mid"}, 30 - "jeffery-av--17.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3292944,"tier":"mid"}, 31 - "jeffery-av--18.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":1672328,"tier":"mid"}, 32 - "jeffery-av--19.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3705244,"tier":"mid"}, 33 - "jeffery-av--20.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4236846,"tier":"mid"}, 34 - "jeffery-av--21.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4263089,"tier":"mid"}, 35 - "jeffery-av--22.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4233171,"tier":"mid"}, 36 - "jeffery-av--23.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3663425,"tier":"mid"}, 37 - "jeffery-av--24.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4192960,"tier":"mid"}, 38 - "jeffery-av--25.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3794618,"tier":"mid"}, 39 - "jeffery-av--26.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3676864,"tier":"mid"}, 40 - "jeffery-av--27.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4195383,"tier":"mid"}, 41 - "jeffery-av--28.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4090050,"tier":"mid"}, 42 - "jeffery-av--29.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4130648,"tier":"mid"}, 43 - "jeffery-av--30.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4933430,"tier":"mid"}, 44 - "jeffery-av--31.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5068198,"tier":"mid"}, 45 - "jeffery-av--32.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5205568,"tier":"mid"}, 46 - "jeffery-av--33.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5294940,"tier":"mid"}, 47 - "jeffery-av--34.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5283671,"tier":"mid"}, 48 - "jeffery-av--35.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4789782,"tier":"mid"}, 49 - "jeffery-av--36.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":272541,"tier":"web"}, 50 - "jeffery-av--37.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":268923,"tier":"web"}, 51 - "jeffery-av--38.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":296328,"tier":"web"}, 52 - "jeffery-av--39.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":305648,"tier":"web"}, 53 - "jeffery-av--40.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":226963,"tier":"web"}, 54 - "jeffery-av--41.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":225962,"tier":"web"}, 55 - "jeffery-av--42.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":223762,"tier":"web"}, 56 - "jeffery-av--43.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":224105,"tier":"web"}, 57 - "jeffery-av--44.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":304325,"tier":"web"}, 58 - "jeffery-av--45.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":340465,"tier":"web"}, 59 - "jeffery-av--46.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":338624,"tier":"web"}, 60 - "jeffery-av--47.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":339362,"tier":"web"}, 61 - "jeffery-av--48.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":345660,"tier":"web"}, 62 - "jeffery-av--49.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":242741,"tier":"web"}, 63 - "jeffery-av--50.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":244176,"tier":"web"}, 64 - "jeffery-av--51.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":251330,"tier":"web"}, 65 - "jeffery-av--52.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":254304,"tier":"web"}, 66 - "jeffery-av--53.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":283319,"tier":"web"}, 67 - "jeffery-av--54.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":246485,"tier":"web"}, 68 - "jeffery-av--55.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":248833,"tier":"web"} 14 + "jeffery-av--01.jpg": { 15 + "focal": [ 16 + 50, 17 + 35 18 + ], 19 + "pois": [ 20 + { 21 + "t": "f", 22 + "box": [ 23 + 30, 24 + 15, 25 + 40, 26 + 40 27 + ] 28 + } 29 + ], 30 + "aspect": 0.667, 31 + "src": "headshots", 32 + "size": 24579271, 33 + "tier": "master" 34 + }, 35 + "jeffery-av--02.jpg": { 36 + "focal": [ 37 + 50, 38 + 35 39 + ], 40 + "pois": [ 41 + { 42 + "t": "f", 43 + "box": [ 44 + 30, 45 + 15, 46 + 40, 47 + 40 48 + ] 49 + } 50 + ], 51 + "aspect": 0.667, 52 + "src": "headshots", 53 + "size": 23031131, 54 + "tier": "master" 55 + }, 56 + "jeffery-av--03.jpg": { 57 + "focal": [ 58 + 50, 59 + 35 60 + ], 61 + "pois": [ 62 + { 63 + "t": "f", 64 + "box": [ 65 + 30, 66 + 15, 67 + 40, 68 + 40 69 + ] 70 + } 71 + ], 72 + "aspect": 0.667, 73 + "src": "headshots", 74 + "size": 23782694, 75 + "tier": "master" 76 + }, 77 + "jeffery-av--04.jpg": { 78 + "focal": [ 79 + 50, 80 + 35 81 + ], 82 + "pois": [ 83 + { 84 + "t": "f", 85 + "box": [ 86 + 30, 87 + 15, 88 + 40, 89 + 40 90 + ] 91 + } 92 + ], 93 + "aspect": 0.667, 94 + "src": "headshots", 95 + "size": 20180498, 96 + "tier": "master" 97 + }, 98 + "jeffery-av--05.jpg": { 99 + "focal": [ 100 + 50, 101 + 35 102 + ], 103 + "pois": [ 104 + { 105 + "t": "f", 106 + "box": [ 107 + 30, 108 + 15, 109 + 40, 110 + 40 111 + ] 112 + } 113 + ], 114 + "aspect": 0.667, 115 + "src": "headshots", 116 + "size": 21157608, 117 + "tier": "master" 118 + }, 119 + "jeffery-av--06.jpg": { 120 + "focal": [ 121 + 50, 122 + 35 123 + ], 124 + "pois": [ 125 + { 126 + "t": "f", 127 + "box": [ 128 + 30, 129 + 15, 130 + 40, 131 + 40 132 + ] 133 + } 134 + ], 135 + "aspect": 0.667, 136 + "src": "headshots", 137 + "size": 23912884, 138 + "tier": "master" 139 + }, 140 + "jeffery-av--07.jpg": { 141 + "focal": [ 142 + 50, 143 + 35 144 + ], 145 + "pois": [ 146 + { 147 + "t": "f", 148 + "box": [ 149 + 30, 150 + 15, 151 + 40, 152 + 40 153 + ] 154 + } 155 + ], 156 + "aspect": 0.667, 157 + "src": "headshots", 158 + "size": 26175514, 159 + "tier": "master" 160 + }, 161 + "jeffery-av--08.jpg": { 162 + "focal": [ 163 + 50, 164 + 35 165 + ], 166 + "pois": [ 167 + { 168 + "t": "f", 169 + "box": [ 170 + 30, 171 + 15, 172 + 40, 173 + 40 174 + ] 175 + } 176 + ], 177 + "aspect": 0.667, 178 + "src": "headshots", 179 + "size": 25539600, 180 + "tier": "master" 181 + }, 182 + "jeffery-av--09.jpg": { 183 + "focal": [ 184 + 50, 185 + 35 186 + ], 187 + "pois": [ 188 + { 189 + "t": "f", 190 + "box": [ 191 + 30, 192 + 15, 193 + 40, 194 + 40 195 + ] 196 + } 197 + ], 198 + "aspect": 0.667, 199 + "src": "headshots", 200 + "size": 24963289, 201 + "tier": "master" 202 + }, 203 + "jeffery-av--10.jpg": { 204 + "focal": [ 205 + 50, 206 + 35 207 + ], 208 + "pois": [ 209 + { 210 + "t": "f", 211 + "box": [ 212 + 30, 213 + 15, 214 + 40, 215 + 40 216 + ] 217 + } 218 + ], 219 + "aspect": 0.667, 220 + "src": "headshots", 221 + "size": 25466226, 222 + "tier": "master" 223 + }, 224 + "jeffery-av--11.jpg": { 225 + "focal": [ 226 + 50, 227 + 35 228 + ], 229 + "pois": [ 230 + { 231 + "t": "f", 232 + "box": [ 233 + 30, 234 + 15, 235 + 40, 236 + 40 237 + ] 238 + } 239 + ], 240 + "aspect": 0.667, 241 + "src": "headshots", 242 + "size": 3442326, 243 + "tier": "mid" 244 + }, 245 + "jeffery-av--12.jpg": { 246 + "focal": [ 247 + 50, 248 + 35 249 + ], 250 + "pois": [ 251 + { 252 + "t": "f", 253 + "box": [ 254 + 30, 255 + 15, 256 + 40, 257 + 40 258 + ] 259 + } 260 + ], 261 + "aspect": 0.667, 262 + "src": "headshots", 263 + "size": 4923364, 264 + "tier": "mid" 265 + }, 266 + "jeffery-av--13.jpg": { 267 + "focal": [ 268 + 50, 269 + 35 270 + ], 271 + "pois": [ 272 + { 273 + "t": "f", 274 + "box": [ 275 + 30, 276 + 15, 277 + 40, 278 + 40 279 + ] 280 + } 281 + ], 282 + "aspect": 0.667, 283 + "src": "headshots", 284 + "size": 4916244, 285 + "tier": "mid" 286 + }, 287 + "jeffery-av--14.jpg": { 288 + "focal": [ 289 + 50, 290 + 35 291 + ], 292 + "pois": [ 293 + { 294 + "t": "f", 295 + "box": [ 296 + 30, 297 + 15, 298 + 40, 299 + 40 300 + ] 301 + } 302 + ], 303 + "aspect": 0.667, 304 + "src": "headshots", 305 + "size": 4650693, 306 + "tier": "mid" 307 + }, 308 + "jeffery-av--15.jpg": { 309 + "focal": [ 310 + 50, 311 + 35 312 + ], 313 + "pois": [ 314 + { 315 + "t": "f", 316 + "box": [ 317 + 30, 318 + 15, 319 + 40, 320 + 40 321 + ] 322 + } 323 + ], 324 + "aspect": 0.667, 325 + "src": "headshots", 326 + "size": 4516921, 327 + "tier": "mid" 328 + }, 329 + "jeffery-av--16.jpg": { 330 + "focal": [ 331 + 50, 332 + 35 333 + ], 334 + "pois": [ 335 + { 336 + "t": "f", 337 + "box": [ 338 + 30, 339 + 15, 340 + 40, 341 + 40 342 + ] 343 + } 344 + ], 345 + "aspect": 0.667, 346 + "src": "headshots", 347 + "size": 4489196, 348 + "tier": "mid" 349 + }, 350 + "jeffery-av--17.jpg": { 351 + "focal": [ 352 + 50, 353 + 35 354 + ], 355 + "pois": [ 356 + { 357 + "t": "f", 358 + "box": [ 359 + 30, 360 + 15, 361 + 40, 362 + 40 363 + ] 364 + } 365 + ], 366 + "aspect": 0.667, 367 + "src": "headshots", 368 + "size": 3292944, 369 + "tier": "mid" 370 + }, 371 + "jeffery-av--18.jpg": { 372 + "focal": [ 373 + 50, 374 + 35 375 + ], 376 + "pois": [ 377 + { 378 + "t": "f", 379 + "box": [ 380 + 30, 381 + 15, 382 + 40, 383 + 40 384 + ] 385 + } 386 + ], 387 + "aspect": 0.667, 388 + "src": "headshots", 389 + "size": 1672328, 390 + "tier": "mid" 391 + }, 392 + "jeffery-av--19.jpg": { 393 + "focal": [ 394 + 50, 395 + 35 396 + ], 397 + "pois": [ 398 + { 399 + "t": "f", 400 + "box": [ 401 + 30, 402 + 15, 403 + 40, 404 + 40 405 + ] 406 + } 407 + ], 408 + "aspect": 0.667, 409 + "src": "headshots", 410 + "size": 3705244, 411 + "tier": "mid" 412 + }, 413 + "jeffery-av--20.jpg": { 414 + "focal": [ 415 + 50, 416 + 35 417 + ], 418 + "pois": [ 419 + { 420 + "t": "f", 421 + "box": [ 422 + 30, 423 + 15, 424 + 40, 425 + 40 426 + ] 427 + } 428 + ], 429 + "aspect": 0.667, 430 + "src": "headshots", 431 + "size": 4236846, 432 + "tier": "mid" 433 + }, 434 + "jeffery-av--21.jpg": { 435 + "focal": [ 436 + 50, 437 + 35 438 + ], 439 + "pois": [ 440 + { 441 + "t": "f", 442 + "box": [ 443 + 30, 444 + 15, 445 + 40, 446 + 40 447 + ] 448 + } 449 + ], 450 + "aspect": 0.667, 451 + "src": "headshots", 452 + "size": 4263089, 453 + "tier": "mid" 454 + }, 455 + "jeffery-av--22.jpg": { 456 + "focal": [ 457 + 50, 458 + 35 459 + ], 460 + "pois": [ 461 + { 462 + "t": "f", 463 + "box": [ 464 + 30, 465 + 15, 466 + 40, 467 + 40 468 + ] 469 + } 470 + ], 471 + "aspect": 0.667, 472 + "src": "headshots", 473 + "size": 4233171, 474 + "tier": "mid" 475 + }, 476 + "jeffery-av--23.jpg": { 477 + "focal": [ 478 + 50, 479 + 35 480 + ], 481 + "pois": [ 482 + { 483 + "t": "f", 484 + "box": [ 485 + 30, 486 + 15, 487 + 40, 488 + 40 489 + ] 490 + } 491 + ], 492 + "aspect": 0.667, 493 + "src": "headshots", 494 + "size": 3663425, 495 + "tier": "mid" 496 + }, 497 + "jeffery-av--24.jpg": { 498 + "focal": [ 499 + 50, 500 + 35 501 + ], 502 + "pois": [ 503 + { 504 + "t": "f", 505 + "box": [ 506 + 30, 507 + 15, 508 + 40, 509 + 40 510 + ] 511 + } 512 + ], 513 + "aspect": 0.667, 514 + "src": "headshots", 515 + "size": 4192960, 516 + "tier": "mid" 517 + }, 518 + "jeffery-av--25.jpg": { 519 + "focal": [ 520 + 50, 521 + 35 522 + ], 523 + "pois": [ 524 + { 525 + "t": "f", 526 + "box": [ 527 + 30, 528 + 15, 529 + 40, 530 + 40 531 + ] 532 + } 533 + ], 534 + "aspect": 0.667, 535 + "src": "headshots", 536 + "size": 3794618, 537 + "tier": "mid" 538 + }, 539 + "jeffery-av--26.jpg": { 540 + "focal": [ 541 + 50, 542 + 35 543 + ], 544 + "pois": [ 545 + { 546 + "t": "f", 547 + "box": [ 548 + 30, 549 + 15, 550 + 40, 551 + 40 552 + ] 553 + } 554 + ], 555 + "aspect": 0.667, 556 + "src": "headshots", 557 + "size": 3676864, 558 + "tier": "mid" 559 + }, 560 + "jeffery-av--27.jpg": { 561 + "focal": [ 562 + 50, 563 + 35 564 + ], 565 + "pois": [ 566 + { 567 + "t": "f", 568 + "box": [ 569 + 30, 570 + 15, 571 + 40, 572 + 40 573 + ] 574 + } 575 + ], 576 + "aspect": 0.667, 577 + "src": "headshots", 578 + "size": 4195383, 579 + "tier": "mid" 580 + }, 581 + "jeffery-av--28.jpg": { 582 + "focal": [ 583 + 50, 584 + 35 585 + ], 586 + "pois": [ 587 + { 588 + "t": "f", 589 + "box": [ 590 + 30, 591 + 15, 592 + 40, 593 + 40 594 + ] 595 + } 596 + ], 597 + "aspect": 0.667, 598 + "src": "headshots", 599 + "size": 4090050, 600 + "tier": "mid" 601 + }, 602 + "jeffery-av--29.jpg": { 603 + "focal": [ 604 + 50, 605 + 35 606 + ], 607 + "pois": [ 608 + { 609 + "t": "f", 610 + "box": [ 611 + 30, 612 + 15, 613 + 40, 614 + 40 615 + ] 616 + } 617 + ], 618 + "aspect": 0.667, 619 + "src": "headshots", 620 + "size": 4130648, 621 + "tier": "mid" 622 + }, 623 + "jeffery-av--30.jpg": { 624 + "focal": [ 625 + 50, 626 + 35 627 + ], 628 + "pois": [ 629 + { 630 + "t": "f", 631 + "box": [ 632 + 30, 633 + 15, 634 + 40, 635 + 40 636 + ] 637 + } 638 + ], 639 + "aspect": 0.667, 640 + "src": "headshots", 641 + "size": 4933430, 642 + "tier": "mid" 643 + }, 644 + "jeffery-av--31.jpg": { 645 + "focal": [ 646 + 50, 647 + 35 648 + ], 649 + "pois": [ 650 + { 651 + "t": "f", 652 + "box": [ 653 + 30, 654 + 15, 655 + 40, 656 + 40 657 + ] 658 + } 659 + ], 660 + "aspect": 0.667, 661 + "src": "headshots", 662 + "size": 5068198, 663 + "tier": "mid" 664 + }, 665 + "jeffery-av--32.jpg": { 666 + "focal": [ 667 + 50, 668 + 35 669 + ], 670 + "pois": [ 671 + { 672 + "t": "f", 673 + "box": [ 674 + 30, 675 + 15, 676 + 40, 677 + 40 678 + ] 679 + } 680 + ], 681 + "aspect": 0.667, 682 + "src": "headshots", 683 + "size": 5205568, 684 + "tier": "mid" 685 + }, 686 + "jeffery-av--33.jpg": { 687 + "focal": [ 688 + 50, 689 + 35 690 + ], 691 + "pois": [ 692 + { 693 + "t": "f", 694 + "box": [ 695 + 30, 696 + 15, 697 + 40, 698 + 40 699 + ] 700 + } 701 + ], 702 + "aspect": 0.667, 703 + "src": "headshots", 704 + "size": 5294940, 705 + "tier": "mid" 706 + }, 707 + "jeffery-av--34.jpg": { 708 + "focal": [ 709 + 50, 710 + 35 711 + ], 712 + "pois": [ 713 + { 714 + "t": "f", 715 + "box": [ 716 + 30, 717 + 15, 718 + 40, 719 + 40 720 + ] 721 + } 722 + ], 723 + "aspect": 0.667, 724 + "src": "headshots", 725 + "size": 5283671, 726 + "tier": "mid" 727 + }, 728 + "jeffery-av--35.jpg": { 729 + "focal": [ 730 + 50, 731 + 35 732 + ], 733 + "pois": [ 734 + { 735 + "t": "f", 736 + "box": [ 737 + 30, 738 + 15, 739 + 40, 740 + 40 741 + ] 742 + } 743 + ], 744 + "aspect": 0.667, 745 + "src": "headshots", 746 + "size": 4789782, 747 + "tier": "mid" 748 + }, 749 + "jeffery-av--36.jpg": { 750 + "focal": [ 751 + 50, 752 + 35 753 + ], 754 + "pois": [ 755 + { 756 + "t": "f", 757 + "box": [ 758 + 30, 759 + 15, 760 + 40, 761 + 40 762 + ] 763 + } 764 + ], 765 + "aspect": 0.667, 766 + "src": "headshots", 767 + "size": 272541, 768 + "tier": "web" 769 + }, 770 + "jeffery-av--37.jpg": { 771 + "focal": [ 772 + 50, 773 + 35 774 + ], 775 + "pois": [ 776 + { 777 + "t": "f", 778 + "box": [ 779 + 30, 780 + 15, 781 + 40, 782 + 40 783 + ] 784 + } 785 + ], 786 + "aspect": 0.667, 787 + "src": "headshots", 788 + "size": 268923, 789 + "tier": "web" 790 + }, 791 + "jeffery-av--38.jpg": { 792 + "focal": [ 793 + 50, 794 + 35 795 + ], 796 + "pois": [ 797 + { 798 + "t": "f", 799 + "box": [ 800 + 30, 801 + 15, 802 + 40, 803 + 40 804 + ] 805 + } 806 + ], 807 + "aspect": 0.667, 808 + "src": "headshots", 809 + "size": 296328, 810 + "tier": "web" 811 + }, 812 + "jeffery-av--39.jpg": { 813 + "focal": [ 814 + 50, 815 + 35 816 + ], 817 + "pois": [ 818 + { 819 + "t": "f", 820 + "box": [ 821 + 30, 822 + 15, 823 + 40, 824 + 40 825 + ] 826 + } 827 + ], 828 + "aspect": 0.667, 829 + "src": "headshots", 830 + "size": 305648, 831 + "tier": "web" 832 + }, 833 + "jeffery-av--40.jpg": { 834 + "focal": [ 835 + 50, 836 + 35 837 + ], 838 + "pois": [ 839 + { 840 + "t": "f", 841 + "box": [ 842 + 30, 843 + 15, 844 + 40, 845 + 40 846 + ] 847 + } 848 + ], 849 + "aspect": 0.667, 850 + "src": "headshots", 851 + "size": 226963, 852 + "tier": "web" 853 + }, 854 + "jeffery-av--41.jpg": { 855 + "focal": [ 856 + 50, 857 + 35 858 + ], 859 + "pois": [ 860 + { 861 + "t": "f", 862 + "box": [ 863 + 30, 864 + 15, 865 + 40, 866 + 40 867 + ] 868 + } 869 + ], 870 + "aspect": 0.667, 871 + "src": "headshots", 872 + "size": 225962, 873 + "tier": "web" 874 + }, 875 + "jeffery-av--42.jpg": { 876 + "focal": [ 877 + 50, 878 + 35 879 + ], 880 + "pois": [ 881 + { 882 + "t": "f", 883 + "box": [ 884 + 30, 885 + 15, 886 + 40, 887 + 40 888 + ] 889 + } 890 + ], 891 + "aspect": 0.667, 892 + "src": "headshots", 893 + "size": 223762, 894 + "tier": "web" 895 + }, 896 + "jeffery-av--43.jpg": { 897 + "focal": [ 898 + 50, 899 + 35 900 + ], 901 + "pois": [ 902 + { 903 + "t": "f", 904 + "box": [ 905 + 30, 906 + 15, 907 + 40, 908 + 40 909 + ] 910 + } 911 + ], 912 + "aspect": 0.667, 913 + "src": "headshots", 914 + "size": 224105, 915 + "tier": "web" 916 + }, 917 + "jeffery-av--44.jpg": { 918 + "focal": [ 919 + 50, 920 + 35 921 + ], 922 + "pois": [ 923 + { 924 + "t": "f", 925 + "box": [ 926 + 30, 927 + 15, 928 + 40, 929 + 40 930 + ] 931 + } 932 + ], 933 + "aspect": 0.667, 934 + "src": "headshots", 935 + "size": 304325, 936 + "tier": "web" 937 + }, 938 + "jeffery-av--45.jpg": { 939 + "focal": [ 940 + 50, 941 + 35 942 + ], 943 + "pois": [ 944 + { 945 + "t": "f", 946 + "box": [ 947 + 30, 948 + 15, 949 + 40, 950 + 40 951 + ] 952 + } 953 + ], 954 + "aspect": 0.667, 955 + "src": "headshots", 956 + "size": 340465, 957 + "tier": "web" 958 + }, 959 + "jeffery-av--46.jpg": { 960 + "focal": [ 961 + 50, 962 + 35 963 + ], 964 + "pois": [ 965 + { 966 + "t": "f", 967 + "box": [ 968 + 30, 969 + 15, 970 + 40, 971 + 40 972 + ] 973 + } 974 + ], 975 + "aspect": 0.667, 976 + "src": "headshots", 977 + "size": 338624, 978 + "tier": "web" 979 + }, 980 + "jeffery-av--47.jpg": { 981 + "focal": [ 982 + 50, 983 + 35 984 + ], 985 + "pois": [ 986 + { 987 + "t": "f", 988 + "box": [ 989 + 30, 990 + 15, 991 + 40, 992 + 40 993 + ] 994 + } 995 + ], 996 + "aspect": 0.667, 997 + "src": "headshots", 998 + "size": 339362, 999 + "tier": "web" 1000 + }, 1001 + "jeffery-av--48.jpg": { 1002 + "focal": [ 1003 + 50, 1004 + 35 1005 + ], 1006 + "pois": [ 1007 + { 1008 + "t": "f", 1009 + "box": [ 1010 + 30, 1011 + 15, 1012 + 40, 1013 + 40 1014 + ] 1015 + } 1016 + ], 1017 + "aspect": 0.667, 1018 + "src": "headshots", 1019 + "size": 345660, 1020 + "tier": "web" 1021 + }, 1022 + "jeffery-av--49.jpg": { 1023 + "focal": [ 1024 + 50, 1025 + 35 1026 + ], 1027 + "pois": [ 1028 + { 1029 + "t": "f", 1030 + "box": [ 1031 + 30, 1032 + 15, 1033 + 40, 1034 + 40 1035 + ] 1036 + } 1037 + ], 1038 + "aspect": 0.667, 1039 + "src": "headshots", 1040 + "size": 242741, 1041 + "tier": "web" 1042 + }, 1043 + "jeffery-av--50.jpg": { 1044 + "focal": [ 1045 + 50, 1046 + 35 1047 + ], 1048 + "pois": [ 1049 + { 1050 + "t": "f", 1051 + "box": [ 1052 + 30, 1053 + 15, 1054 + 40, 1055 + 40 1056 + ] 1057 + } 1058 + ], 1059 + "aspect": 0.667, 1060 + "src": "headshots", 1061 + "size": 244176, 1062 + "tier": "web" 1063 + }, 1064 + "jeffery-av--51.jpg": { 1065 + "focal": [ 1066 + 50, 1067 + 35 1068 + ], 1069 + "pois": [ 1070 + { 1071 + "t": "f", 1072 + "box": [ 1073 + 30, 1074 + 15, 1075 + 40, 1076 + 40 1077 + ] 1078 + } 1079 + ], 1080 + "aspect": 0.667, 1081 + "src": "headshots", 1082 + "size": 251330, 1083 + "tier": "web" 1084 + }, 1085 + "jeffery-av--52.jpg": { 1086 + "focal": [ 1087 + 50, 1088 + 35 1089 + ], 1090 + "pois": [ 1091 + { 1092 + "t": "f", 1093 + "box": [ 1094 + 30, 1095 + 15, 1096 + 40, 1097 + 40 1098 + ] 1099 + } 1100 + ], 1101 + "aspect": 0.667, 1102 + "src": "headshots", 1103 + "size": 254304, 1104 + "tier": "web" 1105 + }, 1106 + "jeffery-av--53.jpg": { 1107 + "focal": [ 1108 + 50, 1109 + 35 1110 + ], 1111 + "pois": [ 1112 + { 1113 + "t": "f", 1114 + "box": [ 1115 + 30, 1116 + 15, 1117 + 40, 1118 + 40 1119 + ] 1120 + } 1121 + ], 1122 + "aspect": 0.667, 1123 + "src": "headshots", 1124 + "size": 283319, 1125 + "tier": "web" 1126 + }, 1127 + "jeffery-av--54.jpg": { 1128 + "focal": [ 1129 + 50, 1130 + 35 1131 + ], 1132 + "pois": [ 1133 + { 1134 + "t": "f", 1135 + "box": [ 1136 + 30, 1137 + 15, 1138 + 40, 1139 + 40 1140 + ] 1141 + } 1142 + ], 1143 + "aspect": 0.667, 1144 + "src": "headshots", 1145 + "size": 246485, 1146 + "tier": "web" 1147 + }, 1148 + "jeffery-av--55.jpg": { 1149 + "focal": [ 1150 + 50, 1151 + 35 1152 + ], 1153 + "pois": [ 1154 + { 1155 + "t": "f", 1156 + "box": [ 1157 + 30, 1158 + 15, 1159 + 40, 1160 + 40 1161 + ] 1162 + } 1163 + ], 1164 + "aspect": 0.667, 1165 + "src": "headshots", 1166 + "size": 248833, 1167 + "tier": "web" 1168 + } 69 1169 } 70 1170 }, 71 1171 "masters": { ··· 74 1174 "key_includes_extension": true, 75 1175 "audited": "2026-04-28: aws s3 ls assets-aesthetic-computer/jeffreys/ — 38 masters found, 1:1 with candids/", 76 1176 "items": { 77 - "FullSizeRender.heic": {"candid_key":"FullSizeRender","size":516985}, 78 - "IMG_0260.heic": {"candid_key":"IMG_0260","size":1978771}, 79 - "IMG_0675.JPEG": {"candid_key":"IMG_0675","size":4743995}, 80 - "IMG_0686.heic": {"candid_key":"IMG_0686","size":1063196}, 81 - "IMG_0688.heic": {"candid_key":"IMG_0688","size":954060}, 82 - "IMG_0798.jpeg": {"candid_key":"IMG_0798","size":2332501}, 83 - "IMG_1111.heic": {"candid_key":"IMG_1111","size":1818360}, 84 - "IMG_1577.heic": {"candid_key":"IMG_1577","size":3453048}, 85 - "IMG_1616.heic": {"candid_key":"IMG_1616","size":2838527}, 86 - "IMG_1737.heic": {"candid_key":"IMG_1737","size":1830876}, 87 - "IMG_1809.heic": {"candid_key":"IMG_1809","size":4224096}, 88 - "IMG_2124.jpeg": {"candid_key":"IMG_2124","size":1332909}, 89 - "IMG_2208.heic": {"candid_key":"IMG_2208","size":1569939}, 90 - "IMG_2280.heic": {"candid_key":"IMG_2280","size":876871}, 91 - "IMG_2498.heic": {"candid_key":"IMG_2498","size":2148839}, 92 - "IMG_2630.HEIC": {"candid_key":"IMG_2630","size":1490103}, 93 - "IMG_2658.HEIC": {"candid_key":"IMG_2658","size":1608793}, 94 - "IMG_2668.heic": {"candid_key":"IMG_2668","size":1195972}, 95 - "IMG_2905.heic": {"candid_key":"IMG_2905","size":2304901}, 96 - "IMG_2913.heic": {"candid_key":"IMG_2913","size":803125}, 97 - "IMG_3017.heic": {"candid_key":"IMG_3017","size":2562824}, 98 - "IMG_3234.heic": {"candid_key":"IMG_3234","size":806715}, 99 - "IMG_4281.jpeg": {"candid_key":"IMG_4281","size":2303766}, 100 - "IMG_4312.jpeg": {"candid_key":"IMG_4312","size":2657700}, 101 - "IMG_4606.heic": {"candid_key":"IMG_4606","size":970231}, 102 - "IMG_4894.heic": {"candid_key":"IMG_4894","size":1428189}, 103 - "IMG_4997.heic": {"candid_key":"IMG_4997","size":1804730}, 104 - "IMG_5043.HEIC": {"candid_key":"IMG_5043","size":1156692}, 105 - "IMG_5050.heic": {"candid_key":"IMG_5050","size":1131254}, 106 - "IMG_5272.jpeg": {"candid_key":"IMG_5272","size":1978886}, 107 - "IMG_5644.heic": {"candid_key":"IMG_5644","size":1366318}, 108 - "IMG_6342.jpeg": {"candid_key":"IMG_6342","size":1844946}, 109 - "IMG_6367.HEIC": {"candid_key":"IMG_6367","size":1528443}, 110 - "IMG_6435.HEIC": {"candid_key":"IMG_6435","size":2105174}, 111 - "IMG_8080.HEIC": {"candid_key":"IMG_8080","size":1420859}, 112 - "IMG_8188.heic": {"candid_key":"IMG_8188","size":903213}, 113 - "IMG_8989.HEIC": {"candid_key":"IMG_8989","size":2106687}, 114 - "IMG_9795.heic": {"candid_key":"IMG_9795","size":2240240} 1177 + "FullSizeRender.heic": { 1178 + "candid_key": "FullSizeRender", 1179 + "size": 516985 1180 + }, 1181 + "IMG_0260.heic": { 1182 + "candid_key": "IMG_0260", 1183 + "size": 1978771 1184 + }, 1185 + "IMG_0675.JPEG": { 1186 + "candid_key": "IMG_0675", 1187 + "size": 4743995 1188 + }, 1189 + "IMG_0686.heic": { 1190 + "candid_key": "IMG_0686", 1191 + "size": 1063196 1192 + }, 1193 + "IMG_0688.heic": { 1194 + "candid_key": "IMG_0688", 1195 + "size": 954060 1196 + }, 1197 + "IMG_0798.jpeg": { 1198 + "candid_key": "IMG_0798", 1199 + "size": 2332501 1200 + }, 1201 + "IMG_1111.heic": { 1202 + "candid_key": "IMG_1111", 1203 + "size": 1818360 1204 + }, 1205 + "IMG_1577.heic": { 1206 + "candid_key": "IMG_1577", 1207 + "size": 3453048 1208 + }, 1209 + "IMG_1616.heic": { 1210 + "candid_key": "IMG_1616", 1211 + "size": 2838527 1212 + }, 1213 + "IMG_1737.heic": { 1214 + "candid_key": "IMG_1737", 1215 + "size": 1830876 1216 + }, 1217 + "IMG_1809.heic": { 1218 + "candid_key": "IMG_1809", 1219 + "size": 4224096 1220 + }, 1221 + "IMG_2124.jpeg": { 1222 + "candid_key": "IMG_2124", 1223 + "size": 1332909 1224 + }, 1225 + "IMG_2208.heic": { 1226 + "candid_key": "IMG_2208", 1227 + "size": 1569939 1228 + }, 1229 + "IMG_2280.heic": { 1230 + "candid_key": "IMG_2280", 1231 + "size": 876871 1232 + }, 1233 + "IMG_2498.heic": { 1234 + "candid_key": "IMG_2498", 1235 + "size": 2148839 1236 + }, 1237 + "IMG_2630.HEIC": { 1238 + "candid_key": "IMG_2630", 1239 + "size": 1490103 1240 + }, 1241 + "IMG_2658.HEIC": { 1242 + "candid_key": "IMG_2658", 1243 + "size": 1608793 1244 + }, 1245 + "IMG_2668.heic": { 1246 + "candid_key": "IMG_2668", 1247 + "size": 1195972 1248 + }, 1249 + "IMG_2905.heic": { 1250 + "candid_key": "IMG_2905", 1251 + "size": 2304901 1252 + }, 1253 + "IMG_2913.heic": { 1254 + "candid_key": "IMG_2913", 1255 + "size": 803125 1256 + }, 1257 + "IMG_3017.heic": { 1258 + "candid_key": "IMG_3017", 1259 + "size": 2562824 1260 + }, 1261 + "IMG_3234.heic": { 1262 + "candid_key": "IMG_3234", 1263 + "size": 806715 1264 + }, 1265 + "IMG_4281.jpeg": { 1266 + "candid_key": "IMG_4281", 1267 + "size": 2303766 1268 + }, 1269 + "IMG_4312.jpeg": { 1270 + "candid_key": "IMG_4312", 1271 + "size": 2657700 1272 + }, 1273 + "IMG_4606.heic": { 1274 + "candid_key": "IMG_4606", 1275 + "size": 970231 1276 + }, 1277 + "IMG_4894.heic": { 1278 + "candid_key": "IMG_4894", 1279 + "size": 1428189 1280 + }, 1281 + "IMG_4997.heic": { 1282 + "candid_key": "IMG_4997", 1283 + "size": 1804730 1284 + }, 1285 + "IMG_5043.HEIC": { 1286 + "candid_key": "IMG_5043", 1287 + "size": 1156692 1288 + }, 1289 + "IMG_5050.heic": { 1290 + "candid_key": "IMG_5050", 1291 + "size": 1131254 1292 + }, 1293 + "IMG_5272.jpeg": { 1294 + "candid_key": "IMG_5272", 1295 + "size": 1978886 1296 + }, 1297 + "IMG_5644.heic": { 1298 + "candid_key": "IMG_5644", 1299 + "size": 1366318 1300 + }, 1301 + "IMG_6342.jpeg": { 1302 + "candid_key": "IMG_6342", 1303 + "size": 1844946 1304 + }, 1305 + "IMG_6367.HEIC": { 1306 + "candid_key": "IMG_6367", 1307 + "size": 1528443 1308 + }, 1309 + "IMG_6435.HEIC": { 1310 + "candid_key": "IMG_6435", 1311 + "size": 2105174 1312 + }, 1313 + "IMG_8080.HEIC": { 1314 + "candid_key": "IMG_8080", 1315 + "size": 1420859 1316 + }, 1317 + "IMG_8188.heic": { 1318 + "candid_key": "IMG_8188", 1319 + "size": 903213 1320 + }, 1321 + "IMG_8989.HEIC": { 1322 + "candid_key": "IMG_8989", 1323 + "size": 2106687 1324 + }, 1325 + "IMG_9795.heic": { 1326 + "candid_key": "IMG_9795", 1327 + "size": 2240240 1328 + } 115 1329 } 116 1330 }, 117 1331 "candids": { ··· 120 1334 "key_includes_extension": false, 121 1335 "audited": "2026-04-28: aws s3 ls confirmed all 38 entries match bucket; no orphans, no uncataloged. All have HEIC/JPEG masters at jeffreys/{name}.<ext> — see masters bucket.", 122 1336 "items": { 123 - "FullSizeRender": {"focal":[38.5,34.8],"pois":[{"t":"f","box":[33.8,30,9.5,9.7]},{"t":"b","box":[59.5,63.9,20.2,12.4]},{"t":"b","box":[87.6,89.3,8.4,5.2]}],"aspect":0.75,"size":829094,"master":"FullSizeRender.heic","master_size":516985}, 124 - "IMG_0260": {"focal":[41,38.1],"pois":[{"t":"f","box":[32.3,29.3,17.4,17.5]},{"t":"b","box":[15.9,50,5.9,3.6]}],"aspect":0.75,"size":1492041,"master":"IMG_0260.heic","master_size":1978771}, 125 - "IMG_0675": {"focal":[54,37.2],"pois":[{"t":"f","box":[47.8,31.8,12.3,10.9]}],"aspect":0.667,"size":4743995,"master":"IMG_0675.JPEG","master_size":4743995}, 126 - "IMG_0686": {"focal":[57.4,25.4],"pois":[{"t":"b","box":[53.6,23.1,7.5,4.6]},{"t":"b","box":[54.1,47.2,6.9,4.2]}],"aspect":0.75,"size":1145284,"master":"IMG_0686.heic","master_size":1063196}, 127 - "IMG_0688": {"focal":[72.3,63],"pois":[{"t":"b","box":[69.1,59.3,6.5,7.4]},{"t":"b","box":[39.4,46.8,4.1,4.6]}],"aspect":0.563,"size":1035484,"master":"IMG_0688.heic","master_size":954060}, 128 - "IMG_0798": {"focal":[46.6,6.4],"pois":[{"t":"b","box":[44.8,5.3,3.7,2.3]}],"aspect":0.75,"size":2332501,"master":"IMG_0798.jpeg","master_size":2332501}, 129 - "IMG_1111": {"focal":[50,50],"pois":[],"aspect":0.562,"size":1412575,"master":"IMG_1111.heic","master_size":1818360}, 130 - "IMG_1577": {"focal":[37,70.6],"pois":[{"t":"b","box":[35.5,69.7,2.8,1.7]}],"aspect":0.75,"size":3285470,"master":"IMG_1577.heic","master_size":3453048}, 131 - "IMG_1616": {"focal":[47.8,51.7],"pois":[{"t":"f","box":[42.5,45.2,10.7,13]},{"t":"b","box":[14.1,68,12.4,7.6]}],"aspect":0.75,"size":2863682,"master":"IMG_1616.heic","master_size":2838527}, 132 - "IMG_1737": {"focal":[50,50],"pois":[],"aspect":0.75,"size":1539214,"master":"IMG_1737.heic","master_size":1830876}, 133 - "IMG_1809": {"focal":[48,53.2],"pois":[{"t":"b","box":[45,51.4,6.1,3.7]}],"aspect":0.75,"size":3742829,"master":"IMG_1809.heic","master_size":4224096}, 134 - "IMG_2124": {"focal":[54.8,35.8],"pois":[{"t":"f","box":[49.7,31.8,10.1,7.9]},{"t":"b","box":[3.1,48.8,32,14.8]}],"aspect":0.563,"size":1332909,"master":"IMG_2124.jpeg","master_size":1332909}, 135 - "IMG_2208": {"focal":[40,21.8],"pois":[{"t":"f","box":[33.6,14.5,12.8,14.6]},{"t":"b","box":[23.4,5.1,10.6,6.5]}],"aspect":0.75,"size":1788410,"master":"IMG_2208.heic","master_size":1569939}, 136 - "IMG_2280": {"focal":[57.4,33.4],"pois":[{"t":"f","box":[42.5,16.4,29.8,34]}],"aspect":0.8,"size":1016167,"master":"IMG_2280.heic","master_size":876871}, 137 - "IMG_2498": {"focal":[21.8,61.4],"pois":[{"t":"b","box":[12.6,55.8,18.3,11.2]}],"aspect":0.75,"size":1710740,"master":"IMG_2498.heic","master_size":2148839}, 138 - "IMG_2630": {"focal":[20.3,59.6],"pois":[{"t":"b","box":[6.8,44.8,27,29.4]},{"t":"b","box":[30.7,44,8.6,22.9]}],"aspect":1.333,"size":1452701,"master":"IMG_2630.HEIC","master_size":1490103}, 139 - "IMG_2658": {"focal":[46.6,43.7],"pois":[{"t":"f","box":[39.2,34.5,14.8,18.4]},{"t":"b","box":[58.5,68.9,8.4,5.2]}],"aspect":0.75,"size":1992798,"master":"IMG_2658.HEIC","master_size":1608793}, 140 - "IMG_2668": {"focal":[39.4,24.5],"pois":[{"t":"b","box":[30.4,19,18,11]},{"t":"b","box":[40.7,68.8,8.6,5.3]}],"aspect":0.75,"size":1365145,"master":"IMG_2668.heic","master_size":1195972}, 141 - "IMG_2905": {"focal":[47.5,40.1],"pois":[{"t":"b","box":[28.3,28.4,38.3,23.5]}],"aspect":0.75,"size":2497398,"master":"IMG_2905.heic","master_size":2304901}, 142 - "IMG_2913": {"focal":[69.9,19.9],"pois":[{"t":"b","box":[67.7,18.5,4.5,2.7]},{"t":"b","box":[87,36.8,4.1,2.5]}],"aspect":0.75,"size":1042326,"master":"IMG_2913.heic","master_size":803125}, 143 - "IMG_3017": {"focal":[37.6,81.5],"pois":[{"t":"b","box":[31.7,77.9,11.8,7.3]}],"aspect":0.75,"size":2446374,"master":"IMG_3017.heic","master_size":2562824}, 144 - "IMG_3234": {"focal":[42.4,48.8],"pois":[{"t":"f","box":[36.9,43.2,11.1,11.3]},{"t":"b","box":[27.1,34.8,15.4,9.4]}],"aspect":0.75,"size":1015178,"master":"IMG_3234.heic","master_size":806715}, 145 - "IMG_4281": {"focal":[50.2,38.1],"pois":[{"t":"f","box":[44.5,31.3,11.4,13.6]},{"t":"b","box":[70.5,59.8,8.4,12.6]}],"aspect":0.75,"size":2303766,"master":"IMG_4281.jpeg","master_size":2303766}, 146 - "IMG_4312": {"focal":[4.1,28.1],"pois":[{"t":"f","box":[0,18.6,8.2,19]},{"t":"b","box":[32.5,63.2,3.2,2]}],"aspect":0.75,"size":2657700,"master":"IMG_4312.jpeg","master_size":2657700}, 147 - "IMG_4606": {"focal":[53.1,56.5],"pois":[{"t":"f","box":[28.6,31.6,48.9,49.8]}],"aspect":0.75,"size":1044546,"master":"IMG_4606.heic","master_size":970231}, 148 - "IMG_4894": {"focal":[48,73.6],"pois":[{"t":"b","box":[44.4,71.4,7.2,4.4]},{"t":"b","box":[71.8,49.7,4.6,6.8]}],"aspect":0.75,"size":1564246,"master":"IMG_4894.heic","master_size":1428189}, 149 - "IMG_4997": {"focal":[54,55.8],"pois":[{"t":"b","box":[52.3,53.2,3.4,5.1]}],"aspect":0.75,"size":2173587,"master":"IMG_4997.heic","master_size":1804730}, 150 - "IMG_5043": {"focal":[40.8,43.4],"pois":[{"t":"f","box":[30.8,32.3,20.1,22.1]},{"t":"b","box":[31.9,69.9,4.8,3]}],"aspect":0.75,"size":1239460,"master":"IMG_5043.HEIC","master_size":1156692}, 151 - "IMG_5050": {"focal":[65.6,53.7],"pois":[{"t":"f","box":[60.1,48.3,10.9,10.8]},{"t":"b","box":[21.9,43,16.5,10.1]}],"aspect":0.75,"size":1515666,"master":"IMG_5050.heic","master_size":1131254}, 152 - "IMG_5272": {"focal":[62.3,53.4],"pois":[{"t":"b","box":[61,51.3,2.7,4.1]}],"aspect":0.75,"size":1978886,"master":"IMG_5272.jpeg","master_size":1978886}, 153 - "IMG_5644": {"focal":[49,17.8],"pois":[{"t":"f","box":[44.1,13.9,9.8,8]},{"t":"b","box":[32.7,19.9,11,5.1]}],"aspect":0.563,"size":1380329,"master":"IMG_5644.heic","master_size":1366318}, 154 - "IMG_6342": {"focal":[62.3,28],"pois":[{"t":"f","box":[55.1,18.5,14.5,18.9]},{"t":"b","box":[10.7,69.4,23.7,14.6]}],"aspect":0.75,"size":1844946,"master":"IMG_6342.jpeg","master_size":1844946}, 155 - "IMG_6367": {"focal":[44.1,34.3],"pois":[{"t":"f","box":[37.8,28.7,12.7,11.1]},{"t":"b","box":[60.4,4.8,3.6,2.2]}],"aspect":0.75,"size":1416580,"master":"IMG_6367.HEIC","master_size":1528443}, 156 - "IMG_6435": {"focal":[48,37.8],"pois":[{"t":"f","box":[37.9,27.2,20.2,21.1]},{"t":"b","box":[35.9,86,4.8,2.9]}],"aspect":0.75,"size":1604594,"master":"IMG_6435.HEIC","master_size":2105174}, 157 - "IMG_8080": {"focal":[42.6,27.7],"pois":[{"t":"f","box":[36,20.8,13.1,13.9]},{"t":"b","box":[15.9,8.3,66.6,40.9]}],"aspect":0.75,"size":1580558,"master":"IMG_8080.HEIC","master_size":1420859}, 158 - "IMG_8188": {"focal":[48.9,33.9],"pois":[{"t":"f","box":[37.9,24,21.8,19.9]},{"t":"b","box":[35,88.1,9.8,6]}],"aspect":0.75,"size":968035,"master":"IMG_8188.heic","master_size":903213}, 159 - "IMG_8989": {"focal":[79.2,86.1],"pois":[{"t":"b","box":[76.7,84.6,5,3.1]}],"aspect":0.75,"size":1830983,"master":"IMG_8989.HEIC","master_size":2106687}, 160 - "IMG_9795": {"focal":[31.2,22],"pois":[{"t":"f","box":[23.8,15.6,14.8,12.9]},{"t":"b","box":[21.3,51.5,4.3,2]}],"aspect":0.562,"size":2033875,"master":"IMG_9795.heic","master_size":2240240} 1337 + "FullSizeRender": { 1338 + "focal": [ 1339 + 38.5, 1340 + 34.8 1341 + ], 1342 + "pois": [ 1343 + { 1344 + "t": "f", 1345 + "box": [ 1346 + 33.8, 1347 + 30, 1348 + 9.5, 1349 + 9.7 1350 + ] 1351 + }, 1352 + { 1353 + "t": "b", 1354 + "box": [ 1355 + 59.5, 1356 + 63.9, 1357 + 20.2, 1358 + 12.4 1359 + ] 1360 + }, 1361 + { 1362 + "t": "b", 1363 + "box": [ 1364 + 87.6, 1365 + 89.3, 1366 + 8.4, 1367 + 5.2 1368 + ] 1369 + } 1370 + ], 1371 + "aspect": 0.75, 1372 + "size": 829094, 1373 + "master": "FullSizeRender.heic", 1374 + "master_size": 516985 1375 + }, 1376 + "IMG_0260": { 1377 + "focal": [ 1378 + 41, 1379 + 38.1 1380 + ], 1381 + "pois": [ 1382 + { 1383 + "t": "f", 1384 + "box": [ 1385 + 32.3, 1386 + 29.3, 1387 + 17.4, 1388 + 17.5 1389 + ] 1390 + }, 1391 + { 1392 + "t": "b", 1393 + "box": [ 1394 + 15.9, 1395 + 50, 1396 + 5.9, 1397 + 3.6 1398 + ] 1399 + } 1400 + ], 1401 + "aspect": 0.75, 1402 + "size": 1492041, 1403 + "master": "IMG_0260.heic", 1404 + "master_size": 1978771 1405 + }, 1406 + "IMG_0675": { 1407 + "focal": [ 1408 + 54, 1409 + 37.2 1410 + ], 1411 + "pois": [ 1412 + { 1413 + "t": "f", 1414 + "box": [ 1415 + 47.8, 1416 + 31.8, 1417 + 12.3, 1418 + 10.9 1419 + ] 1420 + } 1421 + ], 1422 + "aspect": 0.667, 1423 + "size": 4743995, 1424 + "master": "IMG_0675.JPEG", 1425 + "master_size": 4743995 1426 + }, 1427 + "IMG_0686": { 1428 + "focal": [ 1429 + 57.4, 1430 + 25.4 1431 + ], 1432 + "pois": [ 1433 + { 1434 + "t": "b", 1435 + "box": [ 1436 + 53.6, 1437 + 23.1, 1438 + 7.5, 1439 + 4.6 1440 + ] 1441 + }, 1442 + { 1443 + "t": "b", 1444 + "box": [ 1445 + 54.1, 1446 + 47.2, 1447 + 6.9, 1448 + 4.2 1449 + ] 1450 + } 1451 + ], 1452 + "aspect": 0.75, 1453 + "size": 1145284, 1454 + "master": "IMG_0686.heic", 1455 + "master_size": 1063196 1456 + }, 1457 + "IMG_0688": { 1458 + "focal": [ 1459 + 72.3, 1460 + 63 1461 + ], 1462 + "pois": [ 1463 + { 1464 + "t": "b", 1465 + "box": [ 1466 + 69.1, 1467 + 59.3, 1468 + 6.5, 1469 + 7.4 1470 + ] 1471 + }, 1472 + { 1473 + "t": "b", 1474 + "box": [ 1475 + 39.4, 1476 + 46.8, 1477 + 4.1, 1478 + 4.6 1479 + ] 1480 + } 1481 + ], 1482 + "aspect": 0.563, 1483 + "size": 1035484, 1484 + "master": "IMG_0688.heic", 1485 + "master_size": 954060 1486 + }, 1487 + "IMG_0798": { 1488 + "focal": [ 1489 + 46.6, 1490 + 6.4 1491 + ], 1492 + "pois": [ 1493 + { 1494 + "t": "b", 1495 + "box": [ 1496 + 44.8, 1497 + 5.3, 1498 + 3.7, 1499 + 2.3 1500 + ] 1501 + } 1502 + ], 1503 + "aspect": 0.75, 1504 + "size": 2332501, 1505 + "master": "IMG_0798.jpeg", 1506 + "master_size": 2332501 1507 + }, 1508 + "IMG_1111": { 1509 + "focal": [ 1510 + 50, 1511 + 50 1512 + ], 1513 + "pois": [], 1514 + "aspect": 0.562, 1515 + "size": 1412575, 1516 + "master": "IMG_1111.heic", 1517 + "master_size": 1818360 1518 + }, 1519 + "IMG_1577": { 1520 + "focal": [ 1521 + 37, 1522 + 70.6 1523 + ], 1524 + "pois": [ 1525 + { 1526 + "t": "b", 1527 + "box": [ 1528 + 35.5, 1529 + 69.7, 1530 + 2.8, 1531 + 1.7 1532 + ] 1533 + } 1534 + ], 1535 + "aspect": 0.75, 1536 + "size": 3285470, 1537 + "master": "IMG_1577.heic", 1538 + "master_size": 3453048 1539 + }, 1540 + "IMG_1616": { 1541 + "focal": [ 1542 + 47.8, 1543 + 51.7 1544 + ], 1545 + "pois": [ 1546 + { 1547 + "t": "f", 1548 + "box": [ 1549 + 42.5, 1550 + 45.2, 1551 + 10.7, 1552 + 13 1553 + ] 1554 + }, 1555 + { 1556 + "t": "b", 1557 + "box": [ 1558 + 14.1, 1559 + 68, 1560 + 12.4, 1561 + 7.6 1562 + ] 1563 + } 1564 + ], 1565 + "aspect": 0.75, 1566 + "size": 2863682, 1567 + "master": "IMG_1616.heic", 1568 + "master_size": 2838527 1569 + }, 1570 + "IMG_1737": { 1571 + "focal": [ 1572 + 50, 1573 + 50 1574 + ], 1575 + "pois": [], 1576 + "aspect": 0.75, 1577 + "size": 1539214, 1578 + "master": "IMG_1737.heic", 1579 + "master_size": 1830876 1580 + }, 1581 + "IMG_1809": { 1582 + "focal": [ 1583 + 48, 1584 + 53.2 1585 + ], 1586 + "pois": [ 1587 + { 1588 + "t": "b", 1589 + "box": [ 1590 + 45, 1591 + 51.4, 1592 + 6.1, 1593 + 3.7 1594 + ] 1595 + } 1596 + ], 1597 + "aspect": 0.75, 1598 + "size": 3742829, 1599 + "master": "IMG_1809.heic", 1600 + "master_size": 4224096 1601 + }, 1602 + "IMG_2124": { 1603 + "focal": [ 1604 + 54.8, 1605 + 35.8 1606 + ], 1607 + "pois": [ 1608 + { 1609 + "t": "f", 1610 + "box": [ 1611 + 49.7, 1612 + 31.8, 1613 + 10.1, 1614 + 7.9 1615 + ] 1616 + }, 1617 + { 1618 + "t": "b", 1619 + "box": [ 1620 + 3.1, 1621 + 48.8, 1622 + 32, 1623 + 14.8 1624 + ] 1625 + } 1626 + ], 1627 + "aspect": 0.563, 1628 + "size": 1332909, 1629 + "master": "IMG_2124.jpeg", 1630 + "master_size": 1332909 1631 + }, 1632 + "IMG_2208": { 1633 + "focal": [ 1634 + 40, 1635 + 21.8 1636 + ], 1637 + "pois": [ 1638 + { 1639 + "t": "f", 1640 + "box": [ 1641 + 33.6, 1642 + 14.5, 1643 + 12.8, 1644 + 14.6 1645 + ] 1646 + }, 1647 + { 1648 + "t": "b", 1649 + "box": [ 1650 + 23.4, 1651 + 5.1, 1652 + 10.6, 1653 + 6.5 1654 + ] 1655 + } 1656 + ], 1657 + "aspect": 0.75, 1658 + "size": 1788410, 1659 + "master": "IMG_2208.heic", 1660 + "master_size": 1569939 1661 + }, 1662 + "IMG_2280": { 1663 + "focal": [ 1664 + 57.4, 1665 + 33.4 1666 + ], 1667 + "pois": [ 1668 + { 1669 + "t": "f", 1670 + "box": [ 1671 + 42.5, 1672 + 16.4, 1673 + 29.8, 1674 + 34 1675 + ] 1676 + } 1677 + ], 1678 + "aspect": 0.8, 1679 + "size": 1016167, 1680 + "master": "IMG_2280.heic", 1681 + "master_size": 876871 1682 + }, 1683 + "IMG_2498": { 1684 + "focal": [ 1685 + 21.8, 1686 + 61.4 1687 + ], 1688 + "pois": [ 1689 + { 1690 + "t": "b", 1691 + "box": [ 1692 + 12.6, 1693 + 55.8, 1694 + 18.3, 1695 + 11.2 1696 + ] 1697 + } 1698 + ], 1699 + "aspect": 0.75, 1700 + "size": 1710740, 1701 + "master": "IMG_2498.heic", 1702 + "master_size": 2148839 1703 + }, 1704 + "IMG_2630": { 1705 + "focal": [ 1706 + 20.3, 1707 + 59.6 1708 + ], 1709 + "pois": [ 1710 + { 1711 + "t": "b", 1712 + "box": [ 1713 + 6.8, 1714 + 44.8, 1715 + 27, 1716 + 29.4 1717 + ] 1718 + }, 1719 + { 1720 + "t": "b", 1721 + "box": [ 1722 + 30.7, 1723 + 44, 1724 + 8.6, 1725 + 22.9 1726 + ] 1727 + } 1728 + ], 1729 + "aspect": 1.333, 1730 + "size": 1452701, 1731 + "master": "IMG_2630.HEIC", 1732 + "master_size": 1490103 1733 + }, 1734 + "IMG_2658": { 1735 + "focal": [ 1736 + 46.6, 1737 + 43.7 1738 + ], 1739 + "pois": [ 1740 + { 1741 + "t": "f", 1742 + "box": [ 1743 + 39.2, 1744 + 34.5, 1745 + 14.8, 1746 + 18.4 1747 + ] 1748 + }, 1749 + { 1750 + "t": "b", 1751 + "box": [ 1752 + 58.5, 1753 + 68.9, 1754 + 8.4, 1755 + 5.2 1756 + ] 1757 + } 1758 + ], 1759 + "aspect": 0.75, 1760 + "size": 1992798, 1761 + "master": "IMG_2658.HEIC", 1762 + "master_size": 1608793 1763 + }, 1764 + "IMG_2668": { 1765 + "focal": [ 1766 + 39.4, 1767 + 24.5 1768 + ], 1769 + "pois": [ 1770 + { 1771 + "t": "b", 1772 + "box": [ 1773 + 30.4, 1774 + 19, 1775 + 18, 1776 + 11 1777 + ] 1778 + }, 1779 + { 1780 + "t": "b", 1781 + "box": [ 1782 + 40.7, 1783 + 68.8, 1784 + 8.6, 1785 + 5.3 1786 + ] 1787 + } 1788 + ], 1789 + "aspect": 0.75, 1790 + "size": 1365145, 1791 + "master": "IMG_2668.heic", 1792 + "master_size": 1195972 1793 + }, 1794 + "IMG_2905": { 1795 + "focal": [ 1796 + 47.5, 1797 + 40.1 1798 + ], 1799 + "pois": [ 1800 + { 1801 + "t": "b", 1802 + "box": [ 1803 + 28.3, 1804 + 28.4, 1805 + 38.3, 1806 + 23.5 1807 + ] 1808 + } 1809 + ], 1810 + "aspect": 0.75, 1811 + "size": 2497398, 1812 + "master": "IMG_2905.heic", 1813 + "master_size": 2304901 1814 + }, 1815 + "IMG_2913": { 1816 + "focal": [ 1817 + 69.9, 1818 + 19.9 1819 + ], 1820 + "pois": [ 1821 + { 1822 + "t": "b", 1823 + "box": [ 1824 + 67.7, 1825 + 18.5, 1826 + 4.5, 1827 + 2.7 1828 + ] 1829 + }, 1830 + { 1831 + "t": "b", 1832 + "box": [ 1833 + 87, 1834 + 36.8, 1835 + 4.1, 1836 + 2.5 1837 + ] 1838 + } 1839 + ], 1840 + "aspect": 0.75, 1841 + "size": 1042326, 1842 + "master": "IMG_2913.heic", 1843 + "master_size": 803125 1844 + }, 1845 + "IMG_3017": { 1846 + "focal": [ 1847 + 37.6, 1848 + 81.5 1849 + ], 1850 + "pois": [ 1851 + { 1852 + "t": "b", 1853 + "box": [ 1854 + 31.7, 1855 + 77.9, 1856 + 11.8, 1857 + 7.3 1858 + ] 1859 + } 1860 + ], 1861 + "aspect": 0.75, 1862 + "size": 2446374, 1863 + "master": "IMG_3017.heic", 1864 + "master_size": 2562824 1865 + }, 1866 + "IMG_3234": { 1867 + "focal": [ 1868 + 42.4, 1869 + 48.8 1870 + ], 1871 + "pois": [ 1872 + { 1873 + "t": "f", 1874 + "box": [ 1875 + 36.9, 1876 + 43.2, 1877 + 11.1, 1878 + 11.3 1879 + ] 1880 + }, 1881 + { 1882 + "t": "b", 1883 + "box": [ 1884 + 27.1, 1885 + 34.8, 1886 + 15.4, 1887 + 9.4 1888 + ] 1889 + } 1890 + ], 1891 + "aspect": 0.75, 1892 + "size": 1015178, 1893 + "master": "IMG_3234.heic", 1894 + "master_size": 806715 1895 + }, 1896 + "IMG_4281": { 1897 + "focal": [ 1898 + 50.2, 1899 + 38.1 1900 + ], 1901 + "pois": [ 1902 + { 1903 + "t": "f", 1904 + "box": [ 1905 + 44.5, 1906 + 31.3, 1907 + 11.4, 1908 + 13.6 1909 + ] 1910 + }, 1911 + { 1912 + "t": "b", 1913 + "box": [ 1914 + 70.5, 1915 + 59.8, 1916 + 8.4, 1917 + 12.6 1918 + ] 1919 + } 1920 + ], 1921 + "aspect": 0.75, 1922 + "size": 2303766, 1923 + "master": "IMG_4281.jpeg", 1924 + "master_size": 2303766 1925 + }, 1926 + "IMG_4312": { 1927 + "focal": [ 1928 + 4.1, 1929 + 28.1 1930 + ], 1931 + "pois": [ 1932 + { 1933 + "t": "f", 1934 + "box": [ 1935 + 0, 1936 + 18.6, 1937 + 8.2, 1938 + 19 1939 + ] 1940 + }, 1941 + { 1942 + "t": "b", 1943 + "box": [ 1944 + 32.5, 1945 + 63.2, 1946 + 3.2, 1947 + 2 1948 + ] 1949 + } 1950 + ], 1951 + "aspect": 0.75, 1952 + "size": 2657700, 1953 + "master": "IMG_4312.jpeg", 1954 + "master_size": 2657700 1955 + }, 1956 + "IMG_4606": { 1957 + "focal": [ 1958 + 53.1, 1959 + 56.5 1960 + ], 1961 + "pois": [ 1962 + { 1963 + "t": "f", 1964 + "box": [ 1965 + 28.6, 1966 + 31.6, 1967 + 48.9, 1968 + 49.8 1969 + ] 1970 + } 1971 + ], 1972 + "aspect": 0.75, 1973 + "size": 1044546, 1974 + "master": "IMG_4606.heic", 1975 + "master_size": 970231 1976 + }, 1977 + "IMG_4894": { 1978 + "focal": [ 1979 + 48, 1980 + 73.6 1981 + ], 1982 + "pois": [ 1983 + { 1984 + "t": "b", 1985 + "box": [ 1986 + 44.4, 1987 + 71.4, 1988 + 7.2, 1989 + 4.4 1990 + ] 1991 + }, 1992 + { 1993 + "t": "b", 1994 + "box": [ 1995 + 71.8, 1996 + 49.7, 1997 + 4.6, 1998 + 6.8 1999 + ] 2000 + } 2001 + ], 2002 + "aspect": 0.75, 2003 + "size": 1564246, 2004 + "master": "IMG_4894.heic", 2005 + "master_size": 1428189 2006 + }, 2007 + "IMG_4997": { 2008 + "focal": [ 2009 + 54, 2010 + 55.8 2011 + ], 2012 + "pois": [ 2013 + { 2014 + "t": "b", 2015 + "box": [ 2016 + 52.3, 2017 + 53.2, 2018 + 3.4, 2019 + 5.1 2020 + ] 2021 + } 2022 + ], 2023 + "aspect": 0.75, 2024 + "size": 2173587, 2025 + "master": "IMG_4997.heic", 2026 + "master_size": 1804730 2027 + }, 2028 + "IMG_5043": { 2029 + "focal": [ 2030 + 40.8, 2031 + 43.4 2032 + ], 2033 + "pois": [ 2034 + { 2035 + "t": "f", 2036 + "box": [ 2037 + 30.8, 2038 + 32.3, 2039 + 20.1, 2040 + 22.1 2041 + ] 2042 + }, 2043 + { 2044 + "t": "b", 2045 + "box": [ 2046 + 31.9, 2047 + 69.9, 2048 + 4.8, 2049 + 3 2050 + ] 2051 + } 2052 + ], 2053 + "aspect": 0.75, 2054 + "size": 1239460, 2055 + "master": "IMG_5043.HEIC", 2056 + "master_size": 1156692 2057 + }, 2058 + "IMG_5050": { 2059 + "focal": [ 2060 + 65.6, 2061 + 53.7 2062 + ], 2063 + "pois": [ 2064 + { 2065 + "t": "f", 2066 + "box": [ 2067 + 60.1, 2068 + 48.3, 2069 + 10.9, 2070 + 10.8 2071 + ] 2072 + }, 2073 + { 2074 + "t": "b", 2075 + "box": [ 2076 + 21.9, 2077 + 43, 2078 + 16.5, 2079 + 10.1 2080 + ] 2081 + } 2082 + ], 2083 + "aspect": 0.75, 2084 + "size": 1515666, 2085 + "master": "IMG_5050.heic", 2086 + "master_size": 1131254 2087 + }, 2088 + "IMG_5272": { 2089 + "focal": [ 2090 + 62.3, 2091 + 53.4 2092 + ], 2093 + "pois": [ 2094 + { 2095 + "t": "b", 2096 + "box": [ 2097 + 61, 2098 + 51.3, 2099 + 2.7, 2100 + 4.1 2101 + ] 2102 + } 2103 + ], 2104 + "aspect": 0.75, 2105 + "size": 1978886, 2106 + "master": "IMG_5272.jpeg", 2107 + "master_size": 1978886 2108 + }, 2109 + "IMG_5644": { 2110 + "focal": [ 2111 + 49, 2112 + 17.8 2113 + ], 2114 + "pois": [ 2115 + { 2116 + "t": "f", 2117 + "box": [ 2118 + 44.1, 2119 + 13.9, 2120 + 9.8, 2121 + 8 2122 + ] 2123 + }, 2124 + { 2125 + "t": "b", 2126 + "box": [ 2127 + 32.7, 2128 + 19.9, 2129 + 11, 2130 + 5.1 2131 + ] 2132 + } 2133 + ], 2134 + "aspect": 0.563, 2135 + "size": 1380329, 2136 + "master": "IMG_5644.heic", 2137 + "master_size": 1366318 2138 + }, 2139 + "IMG_6342": { 2140 + "focal": [ 2141 + 62.3, 2142 + 28 2143 + ], 2144 + "pois": [ 2145 + { 2146 + "t": "f", 2147 + "box": [ 2148 + 55.1, 2149 + 18.5, 2150 + 14.5, 2151 + 18.9 2152 + ] 2153 + }, 2154 + { 2155 + "t": "b", 2156 + "box": [ 2157 + 10.7, 2158 + 69.4, 2159 + 23.7, 2160 + 14.6 2161 + ] 2162 + } 2163 + ], 2164 + "aspect": 0.75, 2165 + "size": 1844946, 2166 + "master": "IMG_6342.jpeg", 2167 + "master_size": 1844946 2168 + }, 2169 + "IMG_6367": { 2170 + "focal": [ 2171 + 44.1, 2172 + 34.3 2173 + ], 2174 + "pois": [ 2175 + { 2176 + "t": "f", 2177 + "box": [ 2178 + 37.8, 2179 + 28.7, 2180 + 12.7, 2181 + 11.1 2182 + ] 2183 + }, 2184 + { 2185 + "t": "b", 2186 + "box": [ 2187 + 60.4, 2188 + 4.8, 2189 + 3.6, 2190 + 2.2 2191 + ] 2192 + } 2193 + ], 2194 + "aspect": 0.75, 2195 + "size": 1416580, 2196 + "master": "IMG_6367.HEIC", 2197 + "master_size": 1528443 2198 + }, 2199 + "IMG_6435": { 2200 + "focal": [ 2201 + 48, 2202 + 37.8 2203 + ], 2204 + "pois": [ 2205 + { 2206 + "t": "f", 2207 + "box": [ 2208 + 37.9, 2209 + 27.2, 2210 + 20.2, 2211 + 21.1 2212 + ] 2213 + }, 2214 + { 2215 + "t": "b", 2216 + "box": [ 2217 + 35.9, 2218 + 86, 2219 + 4.8, 2220 + 2.9 2221 + ] 2222 + } 2223 + ], 2224 + "aspect": 0.75, 2225 + "size": 1604594, 2226 + "master": "IMG_6435.HEIC", 2227 + "master_size": 2105174 2228 + }, 2229 + "IMG_8080": { 2230 + "focal": [ 2231 + 42.6, 2232 + 27.7 2233 + ], 2234 + "pois": [ 2235 + { 2236 + "t": "f", 2237 + "box": [ 2238 + 36, 2239 + 20.8, 2240 + 13.1, 2241 + 13.9 2242 + ] 2243 + }, 2244 + { 2245 + "t": "b", 2246 + "box": [ 2247 + 15.9, 2248 + 8.3, 2249 + 66.6, 2250 + 40.9 2251 + ] 2252 + } 2253 + ], 2254 + "aspect": 0.75, 2255 + "size": 1580558, 2256 + "master": "IMG_8080.HEIC", 2257 + "master_size": 1420859 2258 + }, 2259 + "IMG_8188": { 2260 + "focal": [ 2261 + 48.9, 2262 + 33.9 2263 + ], 2264 + "pois": [ 2265 + { 2266 + "t": "f", 2267 + "box": [ 2268 + 37.9, 2269 + 24, 2270 + 21.8, 2271 + 19.9 2272 + ] 2273 + }, 2274 + { 2275 + "t": "b", 2276 + "box": [ 2277 + 35, 2278 + 88.1, 2279 + 9.8, 2280 + 6 2281 + ] 2282 + } 2283 + ], 2284 + "aspect": 0.75, 2285 + "size": 968035, 2286 + "master": "IMG_8188.heic", 2287 + "master_size": 903213 2288 + }, 2289 + "IMG_8989": { 2290 + "focal": [ 2291 + 79.2, 2292 + 86.1 2293 + ], 2294 + "pois": [ 2295 + { 2296 + "t": "b", 2297 + "box": [ 2298 + 76.7, 2299 + 84.6, 2300 + 5, 2301 + 3.1 2302 + ] 2303 + } 2304 + ], 2305 + "aspect": 0.75, 2306 + "size": 1830983, 2307 + "master": "IMG_8989.HEIC", 2308 + "master_size": 2106687 2309 + }, 2310 + "IMG_9795": { 2311 + "focal": [ 2312 + 31.2, 2313 + 22 2314 + ], 2315 + "pois": [ 2316 + { 2317 + "t": "f", 2318 + "box": [ 2319 + 23.8, 2320 + 15.6, 2321 + 14.8, 2322 + 12.9 2323 + ] 2324 + }, 2325 + { 2326 + "t": "b", 2327 + "box": [ 2328 + 21.3, 2329 + 51.5, 2330 + 4.3, 2331 + 2 2332 + ] 2333 + } 2334 + ], 2335 + "aspect": 0.562, 2336 + "size": 2033875, 2337 + "master": "IMG_9795.heic", 2338 + "master_size": 2240240 2339 + } 2340 + } 2341 + }, 2342 + "gens": { 2343 + "label": "Generated images — gpt-image-2 with platter-grounded identity (real+goofy default tone). One PNG per successful gen, dated. Synced to assets CDN via `npm run assets:sync:up`.", 2344 + "url_pattern": "https://assets.aesthetic.computer/jeffreys/gens/{name}", 2345 + "key_includes_extension": true, 2346 + "items": { 2347 + "recap-jeffrey-24h-01_title-2026-04-29T1625.png": { 2348 + "model": "gpt-image-2", 2349 + "size": "1024x1536", 2350 + "quality": "high", 2351 + "refs": [ 2352 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2353 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2354 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2355 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2356 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2357 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2358 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2359 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2360 + ], 2361 + "context": "recap-jeffrey-24h", 2362 + "segment": "01_title", 2363 + "generated": "2026-04-29T23:25:30.487Z", 2364 + "bytes": 2401086, 2365 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is sitting at a wooden home desk in a wrinkled t-shirt, holding up a single sheet of plain white printer paper next to his face. The paper has \"24 HRS\" hand-drawn on it in thick black sharpie, slightly crooked letters. He is giving a deadpan grin with one slightly raised eyebrow, mid-laugh, eye-contact with the camera. An open silver MacBook on the desk in the background shows a calendar app with a single highlighted day. Soft afternoon light from a window on the right, warm white balance. A hot-pink (#ff6b9d) coffee mug sits on the desk — the only pop of accent color. Wide shot, his whole upper body and the desk visible. Vertical, 1024x1536." 2366 + }, 2367 + "recap-jeffrey-24h-02_menuband-2026-04-29T1628.png": { 2368 + "model": "gpt-image-2", 2369 + "size": "1024x1536", 2370 + "quality": "high", 2371 + "refs": [ 2372 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2373 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2374 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2375 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2376 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2377 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2378 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2379 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2380 + ], 2381 + "context": "recap-jeffrey-24h", 2382 + "segment": "02_menuband", 2383 + "generated": "2026-04-29T23:28:27.056Z", 2384 + "bytes": 2481496, 2385 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is hunched over a silver MacBook on a kitchen table, leaning very close to the screen with one finger pointing dramatically at the upper-right corner of the display where a small popover window has appeared in the macOS menu bar. The popover on screen clearly shows: tiny illustrated piano keys at the bottom, a horizontal row of small square sample pads above the keys, and a thin audio visualizer with vertical cyan (#4ecdc4) and hot-pink (#ff6b9d) bars dancing. His other hand is hovering above the laptop keyboard miming a tiny piano-playing gesture, comically exaggerated. He is wearing a hoodie, slightly bedheaded. Bright midday natural light from a window. A real coffee mug sits next to the laptop. Real candid energy, slightly absurd, deadpan focus." 2386 + }, 2387 + "recap-jeffrey-24h-02_menuband-2026-04-29T1630.png": { 2388 + "model": "gpt-image-2", 2389 + "size": "1024x1536", 2390 + "quality": "high", 2391 + "refs": [ 2392 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2393 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2394 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2395 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2396 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2397 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2398 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2399 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2400 + ], 2401 + "context": "recap-jeffrey-24h", 2402 + "segment": "02_menuband", 2403 + "generated": "2026-04-29T23:30:09.003Z", 2404 + "bytes": 2520266, 2405 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is hunched over a silver MacBook on a kitchen table, leaning very close to the screen with one finger pointing dramatically at the upper-right corner of the display where a small popover window has appeared in the macOS menu bar. The popover on screen clearly shows: tiny illustrated piano keys at the bottom, a horizontal row of small square sample pads above the keys, and a thin audio visualizer with vertical cyan (#4ecdc4) and hot-pink (#ff6b9d) bars dancing. His other hand is hovering above the laptop keyboard miming a tiny piano-playing gesture, comically exaggerated. He is wearing a hoodie, slightly bedheaded. Bright midday natural light from a window. A real coffee mug sits next to the laptop. Real candid energy, slightly absurd, deadpan focus." 2406 + }, 2407 + "recap-jeffrey-24h-03_landing-2026-04-29T1631.png": { 2408 + "model": "gpt-image-2", 2409 + "size": "1024x1536", 2410 + "quality": "high", 2411 + "refs": [ 2412 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2413 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2414 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2415 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2416 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2417 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2418 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2419 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2420 + ], 2421 + "context": "recap-jeffrey-24h", 2422 + "segment": "03_landing", 2423 + "generated": "2026-04-29T23:31:22.601Z", 2424 + "bytes": 2568114, 2425 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is sitting on the floor of a bright apartment living room, legs crossed, with his silver MacBook perched on the seat of an armchair in front of him — an absurd ergonomic situation he is clearly content with. The laptop screen shows a web browser open to a website: a thin titlebar reading \"menuband\" in lowercase, a tiled wallpaper of small repeating musical-note glyphs in cream and pale yellow, and a tagline line of text beneath. He is leaning forward, scrolling with one finger on the trackpad, looking quietly pleased with himself. Soft warm lamp light from a floor lamp. A house plant in the corner. Wood floor, a rug. Real iPhone candid energy." 2426 + }, 2427 + "recap-jeffrey-24h-03_landing-2026-04-29T1633.png": { 2428 + "model": "gpt-image-2", 2429 + "size": "1024x1536", 2430 + "quality": "high", 2431 + "refs": [ 2432 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2433 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2434 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2435 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2436 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2437 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2438 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2439 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2440 + ], 2441 + "context": "recap-jeffrey-24h", 2442 + "segment": "03_landing", 2443 + "generated": "2026-04-29T23:33:01.366Z", 2444 + "bytes": 2277889, 2445 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is sitting on the floor of a bright apartment living room, legs crossed, with his silver MacBook perched on the seat of an armchair in front of him — an absurd ergonomic situation he is clearly content with. The laptop screen shows a web browser open to a website: a thin titlebar reading \"menuband\" in lowercase, a tiled wallpaper of small repeating musical-note glyphs in cream and pale yellow, and a tagline line of text beneath. He is leaning forward, scrolling with one finger on the trackpad, looking quietly pleased with himself. Soft warm lamp light from a floor lamp. A house plant in the corner. Wood floor, a rug. Real iPhone candid energy." 2446 + }, 2447 + "recap-jeffrey-24h-04_platter-2026-04-29T1634.png": { 2448 + "model": "gpt-image-2", 2449 + "size": "1024x1536", 2450 + "quality": "high", 2451 + "refs": [ 2452 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2453 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2454 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2455 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2456 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2457 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2458 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2459 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2460 + ], 2461 + "context": "recap-jeffrey-24h", 2462 + "segment": "04_platter", 2463 + "generated": "2026-04-29T23:34:20.266Z", 2464 + "bytes": 2420285, 2465 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at a home desk, his silver MacBook screen filled with a tight grid of small thumbnail portrait photos — dozens of headshots and selfies that are clearly all of HIM, the same man, across many years and outfits. He is holding a small printed 4x6 photograph of himself up beside the laptop screen, comparing the printed photo to one of the on-screen thumbnails with an exaggerated mock-puzzled expression — eyebrows together, lips pursed, mock-serious investigation. Soft afternoon light from a window. A normal bedroom or studio behind him, slightly cluttered. Real candid, slightly absurd recursion gag, deadpan." 2466 + }, 2467 + "recap-jeffrey-24h-04_platter-2026-04-29T1636.png": { 2468 + "model": "gpt-image-2", 2469 + "size": "1024x1536", 2470 + "quality": "high", 2471 + "refs": [ 2472 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2473 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2474 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2475 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2476 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2477 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2478 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2479 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2480 + ], 2481 + "context": "recap-jeffrey-24h", 2482 + "segment": "04_platter", 2483 + "generated": "2026-04-29T23:36:09.677Z", 2484 + "bytes": 2791024, 2485 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at a home desk, his silver MacBook screen filled with a tight grid of small thumbnail portrait photos — dozens of headshots and selfies that are clearly all of HIM, the same man, across many years and outfits. He is holding a small printed 4x6 photograph of himself up beside the laptop screen, comparing the printed photo to one of the on-screen thumbnails with an exaggerated mock-puzzled expression — eyebrows together, lips pursed, mock-serious investigation. Soft afternoon light from a window. A normal bedroom or studio behind him, slightly cluttered. Real candid, slightly absurd recursion gag, deadpan." 2486 + }, 2487 + "recap-jeffrey-24h-05_lith-2026-04-29T1637.png": { 2488 + "model": "gpt-image-2", 2489 + "size": "1024x1536", 2490 + "quality": "high", 2491 + "refs": [ 2492 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2493 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2494 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2495 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2496 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2497 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2498 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2499 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2500 + ], 2501 + "context": "recap-jeffrey-24h", 2502 + "segment": "05_lith", 2503 + "generated": "2026-04-29T23:37:26.043Z", 2504 + "bytes": 2598490, 2505 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is crouched on the floor underneath his home desk, surrounded by a real tangle of black ethernet and power cables, with a silver laptop balanced precariously on his knees. The laptop screen shows a terminal window with \"Caddyfile\" config text — multiple lines of routing rules — and one specific \"try_files\" line highlighted in orange (#ff8a3d). Bright yellow sticky notes are stuck to the underside of the desk above him reading \"CADDY\" and \"WEBHOOK\" in black sharpie. He is holding a coffee mug in his free hand, deadpan, looking up directly at the camera with mock weariness. Slightly dim under-the-desk light from the laptop glow plus one warm lamp peeking in from beyond the desk. Real, deadpan, very \"him\"." 2506 + }, 2507 + "recap-jeffrey-24h-05_lith-2026-04-29T1639.png": { 2508 + "model": "gpt-image-2", 2509 + "size": "1024x1536", 2510 + "quality": "high", 2511 + "refs": [ 2512 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2513 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2514 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2515 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2516 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2517 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2518 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2519 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2520 + ], 2521 + "context": "recap-jeffrey-24h", 2522 + "segment": "05_lith", 2523 + "generated": "2026-04-29T23:39:21.239Z", 2524 + "bytes": 2094673, 2525 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is crouched on the floor underneath his home desk, surrounded by a real tangle of black ethernet and power cables, with a silver laptop balanced precariously on his knees. The laptop screen shows a terminal window with \"Caddyfile\" config text — multiple lines of routing rules — and one specific \"try_files\" line highlighted in orange (#ff8a3d). Bright yellow sticky notes are stuck to the underside of the desk above him reading \"CADDY\" and \"WEBHOOK\" in black sharpie. He is holding a coffee mug in his free hand, deadpan, looking up directly at the camera with mock weariness. Slightly dim under-the-desk light from the laptop glow plus one warm lamp peeking in from beyond the desk. Real, deadpan, very \"him\"." 2526 + }, 2527 + "recap-jeffrey-24h-06_say-2026-04-29T1640.png": { 2528 + "model": "gpt-image-2", 2529 + "size": "1024x1536", 2530 + "quality": "high", 2531 + "refs": [ 2532 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2533 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2534 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2535 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2536 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2537 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2538 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2539 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2540 + ], 2541 + "context": "recap-jeffrey-24h", 2542 + "segment": "06_say", 2543 + "generated": "2026-04-29T23:40:24.091Z", 2544 + "bytes": 2594245, 2545 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk, the silver MacBook screen showing a scrolling list of text snippets — each row a short hand-written-style phrase next to a tiny green-on-black audio waveform thumbnail. Stacks of old microcassette tapes and one chunky USB cassette reader are piled on the desk around the laptop. He is holding a single cassette tape up to the laptop's built-in microphone in a mock-serious \"recording in progress\" pose, eyes wide deadpan, mouth slightly open as if to whisper into the tape. The wall behind him has five or six small sticky notes, each with a hand-written quoted phrase in sharpie. Warm afternoon light. Real, very absurd, very \"jeffrey\"." 2546 + }, 2547 + "recap-jeffrey-24h-06_say-2026-04-29T1642.png": { 2548 + "model": "gpt-image-2", 2549 + "size": "1024x1536", 2550 + "quality": "high", 2551 + "refs": [ 2552 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2553 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2554 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2555 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2556 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2557 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2558 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2559 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2560 + ], 2561 + "context": "recap-jeffrey-24h", 2562 + "segment": "06_say", 2563 + "generated": "2026-04-29T23:42:26.333Z", 2564 + "bytes": 2666505, 2565 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk, the silver MacBook screen showing a scrolling list of text snippets — each row a short hand-written-style phrase next to a tiny green-on-black audio waveform thumbnail. Stacks of old microcassette tapes and one chunky USB cassette reader are piled on the desk around the laptop. He is holding a single cassette tape up to the laptop's built-in microphone in a mock-serious \"recording in progress\" pose, eyes wide deadpan, mouth slightly open as if to whisper into the tape. The wall behind him has five or six small sticky notes, each with a hand-written quoted phrase in sharpie. Warm afternoon light. Real, very absurd, very \"jeffrey\"." 2566 + }, 2567 + "recap-jeffrey-24h-07_oven-2026-04-29T1643.png": { 2568 + "model": "gpt-image-2", 2569 + "size": "1024x1536", 2570 + "quality": "high", 2571 + "refs": [ 2572 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2573 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2574 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2575 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2576 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2577 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2578 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2579 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2580 + ], 2581 + "context": "recap-jeffrey-24h", 2582 + "segment": "07_oven", 2583 + "generated": "2026-04-29T23:43:27.519Z", 2584 + "bytes": 2322736, 2585 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk wearing a pair of bright red kitchen oven mitts, lifting a thick stack of warm printed paper out of an open cardboard moving box on the desk. The box has \"PDF\" written on the side in chunky black marker. The silver laptop next to the box on the desk shows a terminal log scrolling with repeating lines like \"[papers] oven auto-build: 6 PDFs updated\". He is giving a deadpan flat expression to the camera, mouth straight. Behind him on a low shelf, more stacks of warm-looking paper sit on a wire metal cooling rack like baked goods cooling. Late golden-hour window light. Real candid, deadpan, slightly absurd." 2586 + }, 2587 + "recap-jeffrey-24h-07_oven-2026-04-29T1645.png": { 2588 + "model": "gpt-image-2", 2589 + "size": "1024x1536", 2590 + "quality": "high", 2591 + "refs": [ 2592 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2593 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2594 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2595 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2596 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2597 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2598 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2599 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2600 + ], 2601 + "context": "recap-jeffrey-24h", 2602 + "segment": "07_oven", 2603 + "generated": "2026-04-29T23:45:43.835Z", 2604 + "bytes": 2688064, 2605 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk wearing a pair of bright red kitchen oven mitts, lifting a thick stack of warm printed paper out of an open cardboard moving box on the desk. The box has \"PDF\" written on the side in chunky black marker. The silver laptop next to the box on the desk shows a terminal log scrolling with repeating lines like \"[papers] oven auto-build: 6 PDFs updated\". He is giving a deadpan flat expression to the camera, mouth straight. Behind him on a low shelf, more stacks of warm-looking paper sit on a wire metal cooling rack like baked goods cooling. Late golden-hour window light. Real candid, deadpan, slightly absurd." 2606 + }, 2607 + "recap-jeffrey-24h-08_outro-2026-04-29T1646.png": { 2608 + "model": "gpt-image-2", 2609 + "size": "1024x1536", 2610 + "quality": "high", 2611 + "refs": [ 2612 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2613 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2614 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2615 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2616 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2617 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2618 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2619 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2620 + ], 2621 + "context": "recap-jeffrey-24h", 2622 + "segment": "08_outro", 2623 + "generated": "2026-04-29T23:46:25.982Z", 2624 + "bytes": 2370509, 2625 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is leaning back in his desk chair holding a coffee mug, giving a small exaggerated wave to the camera with his free hand. The silver laptop in front of him on the desk shows a screen reading \"thanks for watching\" in a calm cream-on-dark text layout with a thin cyan and pink underline. He is giving a small relaxed smile, real eye contact with the camera. Comfortable home setting — desk lamp on, evening softness, warm white balance. Wood desk, a houseplant or two visible. Real iPhone candid snapshot energy." 2626 + }, 2627 + "recap-jeffrey-24h-08_outro-2026-04-29T1649.png": { 2628 + "model": "gpt-image-2", 2629 + "size": "1024x1536", 2630 + "quality": "high", 2631 + "refs": [ 2632 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2633 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2634 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2635 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2636 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2637 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2638 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2639 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2640 + ], 2641 + "context": "recap-jeffrey-24h", 2642 + "segment": "08_outro", 2643 + "generated": "2026-04-29T23:49:09.690Z", 2644 + "bytes": 2284526, 2645 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is leaning back in his desk chair holding a coffee mug, giving a small exaggerated wave to the camera with his free hand. The silver laptop in front of him on the desk shows a screen reading \"thanks for watching\" in a calm cream-on-dark text layout with a thin cyan and pink underline. He is giving a small relaxed smile, real eye contact with the camera. Comfortable home setting — desk lamp on, evening softness, warm white balance. Wood desk, a houseplant or two visible. Real iPhone candid snapshot energy." 2646 + } 161 2647 } 162 2648 } 163 2649 }
+32 -2
recap/SCORE.md
··· 12 12 ## Pipeline 13 13 14 14 ``` 15 - audience/<name>.mjs (narration + segment markers + slide HTML/queries + voice + transcriptFixes) 15 + audience/<name>.mjs (narration + segment markers + slide HTML/queries + voice + transcriptFixes 16 + + optional per-slide `metaphor` for jeffrey-photos) 16 17 17 18 ▼ bin/tts.mjs 18 19 out/recap.mp3 (jeffrey-pvc TTS via /api/say) ··· 22 23 23 24 ▼ bin/align.mjs (matches audience.segments[].marker) 24 25 out/segments.json ([{name, startSec, endSec, durationSec}, ...]) 26 + 27 + ▼ bin/jeffrey-photos.mjs (optional; OpenAI gpt-image-2 + platter SHOOT+SELFIE refs) 28 + out/jeffrey-photos/<seg>.png (cached per segment; --force regenerates; failures are soft) 25 29 26 30 ▼ bin/scout.mjs (resolves per-slide content queries; pdftoppm for PDFs) 27 31 out/assets.json (slide-name → {queryName: dataUrl|commits|paths}) ··· 164 168 | File | Role | 165 169 | ------------------------ | ------------------------------------------------------------- | 166 170 | `audience/fia.mjs` | narration, markers, slide HTML/queries, palette, fixes | 171 + | `audience/general.mjs` | 48-hour public-facing recap (HTML slides, no jeffrey-photos) | 172 + | `audience/jeffrey-24h.mjs` | 24-hour jeffrey-as-protagonist recap (full-bleed photos) | 167 173 | `bin/tts.mjs` | POST narration → `/api/say` → `out/recap.mp3` | 168 174 | `bin/transcribe.mjs` | `whisper-cli` → `out/words.json` | 169 175 | `bin/align.mjs` | match markers in transcript → `out/segments.json` | 176 + | `bin/jeffrey-photos.mjs` | gpt-image-2 + platter refs → `out/jeffrey-photos/<seg>.png` | 170 177 | `bin/scout.mjs` | resolve per-slide content queries → `out/assets.json` | 171 178 | `bin/slides.mjs` | puppeteer-render slide PNGs (consume assets) + `concat.txt` | 172 179 | `bin/subtitles.mjs` | chunk words into pills (apply transcriptFixes) → `subs.json` | 173 180 | `bin/build-filter.mjs` | emit ffmpeg filter graph for compose (one overlay per sub) | 174 181 | `bin/compose.fish` | ffmpeg compose final mp4 | 175 - | `pipeline.fish` | runs all six stages | 182 + | `pipeline.fish` | runs all seven stages | 176 183 | `models/ggml-base.en.bin`| whisper model (gitignored, downloaded on first run) | 177 184 | `out/` | all generated artifacts (gitignored) | 178 185 ··· 184 191 - `node` (uses `oven/node_modules/puppeteer` to avoid extra installs) 185 192 - Google Chrome at `/Applications/Google Chrome.app` (puppeteer driver) 186 193 - Network access to `aesthetic.computer/api/say` (jeffrey-pvc TTS) 194 + - `OPENAI_API_KEY` (for `jeffrey-photos.mjs`; read from env or 195 + `aesthetic-computer-vault/.devcontainer/envs/devcontainer.env`); only required 196 + for audiences that declare per-slide `metaphor` prompts. 197 + 198 + ## Jeffrey photos (optional per-audience) 199 + 200 + An audience can opt into full-bleed gpt-image-2 photos by adding a `metaphor` 201 + field to each content slide and a `queries.photo: { glob: ... }` that points to 202 + `recap/out/jeffrey-photos/<segment>.png`. `bin/jeffrey-photos.mjs` reads the 203 + metaphor strings, calls `images.edit` with `gpt-image-2` and the platter 204 + SHOOT_REFS + SELFIE_REFS for identity grounding, and writes one PNG per segment. 205 + 206 + ```fish 207 + # regen all photos for an audience 208 + node bin/jeffrey-photos.mjs jeffrey-24h --force 209 + 210 + # regen one segment only 211 + node bin/jeffrey-photos.mjs jeffrey-24h --only 04_platter --force 212 + ``` 213 + 214 + Cost ~$0.30 per high-quality 1024x1536 generation; ~$2-4 per full recap. 215 + Failures are soft — slides fall back to a dark `${PALETTE.bg}` placeholder when 216 + the photo glob matches nothing, so the pipeline still produces a runnable mp4.
+259
recap/audience/general.mjs
··· 1 + // Audience config: general (public-facing 48-hour recap). 2 + // Voice: jeffrey-pvc (default in /api/say). Style: lowercase, calm, 3 + // descriptive. No nicknames, no rhyme — accessible to anyone who has 4 + // never heard of aesthetic computer. 5 + // 6 + // `narration` is the verbatim text POSTed to /api/say. Markers in 7 + // `segments` are matched (case-insensitive, punctuation-stripped) 8 + // against whisper's word-level transcript, so each marker phrase must 9 + // appear verbatim in the narration. 10 + 11 + export const PALETTE = { 12 + bg: "#0c1430", 13 + accent: "#ff8a3d", 14 + cyan: "#70f0e0", 15 + lime: "#a0f070", 16 + magenta: "#ff70d0", 17 + yellow: "#ffd860", 18 + cream: "#fcf7c5", 19 + off: "#ffffffcc", 20 + dim: "#7886b0", 21 + }; 22 + 23 + export const audience = { 24 + name: "general", 25 + handle: "@everyone", 26 + voice: { provider: "jeffrey", voice: "neutral:0" }, 27 + 28 + narration: `hey everybody, here's a quick window into the last two days at aesthetic computer. the headline this round is yergersnap — a tiny mac menubar app that snaps an iphone screen into a paintable canvas, with percussion sounds on every click and an icon painted by julia yerger. on the keyboard side, notepat picked up two new bandmates — piano man and sample sally — characters with eye-tracking pupils that follow whichever notes you play. underneath the hood, the whole audio engine moved off karplus-strong synthesis onto a salamander grand piano sample bank, so chords actually breathe now. on the native side, ac-os gained bootpics — webcam snapshots taken at boot and shutdown, a tiny diary of every session. the say piece now logs every utterance to a database, so we can replay what the computer has said over time. a new papers pipeline grew around penrose, a constraint-based diagram language for academic figures. through it all, the oven kept compiling pdfs in the background. that's the week — thanks for watching.`, 29 + 30 + // Whisper renders these dictionary-style; rewrite the displayed subtitles. 31 + // Order matters — longer/multi-word fixes first so they win before 32 + // single-word fixes can rewrite a substring. 33 + transcriptFixes: { 34 + "carpless strong synthesis": "karplus-strong synthesis", 35 + "carpless strong": "karplus-strong", 36 + "saypiece": "say piece", 37 + "paper's pipeline": "papers pipeline", 38 + "Yerger Snap": "yergersnap", 39 + "Yergersnap": "yergersnap", 40 + "bootpicks": "bootpics", 41 + "boot pics": "bootpics", 42 + "BootPics": "bootpics", 43 + "Notepad": "notepat", 44 + "ACOs": "ac-os", 45 + "ACOS": "ac-os", 46 + "AC OS": "ac-os", 47 + "menu bar": "menubar", 48 + "Sample Sally": "sample sally", 49 + "Piano Man": "piano man", 50 + }, 51 + 52 + segments: [ 53 + { name: "01_title", marker: "hey everybody" }, 54 + { name: "02_yergersnap", marker: "the headline this round" }, 55 + { name: "03_notepat", marker: "on the keyboard side" }, 56 + { name: "04_audio", marker: "underneath the hood" }, 57 + { name: "05_native", marker: "on the native side" }, 58 + // Whisper merges "say piece" into one word "saypiece" — anchor on 59 + // the next clean phrase. The displayed subtitle is fixed back to 60 + // "say piece" via transcriptFixes. 61 + { name: "06_say", marker: "logs every utterance" }, 62 + // Whisper hears "paper's pipeline"; the apostrophe splits the token, 63 + // so anchor on the next clean phrase instead. 64 + { name: "07_papers", marker: "grew around penrose" }, 65 + { name: "08_oven", marker: "through it all" }, 66 + { name: "09_outro", marker: "thanks for watching" }, 67 + { name: "10_end", marker: "__END__", trailingSilenceSec: 3 }, 68 + ], 69 + 70 + slides: { 71 + "01_title": ` 72 + <div class="frame"> 73 + <div class="pals big"></div> 74 + <div class="title-stack"> 75 + <div class="kicker" style="color:${PALETTE.cyan}">aesthetic computer</div> 76 + <div class="huge" style="color:${PALETTE.cream}">recap</div> 77 + <div class="sub" style="color:${PALETTE.accent}">the last 48 hours</div> 78 + </div> 79 + <div class="datestamp" style="color:${PALETTE.dim}">2026·04·26 → 2026·04·28</div> 80 + </div>`, 81 + 82 + "02_yergersnap": { 83 + queries: { 84 + icon: { glob: "slab/yergersnap/icon.iconset/icon_512x512.png" }, 85 + commits: { commits: "yergersnap|MirrorTap|iphone-mirror-tap", since: "48 hours ago", limit: 5 }, 86 + }, 87 + body: ({ icon, commits }) => ` 88 + <div class="frame"> 89 + <div class="chapter" style="color:${PALETTE.dim}">01 / 08 · yergersnap</div> 90 + <div class="title-row"> 91 + ${icon ? `<img class="brand-icon" src="${icon}" />` : ""} 92 + <div class="title" style="color:${PALETTE.accent}">yergersnap</div> 93 + </div> 94 + <div class="body" style="color:${PALETTE.cream}"> 95 + a mac menubar app that snaps your<br/> 96 + <em>iphone screen</em> into a paintable canvas. 97 + </div> 98 + <div class="commits"> 99 + ${(commits || []).map((c) => `<div class="commit"><span class="hash">${c.hash.slice(0, 4)}</span>${(c.subject.split(":").slice(1).join(":").trim() || c.subject).slice(0, 60)}</div>`).join("")} 100 + </div> 101 + <div class="cap" style="color:${PALETTE.magenta}">"icon painted by julia yerger."</div> 102 + </div>`, 103 + }, 104 + 105 + "03_notepat": { 106 + queries: { 107 + icon: { glob: "ac-electron/build/icon.png" }, 108 + paper: { glob: "system/public/papers.aesthetic.computer/notepat-26-arxiv-cards.pdf", pdfPage: 1, pdfWidth: 600 }, 109 + commits: { commits: "^notepat|Piano Man|Sample Sally|piano-man|sample-sally", since: "48 hours ago", limit: 5 }, 110 + }, 111 + body: ({ icon, paper, commits }) => ` 112 + <div class="frame"> 113 + <div class="chapter" style="color:${PALETTE.dim}">02 / 08 · notepat</div> 114 + <div class="title-row"> 115 + ${icon ? `<img class="brand-icon" src="${icon}" />` : ""} 116 + <div class="title" style="color:${PALETTE.cyan}">two new bandmates</div> 117 + </div> 118 + <div class="body" style="color:${PALETTE.cream}"> 119 + piano man and sample sally —<br/> 120 + eye-tracking pupils follow your notes. 121 + </div> 122 + <div class="row-with-aside"> 123 + <div class="commits"> 124 + ${(commits || []).map((c) => `<div class="commit"><span class="hash">${c.hash.slice(0, 4)}</span>${(c.subject.split(":").slice(1).join(":").trim() || c.subject).slice(0, 56)}</div>`).join("")} 125 + </div> 126 + ${paper ? `<img class="paper-thumb" src="${paper}" />` : ""} 127 + </div> 128 + </div>`, 129 + }, 130 + 131 + "04_audio": { 132 + queries: { 133 + commits: { commits: "Salamander|Karplus|piano sample|piano:|^audio:|piano rewrite", since: "48 hours ago", limit: 5 }, 134 + }, 135 + body: ({ commits }) => ` 136 + <div class="frame"> 137 + <div class="chapter" style="color:${PALETTE.dim}">03 / 08 · audio</div> 138 + <div class="title" style="color:${PALETTE.lime}">chords that breathe</div> 139 + <div class="body" style="color:${PALETTE.cream}"> 140 + karplus-strong synthesis →<br/> 141 + <em>salamander grand piano</em> sample bank. 142 + </div> 143 + <div class="commits"> 144 + ${(commits || []).map((c) => `<div class="commit"><span class="hash">${c.hash.slice(0, 4)}</span>${(c.subject.split(":").slice(1).join(":").trim() || c.subject).slice(0, 60)}</div>`).join("")} 145 + </div> 146 + </div>`, 147 + }, 148 + 149 + "05_native": { 150 + queries: { 151 + commits: { commits: "bootpics|^ac-native|^fedac/native|^ac-os|ac-device|ac-inscribe", since: "48 hours ago", limit: 6 }, 152 + }, 153 + body: ({ commits }) => ` 154 + <div class="frame"> 155 + <div class="chapter" style="color:${PALETTE.dim}">04 / 08 · ac-os</div> 156 + <div class="title" style="color:${PALETTE.yellow}">bootpics</div> 157 + <div class="body" style="color:${PALETTE.cream}"> 158 + webcam snapshots at boot + shutdown —<br/> 159 + a tiny diary of every session. 160 + </div> 161 + <div class="commits"> 162 + ${(commits || []).map((c) => `<div class="commit"><span class="hash">${c.hash.slice(0, 4)}</span>${(c.subject.split(":").slice(1).join(":").trim() || c.subject).slice(0, 60)}</div>`).join("")} 163 + </div> 164 + </div>`, 165 + }, 166 + 167 + "06_say": { 168 + queries: { 169 + commits: { commits: "say:|sayings|backfill-sayings|^system/say", since: "48 hours ago", limit: 5 }, 170 + }, 171 + body: ({ commits }) => ` 172 + <div class="frame"> 173 + <div class="chapter" style="color:${PALETTE.dim}">05 / 08 · say</div> 174 + <div class="title" style="color:${PALETTE.magenta}">every utterance, logged</div> 175 + <div class="body" style="color:${PALETTE.cream}"> 176 + the say piece now writes each line<br/> 177 + to a mongo collection — replayable. 178 + </div> 179 + <div class="commits"> 180 + ${(commits || []).map((c) => `<div class="commit"><span class="hash">${c.hash.slice(0, 4)}</span>${(c.subject.split(":").slice(1).join(":").trim() || c.subject).slice(0, 60)}</div>`).join("")} 181 + </div> 182 + </div>`, 183 + }, 184 + 185 + "07_papers": { 186 + queries: { 187 + commits: { commits: "penrose|arxiv-penrose", since: "48 hours ago", limit: 4 }, 188 + }, 189 + body: ({ commits }) => ` 190 + <div class="frame"> 191 + <div class="chapter" style="color:${PALETTE.dim}">06 / 08 · papers</div> 192 + <div class="title" style="color:${PALETTE.cyan}">penrose pipeline</div> 193 + <div class="body" style="color:${PALETTE.cream}"> 194 + constraint-based diagrams,<br/> 195 + compiled into academic figures. 196 + </div> 197 + <div class="paper-card"> 198 + <div class="paper-title">arxiv-penrose</div> 199 + <div class="paper-sub">declarative figure pipeline</div> 200 + <div class="paper-meta">tex · references · ac-paper-layout</div> 201 + </div> 202 + <div class="commits"> 203 + ${(commits || []).map((c) => `<div class="commit"><span class="hash">${c.hash.slice(0, 4)}</span>${(c.subject.split(":").slice(1).join(":").trim() || c.subject).slice(0, 60)}</div>`).join("")} 204 + </div> 205 + </div>`, 206 + }, 207 + 208 + "08_oven": { 209 + queries: { 210 + ovenCommits: { commits: "oven", since: "48 hours ago", limit: 6 }, 211 + recentPdfs: { files: "system/public/papers.aesthetic.computer/*.pdf", sinceHours: 48, limit: 60 }, 212 + }, 213 + body: ({ ovenCommits, recentPdfs }) => { 214 + const stems = new Set(); 215 + for (const p of recentPdfs || []) { 216 + stems.add(p.split("/").pop().replace(/-26-arxiv(-cards|-da|-es|-zh|-ja)?\.pdf$/, "")); 217 + } 218 + const distinct = [...stems]; 219 + return ` 220 + <div class="frame"> 221 + <div class="chapter" style="color:${PALETTE.dim}">07 / 08 · oven</div> 222 + <div class="title" style="color:${PALETTE.yellow}">papers, baking</div> 223 + <div class="body" style="color:${PALETTE.cream}"> 224 + ${distinct.length} distinct papers refreshed,<br/> 225 + ${(recentPdfs || []).length} files in 48 hrs. 226 + </div> 227 + <div class="ticker"> 228 + ${(ovenCommits || []).slice(0, 4).map((c) => `<div class="tick"><span class="hash">${c.hash.slice(0, 4)}</span> ${c.subject.replace(/^\[?papers\]?[\s:]*/i, "").slice(0, 60)}</div>`).join("")} 229 + </div> 230 + <div class="pdf-strip"> 231 + ${distinct.slice(0, 12).map((s) => `<div class="pdf-chip">${s.replace(/-/g, " ")}</div>`).join("")} 232 + </div> 233 + </div>`; 234 + }, 235 + }, 236 + 237 + "09_outro": ` 238 + <div class="frame"> 239 + <div class="chapter" style="color:${PALETTE.dim}">08 / 08 · outro</div> 240 + <div class="rhyme"> 241 + <div class="line1" style="color:${PALETTE.cream}">that's the week.</div> 242 + <div class="line2" style="color:${PALETTE.cyan}">thanks for watching.</div> 243 + </div> 244 + <div class="body small" style="color:${PALETTE.dim}; margin-top: 80px; text-align: center;"> 245 + aesthetic.computer 246 + </div> 247 + </div>`, 248 + 249 + "10_end": ` 250 + <div class="frame"> 251 + <div class="pals med"></div> 252 + <div class="endline" style="color:${PALETTE.cream}">aesthetic·computer</div> 253 + <div class="endsub" style="color:${PALETTE.dim}">narrated by jeffrey-pvc · @jeffrey</div> 254 + <div class="endsub" style="color:${PALETTE.dim}">2026·04·28</div> 255 + </div>`, 256 + }, 257 + }; 258 + 259 + export default audience;
+298
recap/audience/jeffrey-24h.mjs
··· 1 + // Audience config: jeffrey-24h (last 24 hours, photographic / jeffrey-as-protagonist). 2 + // Voice: jeffrey-pvc. Style: lowercase, calm, descriptive. 3 + // 4 + // Each content slide is a full-bleed gpt-image-2 photo (jeffrey at a real home 5 + // desk, using the imagined feature on his laptop) with a bottom-third gradient 6 + // overlay carrying chapter / title / caption text. Photos are pre-baked by 7 + // `bin/jeffrey-photos.mjs` into recap/out/jeffrey-photos/<segment>.png and 8 + // loaded via the standard scout `glob:` query. 9 + // 10 + // `metaphor` on each slide is the prompt fed to gpt-image-2 (with the platter 11 + // SHOOT_REFS + SELFIE_REFS for identity grounding). It is ignored by slides.mjs. 12 + 13 + export const PALETTE = { 14 + bg: "#0c1430", 15 + accent: "#ff8a3d", 16 + cyan: "#70f0e0", 17 + lime: "#a0f070", 18 + magenta: "#ff70d0", 19 + yellow: "#ffd860", 20 + cream: "#fcf7c5", 21 + off: "#ffffffcc", 22 + dim: "#7886b0", 23 + }; 24 + 25 + // Shared identity + tone preamble. Real iphone-snapshot energy, NOT cinematic. 26 + const REAL = `\ 27 + Photographic candid lifestyle photo of the man in the reference photos. Real \ 28 + photograph, photo-realistic, the kind of casual iPhone snapshot a friend would \ 29 + take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT \ 30 + magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center \ 31 + framing, real natural room light. Identity: same face, same medium-length brown \ 32 + hair, same actual features as the references — recognizably him across the \ 33 + various refs. Keep real skin texture; do NOT smooth or prettify. He is at a \ 34 + real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). \ 35 + Real, deadpan, very "him". Vertical 1024x1536 portrait orientation.`; 36 + 37 + export const audience = { 38 + name: "jeffrey-24h", 39 + handle: "@jeffrey", 40 + voice: { provider: "jeffrey", voice: "neutral:0" }, 41 + 42 + narration: `hey everybody, here's a quick window into the last twenty-four hours at aesthetic computer. the headline this round is menuband — version 0.3 of the mac menubar app shipped with a real audio synth, sample pads, a metal-rendered visualizer, and click sounds on every key. the landing page got a fresh polish too — a thinner window, a wackier note pattern, and a tagline that quietly digs at garageband. on the visual side, jeffrey-platter went public — a dashboard of every confirmed jeffrey portrait now lives at papers dot aesthetic dot computer slash jeffrey. underneath the hood, lith got new caddy plumbing — an install-before-reload webhook, an explicit redirect, and a try-files chain that finally serves the platter cleanly. on the backend, the say piece grew a little time machine — a rehydrate script pulls every old utterance back from cache into the database. through it all, the oven kept its rhythm, baking three hundred plus pdf updates in the background. that's the day. thanks for watching, and i'll be back tomorrow with the next twenty-four.`, 43 + 44 + // Whisper renders these dictionary-style; rewrite the displayed subtitles. 45 + // Order matters: longer/multi-word fixes first. 46 + transcriptFixes: { 47 + "a static computer": "aesthetic computer", 48 + "static computer": "aesthetic computer", 49 + "papers.aesthetic.com/jeffrey": "papers.aesthetic.computer/jeffrey", 50 + "Jeffrey-Platter": "jeffrey-platter", 51 + "Jeffrey Platter": "jeffrey-platter", 52 + "jeffrey platter": "jeffrey-platter", 53 + "Menu Band": "menuband", 54 + "menu band": "menuband", 55 + "Menuband": "menuband", 56 + "Menu Bar": "menubar", 57 + "menu bar": "menubar", 58 + "Garage Band": "garageband", 59 + "garage band": "garageband", 60 + "GarageBand": "garageband", 61 + "tri-files": "try-files", 62 + "Lyth": "lith", 63 + "Lith": "lith", 64 + "Caddy": "caddy", 65 + "TTS": "tts", 66 + "MongoDB": "mongo", 67 + "Mac": "mac", 68 + "MacBook": "macbook", 69 + "Jeffrey": "jeffrey", 70 + }, 71 + 72 + segments: [ 73 + { name: "01_title", marker: "hey everybody" }, 74 + { name: "02_menuband", marker: "the headline this round" }, 75 + { name: "03_landing", marker: "the landing page" }, 76 + { name: "04_platter", marker: "went public" }, 77 + { name: "05_lith", marker: "got new caddy plumbing" }, 78 + { name: "06_say", marker: "grew a little time machine" }, 79 + { name: "07_oven", marker: "through it all" }, 80 + { name: "08_outro", marker: "thanks for watching" }, 81 + { name: "09_end", marker: "__END__", trailingSilenceSec: 3 }, 82 + ], 83 + 84 + slides: { 85 + "01_title": { 86 + metaphor: `${REAL} 87 + 88 + Scene: he is sitting at a wooden home desk in a wrinkled t-shirt, holding up a \ 89 + single sheet of plain white printer paper next to his face. The paper has \ 90 + "24 HRS" hand-drawn on it in thick black sharpie, slightly crooked letters. He \ 91 + is giving a deadpan grin with one slightly raised eyebrow, mid-laugh, \ 92 + eye-contact with the camera. An open silver MacBook on the desk in the \ 93 + background shows a calendar app with a single highlighted day. Soft afternoon \ 94 + light from a window on the right, warm white balance. A hot-pink (#ff6b9d) \ 95 + coffee mug sits on the desk — the only pop of accent color. Wide shot, his \ 96 + whole upper body and the desk visible. Vertical, 1024x1536.`, 97 + queries: { photo: { glob: "recap/out/jeffrey-photos/01_title.png" } }, 98 + body: ({ photo }) => photoSlide({ 99 + photo, 100 + chapter: "00 / 08 · the last 24 hours", 101 + title: "aesthetic computer", 102 + cap: "2026·04·29", 103 + titleColor: PALETTE.cream, 104 + chapterColor: PALETTE.cyan, 105 + }), 106 + }, 107 + 108 + "02_menuband": { 109 + metaphor: `${REAL} 110 + 111 + Scene: he is hunched over a silver MacBook on a kitchen table, leaning very \ 112 + close to the screen with one finger pointing dramatically at the upper-right \ 113 + corner of the display where a small popover window has appeared in the macOS \ 114 + menu bar. The popover on screen clearly shows: tiny illustrated piano keys at \ 115 + the bottom, a horizontal row of small square sample pads above the keys, and a \ 116 + thin audio visualizer with vertical cyan (#4ecdc4) and hot-pink (#ff6b9d) bars \ 117 + dancing. His other hand is hovering above the laptop keyboard miming a tiny \ 118 + piano-playing gesture, comically exaggerated. He is wearing a hoodie, slightly \ 119 + bedheaded. Bright midday natural light from a window. A real coffee mug sits \ 120 + next to the laptop. Real candid energy, slightly absurd, deadpan focus.`, 121 + queries: { photo: { glob: "recap/out/jeffrey-photos/02_menuband.png" } }, 122 + body: ({ photo }) => photoSlide({ 123 + photo, 124 + chapter: "01 / 07 · menuband", 125 + title: "menuband 0.3", 126 + cap: "synth · sample pads · metal visualizer · click sounds", 127 + titleColor: PALETTE.accent, 128 + chapterColor: PALETTE.cyan, 129 + }), 130 + }, 131 + 132 + "03_landing": { 133 + metaphor: `${REAL} 134 + 135 + Scene: he is sitting on the floor of a bright apartment living room, legs \ 136 + crossed, with his silver MacBook perched on the seat of an armchair in front \ 137 + of him — an absurd ergonomic situation he is clearly content with. The laptop \ 138 + screen shows a web browser open to a website: a thin titlebar reading \ 139 + "menuband" in lowercase, a tiled wallpaper of small repeating musical-note \ 140 + glyphs in cream and pale yellow, and a tagline line of text beneath. He is \ 141 + leaning forward, scrolling with one finger on the trackpad, looking quietly \ 142 + pleased with himself. Soft warm lamp light from a floor lamp. A house plant in \ 143 + the corner. Wood floor, a rug. Real iPhone candid energy.`, 144 + queries: { photo: { glob: "recap/out/jeffrey-photos/03_landing.png" } }, 145 + body: ({ photo }) => photoSlide({ 146 + photo, 147 + chapter: "02 / 07 · landing page", 148 + title: "thinner window,\nwackier notes", 149 + cap: "menuband.aesthetic.computer", 150 + titleColor: PALETTE.yellow, 151 + chapterColor: PALETTE.cyan, 152 + }), 153 + }, 154 + 155 + "04_platter": { 156 + metaphor: `${REAL} 157 + 158 + Scene: he is at a home desk, his silver MacBook screen filled with a tight \ 159 + grid of small thumbnail portrait photos — dozens of headshots and selfies that \ 160 + are clearly all of HIM, the same man, across many years and outfits. He is \ 161 + holding a small printed 4x6 photograph of himself up beside the laptop screen, \ 162 + comparing the printed photo to one of the on-screen thumbnails with an \ 163 + exaggerated mock-puzzled expression — eyebrows together, lips pursed, \ 164 + mock-serious investigation. Soft afternoon light from a window. A normal \ 165 + bedroom or studio behind him, slightly cluttered. Real candid, slightly \ 166 + absurd recursion gag, deadpan.`, 167 + queries: { photo: { glob: "recap/out/jeffrey-photos/04_platter.png" } }, 168 + body: ({ photo }) => photoSlide({ 169 + photo, 170 + chapter: "03 / 07 · jeffrey-platter", 171 + title: "the dashboard,\npublic now", 172 + cap: "papers.aesthetic.computer/jeffrey/", 173 + titleColor: PALETTE.magenta, 174 + chapterColor: PALETTE.cyan, 175 + }), 176 + }, 177 + 178 + "05_lith": { 179 + metaphor: `${REAL} 180 + 181 + Scene: he is crouched on the floor underneath his home desk, surrounded by a \ 182 + real tangle of black ethernet and power cables, with a silver laptop balanced \ 183 + precariously on his knees. The laptop screen shows a terminal window with \ 184 + "Caddyfile" config text — multiple lines of routing rules — and one specific \ 185 + "try_files" line highlighted in orange (#ff8a3d). Bright yellow sticky notes \ 186 + are stuck to the underside of the desk above him reading "CADDY" and \ 187 + "WEBHOOK" in black sharpie. He is holding a coffee mug in his free hand, \ 188 + deadpan, looking up directly at the camera with mock weariness. Slightly dim \ 189 + under-the-desk light from the laptop glow plus one warm lamp peeking in from \ 190 + beyond the desk. Real, deadpan, very "him".`, 191 + queries: { photo: { glob: "recap/out/jeffrey-photos/05_lith.png" } }, 192 + body: ({ photo }) => photoSlide({ 193 + photo, 194 + chapter: "04 / 07 · lith caddy", 195 + title: "install before\nreload", 196 + cap: "webhook · redirect · try_files", 197 + titleColor: PALETTE.accent, 198 + chapterColor: PALETTE.cyan, 199 + }), 200 + }, 201 + 202 + "06_say": { 203 + metaphor: `${REAL} 204 + 205 + Scene: he is at his home desk, the silver MacBook screen showing a scrolling \ 206 + list of text snippets — each row a short hand-written-style phrase next to a \ 207 + tiny green-on-black audio waveform thumbnail. Stacks of old microcassette \ 208 + tapes and one chunky USB cassette reader are piled on the desk around the \ 209 + laptop. He is holding a single cassette tape up to the laptop's built-in \ 210 + microphone in a mock-serious "recording in progress" pose, eyes wide deadpan, \ 211 + mouth slightly open as if to whisper into the tape. The wall behind him has \ 212 + five or six small sticky notes, each with a hand-written quoted phrase in \ 213 + sharpie. Warm afternoon light. Real, very absurd, very "jeffrey".`, 214 + queries: { photo: { glob: "recap/out/jeffrey-photos/06_say.png" } }, 215 + body: ({ photo }) => photoSlide({ 216 + photo, 217 + chapter: "05 / 07 · say", 218 + title: "every utterance,\nrehydrated", 219 + cap: "tts-cache → mongo · backfill-sayings", 220 + titleColor: PALETTE.lime, 221 + chapterColor: PALETTE.cyan, 222 + }), 223 + }, 224 + 225 + "07_oven": { 226 + metaphor: `${REAL} 227 + 228 + Scene: he is at his home desk wearing a pair of bright red kitchen oven mitts, \ 229 + lifting a thick stack of warm printed paper out of an open cardboard moving \ 230 + box on the desk. The box has "PDF" written on the side in chunky black \ 231 + marker. The silver laptop next to the box on the desk shows a terminal log \ 232 + scrolling with repeating lines like "[papers] oven auto-build: 6 PDFs \ 233 + updated". He is giving a deadpan flat expression to the camera, mouth \ 234 + straight. Behind him on a low shelf, more stacks of warm-looking paper sit on \ 235 + a wire metal cooling rack like baked goods cooling. Late golden-hour window \ 236 + light. Real candid, deadpan, slightly absurd.`, 237 + queries: { photo: { glob: "recap/out/jeffrey-photos/07_oven.png" } }, 238 + body: ({ photo }) => photoSlide({ 239 + photo, 240 + chapter: "06 / 07 · oven", 241 + title: "papers, baking", 242 + cap: "305 auto-builds in 24 hours", 243 + titleColor: PALETTE.yellow, 244 + chapterColor: PALETTE.cyan, 245 + }), 246 + }, 247 + 248 + "08_outro": { 249 + metaphor: `${REAL} 250 + 251 + Scene: he is leaning back in his desk chair holding a coffee mug, giving a \ 252 + small exaggerated wave to the camera with his free hand. The silver laptop in \ 253 + front of him on the desk shows a screen reading "thanks for watching" in a \ 254 + calm cream-on-dark text layout with a thin cyan and pink underline. He is \ 255 + giving a small relaxed smile, real eye contact with the camera. Comfortable \ 256 + home setting — desk lamp on, evening softness, warm white balance. Wood desk, \ 257 + a houseplant or two visible. Real iPhone candid snapshot energy.`, 258 + queries: { photo: { glob: "recap/out/jeffrey-photos/08_outro.png" } }, 259 + body: ({ photo }) => photoSlide({ 260 + photo, 261 + chapter: "07 / 07 · outro", 262 + title: "thanks for\nwatching", 263 + cap: "aesthetic.computer · @jeffrey", 264 + titleColor: PALETTE.cream, 265 + chapterColor: PALETTE.cyan, 266 + }), 267 + }, 268 + 269 + "09_end": ` 270 + <div class="frame"> 271 + <div class="pals med"></div> 272 + <div class="endline" style="color:${PALETTE.cream}">aesthetic·computer</div> 273 + <div class="endsub" style="color:${PALETTE.dim}">narrated by jeffrey-pvc · @jeffrey</div> 274 + <div class="endsub" style="color:${PALETTE.dim}">2026·04·29</div> 275 + </div>`, 276 + }, 277 + }; 278 + 279 + // Renders a full-bleed photo slide with a TOP gradient overlay carrying the 280 + // chapter / title / caption text. Top padding leaves room for Instagram-stories 281 + // progress chips and other top-of-frame UI. `position: fixed` ignores the 282 + // body's 80px / 70px padding so the photo genuinely fills 1080x1920. 283 + function photoSlide({ photo, chapter, title, cap, titleColor, chapterColor }) { 284 + const titleHtml = title.split("\n").map((l) => `<div>${l}</div>`).join(""); 285 + return ` 286 + <div style="position: fixed; inset: 0; padding: 0; overflow: hidden;"> 287 + ${photo 288 + ? `<img src="${photo}" style="position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;" />` 289 + : `<div style="position: absolute; inset: 0; background: ${PALETTE.bg};"></div>`} 290 + <div style="position: absolute; top: 0; left: 0; right: 0; padding: 180px 70px 110px; background: linear-gradient(to bottom, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.5) 60%, rgba(0,0,0,0) 100%);"> 291 + <div style="font-family: 'ProcessingR'; font-size: 30px; letter-spacing: 6px; text-transform: uppercase; color: ${chapterColor};">${chapter}</div> 292 + <div style="font-family: 'ProcessingB'; font-size: 110px; line-height: 1.0; letter-spacing: -2px; color: ${titleColor}; margin-top: 18px;">${titleHtml}</div> 293 + <div style="font-family: 'ProcessingR'; font-size: 38px; color: ${PALETTE.off}; margin-top: 26px; letter-spacing: 1px;">${cap}</div> 294 + </div> 295 + </div>`; 296 + } 297 + 298 + export default audience;
+10 -4
recap/bin/build-filter.mjs
··· 2 2 // build-filter.mjs — emit the ffmpeg filter_complex graph for compose.fish. 3 3 // Reads out/subs.json and stitches one overlay per subtitle chunk into the 4 4 // video chain so each chunk appears only between its [startSec, endSec]. 5 - // Subs sit in the lower-middle, above the waveform, with a translucent pill. 5 + // Subs sit at the top of the frame so they don't collide with the slide's 6 + // bottom-third title overlay; the waveform sits at the same y, layered behind 7 + // the pill so it animates "through" the subtitle. 6 8 // Usage: node bin/build-filter.mjs <totalSec> (writes graph to stdout) 7 9 8 10 import { readFileSync } from "node:fs"; ··· 19 21 20 22 const subs = JSON.parse(readFileSync(`${ROOT}/out/subs.json`, "utf8")); 21 23 22 - // Subtitle band sits at y=1180 (just above the waveform at y=1720). 24 + // Subtitle band lives just above the progress bar at the bottom of the frame, 25 + // below the slide's title overlay. Sub PNGs are 1080×220 with the pill centered. 26 + // Waveform is parked at the same vertical area so the pill sits in front of 27 + // the dancing line. 23 28 // Centered horizontally — sub PNGs are 1080×220 so x=0. 24 - const SUB_Y = 1180; 29 + const SUB_Y = 1690; 30 + const WAVE_Y = 1752; // 1080×96 waveform centered behind the sub pill (~y 1752–1848) 25 31 26 32 const lines = []; 27 33 lines.push(`[0:v]format=yuv420p,fps=30,scale=1080:1920,setsar=1[bg]`); 28 34 lines.push(`[1:a]apad=whole_dur=${TOTAL},asplit=2[a1][a2]`); 29 35 lines.push(`[a2]showwaves=s=1080x96:colors=0xff70d0|0x70f0e0:mode=cline:rate=30,format=rgba,colorchannelmixer=aa=0.55[wave]`); 30 - lines.push(`[bg][wave]overlay=x=0:y=1920-200:format=auto[bg2]`); 36 + lines.push(`[bg][wave]overlay=x=0:y=${WAVE_Y}:format=auto[bg2]`); 31 37 lines.push(`[bg2]drawbox=x=0:y=1912:w='iw*t/${TOTAL}':h=8:color=0xff69b4:t=fill[v0]`); 32 38 33 39 let prev = "v0";
+200
recap/bin/jeffrey-photos.mjs
··· 1 + #!/usr/bin/env node 2 + // jeffrey-photos.mjs — pre-pipeline step. For each segment in the audience 3 + // config that has a `metaphor` field, call OpenAI gpt-image-2 (images.edit) 4 + // with the platter SHOOT_REFS + SELFIE_REFS for identity grounding and save 5 + // the result to recap/out/jeffrey-photos/<segment>.png. 6 + // 7 + // Each successful generation is also archived into the jeffrey platter as a 8 + // new entry in the `gens` bucket: a dated copy of the PNG goes to 9 + // system/public/assets/jeffreys/gens/<context>-<segment>-<ts>.png (synced to 10 + // the CDN by `npm run assets:sync:up`), and an item with full provenance 11 + // (model, refs, prompt, context, segment, timestamp) is appended to 12 + // papers/jeffrey-platter/manifest.json under buckets.gens.items. 13 + // 14 + // Caching: skip if the working pipeline cache already exists; pass --force to 15 + // regen. Run a single segment by name: --only 02_menuband. 16 + // 17 + // Usage: 18 + // node bin/jeffrey-photos.mjs jeffrey-24h 19 + // node bin/jeffrey-photos.mjs jeffrey-24h --force 20 + // node bin/jeffrey-photos.mjs jeffrey-24h --only 04_platter 21 + 22 + import { readFileSync, writeFileSync, mkdirSync, existsSync, statSync } from "node:fs"; 23 + import { resolve, dirname } from "node:path"; 24 + import { fileURLToPath } from "node:url"; 25 + 26 + const HERE = dirname(fileURLToPath(import.meta.url)); 27 + const ROOT = resolve(HERE, ".."); 28 + const REPO = resolve(ROOT, ".."); 29 + 30 + const audienceName = process.argv[2] || "jeffrey-24h"; 31 + const force = process.argv.includes("--force"); 32 + const onlyIdx = process.argv.indexOf("--only"); 33 + const only = onlyIdx >= 0 ? process.argv[onlyIdx + 1] : null; 34 + 35 + const { audience } = await import(`${ROOT}/audience/${audienceName}.mjs`); 36 + 37 + const PHOTOS_DIR = `${ROOT}/out/jeffrey-photos`; 38 + mkdirSync(PHOTOS_DIR, { recursive: true }); 39 + 40 + // Platter archive — a copy of every successful gen goes here, plus a manifest 41 + // entry. The dir is synced to assets.aesthetic.computer/jeffreys/gens/ via 42 + // `npm run assets:sync:up`. 43 + const PLATTER_GENS_DIR = `${REPO}/system/public/assets/jeffreys/gens`; 44 + const PLATTER_MANIFEST = `${REPO}/papers/jeffrey-platter/manifest.json`; 45 + mkdirSync(PLATTER_GENS_DIR, { recursive: true }); 46 + 47 + // Mirrors generate-neo.py refs. 48 + const SHOOT_DIR = `${REPO}/portraits/jeffrey/corpus/shoot`; 49 + const ARCHIVE_DIR = `${REPO}/portraits/jeffrey/ig-archive/whistlegraph`; 50 + const SHOOT_REFS = [ 51 + `${SHOOT_DIR}/jeffery-av--07.jpg`, 52 + `${SHOOT_DIR}/jeffery-av--01.jpg`, 53 + `${SHOOT_DIR}/jeffery-av--04.jpg`, 54 + ]; 55 + const SELFIE_REFS = [ 56 + `${ARCHIVE_DIR}/2018-12-02_Bq4ckGFFNtW.jpg`, 57 + `${ARCHIVE_DIR}/2020-09-02_CEpxlO2FOvD.jpg`, 58 + `${ARCHIVE_DIR}/2021-07-10_CRI095Vl7AO_1.jpg`, 59 + `${ARCHIVE_DIR}/2025-01-25_DFQ2lHPzN_W.jpg`, 60 + `${ARCHIVE_DIR}/2017-04-10_BStid5yjTHq.jpg`, 61 + ]; 62 + const REFS = [...SHOOT_REFS, ...SELFIE_REFS].filter((p) => { 63 + if (existsSync(p)) return true; 64 + console.warn(` ⚠ ref missing, dropping: ${p}`); 65 + return false; 66 + }); 67 + 68 + function loadOpenAIKey() { 69 + if (process.env.OPENAI_API_KEY) return process.env.OPENAI_API_KEY; 70 + const vault = `${REPO}/aesthetic-computer-vault/.devcontainer/envs/devcontainer.env`; 71 + if (existsSync(vault)) { 72 + for (const line of readFileSync(vault, "utf8").split("\n")) { 73 + if (line.startsWith("OPENAI_API_KEY=")) { 74 + return line.slice("OPENAI_API_KEY=".length).trim().replace(/^['"]|['"]$/g, ""); 75 + } 76 + } 77 + } 78 + throw new Error("OPENAI_API_KEY not set and not found in vault devcontainer.env"); 79 + } 80 + 81 + const apiKey = loadOpenAIKey(); 82 + 83 + const MODEL = "gpt-image-2"; 84 + const SIZE = "1024x1536"; 85 + const QUALITY = "high"; 86 + 87 + async function generate(metaphor, outPath) { 88 + const fd = new FormData(); 89 + fd.append("model", MODEL); 90 + fd.append("prompt", metaphor); 91 + fd.append("size", SIZE); 92 + fd.append("quality", QUALITY); 93 + fd.append("n", "1"); 94 + for (const ref of REFS) { 95 + const buf = readFileSync(ref); 96 + const ext = ref.toLowerCase().endsWith(".png") ? "png" : "jpeg"; 97 + fd.append("image[]", new Blob([buf], { type: `image/${ext}` }), ref.split("/").pop()); 98 + } 99 + const res = await fetch("https://api.openai.com/v1/images/edits", { 100 + method: "POST", 101 + headers: { Authorization: `Bearer ${apiKey}` }, 102 + body: fd, 103 + }); 104 + if (!res.ok) { 105 + const err = await res.text(); 106 + throw new Error(`OpenAI ${res.status}: ${err.slice(0, 500)}`); 107 + } 108 + const json = await res.json(); 109 + const b64 = json.data?.[0]?.b64_json; 110 + if (!b64) throw new Error(`no image returned: ${JSON.stringify(json).slice(0, 200)}`); 111 + writeFileSync(outPath, Buffer.from(b64, "base64")); 112 + const usage = json.usage || {}; 113 + return { tokens_in: usage.input_tokens, tokens_out: usage.output_tokens }; 114 + } 115 + 116 + function isoStamp() { 117 + const d = new Date(); 118 + const pad = (n) => String(n).padStart(2, "0"); 119 + return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}T${pad(d.getHours())}${pad(d.getMinutes())}`; 120 + } 121 + 122 + // Archive a successful gen into the platter: copy PNG to the assets/gens dir 123 + // + append a metadata entry to papers/jeffrey-platter/manifest.json. Lazy- 124 + // initializes the `gens` bucket if it doesn't exist yet. 125 + function archiveToPlatter({ segName, metaphor, sourcePath, context }) { 126 + const stamp = isoStamp(); 127 + const archiveName = `${context}-${segName}-${stamp}.png`; 128 + const archivePath = `${PLATTER_GENS_DIR}/${archiveName}`; 129 + writeFileSync(archivePath, readFileSync(sourcePath)); 130 + 131 + const manifest = JSON.parse(readFileSync(PLATTER_MANIFEST, "utf8")); 132 + manifest.buckets.gens ??= { 133 + label: "Generated images — gpt-image-2 with platter-grounded identity (real+goofy default tone). One PNG per successful gen, dated. Synced to assets CDN via `npm run assets:sync:up`.", 134 + url_pattern: "https://assets.aesthetic.computer/jeffreys/gens/{name}", 135 + key_includes_extension: true, 136 + items: {}, 137 + }; 138 + manifest.buckets.gens.items[archiveName] = { 139 + model: MODEL, 140 + size: SIZE, 141 + quality: QUALITY, 142 + refs: REFS.map((r) => r.replace(REPO + "/", "")), 143 + context, 144 + segment: segName, 145 + generated: new Date().toISOString(), 146 + bytes: statSync(archivePath).size, 147 + prompt: metaphor, 148 + }; 149 + writeFileSync(PLATTER_MANIFEST, JSON.stringify(manifest, null, 2) + "\n"); 150 + return { archiveName, archivePath }; 151 + } 152 + 153 + const context = `recap-${audienceName}`; 154 + 155 + console.log(`refs: ${REFS.length} (${REFS.length} found)`); 156 + console.log(`out: ${PHOTOS_DIR}`); 157 + console.log(`platter archive: ${PLATTER_GENS_DIR.replace(REPO + "/", "")}`); 158 + 159 + let generated = 0, cached = 0, failed = 0; 160 + for (const seg of audience.segments) { 161 + if (only && seg.name !== only) continue; 162 + const slide = audience.slides[seg.name]; 163 + const metaphor = slide && typeof slide === "object" ? slide.metaphor : null; 164 + if (!metaphor) { 165 + console.log(` · ${seg.name}: no metaphor, skipping`); 166 + continue; 167 + } 168 + const outPath = `${PHOTOS_DIR}/${seg.name}.png`; 169 + if (existsSync(outPath) && !force) { 170 + console.log(` ✓ ${seg.name}.png (cached)`); 171 + cached++; 172 + continue; 173 + } 174 + process.stdout.write(`▸ ${seg.name}… `); 175 + const t0 = Date.now(); 176 + try { 177 + const usage = await generate(metaphor, outPath); 178 + const archive = archiveToPlatter({ segName: seg.name, metaphor, sourcePath: outPath, context }); 179 + const elapsed = ((Date.now() - t0) / 1000).toFixed(1); 180 + const tok = usage.tokens_in 181 + ? ` · tokens in=${usage.tokens_in} out=${usage.tokens_out}` 182 + : ""; 183 + console.log(`✓ ${elapsed}s${tok} → ${archive.archiveName}`); 184 + generated++; 185 + } catch (e) { 186 + console.log(`✗`); 187 + console.error(` ${e.message}`); 188 + failed++; 189 + } 190 + } 191 + 192 + console.log(`✓ photos: ${generated} new, ${cached} cached, ${failed} failed`); 193 + if (generated > 0) { 194 + console.log(` · platter manifest updated: papers/jeffrey-platter/manifest.json`); 195 + console.log(` · run \`node papers/jeffrey-platter/sync.mjs\` to refresh consumer copy`); 196 + console.log(` · run \`npm run assets:sync:up\` to push gens/ to the CDN`); 197 + } 198 + // Don't fail the pipeline on per-segment gen failures — slides fall back to a 199 + // dark-bg placeholder when the glob matches nothing. Re-run later to retry 200 + // just the missing photos.
+1 -1
recap/bin/slides.mjs
··· 130 130 ${showBug(name) ? `<div class="pals bug"></div>` : ""} 131 131 ${showBug(name) ? `<div class="cornerbug">aesthetic·computer · for ${audience.handle || audience.name}</div>` : ""} 132 132 </body></html>`; 133 - await page.setContent(html, { waitUntil: "networkidle0" }); 133 + await page.setContent(html, { waitUntil: "networkidle0", timeout: 60000 }); 134 134 await new Promise((r) => setTimeout(r, 200)); 135 135 const png = await page.screenshot({ type: "png", omitBackground: false }); 136 136 writeFileSync(`${SLIDE_DIR}/${name}.png`, png);
+8 -5
recap/pipeline.fish
··· 20 20 echo "▸ 1/6 tts (skipped — reusing out/recap.mp3)" 21 21 end 22 22 23 - echo "▸ 2/6 transcribe + align" 23 + echo "▸ 2/7 transcribe + align" 24 24 node bin/transcribe.mjs; or exit 1 25 25 node bin/align.mjs $AUDIENCE; or exit 1 26 26 27 - echo "▸ 3/6 scout (resolve per-slide content queries)" 27 + echo "▸ 3/7 jeffrey-photos (gpt-image-2, cached per segment)" 28 + node bin/jeffrey-photos.mjs $AUDIENCE; or exit 1 29 + 30 + echo "▸ 4/7 scout (resolve per-slide content queries)" 28 31 node bin/scout.mjs $AUDIENCE; or exit 1 29 32 30 - echo "▸ 4/6 slides" 33 + echo "▸ 5/7 slides" 31 34 node bin/slides.mjs $AUDIENCE; or exit 1 32 35 33 - echo "▸ 5/6 subtitles" 36 + echo "▸ 6/7 subtitles" 34 37 node bin/subtitles.mjs $AUDIENCE; or exit 1 35 38 36 - echo "▸ 6/6 compose" 39 + echo "▸ 7/7 compose" 37 40 fish bin/compose.fish; or exit 1 38 41 39 42 echo "━━━ done · $ROOT/out/recap.mp4 ━━━"
+67
reports/2026-04-29-knot-master-rebuild.md
··· 1 + # Knot rebuild — 2026-04-29 2 + 3 + Rebuilt self-hosted Tangled knot on `knot.aesthetic.computer` from master HEAD. No new tag has shipped since the 2026-04-17 v1.13.0-alpha cutover (see `2026-04-17-knot-spindle-upgrade.md`); this picks up post-tag commits on master. 4 + 5 + ## Summary 6 + 7 + | | before | after | 8 + |---|---|---| 9 + | Knot source | `v1.13.0-alpha` tag (`c3f60dc1`), built 2026-04-17, rebuilt 2026-04-23 | master HEAD `3ff418dad639a9755b9ef7509ed948578d89be8b` ("blog: templatize topbar, add link to go to blog index") | 10 + | Binary sha256 | `1c7b842e2c3223a142b2343d39353f7bd1d80eebf12da6b3b3a4e9b869dc9c6a` | `63c1a9ec3e8c6f036c35e36c6e9a1a0b66e8ccd9d31ac69fec1930db958a34c5` | 11 + | Binary size | 52,224,872 B | 52,246,384 B (+21,512 B) | 12 + | Service downtime | — | ~3 s (`systemctl stop` → install → `systemctl start`) | 13 + | Schema migrations | — | none ran (no DB delta between v1.13.0-alpha tag and master HEAD) | 14 + | `repo_keys` rows | 1 | 1 (unchanged) | 15 + | Repo on disk | `did:plc:fjfqgw6uxfpfzsojsxwaug6k/` | unchanged | 16 + 17 + ## Why master, not a tag 18 + 19 + `git ls-remote --tags https://tangled.org/@tangled.org/core` shows `v1.13.0-alpha` is still the newest tag. The migration doc only covers v1.13+, which we're already past. User asked for an upgrade; chose master HEAD over a no-op rebuild of the same tag. 20 + 21 + ## Run log 22 + 23 + 1. **Pre-flight** — captured SHA, service uptime (Apr 23 22:52 UTC, 6 days), DB sizes, `repo_keys` count, `git ls-remote` (HEAD `daac06cf...`). No errors in journalctl tail. 24 + 2. **Backup** → `/root/knot-upgrade-backup-20260429-235704/` on droplet: 25 + - `knot.bin.prev` (52 MB) + `knot.bin.prev.sha256` 26 + - `.knot.env` (preserved perms 600 git:git) 27 + - `knotserver.service` 28 + - `knotserver.db.bak` (via `sqlite3 .backup`, WAL-consistent) 29 + 3. **Build** — on droplet, fresh clone: 30 + ``` 31 + cd /tmp && git clone https://tangled.org/@tangled.org/core tangled-core-upgrade 32 + cd tangled-core-upgrade && git checkout 3ff418dad639a9755b9ef7509ed948578d89be8b 33 + CGO_ENABLED=1 go build -o /tmp/knot-new ./cmd/knot 34 + ``` 35 + Build clean, no warnings. New binary 52,246,384 B. 36 + 4. **Cutover** — `systemctl stop knotserver` → `cp -a /usr/local/bin/knot /usr/local/bin/knot.prev.20260429-235759` → `install -m 0755 /tmp/knot-new /usr/local/bin/knot` → `systemctl start knotserver`. Service active on PID 31507 within 3 s. 37 + 5. **Verify** — 38 + - `curl -sI http://localhost:5555/` → 405 (expected; knot has no `GET /`) 39 + - `curl -sI https://knot.aesthetic.computer/` → 405 (Caddy + knot still wired) 40 + - `git ls-remote git@knot.aesthetic.computer:aesthetic.computer/core` → `main daac06cf...` (refs preserved, SSH AuthorizedKeysCommand still works, motd "aesthetic computer knot" prints) 41 + - `SELECT COUNT(*) FROM repo_keys` → 1 (unchanged) 42 + - `tail -100 /home/git/log/knot.log` → file does not exist (knot logs to stderr → journalctl); `journalctl -u knotserver` clean 43 + 6. **Cleanup** — `rm -rf /tmp/tangled-core-upgrade /tmp/knot-new`. 44 + 45 + ## deploy.sh change 46 + 47 + [at/knot/deployment/deploy.sh](../at/knot/deployment/deploy.sh): 48 + 49 + - `KNOT_VERSION` default bumped from `v1.13.0-alpha` to the SHA `3ff418dad639a9755b9ef7509ed948578d89be8b` so a future reinstall reproduces what's running. When v1.14 tags, switch back to a tag string. 50 + 51 + ## Rollback 52 + 53 + On droplet: 54 + ``` 55 + systemctl stop knotserver 56 + cp /usr/local/bin/knot.prev.20260429-235759 /usr/local/bin/knot 57 + systemctl start knotserver 58 + ``` 59 + No DB rollback needed (no schema changes were applied this round). Older `knot.v1.12.prev` is still there too if a pre-DID rollback is ever required (it would need the `repo_keys` row removed and the on-disk repo path restored — see Apr 17 report). 60 + 61 + ## Binaries on disk 62 + 63 + ``` 64 + /usr/local/bin/knot 52,246,384 master 3ff418da (current) 65 + /usr/local/bin/knot.prev.20260429-235759 52,224,872 v1.13.0-alpha (Apr 29 rollback) 66 + /usr/local/bin/knot.v1.12.prev 51,829,032 v1.12.0-alpha (pre-DID-migration) 67 + ```
+44 -7
slab/bin/claude-stop.sh
··· 1 1 #!/bin/bash 2 - # Claude Stop hook. Active work is tracked in two dirs under $SLAB_HOME/state/: 3 - # active-prompts/<session_id> — UserPromptSubmit → Stop 2 + # Claude Stop hook. State under $SLAB_HOME/state/: 3 + # active-prompts/<session_id> — one per live claude session; lives until 4 + # the claude_pid dies (janitored here). 5 + # awaiting-prompts/<session_id> — paused (turn complete OR awaiting 6 + # permission). Written here + by 7 + # claude-notify.sh; cleared by next 8 + # UserPromptSubmit. 4 9 # active-subagents/<timestamp>-.. — PreToolUse(Task) → SubagentStop 5 - # This script removes its own prompt marker and counts whatever remains. 10 + # Claude Code's Stop fires after every assistant turn — NOT only at session 11 + # end — so we keep the active marker around (so the menubar can still draw a 12 + # bar for the live thread) and just flip its state to awaiting. 6 13 # others > 0 → N distinct ascending pentatonic beeps (capped at 8). 7 14 # others = 0 → "all done" chime (lid open) OR TTS "i'm tired" with fade-out 8 15 # tail → `pmset sleepnow` (lid closed: stops ambient first, so ··· 22 29 23 30 input=$(cat) 24 31 session_id=$(echo "$input" | jq -r '.session_id // empty' 2>/dev/null) 32 + 33 + # Mark this session as awaiting (turn complete). The active marker stays so 34 + # the menubar can keep a bar for this thread; the awaiting marker flips its 35 + # render to rainbow-pulse. Cleared on next UserPromptSubmit. 25 36 if [[ -n "$session_id" ]]; then 26 - rm -f "$ACTIVE_DIR/$session_id" "$AWAITING_DIR/$session_id" 37 + printf 'turn complete\n' > "$AWAITING_DIR/$session_id" 2>/dev/null 27 38 fi 28 39 40 + # Janitor: drop active-prompts whose claude_pid is dead (terminal closed), 41 + # and any awaiting-prompts orphans (no matching active). Keeps disk state in 42 + # sync with reality without leaking on terminal close. 29 43 shopt -s nullglob 30 - prompts=("$ACTIVE_DIR"/*) 44 + for f in "$ACTIVE_DIR"/*; do 45 + [[ -f "$f" ]] || continue 46 + pid=$(jq -r '.claude_pid // 0' "$f" 2>/dev/null) 47 + [[ -z "$pid" || "$pid" == "0" ]] && continue 48 + if ! kill -0 "$pid" 2>/dev/null; then 49 + sid=$(basename "$f") 50 + rm -f "$f" "$AWAITING_DIR/$sid" 51 + fi 52 + done 53 + for f in "$AWAITING_DIR"/*; do 54 + [[ -f "$f" ]] || continue 55 + sid=$(basename "$f") 56 + [[ -e "$ACTIVE_DIR/$sid" ]] || rm -f "$f" 57 + done 58 + 59 + # "Working" = active sessions that aren't awaiting. That's what the chime / 60 + # sleep logic cares about: how many threads are still doing work. 61 + working=0 62 + for f in "$ACTIVE_DIR"/*; do 63 + [[ -f "$f" ]] || continue 64 + sid=$(basename "$f") 65 + [[ -e "$AWAITING_DIR/$sid" ]] && continue 66 + working=$((working + 1)) 67 + done 31 68 subagents=("$SUBAGENT_DIR"/*) 32 - others=$((${#prompts[@]} + ${#subagents[@]})) 69 + others=$((working + ${#subagents[@]})) 33 70 shopt -u nullglob 34 71 35 - echo "$(date '+%Y-%m-%d %H:%M:%S') Stop: session=${session_id:-?} prompts=${#prompts[@]} subagents=${#subagents[@]} others=$others" >> "$LOG" 72 + echo "$(date '+%Y-%m-%d %H:%M:%S') Stop: session=${session_id:-?} working=$working subagents=${#subagents[@]} others=$others" >> "$LOG" 36 73 37 74 stop_ambient() { 38 75 # Ambient is owned by lid-reactive.py now. Fade gracefully via SIGTERM;
+7 -3
slab/bin/lid-ambient.sh
··· 114 114 } 115 115 116 116 claude_running() { 117 - # Matches both the desktop-app-embedded CLI (.../claude.app/Contents/MacOS/claude) 118 - # and the terminal CLI (node .../@anthropic-ai/claude-code/cli.js). 119 - ps -eo command | grep -qE 'claude\.app/Contents/MacOS/claude |@anthropic-ai/claude-code/.*cli\.js' 117 + # Three shapes of "claude is running": 118 + # 1. compiled bundled CLI — process name is literally "claude" 119 + # 2. legacy node-based CLI — node .../@anthropic-ai/claude-code/cli.js 120 + # 3. desktop-app embed — .../claude.app/Contents/MacOS/claude 121 + # pgrep -x catches (1) cheaply; the regex catches (2) and (3). 122 + pgrep -x claude >/dev/null 2>&1 \ 123 + || ps -eo command 2>/dev/null | grep -qE 'claude\.app/Contents/MacOS/claude |@anthropic-ai/claude-code/.*cli\.js' 120 124 } 121 125 122 126 active_work_count() {
+2617 -131
system/public/give.aesthetic.computer/jeffreys-manifest.json
··· 11 11 "audited": "2026-04-28: aws s3 ls confirmed 55 contiguous --01..--55", 12 12 "tiers": "master (>10MB, --01..--10), mid (1–10MB, --11..--35), web (<1MB, --36..--55)", 13 13 "items": { 14 - "jeffery-av--01.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":24579271,"tier":"master"}, 15 - "jeffery-av--02.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":23031131,"tier":"master"}, 16 - "jeffery-av--03.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":23782694,"tier":"master"}, 17 - "jeffery-av--04.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":20180498,"tier":"master"}, 18 - "jeffery-av--05.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":21157608,"tier":"master"}, 19 - "jeffery-av--06.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":23912884,"tier":"master"}, 20 - "jeffery-av--07.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":26175514,"tier":"master"}, 21 - "jeffery-av--08.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":25539600,"tier":"master"}, 22 - "jeffery-av--09.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":24963289,"tier":"master"}, 23 - "jeffery-av--10.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":25466226,"tier":"master"}, 24 - "jeffery-av--11.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3442326,"tier":"mid"}, 25 - "jeffery-av--12.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4923364,"tier":"mid"}, 26 - "jeffery-av--13.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4916244,"tier":"mid"}, 27 - "jeffery-av--14.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4650693,"tier":"mid"}, 28 - "jeffery-av--15.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4516921,"tier":"mid"}, 29 - "jeffery-av--16.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4489196,"tier":"mid"}, 30 - "jeffery-av--17.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3292944,"tier":"mid"}, 31 - "jeffery-av--18.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":1672328,"tier":"mid"}, 32 - "jeffery-av--19.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3705244,"tier":"mid"}, 33 - "jeffery-av--20.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4236846,"tier":"mid"}, 34 - "jeffery-av--21.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4263089,"tier":"mid"}, 35 - "jeffery-av--22.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4233171,"tier":"mid"}, 36 - "jeffery-av--23.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3663425,"tier":"mid"}, 37 - "jeffery-av--24.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4192960,"tier":"mid"}, 38 - "jeffery-av--25.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3794618,"tier":"mid"}, 39 - "jeffery-av--26.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":3676864,"tier":"mid"}, 40 - "jeffery-av--27.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4195383,"tier":"mid"}, 41 - "jeffery-av--28.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4090050,"tier":"mid"}, 42 - "jeffery-av--29.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4130648,"tier":"mid"}, 43 - "jeffery-av--30.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4933430,"tier":"mid"}, 44 - "jeffery-av--31.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5068198,"tier":"mid"}, 45 - "jeffery-av--32.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5205568,"tier":"mid"}, 46 - "jeffery-av--33.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5294940,"tier":"mid"}, 47 - "jeffery-av--34.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":5283671,"tier":"mid"}, 48 - "jeffery-av--35.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":4789782,"tier":"mid"}, 49 - "jeffery-av--36.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":272541,"tier":"web"}, 50 - "jeffery-av--37.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":268923,"tier":"web"}, 51 - "jeffery-av--38.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":296328,"tier":"web"}, 52 - "jeffery-av--39.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":305648,"tier":"web"}, 53 - "jeffery-av--40.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":226963,"tier":"web"}, 54 - "jeffery-av--41.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":225962,"tier":"web"}, 55 - "jeffery-av--42.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":223762,"tier":"web"}, 56 - "jeffery-av--43.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":224105,"tier":"web"}, 57 - "jeffery-av--44.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":304325,"tier":"web"}, 58 - "jeffery-av--45.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":340465,"tier":"web"}, 59 - "jeffery-av--46.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":338624,"tier":"web"}, 60 - "jeffery-av--47.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":339362,"tier":"web"}, 61 - "jeffery-av--48.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":345660,"tier":"web"}, 62 - "jeffery-av--49.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":242741,"tier":"web"}, 63 - "jeffery-av--50.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":244176,"tier":"web"}, 64 - "jeffery-av--51.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":251330,"tier":"web"}, 65 - "jeffery-av--52.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":254304,"tier":"web"}, 66 - "jeffery-av--53.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":283319,"tier":"web"}, 67 - "jeffery-av--54.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":246485,"tier":"web"}, 68 - "jeffery-av--55.jpg": {"focal":[50,35],"pois":[{"t":"f","box":[30,15,40,40]}],"aspect":0.667,"src":"headshots","size":248833,"tier":"web"} 14 + "jeffery-av--01.jpg": { 15 + "focal": [ 16 + 50, 17 + 35 18 + ], 19 + "pois": [ 20 + { 21 + "t": "f", 22 + "box": [ 23 + 30, 24 + 15, 25 + 40, 26 + 40 27 + ] 28 + } 29 + ], 30 + "aspect": 0.667, 31 + "src": "headshots", 32 + "size": 24579271, 33 + "tier": "master" 34 + }, 35 + "jeffery-av--02.jpg": { 36 + "focal": [ 37 + 50, 38 + 35 39 + ], 40 + "pois": [ 41 + { 42 + "t": "f", 43 + "box": [ 44 + 30, 45 + 15, 46 + 40, 47 + 40 48 + ] 49 + } 50 + ], 51 + "aspect": 0.667, 52 + "src": "headshots", 53 + "size": 23031131, 54 + "tier": "master" 55 + }, 56 + "jeffery-av--03.jpg": { 57 + "focal": [ 58 + 50, 59 + 35 60 + ], 61 + "pois": [ 62 + { 63 + "t": "f", 64 + "box": [ 65 + 30, 66 + 15, 67 + 40, 68 + 40 69 + ] 70 + } 71 + ], 72 + "aspect": 0.667, 73 + "src": "headshots", 74 + "size": 23782694, 75 + "tier": "master" 76 + }, 77 + "jeffery-av--04.jpg": { 78 + "focal": [ 79 + 50, 80 + 35 81 + ], 82 + "pois": [ 83 + { 84 + "t": "f", 85 + "box": [ 86 + 30, 87 + 15, 88 + 40, 89 + 40 90 + ] 91 + } 92 + ], 93 + "aspect": 0.667, 94 + "src": "headshots", 95 + "size": 20180498, 96 + "tier": "master" 97 + }, 98 + "jeffery-av--05.jpg": { 99 + "focal": [ 100 + 50, 101 + 35 102 + ], 103 + "pois": [ 104 + { 105 + "t": "f", 106 + "box": [ 107 + 30, 108 + 15, 109 + 40, 110 + 40 111 + ] 112 + } 113 + ], 114 + "aspect": 0.667, 115 + "src": "headshots", 116 + "size": 21157608, 117 + "tier": "master" 118 + }, 119 + "jeffery-av--06.jpg": { 120 + "focal": [ 121 + 50, 122 + 35 123 + ], 124 + "pois": [ 125 + { 126 + "t": "f", 127 + "box": [ 128 + 30, 129 + 15, 130 + 40, 131 + 40 132 + ] 133 + } 134 + ], 135 + "aspect": 0.667, 136 + "src": "headshots", 137 + "size": 23912884, 138 + "tier": "master" 139 + }, 140 + "jeffery-av--07.jpg": { 141 + "focal": [ 142 + 50, 143 + 35 144 + ], 145 + "pois": [ 146 + { 147 + "t": "f", 148 + "box": [ 149 + 30, 150 + 15, 151 + 40, 152 + 40 153 + ] 154 + } 155 + ], 156 + "aspect": 0.667, 157 + "src": "headshots", 158 + "size": 26175514, 159 + "tier": "master" 160 + }, 161 + "jeffery-av--08.jpg": { 162 + "focal": [ 163 + 50, 164 + 35 165 + ], 166 + "pois": [ 167 + { 168 + "t": "f", 169 + "box": [ 170 + 30, 171 + 15, 172 + 40, 173 + 40 174 + ] 175 + } 176 + ], 177 + "aspect": 0.667, 178 + "src": "headshots", 179 + "size": 25539600, 180 + "tier": "master" 181 + }, 182 + "jeffery-av--09.jpg": { 183 + "focal": [ 184 + 50, 185 + 35 186 + ], 187 + "pois": [ 188 + { 189 + "t": "f", 190 + "box": [ 191 + 30, 192 + 15, 193 + 40, 194 + 40 195 + ] 196 + } 197 + ], 198 + "aspect": 0.667, 199 + "src": "headshots", 200 + "size": 24963289, 201 + "tier": "master" 202 + }, 203 + "jeffery-av--10.jpg": { 204 + "focal": [ 205 + 50, 206 + 35 207 + ], 208 + "pois": [ 209 + { 210 + "t": "f", 211 + "box": [ 212 + 30, 213 + 15, 214 + 40, 215 + 40 216 + ] 217 + } 218 + ], 219 + "aspect": 0.667, 220 + "src": "headshots", 221 + "size": 25466226, 222 + "tier": "master" 223 + }, 224 + "jeffery-av--11.jpg": { 225 + "focal": [ 226 + 50, 227 + 35 228 + ], 229 + "pois": [ 230 + { 231 + "t": "f", 232 + "box": [ 233 + 30, 234 + 15, 235 + 40, 236 + 40 237 + ] 238 + } 239 + ], 240 + "aspect": 0.667, 241 + "src": "headshots", 242 + "size": 3442326, 243 + "tier": "mid" 244 + }, 245 + "jeffery-av--12.jpg": { 246 + "focal": [ 247 + 50, 248 + 35 249 + ], 250 + "pois": [ 251 + { 252 + "t": "f", 253 + "box": [ 254 + 30, 255 + 15, 256 + 40, 257 + 40 258 + ] 259 + } 260 + ], 261 + "aspect": 0.667, 262 + "src": "headshots", 263 + "size": 4923364, 264 + "tier": "mid" 265 + }, 266 + "jeffery-av--13.jpg": { 267 + "focal": [ 268 + 50, 269 + 35 270 + ], 271 + "pois": [ 272 + { 273 + "t": "f", 274 + "box": [ 275 + 30, 276 + 15, 277 + 40, 278 + 40 279 + ] 280 + } 281 + ], 282 + "aspect": 0.667, 283 + "src": "headshots", 284 + "size": 4916244, 285 + "tier": "mid" 286 + }, 287 + "jeffery-av--14.jpg": { 288 + "focal": [ 289 + 50, 290 + 35 291 + ], 292 + "pois": [ 293 + { 294 + "t": "f", 295 + "box": [ 296 + 30, 297 + 15, 298 + 40, 299 + 40 300 + ] 301 + } 302 + ], 303 + "aspect": 0.667, 304 + "src": "headshots", 305 + "size": 4650693, 306 + "tier": "mid" 307 + }, 308 + "jeffery-av--15.jpg": { 309 + "focal": [ 310 + 50, 311 + 35 312 + ], 313 + "pois": [ 314 + { 315 + "t": "f", 316 + "box": [ 317 + 30, 318 + 15, 319 + 40, 320 + 40 321 + ] 322 + } 323 + ], 324 + "aspect": 0.667, 325 + "src": "headshots", 326 + "size": 4516921, 327 + "tier": "mid" 328 + }, 329 + "jeffery-av--16.jpg": { 330 + "focal": [ 331 + 50, 332 + 35 333 + ], 334 + "pois": [ 335 + { 336 + "t": "f", 337 + "box": [ 338 + 30, 339 + 15, 340 + 40, 341 + 40 342 + ] 343 + } 344 + ], 345 + "aspect": 0.667, 346 + "src": "headshots", 347 + "size": 4489196, 348 + "tier": "mid" 349 + }, 350 + "jeffery-av--17.jpg": { 351 + "focal": [ 352 + 50, 353 + 35 354 + ], 355 + "pois": [ 356 + { 357 + "t": "f", 358 + "box": [ 359 + 30, 360 + 15, 361 + 40, 362 + 40 363 + ] 364 + } 365 + ], 366 + "aspect": 0.667, 367 + "src": "headshots", 368 + "size": 3292944, 369 + "tier": "mid" 370 + }, 371 + "jeffery-av--18.jpg": { 372 + "focal": [ 373 + 50, 374 + 35 375 + ], 376 + "pois": [ 377 + { 378 + "t": "f", 379 + "box": [ 380 + 30, 381 + 15, 382 + 40, 383 + 40 384 + ] 385 + } 386 + ], 387 + "aspect": 0.667, 388 + "src": "headshots", 389 + "size": 1672328, 390 + "tier": "mid" 391 + }, 392 + "jeffery-av--19.jpg": { 393 + "focal": [ 394 + 50, 395 + 35 396 + ], 397 + "pois": [ 398 + { 399 + "t": "f", 400 + "box": [ 401 + 30, 402 + 15, 403 + 40, 404 + 40 405 + ] 406 + } 407 + ], 408 + "aspect": 0.667, 409 + "src": "headshots", 410 + "size": 3705244, 411 + "tier": "mid" 412 + }, 413 + "jeffery-av--20.jpg": { 414 + "focal": [ 415 + 50, 416 + 35 417 + ], 418 + "pois": [ 419 + { 420 + "t": "f", 421 + "box": [ 422 + 30, 423 + 15, 424 + 40, 425 + 40 426 + ] 427 + } 428 + ], 429 + "aspect": 0.667, 430 + "src": "headshots", 431 + "size": 4236846, 432 + "tier": "mid" 433 + }, 434 + "jeffery-av--21.jpg": { 435 + "focal": [ 436 + 50, 437 + 35 438 + ], 439 + "pois": [ 440 + { 441 + "t": "f", 442 + "box": [ 443 + 30, 444 + 15, 445 + 40, 446 + 40 447 + ] 448 + } 449 + ], 450 + "aspect": 0.667, 451 + "src": "headshots", 452 + "size": 4263089, 453 + "tier": "mid" 454 + }, 455 + "jeffery-av--22.jpg": { 456 + "focal": [ 457 + 50, 458 + 35 459 + ], 460 + "pois": [ 461 + { 462 + "t": "f", 463 + "box": [ 464 + 30, 465 + 15, 466 + 40, 467 + 40 468 + ] 469 + } 470 + ], 471 + "aspect": 0.667, 472 + "src": "headshots", 473 + "size": 4233171, 474 + "tier": "mid" 475 + }, 476 + "jeffery-av--23.jpg": { 477 + "focal": [ 478 + 50, 479 + 35 480 + ], 481 + "pois": [ 482 + { 483 + "t": "f", 484 + "box": [ 485 + 30, 486 + 15, 487 + 40, 488 + 40 489 + ] 490 + } 491 + ], 492 + "aspect": 0.667, 493 + "src": "headshots", 494 + "size": 3663425, 495 + "tier": "mid" 496 + }, 497 + "jeffery-av--24.jpg": { 498 + "focal": [ 499 + 50, 500 + 35 501 + ], 502 + "pois": [ 503 + { 504 + "t": "f", 505 + "box": [ 506 + 30, 507 + 15, 508 + 40, 509 + 40 510 + ] 511 + } 512 + ], 513 + "aspect": 0.667, 514 + "src": "headshots", 515 + "size": 4192960, 516 + "tier": "mid" 517 + }, 518 + "jeffery-av--25.jpg": { 519 + "focal": [ 520 + 50, 521 + 35 522 + ], 523 + "pois": [ 524 + { 525 + "t": "f", 526 + "box": [ 527 + 30, 528 + 15, 529 + 40, 530 + 40 531 + ] 532 + } 533 + ], 534 + "aspect": 0.667, 535 + "src": "headshots", 536 + "size": 3794618, 537 + "tier": "mid" 538 + }, 539 + "jeffery-av--26.jpg": { 540 + "focal": [ 541 + 50, 542 + 35 543 + ], 544 + "pois": [ 545 + { 546 + "t": "f", 547 + "box": [ 548 + 30, 549 + 15, 550 + 40, 551 + 40 552 + ] 553 + } 554 + ], 555 + "aspect": 0.667, 556 + "src": "headshots", 557 + "size": 3676864, 558 + "tier": "mid" 559 + }, 560 + "jeffery-av--27.jpg": { 561 + "focal": [ 562 + 50, 563 + 35 564 + ], 565 + "pois": [ 566 + { 567 + "t": "f", 568 + "box": [ 569 + 30, 570 + 15, 571 + 40, 572 + 40 573 + ] 574 + } 575 + ], 576 + "aspect": 0.667, 577 + "src": "headshots", 578 + "size": 4195383, 579 + "tier": "mid" 580 + }, 581 + "jeffery-av--28.jpg": { 582 + "focal": [ 583 + 50, 584 + 35 585 + ], 586 + "pois": [ 587 + { 588 + "t": "f", 589 + "box": [ 590 + 30, 591 + 15, 592 + 40, 593 + 40 594 + ] 595 + } 596 + ], 597 + "aspect": 0.667, 598 + "src": "headshots", 599 + "size": 4090050, 600 + "tier": "mid" 601 + }, 602 + "jeffery-av--29.jpg": { 603 + "focal": [ 604 + 50, 605 + 35 606 + ], 607 + "pois": [ 608 + { 609 + "t": "f", 610 + "box": [ 611 + 30, 612 + 15, 613 + 40, 614 + 40 615 + ] 616 + } 617 + ], 618 + "aspect": 0.667, 619 + "src": "headshots", 620 + "size": 4130648, 621 + "tier": "mid" 622 + }, 623 + "jeffery-av--30.jpg": { 624 + "focal": [ 625 + 50, 626 + 35 627 + ], 628 + "pois": [ 629 + { 630 + "t": "f", 631 + "box": [ 632 + 30, 633 + 15, 634 + 40, 635 + 40 636 + ] 637 + } 638 + ], 639 + "aspect": 0.667, 640 + "src": "headshots", 641 + "size": 4933430, 642 + "tier": "mid" 643 + }, 644 + "jeffery-av--31.jpg": { 645 + "focal": [ 646 + 50, 647 + 35 648 + ], 649 + "pois": [ 650 + { 651 + "t": "f", 652 + "box": [ 653 + 30, 654 + 15, 655 + 40, 656 + 40 657 + ] 658 + } 659 + ], 660 + "aspect": 0.667, 661 + "src": "headshots", 662 + "size": 5068198, 663 + "tier": "mid" 664 + }, 665 + "jeffery-av--32.jpg": { 666 + "focal": [ 667 + 50, 668 + 35 669 + ], 670 + "pois": [ 671 + { 672 + "t": "f", 673 + "box": [ 674 + 30, 675 + 15, 676 + 40, 677 + 40 678 + ] 679 + } 680 + ], 681 + "aspect": 0.667, 682 + "src": "headshots", 683 + "size": 5205568, 684 + "tier": "mid" 685 + }, 686 + "jeffery-av--33.jpg": { 687 + "focal": [ 688 + 50, 689 + 35 690 + ], 691 + "pois": [ 692 + { 693 + "t": "f", 694 + "box": [ 695 + 30, 696 + 15, 697 + 40, 698 + 40 699 + ] 700 + } 701 + ], 702 + "aspect": 0.667, 703 + "src": "headshots", 704 + "size": 5294940, 705 + "tier": "mid" 706 + }, 707 + "jeffery-av--34.jpg": { 708 + "focal": [ 709 + 50, 710 + 35 711 + ], 712 + "pois": [ 713 + { 714 + "t": "f", 715 + "box": [ 716 + 30, 717 + 15, 718 + 40, 719 + 40 720 + ] 721 + } 722 + ], 723 + "aspect": 0.667, 724 + "src": "headshots", 725 + "size": 5283671, 726 + "tier": "mid" 727 + }, 728 + "jeffery-av--35.jpg": { 729 + "focal": [ 730 + 50, 731 + 35 732 + ], 733 + "pois": [ 734 + { 735 + "t": "f", 736 + "box": [ 737 + 30, 738 + 15, 739 + 40, 740 + 40 741 + ] 742 + } 743 + ], 744 + "aspect": 0.667, 745 + "src": "headshots", 746 + "size": 4789782, 747 + "tier": "mid" 748 + }, 749 + "jeffery-av--36.jpg": { 750 + "focal": [ 751 + 50, 752 + 35 753 + ], 754 + "pois": [ 755 + { 756 + "t": "f", 757 + "box": [ 758 + 30, 759 + 15, 760 + 40, 761 + 40 762 + ] 763 + } 764 + ], 765 + "aspect": 0.667, 766 + "src": "headshots", 767 + "size": 272541, 768 + "tier": "web" 769 + }, 770 + "jeffery-av--37.jpg": { 771 + "focal": [ 772 + 50, 773 + 35 774 + ], 775 + "pois": [ 776 + { 777 + "t": "f", 778 + "box": [ 779 + 30, 780 + 15, 781 + 40, 782 + 40 783 + ] 784 + } 785 + ], 786 + "aspect": 0.667, 787 + "src": "headshots", 788 + "size": 268923, 789 + "tier": "web" 790 + }, 791 + "jeffery-av--38.jpg": { 792 + "focal": [ 793 + 50, 794 + 35 795 + ], 796 + "pois": [ 797 + { 798 + "t": "f", 799 + "box": [ 800 + 30, 801 + 15, 802 + 40, 803 + 40 804 + ] 805 + } 806 + ], 807 + "aspect": 0.667, 808 + "src": "headshots", 809 + "size": 296328, 810 + "tier": "web" 811 + }, 812 + "jeffery-av--39.jpg": { 813 + "focal": [ 814 + 50, 815 + 35 816 + ], 817 + "pois": [ 818 + { 819 + "t": "f", 820 + "box": [ 821 + 30, 822 + 15, 823 + 40, 824 + 40 825 + ] 826 + } 827 + ], 828 + "aspect": 0.667, 829 + "src": "headshots", 830 + "size": 305648, 831 + "tier": "web" 832 + }, 833 + "jeffery-av--40.jpg": { 834 + "focal": [ 835 + 50, 836 + 35 837 + ], 838 + "pois": [ 839 + { 840 + "t": "f", 841 + "box": [ 842 + 30, 843 + 15, 844 + 40, 845 + 40 846 + ] 847 + } 848 + ], 849 + "aspect": 0.667, 850 + "src": "headshots", 851 + "size": 226963, 852 + "tier": "web" 853 + }, 854 + "jeffery-av--41.jpg": { 855 + "focal": [ 856 + 50, 857 + 35 858 + ], 859 + "pois": [ 860 + { 861 + "t": "f", 862 + "box": [ 863 + 30, 864 + 15, 865 + 40, 866 + 40 867 + ] 868 + } 869 + ], 870 + "aspect": 0.667, 871 + "src": "headshots", 872 + "size": 225962, 873 + "tier": "web" 874 + }, 875 + "jeffery-av--42.jpg": { 876 + "focal": [ 877 + 50, 878 + 35 879 + ], 880 + "pois": [ 881 + { 882 + "t": "f", 883 + "box": [ 884 + 30, 885 + 15, 886 + 40, 887 + 40 888 + ] 889 + } 890 + ], 891 + "aspect": 0.667, 892 + "src": "headshots", 893 + "size": 223762, 894 + "tier": "web" 895 + }, 896 + "jeffery-av--43.jpg": { 897 + "focal": [ 898 + 50, 899 + 35 900 + ], 901 + "pois": [ 902 + { 903 + "t": "f", 904 + "box": [ 905 + 30, 906 + 15, 907 + 40, 908 + 40 909 + ] 910 + } 911 + ], 912 + "aspect": 0.667, 913 + "src": "headshots", 914 + "size": 224105, 915 + "tier": "web" 916 + }, 917 + "jeffery-av--44.jpg": { 918 + "focal": [ 919 + 50, 920 + 35 921 + ], 922 + "pois": [ 923 + { 924 + "t": "f", 925 + "box": [ 926 + 30, 927 + 15, 928 + 40, 929 + 40 930 + ] 931 + } 932 + ], 933 + "aspect": 0.667, 934 + "src": "headshots", 935 + "size": 304325, 936 + "tier": "web" 937 + }, 938 + "jeffery-av--45.jpg": { 939 + "focal": [ 940 + 50, 941 + 35 942 + ], 943 + "pois": [ 944 + { 945 + "t": "f", 946 + "box": [ 947 + 30, 948 + 15, 949 + 40, 950 + 40 951 + ] 952 + } 953 + ], 954 + "aspect": 0.667, 955 + "src": "headshots", 956 + "size": 340465, 957 + "tier": "web" 958 + }, 959 + "jeffery-av--46.jpg": { 960 + "focal": [ 961 + 50, 962 + 35 963 + ], 964 + "pois": [ 965 + { 966 + "t": "f", 967 + "box": [ 968 + 30, 969 + 15, 970 + 40, 971 + 40 972 + ] 973 + } 974 + ], 975 + "aspect": 0.667, 976 + "src": "headshots", 977 + "size": 338624, 978 + "tier": "web" 979 + }, 980 + "jeffery-av--47.jpg": { 981 + "focal": [ 982 + 50, 983 + 35 984 + ], 985 + "pois": [ 986 + { 987 + "t": "f", 988 + "box": [ 989 + 30, 990 + 15, 991 + 40, 992 + 40 993 + ] 994 + } 995 + ], 996 + "aspect": 0.667, 997 + "src": "headshots", 998 + "size": 339362, 999 + "tier": "web" 1000 + }, 1001 + "jeffery-av--48.jpg": { 1002 + "focal": [ 1003 + 50, 1004 + 35 1005 + ], 1006 + "pois": [ 1007 + { 1008 + "t": "f", 1009 + "box": [ 1010 + 30, 1011 + 15, 1012 + 40, 1013 + 40 1014 + ] 1015 + } 1016 + ], 1017 + "aspect": 0.667, 1018 + "src": "headshots", 1019 + "size": 345660, 1020 + "tier": "web" 1021 + }, 1022 + "jeffery-av--49.jpg": { 1023 + "focal": [ 1024 + 50, 1025 + 35 1026 + ], 1027 + "pois": [ 1028 + { 1029 + "t": "f", 1030 + "box": [ 1031 + 30, 1032 + 15, 1033 + 40, 1034 + 40 1035 + ] 1036 + } 1037 + ], 1038 + "aspect": 0.667, 1039 + "src": "headshots", 1040 + "size": 242741, 1041 + "tier": "web" 1042 + }, 1043 + "jeffery-av--50.jpg": { 1044 + "focal": [ 1045 + 50, 1046 + 35 1047 + ], 1048 + "pois": [ 1049 + { 1050 + "t": "f", 1051 + "box": [ 1052 + 30, 1053 + 15, 1054 + 40, 1055 + 40 1056 + ] 1057 + } 1058 + ], 1059 + "aspect": 0.667, 1060 + "src": "headshots", 1061 + "size": 244176, 1062 + "tier": "web" 1063 + }, 1064 + "jeffery-av--51.jpg": { 1065 + "focal": [ 1066 + 50, 1067 + 35 1068 + ], 1069 + "pois": [ 1070 + { 1071 + "t": "f", 1072 + "box": [ 1073 + 30, 1074 + 15, 1075 + 40, 1076 + 40 1077 + ] 1078 + } 1079 + ], 1080 + "aspect": 0.667, 1081 + "src": "headshots", 1082 + "size": 251330, 1083 + "tier": "web" 1084 + }, 1085 + "jeffery-av--52.jpg": { 1086 + "focal": [ 1087 + 50, 1088 + 35 1089 + ], 1090 + "pois": [ 1091 + { 1092 + "t": "f", 1093 + "box": [ 1094 + 30, 1095 + 15, 1096 + 40, 1097 + 40 1098 + ] 1099 + } 1100 + ], 1101 + "aspect": 0.667, 1102 + "src": "headshots", 1103 + "size": 254304, 1104 + "tier": "web" 1105 + }, 1106 + "jeffery-av--53.jpg": { 1107 + "focal": [ 1108 + 50, 1109 + 35 1110 + ], 1111 + "pois": [ 1112 + { 1113 + "t": "f", 1114 + "box": [ 1115 + 30, 1116 + 15, 1117 + 40, 1118 + 40 1119 + ] 1120 + } 1121 + ], 1122 + "aspect": 0.667, 1123 + "src": "headshots", 1124 + "size": 283319, 1125 + "tier": "web" 1126 + }, 1127 + "jeffery-av--54.jpg": { 1128 + "focal": [ 1129 + 50, 1130 + 35 1131 + ], 1132 + "pois": [ 1133 + { 1134 + "t": "f", 1135 + "box": [ 1136 + 30, 1137 + 15, 1138 + 40, 1139 + 40 1140 + ] 1141 + } 1142 + ], 1143 + "aspect": 0.667, 1144 + "src": "headshots", 1145 + "size": 246485, 1146 + "tier": "web" 1147 + }, 1148 + "jeffery-av--55.jpg": { 1149 + "focal": [ 1150 + 50, 1151 + 35 1152 + ], 1153 + "pois": [ 1154 + { 1155 + "t": "f", 1156 + "box": [ 1157 + 30, 1158 + 15, 1159 + 40, 1160 + 40 1161 + ] 1162 + } 1163 + ], 1164 + "aspect": 0.667, 1165 + "src": "headshots", 1166 + "size": 248833, 1167 + "tier": "web" 1168 + } 69 1169 } 70 1170 }, 71 1171 "masters": { ··· 74 1174 "key_includes_extension": true, 75 1175 "audited": "2026-04-28: aws s3 ls assets-aesthetic-computer/jeffreys/ — 38 masters found, 1:1 with candids/", 76 1176 "items": { 77 - "FullSizeRender.heic": {"candid_key":"FullSizeRender","size":516985}, 78 - "IMG_0260.heic": {"candid_key":"IMG_0260","size":1978771}, 79 - "IMG_0675.JPEG": {"candid_key":"IMG_0675","size":4743995}, 80 - "IMG_0686.heic": {"candid_key":"IMG_0686","size":1063196}, 81 - "IMG_0688.heic": {"candid_key":"IMG_0688","size":954060}, 82 - "IMG_0798.jpeg": {"candid_key":"IMG_0798","size":2332501}, 83 - "IMG_1111.heic": {"candid_key":"IMG_1111","size":1818360}, 84 - "IMG_1577.heic": {"candid_key":"IMG_1577","size":3453048}, 85 - "IMG_1616.heic": {"candid_key":"IMG_1616","size":2838527}, 86 - "IMG_1737.heic": {"candid_key":"IMG_1737","size":1830876}, 87 - "IMG_1809.heic": {"candid_key":"IMG_1809","size":4224096}, 88 - "IMG_2124.jpeg": {"candid_key":"IMG_2124","size":1332909}, 89 - "IMG_2208.heic": {"candid_key":"IMG_2208","size":1569939}, 90 - "IMG_2280.heic": {"candid_key":"IMG_2280","size":876871}, 91 - "IMG_2498.heic": {"candid_key":"IMG_2498","size":2148839}, 92 - "IMG_2630.HEIC": {"candid_key":"IMG_2630","size":1490103}, 93 - "IMG_2658.HEIC": {"candid_key":"IMG_2658","size":1608793}, 94 - "IMG_2668.heic": {"candid_key":"IMG_2668","size":1195972}, 95 - "IMG_2905.heic": {"candid_key":"IMG_2905","size":2304901}, 96 - "IMG_2913.heic": {"candid_key":"IMG_2913","size":803125}, 97 - "IMG_3017.heic": {"candid_key":"IMG_3017","size":2562824}, 98 - "IMG_3234.heic": {"candid_key":"IMG_3234","size":806715}, 99 - "IMG_4281.jpeg": {"candid_key":"IMG_4281","size":2303766}, 100 - "IMG_4312.jpeg": {"candid_key":"IMG_4312","size":2657700}, 101 - "IMG_4606.heic": {"candid_key":"IMG_4606","size":970231}, 102 - "IMG_4894.heic": {"candid_key":"IMG_4894","size":1428189}, 103 - "IMG_4997.heic": {"candid_key":"IMG_4997","size":1804730}, 104 - "IMG_5043.HEIC": {"candid_key":"IMG_5043","size":1156692}, 105 - "IMG_5050.heic": {"candid_key":"IMG_5050","size":1131254}, 106 - "IMG_5272.jpeg": {"candid_key":"IMG_5272","size":1978886}, 107 - "IMG_5644.heic": {"candid_key":"IMG_5644","size":1366318}, 108 - "IMG_6342.jpeg": {"candid_key":"IMG_6342","size":1844946}, 109 - "IMG_6367.HEIC": {"candid_key":"IMG_6367","size":1528443}, 110 - "IMG_6435.HEIC": {"candid_key":"IMG_6435","size":2105174}, 111 - "IMG_8080.HEIC": {"candid_key":"IMG_8080","size":1420859}, 112 - "IMG_8188.heic": {"candid_key":"IMG_8188","size":903213}, 113 - "IMG_8989.HEIC": {"candid_key":"IMG_8989","size":2106687}, 114 - "IMG_9795.heic": {"candid_key":"IMG_9795","size":2240240} 1177 + "FullSizeRender.heic": { 1178 + "candid_key": "FullSizeRender", 1179 + "size": 516985 1180 + }, 1181 + "IMG_0260.heic": { 1182 + "candid_key": "IMG_0260", 1183 + "size": 1978771 1184 + }, 1185 + "IMG_0675.JPEG": { 1186 + "candid_key": "IMG_0675", 1187 + "size": 4743995 1188 + }, 1189 + "IMG_0686.heic": { 1190 + "candid_key": "IMG_0686", 1191 + "size": 1063196 1192 + }, 1193 + "IMG_0688.heic": { 1194 + "candid_key": "IMG_0688", 1195 + "size": 954060 1196 + }, 1197 + "IMG_0798.jpeg": { 1198 + "candid_key": "IMG_0798", 1199 + "size": 2332501 1200 + }, 1201 + "IMG_1111.heic": { 1202 + "candid_key": "IMG_1111", 1203 + "size": 1818360 1204 + }, 1205 + "IMG_1577.heic": { 1206 + "candid_key": "IMG_1577", 1207 + "size": 3453048 1208 + }, 1209 + "IMG_1616.heic": { 1210 + "candid_key": "IMG_1616", 1211 + "size": 2838527 1212 + }, 1213 + "IMG_1737.heic": { 1214 + "candid_key": "IMG_1737", 1215 + "size": 1830876 1216 + }, 1217 + "IMG_1809.heic": { 1218 + "candid_key": "IMG_1809", 1219 + "size": 4224096 1220 + }, 1221 + "IMG_2124.jpeg": { 1222 + "candid_key": "IMG_2124", 1223 + "size": 1332909 1224 + }, 1225 + "IMG_2208.heic": { 1226 + "candid_key": "IMG_2208", 1227 + "size": 1569939 1228 + }, 1229 + "IMG_2280.heic": { 1230 + "candid_key": "IMG_2280", 1231 + "size": 876871 1232 + }, 1233 + "IMG_2498.heic": { 1234 + "candid_key": "IMG_2498", 1235 + "size": 2148839 1236 + }, 1237 + "IMG_2630.HEIC": { 1238 + "candid_key": "IMG_2630", 1239 + "size": 1490103 1240 + }, 1241 + "IMG_2658.HEIC": { 1242 + "candid_key": "IMG_2658", 1243 + "size": 1608793 1244 + }, 1245 + "IMG_2668.heic": { 1246 + "candid_key": "IMG_2668", 1247 + "size": 1195972 1248 + }, 1249 + "IMG_2905.heic": { 1250 + "candid_key": "IMG_2905", 1251 + "size": 2304901 1252 + }, 1253 + "IMG_2913.heic": { 1254 + "candid_key": "IMG_2913", 1255 + "size": 803125 1256 + }, 1257 + "IMG_3017.heic": { 1258 + "candid_key": "IMG_3017", 1259 + "size": 2562824 1260 + }, 1261 + "IMG_3234.heic": { 1262 + "candid_key": "IMG_3234", 1263 + "size": 806715 1264 + }, 1265 + "IMG_4281.jpeg": { 1266 + "candid_key": "IMG_4281", 1267 + "size": 2303766 1268 + }, 1269 + "IMG_4312.jpeg": { 1270 + "candid_key": "IMG_4312", 1271 + "size": 2657700 1272 + }, 1273 + "IMG_4606.heic": { 1274 + "candid_key": "IMG_4606", 1275 + "size": 970231 1276 + }, 1277 + "IMG_4894.heic": { 1278 + "candid_key": "IMG_4894", 1279 + "size": 1428189 1280 + }, 1281 + "IMG_4997.heic": { 1282 + "candid_key": "IMG_4997", 1283 + "size": 1804730 1284 + }, 1285 + "IMG_5043.HEIC": { 1286 + "candid_key": "IMG_5043", 1287 + "size": 1156692 1288 + }, 1289 + "IMG_5050.heic": { 1290 + "candid_key": "IMG_5050", 1291 + "size": 1131254 1292 + }, 1293 + "IMG_5272.jpeg": { 1294 + "candid_key": "IMG_5272", 1295 + "size": 1978886 1296 + }, 1297 + "IMG_5644.heic": { 1298 + "candid_key": "IMG_5644", 1299 + "size": 1366318 1300 + }, 1301 + "IMG_6342.jpeg": { 1302 + "candid_key": "IMG_6342", 1303 + "size": 1844946 1304 + }, 1305 + "IMG_6367.HEIC": { 1306 + "candid_key": "IMG_6367", 1307 + "size": 1528443 1308 + }, 1309 + "IMG_6435.HEIC": { 1310 + "candid_key": "IMG_6435", 1311 + "size": 2105174 1312 + }, 1313 + "IMG_8080.HEIC": { 1314 + "candid_key": "IMG_8080", 1315 + "size": 1420859 1316 + }, 1317 + "IMG_8188.heic": { 1318 + "candid_key": "IMG_8188", 1319 + "size": 903213 1320 + }, 1321 + "IMG_8989.HEIC": { 1322 + "candid_key": "IMG_8989", 1323 + "size": 2106687 1324 + }, 1325 + "IMG_9795.heic": { 1326 + "candid_key": "IMG_9795", 1327 + "size": 2240240 1328 + } 115 1329 } 116 1330 }, 117 1331 "candids": { ··· 120 1334 "key_includes_extension": false, 121 1335 "audited": "2026-04-28: aws s3 ls confirmed all 38 entries match bucket; no orphans, no uncataloged. All have HEIC/JPEG masters at jeffreys/{name}.<ext> — see masters bucket.", 122 1336 "items": { 123 - "FullSizeRender": {"focal":[38.5,34.8],"pois":[{"t":"f","box":[33.8,30,9.5,9.7]},{"t":"b","box":[59.5,63.9,20.2,12.4]},{"t":"b","box":[87.6,89.3,8.4,5.2]}],"aspect":0.75,"size":829094,"master":"FullSizeRender.heic","master_size":516985}, 124 - "IMG_0260": {"focal":[41,38.1],"pois":[{"t":"f","box":[32.3,29.3,17.4,17.5]},{"t":"b","box":[15.9,50,5.9,3.6]}],"aspect":0.75,"size":1492041,"master":"IMG_0260.heic","master_size":1978771}, 125 - "IMG_0675": {"focal":[54,37.2],"pois":[{"t":"f","box":[47.8,31.8,12.3,10.9]}],"aspect":0.667,"size":4743995,"master":"IMG_0675.JPEG","master_size":4743995}, 126 - "IMG_0686": {"focal":[57.4,25.4],"pois":[{"t":"b","box":[53.6,23.1,7.5,4.6]},{"t":"b","box":[54.1,47.2,6.9,4.2]}],"aspect":0.75,"size":1145284,"master":"IMG_0686.heic","master_size":1063196}, 127 - "IMG_0688": {"focal":[72.3,63],"pois":[{"t":"b","box":[69.1,59.3,6.5,7.4]},{"t":"b","box":[39.4,46.8,4.1,4.6]}],"aspect":0.563,"size":1035484,"master":"IMG_0688.heic","master_size":954060}, 128 - "IMG_0798": {"focal":[46.6,6.4],"pois":[{"t":"b","box":[44.8,5.3,3.7,2.3]}],"aspect":0.75,"size":2332501,"master":"IMG_0798.jpeg","master_size":2332501}, 129 - "IMG_1111": {"focal":[50,50],"pois":[],"aspect":0.562,"size":1412575,"master":"IMG_1111.heic","master_size":1818360}, 130 - "IMG_1577": {"focal":[37,70.6],"pois":[{"t":"b","box":[35.5,69.7,2.8,1.7]}],"aspect":0.75,"size":3285470,"master":"IMG_1577.heic","master_size":3453048}, 131 - "IMG_1616": {"focal":[47.8,51.7],"pois":[{"t":"f","box":[42.5,45.2,10.7,13]},{"t":"b","box":[14.1,68,12.4,7.6]}],"aspect":0.75,"size":2863682,"master":"IMG_1616.heic","master_size":2838527}, 132 - "IMG_1737": {"focal":[50,50],"pois":[],"aspect":0.75,"size":1539214,"master":"IMG_1737.heic","master_size":1830876}, 133 - "IMG_1809": {"focal":[48,53.2],"pois":[{"t":"b","box":[45,51.4,6.1,3.7]}],"aspect":0.75,"size":3742829,"master":"IMG_1809.heic","master_size":4224096}, 134 - "IMG_2124": {"focal":[54.8,35.8],"pois":[{"t":"f","box":[49.7,31.8,10.1,7.9]},{"t":"b","box":[3.1,48.8,32,14.8]}],"aspect":0.563,"size":1332909,"master":"IMG_2124.jpeg","master_size":1332909}, 135 - "IMG_2208": {"focal":[40,21.8],"pois":[{"t":"f","box":[33.6,14.5,12.8,14.6]},{"t":"b","box":[23.4,5.1,10.6,6.5]}],"aspect":0.75,"size":1788410,"master":"IMG_2208.heic","master_size":1569939}, 136 - "IMG_2280": {"focal":[57.4,33.4],"pois":[{"t":"f","box":[42.5,16.4,29.8,34]}],"aspect":0.8,"size":1016167,"master":"IMG_2280.heic","master_size":876871}, 137 - "IMG_2498": {"focal":[21.8,61.4],"pois":[{"t":"b","box":[12.6,55.8,18.3,11.2]}],"aspect":0.75,"size":1710740,"master":"IMG_2498.heic","master_size":2148839}, 138 - "IMG_2630": {"focal":[20.3,59.6],"pois":[{"t":"b","box":[6.8,44.8,27,29.4]},{"t":"b","box":[30.7,44,8.6,22.9]}],"aspect":1.333,"size":1452701,"master":"IMG_2630.HEIC","master_size":1490103}, 139 - "IMG_2658": {"focal":[46.6,43.7],"pois":[{"t":"f","box":[39.2,34.5,14.8,18.4]},{"t":"b","box":[58.5,68.9,8.4,5.2]}],"aspect":0.75,"size":1992798,"master":"IMG_2658.HEIC","master_size":1608793}, 140 - "IMG_2668": {"focal":[39.4,24.5],"pois":[{"t":"b","box":[30.4,19,18,11]},{"t":"b","box":[40.7,68.8,8.6,5.3]}],"aspect":0.75,"size":1365145,"master":"IMG_2668.heic","master_size":1195972}, 141 - "IMG_2905": {"focal":[47.5,40.1],"pois":[{"t":"b","box":[28.3,28.4,38.3,23.5]}],"aspect":0.75,"size":2497398,"master":"IMG_2905.heic","master_size":2304901}, 142 - "IMG_2913": {"focal":[69.9,19.9],"pois":[{"t":"b","box":[67.7,18.5,4.5,2.7]},{"t":"b","box":[87,36.8,4.1,2.5]}],"aspect":0.75,"size":1042326,"master":"IMG_2913.heic","master_size":803125}, 143 - "IMG_3017": {"focal":[37.6,81.5],"pois":[{"t":"b","box":[31.7,77.9,11.8,7.3]}],"aspect":0.75,"size":2446374,"master":"IMG_3017.heic","master_size":2562824}, 144 - "IMG_3234": {"focal":[42.4,48.8],"pois":[{"t":"f","box":[36.9,43.2,11.1,11.3]},{"t":"b","box":[27.1,34.8,15.4,9.4]}],"aspect":0.75,"size":1015178,"master":"IMG_3234.heic","master_size":806715}, 145 - "IMG_4281": {"focal":[50.2,38.1],"pois":[{"t":"f","box":[44.5,31.3,11.4,13.6]},{"t":"b","box":[70.5,59.8,8.4,12.6]}],"aspect":0.75,"size":2303766,"master":"IMG_4281.jpeg","master_size":2303766}, 146 - "IMG_4312": {"focal":[4.1,28.1],"pois":[{"t":"f","box":[0,18.6,8.2,19]},{"t":"b","box":[32.5,63.2,3.2,2]}],"aspect":0.75,"size":2657700,"master":"IMG_4312.jpeg","master_size":2657700}, 147 - "IMG_4606": {"focal":[53.1,56.5],"pois":[{"t":"f","box":[28.6,31.6,48.9,49.8]}],"aspect":0.75,"size":1044546,"master":"IMG_4606.heic","master_size":970231}, 148 - "IMG_4894": {"focal":[48,73.6],"pois":[{"t":"b","box":[44.4,71.4,7.2,4.4]},{"t":"b","box":[71.8,49.7,4.6,6.8]}],"aspect":0.75,"size":1564246,"master":"IMG_4894.heic","master_size":1428189}, 149 - "IMG_4997": {"focal":[54,55.8],"pois":[{"t":"b","box":[52.3,53.2,3.4,5.1]}],"aspect":0.75,"size":2173587,"master":"IMG_4997.heic","master_size":1804730}, 150 - "IMG_5043": {"focal":[40.8,43.4],"pois":[{"t":"f","box":[30.8,32.3,20.1,22.1]},{"t":"b","box":[31.9,69.9,4.8,3]}],"aspect":0.75,"size":1239460,"master":"IMG_5043.HEIC","master_size":1156692}, 151 - "IMG_5050": {"focal":[65.6,53.7],"pois":[{"t":"f","box":[60.1,48.3,10.9,10.8]},{"t":"b","box":[21.9,43,16.5,10.1]}],"aspect":0.75,"size":1515666,"master":"IMG_5050.heic","master_size":1131254}, 152 - "IMG_5272": {"focal":[62.3,53.4],"pois":[{"t":"b","box":[61,51.3,2.7,4.1]}],"aspect":0.75,"size":1978886,"master":"IMG_5272.jpeg","master_size":1978886}, 153 - "IMG_5644": {"focal":[49,17.8],"pois":[{"t":"f","box":[44.1,13.9,9.8,8]},{"t":"b","box":[32.7,19.9,11,5.1]}],"aspect":0.563,"size":1380329,"master":"IMG_5644.heic","master_size":1366318}, 154 - "IMG_6342": {"focal":[62.3,28],"pois":[{"t":"f","box":[55.1,18.5,14.5,18.9]},{"t":"b","box":[10.7,69.4,23.7,14.6]}],"aspect":0.75,"size":1844946,"master":"IMG_6342.jpeg","master_size":1844946}, 155 - "IMG_6367": {"focal":[44.1,34.3],"pois":[{"t":"f","box":[37.8,28.7,12.7,11.1]},{"t":"b","box":[60.4,4.8,3.6,2.2]}],"aspect":0.75,"size":1416580,"master":"IMG_6367.HEIC","master_size":1528443}, 156 - "IMG_6435": {"focal":[48,37.8],"pois":[{"t":"f","box":[37.9,27.2,20.2,21.1]},{"t":"b","box":[35.9,86,4.8,2.9]}],"aspect":0.75,"size":1604594,"master":"IMG_6435.HEIC","master_size":2105174}, 157 - "IMG_8080": {"focal":[42.6,27.7],"pois":[{"t":"f","box":[36,20.8,13.1,13.9]},{"t":"b","box":[15.9,8.3,66.6,40.9]}],"aspect":0.75,"size":1580558,"master":"IMG_8080.HEIC","master_size":1420859}, 158 - "IMG_8188": {"focal":[48.9,33.9],"pois":[{"t":"f","box":[37.9,24,21.8,19.9]},{"t":"b","box":[35,88.1,9.8,6]}],"aspect":0.75,"size":968035,"master":"IMG_8188.heic","master_size":903213}, 159 - "IMG_8989": {"focal":[79.2,86.1],"pois":[{"t":"b","box":[76.7,84.6,5,3.1]}],"aspect":0.75,"size":1830983,"master":"IMG_8989.HEIC","master_size":2106687}, 160 - "IMG_9795": {"focal":[31.2,22],"pois":[{"t":"f","box":[23.8,15.6,14.8,12.9]},{"t":"b","box":[21.3,51.5,4.3,2]}],"aspect":0.562,"size":2033875,"master":"IMG_9795.heic","master_size":2240240} 1337 + "FullSizeRender": { 1338 + "focal": [ 1339 + 38.5, 1340 + 34.8 1341 + ], 1342 + "pois": [ 1343 + { 1344 + "t": "f", 1345 + "box": [ 1346 + 33.8, 1347 + 30, 1348 + 9.5, 1349 + 9.7 1350 + ] 1351 + }, 1352 + { 1353 + "t": "b", 1354 + "box": [ 1355 + 59.5, 1356 + 63.9, 1357 + 20.2, 1358 + 12.4 1359 + ] 1360 + }, 1361 + { 1362 + "t": "b", 1363 + "box": [ 1364 + 87.6, 1365 + 89.3, 1366 + 8.4, 1367 + 5.2 1368 + ] 1369 + } 1370 + ], 1371 + "aspect": 0.75, 1372 + "size": 829094, 1373 + "master": "FullSizeRender.heic", 1374 + "master_size": 516985 1375 + }, 1376 + "IMG_0260": { 1377 + "focal": [ 1378 + 41, 1379 + 38.1 1380 + ], 1381 + "pois": [ 1382 + { 1383 + "t": "f", 1384 + "box": [ 1385 + 32.3, 1386 + 29.3, 1387 + 17.4, 1388 + 17.5 1389 + ] 1390 + }, 1391 + { 1392 + "t": "b", 1393 + "box": [ 1394 + 15.9, 1395 + 50, 1396 + 5.9, 1397 + 3.6 1398 + ] 1399 + } 1400 + ], 1401 + "aspect": 0.75, 1402 + "size": 1492041, 1403 + "master": "IMG_0260.heic", 1404 + "master_size": 1978771 1405 + }, 1406 + "IMG_0675": { 1407 + "focal": [ 1408 + 54, 1409 + 37.2 1410 + ], 1411 + "pois": [ 1412 + { 1413 + "t": "f", 1414 + "box": [ 1415 + 47.8, 1416 + 31.8, 1417 + 12.3, 1418 + 10.9 1419 + ] 1420 + } 1421 + ], 1422 + "aspect": 0.667, 1423 + "size": 4743995, 1424 + "master": "IMG_0675.JPEG", 1425 + "master_size": 4743995 1426 + }, 1427 + "IMG_0686": { 1428 + "focal": [ 1429 + 57.4, 1430 + 25.4 1431 + ], 1432 + "pois": [ 1433 + { 1434 + "t": "b", 1435 + "box": [ 1436 + 53.6, 1437 + 23.1, 1438 + 7.5, 1439 + 4.6 1440 + ] 1441 + }, 1442 + { 1443 + "t": "b", 1444 + "box": [ 1445 + 54.1, 1446 + 47.2, 1447 + 6.9, 1448 + 4.2 1449 + ] 1450 + } 1451 + ], 1452 + "aspect": 0.75, 1453 + "size": 1145284, 1454 + "master": "IMG_0686.heic", 1455 + "master_size": 1063196 1456 + }, 1457 + "IMG_0688": { 1458 + "focal": [ 1459 + 72.3, 1460 + 63 1461 + ], 1462 + "pois": [ 1463 + { 1464 + "t": "b", 1465 + "box": [ 1466 + 69.1, 1467 + 59.3, 1468 + 6.5, 1469 + 7.4 1470 + ] 1471 + }, 1472 + { 1473 + "t": "b", 1474 + "box": [ 1475 + 39.4, 1476 + 46.8, 1477 + 4.1, 1478 + 4.6 1479 + ] 1480 + } 1481 + ], 1482 + "aspect": 0.563, 1483 + "size": 1035484, 1484 + "master": "IMG_0688.heic", 1485 + "master_size": 954060 1486 + }, 1487 + "IMG_0798": { 1488 + "focal": [ 1489 + 46.6, 1490 + 6.4 1491 + ], 1492 + "pois": [ 1493 + { 1494 + "t": "b", 1495 + "box": [ 1496 + 44.8, 1497 + 5.3, 1498 + 3.7, 1499 + 2.3 1500 + ] 1501 + } 1502 + ], 1503 + "aspect": 0.75, 1504 + "size": 2332501, 1505 + "master": "IMG_0798.jpeg", 1506 + "master_size": 2332501 1507 + }, 1508 + "IMG_1111": { 1509 + "focal": [ 1510 + 50, 1511 + 50 1512 + ], 1513 + "pois": [], 1514 + "aspect": 0.562, 1515 + "size": 1412575, 1516 + "master": "IMG_1111.heic", 1517 + "master_size": 1818360 1518 + }, 1519 + "IMG_1577": { 1520 + "focal": [ 1521 + 37, 1522 + 70.6 1523 + ], 1524 + "pois": [ 1525 + { 1526 + "t": "b", 1527 + "box": [ 1528 + 35.5, 1529 + 69.7, 1530 + 2.8, 1531 + 1.7 1532 + ] 1533 + } 1534 + ], 1535 + "aspect": 0.75, 1536 + "size": 3285470, 1537 + "master": "IMG_1577.heic", 1538 + "master_size": 3453048 1539 + }, 1540 + "IMG_1616": { 1541 + "focal": [ 1542 + 47.8, 1543 + 51.7 1544 + ], 1545 + "pois": [ 1546 + { 1547 + "t": "f", 1548 + "box": [ 1549 + 42.5, 1550 + 45.2, 1551 + 10.7, 1552 + 13 1553 + ] 1554 + }, 1555 + { 1556 + "t": "b", 1557 + "box": [ 1558 + 14.1, 1559 + 68, 1560 + 12.4, 1561 + 7.6 1562 + ] 1563 + } 1564 + ], 1565 + "aspect": 0.75, 1566 + "size": 2863682, 1567 + "master": "IMG_1616.heic", 1568 + "master_size": 2838527 1569 + }, 1570 + "IMG_1737": { 1571 + "focal": [ 1572 + 50, 1573 + 50 1574 + ], 1575 + "pois": [], 1576 + "aspect": 0.75, 1577 + "size": 1539214, 1578 + "master": "IMG_1737.heic", 1579 + "master_size": 1830876 1580 + }, 1581 + "IMG_1809": { 1582 + "focal": [ 1583 + 48, 1584 + 53.2 1585 + ], 1586 + "pois": [ 1587 + { 1588 + "t": "b", 1589 + "box": [ 1590 + 45, 1591 + 51.4, 1592 + 6.1, 1593 + 3.7 1594 + ] 1595 + } 1596 + ], 1597 + "aspect": 0.75, 1598 + "size": 3742829, 1599 + "master": "IMG_1809.heic", 1600 + "master_size": 4224096 1601 + }, 1602 + "IMG_2124": { 1603 + "focal": [ 1604 + 54.8, 1605 + 35.8 1606 + ], 1607 + "pois": [ 1608 + { 1609 + "t": "f", 1610 + "box": [ 1611 + 49.7, 1612 + 31.8, 1613 + 10.1, 1614 + 7.9 1615 + ] 1616 + }, 1617 + { 1618 + "t": "b", 1619 + "box": [ 1620 + 3.1, 1621 + 48.8, 1622 + 32, 1623 + 14.8 1624 + ] 1625 + } 1626 + ], 1627 + "aspect": 0.563, 1628 + "size": 1332909, 1629 + "master": "IMG_2124.jpeg", 1630 + "master_size": 1332909 1631 + }, 1632 + "IMG_2208": { 1633 + "focal": [ 1634 + 40, 1635 + 21.8 1636 + ], 1637 + "pois": [ 1638 + { 1639 + "t": "f", 1640 + "box": [ 1641 + 33.6, 1642 + 14.5, 1643 + 12.8, 1644 + 14.6 1645 + ] 1646 + }, 1647 + { 1648 + "t": "b", 1649 + "box": [ 1650 + 23.4, 1651 + 5.1, 1652 + 10.6, 1653 + 6.5 1654 + ] 1655 + } 1656 + ], 1657 + "aspect": 0.75, 1658 + "size": 1788410, 1659 + "master": "IMG_2208.heic", 1660 + "master_size": 1569939 1661 + }, 1662 + "IMG_2280": { 1663 + "focal": [ 1664 + 57.4, 1665 + 33.4 1666 + ], 1667 + "pois": [ 1668 + { 1669 + "t": "f", 1670 + "box": [ 1671 + 42.5, 1672 + 16.4, 1673 + 29.8, 1674 + 34 1675 + ] 1676 + } 1677 + ], 1678 + "aspect": 0.8, 1679 + "size": 1016167, 1680 + "master": "IMG_2280.heic", 1681 + "master_size": 876871 1682 + }, 1683 + "IMG_2498": { 1684 + "focal": [ 1685 + 21.8, 1686 + 61.4 1687 + ], 1688 + "pois": [ 1689 + { 1690 + "t": "b", 1691 + "box": [ 1692 + 12.6, 1693 + 55.8, 1694 + 18.3, 1695 + 11.2 1696 + ] 1697 + } 1698 + ], 1699 + "aspect": 0.75, 1700 + "size": 1710740, 1701 + "master": "IMG_2498.heic", 1702 + "master_size": 2148839 1703 + }, 1704 + "IMG_2630": { 1705 + "focal": [ 1706 + 20.3, 1707 + 59.6 1708 + ], 1709 + "pois": [ 1710 + { 1711 + "t": "b", 1712 + "box": [ 1713 + 6.8, 1714 + 44.8, 1715 + 27, 1716 + 29.4 1717 + ] 1718 + }, 1719 + { 1720 + "t": "b", 1721 + "box": [ 1722 + 30.7, 1723 + 44, 1724 + 8.6, 1725 + 22.9 1726 + ] 1727 + } 1728 + ], 1729 + "aspect": 1.333, 1730 + "size": 1452701, 1731 + "master": "IMG_2630.HEIC", 1732 + "master_size": 1490103 1733 + }, 1734 + "IMG_2658": { 1735 + "focal": [ 1736 + 46.6, 1737 + 43.7 1738 + ], 1739 + "pois": [ 1740 + { 1741 + "t": "f", 1742 + "box": [ 1743 + 39.2, 1744 + 34.5, 1745 + 14.8, 1746 + 18.4 1747 + ] 1748 + }, 1749 + { 1750 + "t": "b", 1751 + "box": [ 1752 + 58.5, 1753 + 68.9, 1754 + 8.4, 1755 + 5.2 1756 + ] 1757 + } 1758 + ], 1759 + "aspect": 0.75, 1760 + "size": 1992798, 1761 + "master": "IMG_2658.HEIC", 1762 + "master_size": 1608793 1763 + }, 1764 + "IMG_2668": { 1765 + "focal": [ 1766 + 39.4, 1767 + 24.5 1768 + ], 1769 + "pois": [ 1770 + { 1771 + "t": "b", 1772 + "box": [ 1773 + 30.4, 1774 + 19, 1775 + 18, 1776 + 11 1777 + ] 1778 + }, 1779 + { 1780 + "t": "b", 1781 + "box": [ 1782 + 40.7, 1783 + 68.8, 1784 + 8.6, 1785 + 5.3 1786 + ] 1787 + } 1788 + ], 1789 + "aspect": 0.75, 1790 + "size": 1365145, 1791 + "master": "IMG_2668.heic", 1792 + "master_size": 1195972 1793 + }, 1794 + "IMG_2905": { 1795 + "focal": [ 1796 + 47.5, 1797 + 40.1 1798 + ], 1799 + "pois": [ 1800 + { 1801 + "t": "b", 1802 + "box": [ 1803 + 28.3, 1804 + 28.4, 1805 + 38.3, 1806 + 23.5 1807 + ] 1808 + } 1809 + ], 1810 + "aspect": 0.75, 1811 + "size": 2497398, 1812 + "master": "IMG_2905.heic", 1813 + "master_size": 2304901 1814 + }, 1815 + "IMG_2913": { 1816 + "focal": [ 1817 + 69.9, 1818 + 19.9 1819 + ], 1820 + "pois": [ 1821 + { 1822 + "t": "b", 1823 + "box": [ 1824 + 67.7, 1825 + 18.5, 1826 + 4.5, 1827 + 2.7 1828 + ] 1829 + }, 1830 + { 1831 + "t": "b", 1832 + "box": [ 1833 + 87, 1834 + 36.8, 1835 + 4.1, 1836 + 2.5 1837 + ] 1838 + } 1839 + ], 1840 + "aspect": 0.75, 1841 + "size": 1042326, 1842 + "master": "IMG_2913.heic", 1843 + "master_size": 803125 1844 + }, 1845 + "IMG_3017": { 1846 + "focal": [ 1847 + 37.6, 1848 + 81.5 1849 + ], 1850 + "pois": [ 1851 + { 1852 + "t": "b", 1853 + "box": [ 1854 + 31.7, 1855 + 77.9, 1856 + 11.8, 1857 + 7.3 1858 + ] 1859 + } 1860 + ], 1861 + "aspect": 0.75, 1862 + "size": 2446374, 1863 + "master": "IMG_3017.heic", 1864 + "master_size": 2562824 1865 + }, 1866 + "IMG_3234": { 1867 + "focal": [ 1868 + 42.4, 1869 + 48.8 1870 + ], 1871 + "pois": [ 1872 + { 1873 + "t": "f", 1874 + "box": [ 1875 + 36.9, 1876 + 43.2, 1877 + 11.1, 1878 + 11.3 1879 + ] 1880 + }, 1881 + { 1882 + "t": "b", 1883 + "box": [ 1884 + 27.1, 1885 + 34.8, 1886 + 15.4, 1887 + 9.4 1888 + ] 1889 + } 1890 + ], 1891 + "aspect": 0.75, 1892 + "size": 1015178, 1893 + "master": "IMG_3234.heic", 1894 + "master_size": 806715 1895 + }, 1896 + "IMG_4281": { 1897 + "focal": [ 1898 + 50.2, 1899 + 38.1 1900 + ], 1901 + "pois": [ 1902 + { 1903 + "t": "f", 1904 + "box": [ 1905 + 44.5, 1906 + 31.3, 1907 + 11.4, 1908 + 13.6 1909 + ] 1910 + }, 1911 + { 1912 + "t": "b", 1913 + "box": [ 1914 + 70.5, 1915 + 59.8, 1916 + 8.4, 1917 + 12.6 1918 + ] 1919 + } 1920 + ], 1921 + "aspect": 0.75, 1922 + "size": 2303766, 1923 + "master": "IMG_4281.jpeg", 1924 + "master_size": 2303766 1925 + }, 1926 + "IMG_4312": { 1927 + "focal": [ 1928 + 4.1, 1929 + 28.1 1930 + ], 1931 + "pois": [ 1932 + { 1933 + "t": "f", 1934 + "box": [ 1935 + 0, 1936 + 18.6, 1937 + 8.2, 1938 + 19 1939 + ] 1940 + }, 1941 + { 1942 + "t": "b", 1943 + "box": [ 1944 + 32.5, 1945 + 63.2, 1946 + 3.2, 1947 + 2 1948 + ] 1949 + } 1950 + ], 1951 + "aspect": 0.75, 1952 + "size": 2657700, 1953 + "master": "IMG_4312.jpeg", 1954 + "master_size": 2657700 1955 + }, 1956 + "IMG_4606": { 1957 + "focal": [ 1958 + 53.1, 1959 + 56.5 1960 + ], 1961 + "pois": [ 1962 + { 1963 + "t": "f", 1964 + "box": [ 1965 + 28.6, 1966 + 31.6, 1967 + 48.9, 1968 + 49.8 1969 + ] 1970 + } 1971 + ], 1972 + "aspect": 0.75, 1973 + "size": 1044546, 1974 + "master": "IMG_4606.heic", 1975 + "master_size": 970231 1976 + }, 1977 + "IMG_4894": { 1978 + "focal": [ 1979 + 48, 1980 + 73.6 1981 + ], 1982 + "pois": [ 1983 + { 1984 + "t": "b", 1985 + "box": [ 1986 + 44.4, 1987 + 71.4, 1988 + 7.2, 1989 + 4.4 1990 + ] 1991 + }, 1992 + { 1993 + "t": "b", 1994 + "box": [ 1995 + 71.8, 1996 + 49.7, 1997 + 4.6, 1998 + 6.8 1999 + ] 2000 + } 2001 + ], 2002 + "aspect": 0.75, 2003 + "size": 1564246, 2004 + "master": "IMG_4894.heic", 2005 + "master_size": 1428189 2006 + }, 2007 + "IMG_4997": { 2008 + "focal": [ 2009 + 54, 2010 + 55.8 2011 + ], 2012 + "pois": [ 2013 + { 2014 + "t": "b", 2015 + "box": [ 2016 + 52.3, 2017 + 53.2, 2018 + 3.4, 2019 + 5.1 2020 + ] 2021 + } 2022 + ], 2023 + "aspect": 0.75, 2024 + "size": 2173587, 2025 + "master": "IMG_4997.heic", 2026 + "master_size": 1804730 2027 + }, 2028 + "IMG_5043": { 2029 + "focal": [ 2030 + 40.8, 2031 + 43.4 2032 + ], 2033 + "pois": [ 2034 + { 2035 + "t": "f", 2036 + "box": [ 2037 + 30.8, 2038 + 32.3, 2039 + 20.1, 2040 + 22.1 2041 + ] 2042 + }, 2043 + { 2044 + "t": "b", 2045 + "box": [ 2046 + 31.9, 2047 + 69.9, 2048 + 4.8, 2049 + 3 2050 + ] 2051 + } 2052 + ], 2053 + "aspect": 0.75, 2054 + "size": 1239460, 2055 + "master": "IMG_5043.HEIC", 2056 + "master_size": 1156692 2057 + }, 2058 + "IMG_5050": { 2059 + "focal": [ 2060 + 65.6, 2061 + 53.7 2062 + ], 2063 + "pois": [ 2064 + { 2065 + "t": "f", 2066 + "box": [ 2067 + 60.1, 2068 + 48.3, 2069 + 10.9, 2070 + 10.8 2071 + ] 2072 + }, 2073 + { 2074 + "t": "b", 2075 + "box": [ 2076 + 21.9, 2077 + 43, 2078 + 16.5, 2079 + 10.1 2080 + ] 2081 + } 2082 + ], 2083 + "aspect": 0.75, 2084 + "size": 1515666, 2085 + "master": "IMG_5050.heic", 2086 + "master_size": 1131254 2087 + }, 2088 + "IMG_5272": { 2089 + "focal": [ 2090 + 62.3, 2091 + 53.4 2092 + ], 2093 + "pois": [ 2094 + { 2095 + "t": "b", 2096 + "box": [ 2097 + 61, 2098 + 51.3, 2099 + 2.7, 2100 + 4.1 2101 + ] 2102 + } 2103 + ], 2104 + "aspect": 0.75, 2105 + "size": 1978886, 2106 + "master": "IMG_5272.jpeg", 2107 + "master_size": 1978886 2108 + }, 2109 + "IMG_5644": { 2110 + "focal": [ 2111 + 49, 2112 + 17.8 2113 + ], 2114 + "pois": [ 2115 + { 2116 + "t": "f", 2117 + "box": [ 2118 + 44.1, 2119 + 13.9, 2120 + 9.8, 2121 + 8 2122 + ] 2123 + }, 2124 + { 2125 + "t": "b", 2126 + "box": [ 2127 + 32.7, 2128 + 19.9, 2129 + 11, 2130 + 5.1 2131 + ] 2132 + } 2133 + ], 2134 + "aspect": 0.563, 2135 + "size": 1380329, 2136 + "master": "IMG_5644.heic", 2137 + "master_size": 1366318 2138 + }, 2139 + "IMG_6342": { 2140 + "focal": [ 2141 + 62.3, 2142 + 28 2143 + ], 2144 + "pois": [ 2145 + { 2146 + "t": "f", 2147 + "box": [ 2148 + 55.1, 2149 + 18.5, 2150 + 14.5, 2151 + 18.9 2152 + ] 2153 + }, 2154 + { 2155 + "t": "b", 2156 + "box": [ 2157 + 10.7, 2158 + 69.4, 2159 + 23.7, 2160 + 14.6 2161 + ] 2162 + } 2163 + ], 2164 + "aspect": 0.75, 2165 + "size": 1844946, 2166 + "master": "IMG_6342.jpeg", 2167 + "master_size": 1844946 2168 + }, 2169 + "IMG_6367": { 2170 + "focal": [ 2171 + 44.1, 2172 + 34.3 2173 + ], 2174 + "pois": [ 2175 + { 2176 + "t": "f", 2177 + "box": [ 2178 + 37.8, 2179 + 28.7, 2180 + 12.7, 2181 + 11.1 2182 + ] 2183 + }, 2184 + { 2185 + "t": "b", 2186 + "box": [ 2187 + 60.4, 2188 + 4.8, 2189 + 3.6, 2190 + 2.2 2191 + ] 2192 + } 2193 + ], 2194 + "aspect": 0.75, 2195 + "size": 1416580, 2196 + "master": "IMG_6367.HEIC", 2197 + "master_size": 1528443 2198 + }, 2199 + "IMG_6435": { 2200 + "focal": [ 2201 + 48, 2202 + 37.8 2203 + ], 2204 + "pois": [ 2205 + { 2206 + "t": "f", 2207 + "box": [ 2208 + 37.9, 2209 + 27.2, 2210 + 20.2, 2211 + 21.1 2212 + ] 2213 + }, 2214 + { 2215 + "t": "b", 2216 + "box": [ 2217 + 35.9, 2218 + 86, 2219 + 4.8, 2220 + 2.9 2221 + ] 2222 + } 2223 + ], 2224 + "aspect": 0.75, 2225 + "size": 1604594, 2226 + "master": "IMG_6435.HEIC", 2227 + "master_size": 2105174 2228 + }, 2229 + "IMG_8080": { 2230 + "focal": [ 2231 + 42.6, 2232 + 27.7 2233 + ], 2234 + "pois": [ 2235 + { 2236 + "t": "f", 2237 + "box": [ 2238 + 36, 2239 + 20.8, 2240 + 13.1, 2241 + 13.9 2242 + ] 2243 + }, 2244 + { 2245 + "t": "b", 2246 + "box": [ 2247 + 15.9, 2248 + 8.3, 2249 + 66.6, 2250 + 40.9 2251 + ] 2252 + } 2253 + ], 2254 + "aspect": 0.75, 2255 + "size": 1580558, 2256 + "master": "IMG_8080.HEIC", 2257 + "master_size": 1420859 2258 + }, 2259 + "IMG_8188": { 2260 + "focal": [ 2261 + 48.9, 2262 + 33.9 2263 + ], 2264 + "pois": [ 2265 + { 2266 + "t": "f", 2267 + "box": [ 2268 + 37.9, 2269 + 24, 2270 + 21.8, 2271 + 19.9 2272 + ] 2273 + }, 2274 + { 2275 + "t": "b", 2276 + "box": [ 2277 + 35, 2278 + 88.1, 2279 + 9.8, 2280 + 6 2281 + ] 2282 + } 2283 + ], 2284 + "aspect": 0.75, 2285 + "size": 968035, 2286 + "master": "IMG_8188.heic", 2287 + "master_size": 903213 2288 + }, 2289 + "IMG_8989": { 2290 + "focal": [ 2291 + 79.2, 2292 + 86.1 2293 + ], 2294 + "pois": [ 2295 + { 2296 + "t": "b", 2297 + "box": [ 2298 + 76.7, 2299 + 84.6, 2300 + 5, 2301 + 3.1 2302 + ] 2303 + } 2304 + ], 2305 + "aspect": 0.75, 2306 + "size": 1830983, 2307 + "master": "IMG_8989.HEIC", 2308 + "master_size": 2106687 2309 + }, 2310 + "IMG_9795": { 2311 + "focal": [ 2312 + 31.2, 2313 + 22 2314 + ], 2315 + "pois": [ 2316 + { 2317 + "t": "f", 2318 + "box": [ 2319 + 23.8, 2320 + 15.6, 2321 + 14.8, 2322 + 12.9 2323 + ] 2324 + }, 2325 + { 2326 + "t": "b", 2327 + "box": [ 2328 + 21.3, 2329 + 51.5, 2330 + 4.3, 2331 + 2 2332 + ] 2333 + } 2334 + ], 2335 + "aspect": 0.562, 2336 + "size": 2033875, 2337 + "master": "IMG_9795.heic", 2338 + "master_size": 2240240 2339 + } 2340 + } 2341 + }, 2342 + "gens": { 2343 + "label": "Generated images — gpt-image-2 with platter-grounded identity (real+goofy default tone). One PNG per successful gen, dated. Synced to assets CDN via `npm run assets:sync:up`.", 2344 + "url_pattern": "https://assets.aesthetic.computer/jeffreys/gens/{name}", 2345 + "key_includes_extension": true, 2346 + "items": { 2347 + "recap-jeffrey-24h-01_title-2026-04-29T1625.png": { 2348 + "model": "gpt-image-2", 2349 + "size": "1024x1536", 2350 + "quality": "high", 2351 + "refs": [ 2352 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2353 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2354 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2355 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2356 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2357 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2358 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2359 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2360 + ], 2361 + "context": "recap-jeffrey-24h", 2362 + "segment": "01_title", 2363 + "generated": "2026-04-29T23:25:30.487Z", 2364 + "bytes": 2401086, 2365 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is sitting at a wooden home desk in a wrinkled t-shirt, holding up a single sheet of plain white printer paper next to his face. The paper has \"24 HRS\" hand-drawn on it in thick black sharpie, slightly crooked letters. He is giving a deadpan grin with one slightly raised eyebrow, mid-laugh, eye-contact with the camera. An open silver MacBook on the desk in the background shows a calendar app with a single highlighted day. Soft afternoon light from a window on the right, warm white balance. A hot-pink (#ff6b9d) coffee mug sits on the desk — the only pop of accent color. Wide shot, his whole upper body and the desk visible. Vertical, 1024x1536." 2366 + }, 2367 + "recap-jeffrey-24h-02_menuband-2026-04-29T1628.png": { 2368 + "model": "gpt-image-2", 2369 + "size": "1024x1536", 2370 + "quality": "high", 2371 + "refs": [ 2372 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2373 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2374 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2375 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2376 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2377 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2378 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2379 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2380 + ], 2381 + "context": "recap-jeffrey-24h", 2382 + "segment": "02_menuband", 2383 + "generated": "2026-04-29T23:28:27.056Z", 2384 + "bytes": 2481496, 2385 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is hunched over a silver MacBook on a kitchen table, leaning very close to the screen with one finger pointing dramatically at the upper-right corner of the display where a small popover window has appeared in the macOS menu bar. The popover on screen clearly shows: tiny illustrated piano keys at the bottom, a horizontal row of small square sample pads above the keys, and a thin audio visualizer with vertical cyan (#4ecdc4) and hot-pink (#ff6b9d) bars dancing. His other hand is hovering above the laptop keyboard miming a tiny piano-playing gesture, comically exaggerated. He is wearing a hoodie, slightly bedheaded. Bright midday natural light from a window. A real coffee mug sits next to the laptop. Real candid energy, slightly absurd, deadpan focus." 2386 + }, 2387 + "recap-jeffrey-24h-02_menuband-2026-04-29T1630.png": { 2388 + "model": "gpt-image-2", 2389 + "size": "1024x1536", 2390 + "quality": "high", 2391 + "refs": [ 2392 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2393 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2394 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2395 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2396 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2397 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2398 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2399 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2400 + ], 2401 + "context": "recap-jeffrey-24h", 2402 + "segment": "02_menuband", 2403 + "generated": "2026-04-29T23:30:09.003Z", 2404 + "bytes": 2520266, 2405 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is hunched over a silver MacBook on a kitchen table, leaning very close to the screen with one finger pointing dramatically at the upper-right corner of the display where a small popover window has appeared in the macOS menu bar. The popover on screen clearly shows: tiny illustrated piano keys at the bottom, a horizontal row of small square sample pads above the keys, and a thin audio visualizer with vertical cyan (#4ecdc4) and hot-pink (#ff6b9d) bars dancing. His other hand is hovering above the laptop keyboard miming a tiny piano-playing gesture, comically exaggerated. He is wearing a hoodie, slightly bedheaded. Bright midday natural light from a window. A real coffee mug sits next to the laptop. Real candid energy, slightly absurd, deadpan focus." 2406 + }, 2407 + "recap-jeffrey-24h-03_landing-2026-04-29T1631.png": { 2408 + "model": "gpt-image-2", 2409 + "size": "1024x1536", 2410 + "quality": "high", 2411 + "refs": [ 2412 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2413 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2414 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2415 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2416 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2417 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2418 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2419 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2420 + ], 2421 + "context": "recap-jeffrey-24h", 2422 + "segment": "03_landing", 2423 + "generated": "2026-04-29T23:31:22.601Z", 2424 + "bytes": 2568114, 2425 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is sitting on the floor of a bright apartment living room, legs crossed, with his silver MacBook perched on the seat of an armchair in front of him — an absurd ergonomic situation he is clearly content with. The laptop screen shows a web browser open to a website: a thin titlebar reading \"menuband\" in lowercase, a tiled wallpaper of small repeating musical-note glyphs in cream and pale yellow, and a tagline line of text beneath. He is leaning forward, scrolling with one finger on the trackpad, looking quietly pleased with himself. Soft warm lamp light from a floor lamp. A house plant in the corner. Wood floor, a rug. Real iPhone candid energy." 2426 + }, 2427 + "recap-jeffrey-24h-03_landing-2026-04-29T1633.png": { 2428 + "model": "gpt-image-2", 2429 + "size": "1024x1536", 2430 + "quality": "high", 2431 + "refs": [ 2432 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2433 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2434 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2435 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2436 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2437 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2438 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2439 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2440 + ], 2441 + "context": "recap-jeffrey-24h", 2442 + "segment": "03_landing", 2443 + "generated": "2026-04-29T23:33:01.366Z", 2444 + "bytes": 2277889, 2445 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is sitting on the floor of a bright apartment living room, legs crossed, with his silver MacBook perched on the seat of an armchair in front of him — an absurd ergonomic situation he is clearly content with. The laptop screen shows a web browser open to a website: a thin titlebar reading \"menuband\" in lowercase, a tiled wallpaper of small repeating musical-note glyphs in cream and pale yellow, and a tagline line of text beneath. He is leaning forward, scrolling with one finger on the trackpad, looking quietly pleased with himself. Soft warm lamp light from a floor lamp. A house plant in the corner. Wood floor, a rug. Real iPhone candid energy." 2446 + }, 2447 + "recap-jeffrey-24h-04_platter-2026-04-29T1634.png": { 2448 + "model": "gpt-image-2", 2449 + "size": "1024x1536", 2450 + "quality": "high", 2451 + "refs": [ 2452 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2453 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2454 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2455 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2456 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2457 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2458 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2459 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2460 + ], 2461 + "context": "recap-jeffrey-24h", 2462 + "segment": "04_platter", 2463 + "generated": "2026-04-29T23:34:20.266Z", 2464 + "bytes": 2420285, 2465 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at a home desk, his silver MacBook screen filled with a tight grid of small thumbnail portrait photos — dozens of headshots and selfies that are clearly all of HIM, the same man, across many years and outfits. He is holding a small printed 4x6 photograph of himself up beside the laptop screen, comparing the printed photo to one of the on-screen thumbnails with an exaggerated mock-puzzled expression — eyebrows together, lips pursed, mock-serious investigation. Soft afternoon light from a window. A normal bedroom or studio behind him, slightly cluttered. Real candid, slightly absurd recursion gag, deadpan." 2466 + }, 2467 + "recap-jeffrey-24h-04_platter-2026-04-29T1636.png": { 2468 + "model": "gpt-image-2", 2469 + "size": "1024x1536", 2470 + "quality": "high", 2471 + "refs": [ 2472 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2473 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2474 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2475 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2476 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2477 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2478 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2479 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2480 + ], 2481 + "context": "recap-jeffrey-24h", 2482 + "segment": "04_platter", 2483 + "generated": "2026-04-29T23:36:09.677Z", 2484 + "bytes": 2791024, 2485 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at a home desk, his silver MacBook screen filled with a tight grid of small thumbnail portrait photos — dozens of headshots and selfies that are clearly all of HIM, the same man, across many years and outfits. He is holding a small printed 4x6 photograph of himself up beside the laptop screen, comparing the printed photo to one of the on-screen thumbnails with an exaggerated mock-puzzled expression — eyebrows together, lips pursed, mock-serious investigation. Soft afternoon light from a window. A normal bedroom or studio behind him, slightly cluttered. Real candid, slightly absurd recursion gag, deadpan." 2486 + }, 2487 + "recap-jeffrey-24h-05_lith-2026-04-29T1637.png": { 2488 + "model": "gpt-image-2", 2489 + "size": "1024x1536", 2490 + "quality": "high", 2491 + "refs": [ 2492 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2493 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2494 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2495 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2496 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2497 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2498 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2499 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2500 + ], 2501 + "context": "recap-jeffrey-24h", 2502 + "segment": "05_lith", 2503 + "generated": "2026-04-29T23:37:26.043Z", 2504 + "bytes": 2598490, 2505 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is crouched on the floor underneath his home desk, surrounded by a real tangle of black ethernet and power cables, with a silver laptop balanced precariously on his knees. The laptop screen shows a terminal window with \"Caddyfile\" config text — multiple lines of routing rules — and one specific \"try_files\" line highlighted in orange (#ff8a3d). Bright yellow sticky notes are stuck to the underside of the desk above him reading \"CADDY\" and \"WEBHOOK\" in black sharpie. He is holding a coffee mug in his free hand, deadpan, looking up directly at the camera with mock weariness. Slightly dim under-the-desk light from the laptop glow plus one warm lamp peeking in from beyond the desk. Real, deadpan, very \"him\"." 2506 + }, 2507 + "recap-jeffrey-24h-05_lith-2026-04-29T1639.png": { 2508 + "model": "gpt-image-2", 2509 + "size": "1024x1536", 2510 + "quality": "high", 2511 + "refs": [ 2512 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2513 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2514 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2515 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2516 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2517 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2518 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2519 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2520 + ], 2521 + "context": "recap-jeffrey-24h", 2522 + "segment": "05_lith", 2523 + "generated": "2026-04-29T23:39:21.239Z", 2524 + "bytes": 2094673, 2525 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is crouched on the floor underneath his home desk, surrounded by a real tangle of black ethernet and power cables, with a silver laptop balanced precariously on his knees. The laptop screen shows a terminal window with \"Caddyfile\" config text — multiple lines of routing rules — and one specific \"try_files\" line highlighted in orange (#ff8a3d). Bright yellow sticky notes are stuck to the underside of the desk above him reading \"CADDY\" and \"WEBHOOK\" in black sharpie. He is holding a coffee mug in his free hand, deadpan, looking up directly at the camera with mock weariness. Slightly dim under-the-desk light from the laptop glow plus one warm lamp peeking in from beyond the desk. Real, deadpan, very \"him\"." 2526 + }, 2527 + "recap-jeffrey-24h-06_say-2026-04-29T1640.png": { 2528 + "model": "gpt-image-2", 2529 + "size": "1024x1536", 2530 + "quality": "high", 2531 + "refs": [ 2532 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2533 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2534 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2535 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2536 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2537 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2538 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2539 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2540 + ], 2541 + "context": "recap-jeffrey-24h", 2542 + "segment": "06_say", 2543 + "generated": "2026-04-29T23:40:24.091Z", 2544 + "bytes": 2594245, 2545 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk, the silver MacBook screen showing a scrolling list of text snippets — each row a short hand-written-style phrase next to a tiny green-on-black audio waveform thumbnail. Stacks of old microcassette tapes and one chunky USB cassette reader are piled on the desk around the laptop. He is holding a single cassette tape up to the laptop's built-in microphone in a mock-serious \"recording in progress\" pose, eyes wide deadpan, mouth slightly open as if to whisper into the tape. The wall behind him has five or six small sticky notes, each with a hand-written quoted phrase in sharpie. Warm afternoon light. Real, very absurd, very \"jeffrey\"." 2546 + }, 2547 + "recap-jeffrey-24h-06_say-2026-04-29T1642.png": { 2548 + "model": "gpt-image-2", 2549 + "size": "1024x1536", 2550 + "quality": "high", 2551 + "refs": [ 2552 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2553 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2554 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2555 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2556 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2557 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2558 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2559 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2560 + ], 2561 + "context": "recap-jeffrey-24h", 2562 + "segment": "06_say", 2563 + "generated": "2026-04-29T23:42:26.333Z", 2564 + "bytes": 2666505, 2565 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk, the silver MacBook screen showing a scrolling list of text snippets — each row a short hand-written-style phrase next to a tiny green-on-black audio waveform thumbnail. Stacks of old microcassette tapes and one chunky USB cassette reader are piled on the desk around the laptop. He is holding a single cassette tape up to the laptop's built-in microphone in a mock-serious \"recording in progress\" pose, eyes wide deadpan, mouth slightly open as if to whisper into the tape. The wall behind him has five or six small sticky notes, each with a hand-written quoted phrase in sharpie. Warm afternoon light. Real, very absurd, very \"jeffrey\"." 2566 + }, 2567 + "recap-jeffrey-24h-07_oven-2026-04-29T1643.png": { 2568 + "model": "gpt-image-2", 2569 + "size": "1024x1536", 2570 + "quality": "high", 2571 + "refs": [ 2572 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2573 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2574 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2575 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2576 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2577 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2578 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2579 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2580 + ], 2581 + "context": "recap-jeffrey-24h", 2582 + "segment": "07_oven", 2583 + "generated": "2026-04-29T23:43:27.519Z", 2584 + "bytes": 2322736, 2585 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk wearing a pair of bright red kitchen oven mitts, lifting a thick stack of warm printed paper out of an open cardboard moving box on the desk. The box has \"PDF\" written on the side in chunky black marker. The silver laptop next to the box on the desk shows a terminal log scrolling with repeating lines like \"[papers] oven auto-build: 6 PDFs updated\". He is giving a deadpan flat expression to the camera, mouth straight. Behind him on a low shelf, more stacks of warm-looking paper sit on a wire metal cooling rack like baked goods cooling. Late golden-hour window light. Real candid, deadpan, slightly absurd." 2586 + }, 2587 + "recap-jeffrey-24h-07_oven-2026-04-29T1645.png": { 2588 + "model": "gpt-image-2", 2589 + "size": "1024x1536", 2590 + "quality": "high", 2591 + "refs": [ 2592 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2593 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2594 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2595 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2596 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2597 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2598 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2599 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2600 + ], 2601 + "context": "recap-jeffrey-24h", 2602 + "segment": "07_oven", 2603 + "generated": "2026-04-29T23:45:43.835Z", 2604 + "bytes": 2688064, 2605 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is at his home desk wearing a pair of bright red kitchen oven mitts, lifting a thick stack of warm printed paper out of an open cardboard moving box on the desk. The box has \"PDF\" written on the side in chunky black marker. The silver laptop next to the box on the desk shows a terminal log scrolling with repeating lines like \"[papers] oven auto-build: 6 PDFs updated\". He is giving a deadpan flat expression to the camera, mouth straight. Behind him on a low shelf, more stacks of warm-looking paper sit on a wire metal cooling rack like baked goods cooling. Late golden-hour window light. Real candid, deadpan, slightly absurd." 2606 + }, 2607 + "recap-jeffrey-24h-08_outro-2026-04-29T1646.png": { 2608 + "model": "gpt-image-2", 2609 + "size": "1024x1536", 2610 + "quality": "high", 2611 + "refs": [ 2612 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2613 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2614 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2615 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2616 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2617 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2618 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2619 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2620 + ], 2621 + "context": "recap-jeffrey-24h", 2622 + "segment": "08_outro", 2623 + "generated": "2026-04-29T23:46:25.982Z", 2624 + "bytes": 2370509, 2625 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is leaning back in his desk chair holding a coffee mug, giving a small exaggerated wave to the camera with his free hand. The silver laptop in front of him on the desk shows a screen reading \"thanks for watching\" in a calm cream-on-dark text layout with a thin cyan and pink underline. He is giving a small relaxed smile, real eye contact with the camera. Comfortable home setting — desk lamp on, evening softness, warm white balance. Wood desk, a houseplant or two visible. Real iPhone candid snapshot energy." 2626 + }, 2627 + "recap-jeffrey-24h-08_outro-2026-04-29T1649.png": { 2628 + "model": "gpt-image-2", 2629 + "size": "1024x1536", 2630 + "quality": "high", 2631 + "refs": [ 2632 + "portraits/jeffrey/corpus/shoot/jeffery-av--07.jpg", 2633 + "portraits/jeffrey/corpus/shoot/jeffery-av--01.jpg", 2634 + "portraits/jeffrey/corpus/shoot/jeffery-av--04.jpg", 2635 + "portraits/jeffrey/ig-archive/whistlegraph/2018-12-02_Bq4ckGFFNtW.jpg", 2636 + "portraits/jeffrey/ig-archive/whistlegraph/2020-09-02_CEpxlO2FOvD.jpg", 2637 + "portraits/jeffrey/ig-archive/whistlegraph/2021-07-10_CRI095Vl7AO_1.jpg", 2638 + "portraits/jeffrey/ig-archive/whistlegraph/2025-01-25_DFQ2lHPzN_W.jpg", 2639 + "portraits/jeffrey/ig-archive/whistlegraph/2017-04-10_BStid5yjTHq.jpg" 2640 + ], 2641 + "context": "recap-jeffrey-24h", 2642 + "segment": "08_outro", 2643 + "generated": "2026-04-29T23:49:09.690Z", 2644 + "bytes": 2284526, 2645 + "prompt": "Photographic candid lifestyle photo of the man in the reference photos. Real photograph, photo-realistic, the kind of casual iPhone snapshot a friend would take of him at home — NOT illustrated, NOT painted, NOT cinematic, NOT magazine-glossy, NOT AI-poster-glossy. Slight film grain, slightly off-center framing, real natural room light. Identity: same face, same medium-length brown hair, same actual features as the references — recognizably him across the various refs. Keep real skin texture; do NOT smooth or prettify. He is at a real home desk in normal everyday clothes (t-shirt or hoodie, slightly bedheaded). Real, deadpan, very \"him\". Vertical 1024x1536 portrait orientation.\n\nScene: he is leaning back in his desk chair holding a coffee mug, giving a small exaggerated wave to the camera with his free hand. The silver laptop in front of him on the desk shows a screen reading \"thanks for watching\" in a calm cream-on-dark text layout with a thin cyan and pink underline. He is giving a small relaxed smile, real eye contact with the camera. Comfortable home setting — desk lamp on, evening softness, warm white balance. Wood desk, a houseplant or two visible. Real iPhone candid snapshot energy." 2646 + } 161 2647 } 162 2648 } 163 2649 }