From 92a29719d2c9ed2ae5958b01dcfd8d8aae43d6a3 Mon Sep 17 00:00:00 2001 From: Emil <65846814+emil28092005@users.noreply.github.com> Date: Thu, 24 Sep 2026 05:03:07 +0300 Subject: [PATCH] Document temporal quality captures and 720p costs --- docs/manual/editor/temporal.md | 11 + docs/validation/README.md | 1 + .../p3-temporal-2026-09-24/README.md | 119 +++ .../captures/cut-current-00.png | Bin 0 -> 186 bytes .../captures/cut-current-01.png | Bin 0 -> 282 bytes .../captures/cut-off-00.png | Bin 0 -> 185 bytes .../captures/cut-off-01.png | Bin 0 -> 262 bytes .../captures/cut-taa-00.png | Bin 0 -> 186 bytes .../captures/cut-taa-01.png | Bin 0 -> 282 bytes .../captures/cut-upscale-00.png | Bin 0 -> 185 bytes .../captures/cut-upscale-01.png | Bin 0 -> 254 bytes .../captures/cut-upscale-current-00.png | Bin 0 -> 185 bytes .../captures/cut-upscale-current-01.png | Bin 0 -> 254 bytes .../captures/door-background-current-00.png | Bin 0 -> 209 bytes .../captures/door-background-current-01.png | Bin 0 -> 205 bytes .../captures/door-background-current-02.png | Bin 0 -> 214 bytes .../captures/door-background-current-03.png | Bin 0 -> 210 bytes .../captures/door-background-current-04.png | Bin 0 -> 210 bytes .../captures/door-background-current-05.png | Bin 0 -> 207 bytes .../captures/door-background-current-06.png | Bin 0 -> 209 bytes .../captures/door-background-current-07.png | Bin 0 -> 213 bytes .../captures/door-background-current-08.png | Bin 0 -> 214 bytes .../captures/door-background-current-09.png | Bin 0 -> 208 bytes .../captures/door-background-current-10.png | Bin 0 -> 209 bytes .../captures/door-background-current-11.png | Bin 0 -> 211 bytes .../captures/door-background-current-12.png | Bin 0 -> 209 bytes .../captures/door-background-current-13.png | Bin 0 -> 205 bytes .../captures/door-background-current-14.png | Bin 0 -> 215 bytes .../captures/door-background-current-15.png | Bin 0 -> 205 bytes .../captures/door-background-off-00.png | Bin 0 -> 208 bytes .../captures/door-background-off-01.png | Bin 0 -> 208 bytes .../captures/door-background-off-02.png | Bin 0 -> 208 bytes .../captures/door-background-off-03.png | Bin 0 -> 208 bytes .../captures/door-background-off-04.png | Bin 0 -> 208 bytes .../captures/door-background-off-05.png | Bin 0 -> 208 bytes .../captures/door-background-off-06.png | Bin 0 -> 208 bytes .../captures/door-background-off-07.png | Bin 0 -> 208 bytes .../captures/door-background-off-08.png | Bin 0 -> 208 bytes .../captures/door-background-off-09.png | Bin 0 -> 208 bytes .../captures/door-background-off-10.png | Bin 0 -> 208 bytes .../captures/door-background-off-11.png | Bin 0 -> 208 bytes .../captures/door-background-off-12.png | Bin 0 -> 208 bytes .../captures/door-background-off-13.png | Bin 0 -> 208 bytes .../captures/door-background-off-14.png | Bin 0 -> 208 bytes .../captures/door-background-off-15.png | Bin 0 -> 208 bytes .../captures/door-background-taa-00.png | Bin 0 -> 209 bytes .../captures/door-background-taa-01.png | Bin 0 -> 237 bytes .../captures/door-background-taa-02.png | Bin 0 -> 250 bytes .../captures/door-background-taa-03.png | Bin 0 -> 263 bytes .../captures/door-background-taa-04.png | Bin 0 -> 251 bytes .../captures/door-background-taa-05.png | Bin 0 -> 253 bytes .../captures/door-background-taa-06.png | Bin 0 -> 261 bytes .../captures/door-background-taa-07.png | Bin 0 -> 253 bytes .../captures/door-background-taa-08.png | Bin 0 -> 255 bytes .../captures/door-background-taa-09.png | Bin 0 -> 254 bytes .../captures/door-background-taa-10.png | Bin 0 -> 248 bytes .../captures/door-background-taa-11.png | Bin 0 -> 242 bytes .../captures/door-background-taa-12.png | Bin 0 -> 260 bytes .../captures/door-background-taa-13.png | Bin 0 -> 242 bytes .../captures/door-background-taa-14.png | Bin 0 -> 258 bytes .../captures/door-background-taa-15.png | Bin 0 -> 262 bytes .../captures/door-background-upscale-00.png | Bin 0 -> 205 bytes .../captures/door-background-upscale-01.png | Bin 0 -> 244 bytes .../captures/door-background-upscale-02.png | Bin 0 -> 274 bytes .../captures/door-background-upscale-03.png | Bin 0 -> 264 bytes .../captures/door-background-upscale-04.png | Bin 0 -> 257 bytes .../captures/door-background-upscale-05.png | Bin 0 -> 255 bytes .../captures/door-background-upscale-06.png | Bin 0 -> 271 bytes .../captures/door-background-upscale-07.png | Bin 0 -> 261 bytes .../captures/door-background-upscale-08.png | Bin 0 -> 246 bytes .../captures/door-background-upscale-09.png | Bin 0 -> 267 bytes .../captures/door-background-upscale-10.png | Bin 0 -> 286 bytes .../captures/door-background-upscale-11.png | Bin 0 -> 257 bytes .../captures/door-background-upscale-12.png | Bin 0 -> 263 bytes .../captures/door-background-upscale-13.png | Bin 0 -> 261 bytes .../captures/door-background-upscale-14.png | Bin 0 -> 252 bytes .../captures/door-background-upscale-15.png | Bin 0 -> 276 bytes .../door-background-upscale-current-00.png | Bin 0 -> 205 bytes .../door-background-upscale-current-01.png | Bin 0 -> 199 bytes .../door-background-upscale-current-02.png | Bin 0 -> 198 bytes .../door-background-upscale-current-03.png | Bin 0 -> 203 bytes .../door-background-upscale-current-04.png | Bin 0 -> 200 bytes .../door-background-upscale-current-05.png | Bin 0 -> 204 bytes .../door-background-upscale-current-06.png | Bin 0 -> 201 bytes .../door-background-upscale-current-07.png | Bin 0 -> 203 bytes .../door-background-upscale-current-08.png | Bin 0 -> 202 bytes .../door-background-upscale-current-09.png | Bin 0 -> 204 bytes .../door-background-upscale-current-10.png | Bin 0 -> 200 bytes .../door-background-upscale-current-11.png | Bin 0 -> 204 bytes .../door-background-upscale-current-12.png | Bin 0 -> 201 bytes .../door-background-upscale-current-13.png | Bin 0 -> 202 bytes .../door-background-upscale-current-14.png | Bin 0 -> 198 bytes .../door-background-upscale-current-15.png | Bin 0 -> 199 bytes .../captures/door-open-current-00.png | Bin 0 -> 263 bytes .../captures/door-open-current-01.png | Bin 0 -> 267 bytes .../captures/door-open-current-02.png | Bin 0 -> 291 bytes .../captures/door-open-current-03.png | Bin 0 -> 297 bytes .../captures/door-open-off-00.png | Bin 0 -> 257 bytes .../captures/door-open-off-01.png | Bin 0 -> 257 bytes .../captures/door-open-off-02.png | Bin 0 -> 294 bytes .../captures/door-open-off-03.png | Bin 0 -> 294 bytes .../captures/door-open-taa-00.png | Bin 0 -> 263 bytes .../captures/door-open-taa-01.png | Bin 0 -> 291 bytes .../captures/door-open-taa-02.png | Bin 0 -> 331 bytes .../captures/door-open-taa-03.png | Bin 0 -> 402 bytes .../captures/door-open-upscale-00.png | Bin 0 -> 240 bytes .../captures/door-open-upscale-01.png | Bin 0 -> 272 bytes .../captures/door-open-upscale-02.png | Bin 0 -> 314 bytes .../captures/door-open-upscale-03.png | Bin 0 -> 400 bytes .../captures/door-open-upscale-current-00.png | Bin 0 -> 240 bytes .../captures/door-open-upscale-current-01.png | Bin 0 -> 247 bytes .../captures/door-open-upscale-current-02.png | Bin 0 -> 260 bytes .../captures/door-open-upscale-current-03.png | Bin 0 -> 284 bytes .../captures/moving-cube-current-00.png | Bin 0 -> 238 bytes .../captures/moving-cube-current-01.png | Bin 0 -> 239 bytes .../captures/moving-cube-current-02.png | Bin 0 -> 238 bytes .../captures/moving-cube-current-03.png | Bin 0 -> 232 bytes .../captures/moving-cube-current-04.png | Bin 0 -> 220 bytes .../captures/moving-cube-current-05.png | Bin 0 -> 210 bytes .../captures/moving-cube-current-06.png | Bin 0 -> 191 bytes .../captures/moving-cube-current-07.png | Bin 0 -> 199 bytes .../captures/moving-cube-current-08.png | Bin 0 -> 200 bytes .../captures/moving-cube-current-09.png | Bin 0 -> 195 bytes .../captures/moving-cube-current-10.png | Bin 0 -> 198 bytes .../captures/moving-cube-current-11.png | Bin 0 -> 224 bytes .../captures/moving-cube-current-12.png | Bin 0 -> 222 bytes .../captures/moving-cube-current-13.png | Bin 0 -> 223 bytes .../captures/moving-cube-current-14.png | Bin 0 -> 225 bytes .../captures/moving-cube-current-15.png | Bin 0 -> 226 bytes .../captures/moving-cube-off-00.png | Bin 0 -> 242 bytes .../captures/moving-cube-off-01.png | Bin 0 -> 241 bytes .../captures/moving-cube-off-02.png | Bin 0 -> 234 bytes .../captures/moving-cube-off-03.png | Bin 0 -> 235 bytes .../captures/moving-cube-off-04.png | Bin 0 -> 222 bytes .../captures/moving-cube-off-05.png | Bin 0 -> 209 bytes .../captures/moving-cube-off-06.png | Bin 0 -> 194 bytes .../captures/moving-cube-off-07.png | Bin 0 -> 189 bytes .../captures/moving-cube-off-08.png | Bin 0 -> 191 bytes .../captures/moving-cube-off-09.png | Bin 0 -> 195 bytes .../captures/moving-cube-off-10.png | Bin 0 -> 198 bytes .../captures/moving-cube-off-11.png | Bin 0 -> 220 bytes .../captures/moving-cube-off-12.png | Bin 0 -> 222 bytes .../captures/moving-cube-off-13.png | Bin 0 -> 240 bytes .../captures/moving-cube-off-14.png | Bin 0 -> 224 bytes .../captures/moving-cube-off-15.png | Bin 0 -> 224 bytes .../captures/moving-cube-taa-00.png | Bin 0 -> 238 bytes .../captures/moving-cube-taa-01.png | Bin 0 -> 263 bytes .../captures/moving-cube-taa-02.png | Bin 0 -> 279 bytes .../captures/moving-cube-taa-03.png | Bin 0 -> 270 bytes .../captures/moving-cube-taa-04.png | Bin 0 -> 272 bytes .../captures/moving-cube-taa-05.png | Bin 0 -> 239 bytes .../captures/moving-cube-taa-06.png | Bin 0 -> 208 bytes .../captures/moving-cube-taa-07.png | Bin 0 -> 213 bytes .../captures/moving-cube-taa-08.png | Bin 0 -> 200 bytes .../captures/moving-cube-taa-09.png | Bin 0 -> 193 bytes .../captures/moving-cube-taa-10.png | Bin 0 -> 198 bytes .../captures/moving-cube-taa-11.png | Bin 0 -> 262 bytes .../captures/moving-cube-taa-12.png | Bin 0 -> 294 bytes .../captures/moving-cube-taa-13.png | Bin 0 -> 332 bytes .../captures/moving-cube-taa-14.png | Bin 0 -> 339 bytes .../captures/moving-cube-taa-15.png | Bin 0 -> 335 bytes .../captures/moving-cube-upscale-00.png | Bin 0 -> 238 bytes .../captures/moving-cube-upscale-01.png | Bin 0 -> 272 bytes .../captures/moving-cube-upscale-02.png | Bin 0 -> 279 bytes .../captures/moving-cube-upscale-03.png | Bin 0 -> 292 bytes .../captures/moving-cube-upscale-04.png | Bin 0 -> 272 bytes .../captures/moving-cube-upscale-05.png | Bin 0 -> 209 bytes .../captures/moving-cube-upscale-06.png | Bin 0 -> 198 bytes .../captures/moving-cube-upscale-07.png | Bin 0 -> 202 bytes .../captures/moving-cube-upscale-08.png | Bin 0 -> 199 bytes .../captures/moving-cube-upscale-09.png | Bin 0 -> 187 bytes .../captures/moving-cube-upscale-10.png | Bin 0 -> 197 bytes .../captures/moving-cube-upscale-11.png | Bin 0 -> 239 bytes .../captures/moving-cube-upscale-12.png | Bin 0 -> 301 bytes .../captures/moving-cube-upscale-13.png | Bin 0 -> 340 bytes .../captures/moving-cube-upscale-14.png | Bin 0 -> 342 bytes .../captures/moving-cube-upscale-15.png | Bin 0 -> 344 bytes .../moving-cube-upscale-current-00.png | Bin 0 -> 238 bytes .../moving-cube-upscale-current-01.png | Bin 0 -> 241 bytes .../moving-cube-upscale-current-02.png | Bin 0 -> 228 bytes .../moving-cube-upscale-current-03.png | Bin 0 -> 230 bytes .../moving-cube-upscale-current-04.png | Bin 0 -> 220 bytes .../moving-cube-upscale-current-05.png | Bin 0 -> 201 bytes .../moving-cube-upscale-current-06.png | Bin 0 -> 196 bytes .../moving-cube-upscale-current-07.png | Bin 0 -> 195 bytes .../moving-cube-upscale-current-08.png | Bin 0 -> 199 bytes .../moving-cube-upscale-current-09.png | Bin 0 -> 191 bytes .../moving-cube-upscale-current-10.png | Bin 0 -> 197 bytes .../moving-cube-upscale-current-11.png | Bin 0 -> 213 bytes .../moving-cube-upscale-current-12.png | Bin 0 -> 213 bytes .../moving-cube-upscale-current-13.png | Bin 0 -> 220 bytes .../moving-cube-upscale-current-14.png | Bin 0 -> 213 bytes .../moving-cube-upscale-current-15.png | Bin 0 -> 219 bytes .../captures/pan-current-00.png | Bin 0 -> 167 bytes .../captures/pan-current-01.png | Bin 0 -> 168 bytes .../captures/pan-current-02.png | Bin 0 -> 168 bytes .../captures/pan-current-03.png | Bin 0 -> 167 bytes .../captures/pan-current-04.png | Bin 0 -> 165 bytes .../captures/pan-current-05.png | Bin 0 -> 168 bytes .../captures/pan-current-06.png | Bin 0 -> 167 bytes .../captures/pan-current-07.png | Bin 0 -> 178 bytes .../captures/pan-current-08.png | Bin 0 -> 179 bytes .../captures/pan-current-09.png | Bin 0 -> 184 bytes .../captures/pan-current-10.png | Bin 0 -> 179 bytes .../captures/pan-current-11.png | Bin 0 -> 167 bytes .../captures/pan-current-12.png | Bin 0 -> 168 bytes .../captures/pan-current-13.png | Bin 0 -> 168 bytes .../captures/pan-current-14.png | Bin 0 -> 169 bytes .../captures/pan-current-15.png | Bin 0 -> 185 bytes .../captures/pan-off-00.png | Bin 0 -> 165 bytes .../captures/pan-off-01.png | Bin 0 -> 165 bytes .../captures/pan-off-02.png | Bin 0 -> 165 bytes .../captures/pan-off-03.png | Bin 0 -> 165 bytes .../captures/pan-off-04.png | Bin 0 -> 165 bytes .../captures/pan-off-05.png | Bin 0 -> 165 bytes .../captures/pan-off-06.png | Bin 0 -> 165 bytes .../captures/pan-off-07.png | Bin 0 -> 165 bytes .../captures/pan-off-08.png | Bin 0 -> 165 bytes .../captures/pan-off-09.png | Bin 0 -> 165 bytes .../captures/pan-off-10.png | Bin 0 -> 165 bytes .../captures/pan-off-11.png | Bin 0 -> 165 bytes .../captures/pan-off-12.png | Bin 0 -> 165 bytes .../captures/pan-off-13.png | Bin 0 -> 165 bytes .../captures/pan-off-14.png | Bin 0 -> 165 bytes .../captures/pan-off-15.png | Bin 0 -> 165 bytes .../captures/pan-taa-00.png | Bin 0 -> 167 bytes .../captures/pan-taa-01.png | Bin 0 -> 168 bytes .../captures/pan-taa-02.png | Bin 0 -> 168 bytes .../captures/pan-taa-03.png | Bin 0 -> 167 bytes .../captures/pan-taa-04.png | Bin 0 -> 165 bytes .../captures/pan-taa-05.png | Bin 0 -> 168 bytes .../captures/pan-taa-06.png | Bin 0 -> 167 bytes .../captures/pan-taa-07.png | Bin 0 -> 178 bytes .../captures/pan-taa-08.png | Bin 0 -> 179 bytes .../captures/pan-taa-09.png | Bin 0 -> 184 bytes .../captures/pan-taa-10.png | Bin 0 -> 179 bytes .../captures/pan-taa-11.png | Bin 0 -> 167 bytes .../captures/pan-taa-12.png | Bin 0 -> 168 bytes .../captures/pan-taa-13.png | Bin 0 -> 168 bytes .../captures/pan-taa-14.png | Bin 0 -> 169 bytes .../captures/pan-taa-15.png | Bin 0 -> 185 bytes .../captures/pan-upscale-00.png | Bin 0 -> 171 bytes .../captures/pan-upscale-01.png | Bin 0 -> 175 bytes .../captures/pan-upscale-02.png | Bin 0 -> 175 bytes .../captures/pan-upscale-03.png | Bin 0 -> 178 bytes .../captures/pan-upscale-04.png | Bin 0 -> 171 bytes .../captures/pan-upscale-05.png | Bin 0 -> 171 bytes .../captures/pan-upscale-06.png | Bin 0 -> 178 bytes .../captures/pan-upscale-07.png | Bin 0 -> 175 bytes .../captures/pan-upscale-08.png | Bin 0 -> 179 bytes .../captures/pan-upscale-09.png | Bin 0 -> 184 bytes .../captures/pan-upscale-10.png | Bin 0 -> 184 bytes .../captures/pan-upscale-11.png | Bin 0 -> 171 bytes .../captures/pan-upscale-12.png | Bin 0 -> 171 bytes .../captures/pan-upscale-13.png | Bin 0 -> 170 bytes .../captures/pan-upscale-14.png | Bin 0 -> 173 bytes .../captures/pan-upscale-15.png | Bin 0 -> 191 bytes .../captures/pan-upscale-current-00.png | Bin 0 -> 171 bytes .../captures/pan-upscale-current-01.png | Bin 0 -> 175 bytes .../captures/pan-upscale-current-02.png | Bin 0 -> 175 bytes .../captures/pan-upscale-current-03.png | Bin 0 -> 178 bytes .../captures/pan-upscale-current-04.png | Bin 0 -> 171 bytes .../captures/pan-upscale-current-05.png | Bin 0 -> 171 bytes .../captures/pan-upscale-current-06.png | Bin 0 -> 178 bytes .../captures/pan-upscale-current-07.png | Bin 0 -> 175 bytes .../captures/pan-upscale-current-08.png | Bin 0 -> 179 bytes .../captures/pan-upscale-current-09.png | Bin 0 -> 184 bytes .../captures/pan-upscale-current-10.png | Bin 0 -> 184 bytes .../captures/pan-upscale-current-11.png | Bin 0 -> 171 bytes .../captures/pan-upscale-current-12.png | Bin 0 -> 171 bytes .../captures/pan-upscale-current-13.png | Bin 0 -> 170 bytes .../captures/pan-upscale-current-14.png | Bin 0 -> 173 bytes .../captures/pan-upscale-current-15.png | Bin 0 -> 191 bytes .../captures/resize-current-00.png | Bin 0 -> 185 bytes .../captures/resize-current-01.png | Bin 0 -> 386 bytes .../captures/resize-off-00.png | Bin 0 -> 185 bytes .../captures/resize-off-01.png | Bin 0 -> 380 bytes .../captures/resize-taa-00.png | Bin 0 -> 185 bytes .../captures/resize-taa-01.png | Bin 0 -> 386 bytes .../captures/resize-upscale-00.png | Bin 0 -> 185 bytes .../captures/resize-upscale-01.png | Bin 0 -> 384 bytes .../captures/resize-upscale-current-00.png | Bin 0 -> 185 bytes .../captures/resize-upscale-current-01.png | Bin 0 -> 384 bytes .../captures/ui-alpha-current-00.png | Bin 0 -> 313 bytes .../captures/ui-alpha-current-01.png | Bin 0 -> 331 bytes .../captures/ui-alpha-off-00.png | Bin 0 -> 265 bytes .../captures/ui-alpha-off-01.png | Bin 0 -> 265 bytes .../captures/ui-alpha-taa-00.png | Bin 0 -> 313 bytes .../captures/ui-alpha-taa-01.png | Bin 0 -> 365 bytes .../captures/ui-alpha-upscale-00.png | Bin 0 -> 305 bytes .../captures/ui-alpha-upscale-01.png | Bin 0 -> 377 bytes .../captures/ui-alpha-upscale-current-00.png | Bin 0 -> 305 bytes .../captures/ui-alpha-upscale-current-01.png | Bin 0 -> 302 bytes .../captures/wire-static-current-00.png | Bin 0 -> 167 bytes .../captures/wire-static-current-01.png | Bin 0 -> 168 bytes .../captures/wire-static-current-02.png | Bin 0 -> 168 bytes .../captures/wire-static-current-03.png | Bin 0 -> 167 bytes .../captures/wire-static-current-04.png | Bin 0 -> 165 bytes .../captures/wire-static-current-05.png | Bin 0 -> 165 bytes .../captures/wire-static-current-06.png | Bin 0 -> 167 bytes .../captures/wire-static-current-07.png | Bin 0 -> 166 bytes .../captures/wire-static-current-08.png | Bin 0 -> 169 bytes .../captures/wire-static-current-09.png | Bin 0 -> 169 bytes .../captures/wire-static-current-10.png | Bin 0 -> 169 bytes .../captures/wire-static-current-11.png | Bin 0 -> 167 bytes .../captures/wire-static-current-12.png | Bin 0 -> 168 bytes .../captures/wire-static-current-13.png | Bin 0 -> 168 bytes .../captures/wire-static-current-14.png | Bin 0 -> 167 bytes .../captures/wire-static-current-15.png | Bin 0 -> 170 bytes .../captures/wire-static-off-00.png | Bin 0 -> 165 bytes .../captures/wire-static-off-01.png | Bin 0 -> 165 bytes .../captures/wire-static-off-02.png | Bin 0 -> 165 bytes .../captures/wire-static-off-03.png | Bin 0 -> 165 bytes .../captures/wire-static-off-04.png | Bin 0 -> 165 bytes .../captures/wire-static-off-05.png | Bin 0 -> 165 bytes .../captures/wire-static-off-06.png | Bin 0 -> 165 bytes .../captures/wire-static-off-07.png | Bin 0 -> 165 bytes .../captures/wire-static-off-08.png | Bin 0 -> 165 bytes .../captures/wire-static-off-09.png | Bin 0 -> 165 bytes .../captures/wire-static-off-10.png | Bin 0 -> 165 bytes .../captures/wire-static-off-11.png | Bin 0 -> 165 bytes .../captures/wire-static-off-12.png | Bin 0 -> 165 bytes .../captures/wire-static-off-13.png | Bin 0 -> 165 bytes .../captures/wire-static-off-14.png | Bin 0 -> 165 bytes .../captures/wire-static-off-15.png | Bin 0 -> 165 bytes .../captures/wire-static-taa-00.png | Bin 0 -> 167 bytes .../captures/wire-static-taa-01.png | Bin 0 -> 230 bytes .../captures/wire-static-taa-02.png | Bin 0 -> 273 bytes .../captures/wire-static-taa-03.png | Bin 0 -> 305 bytes .../captures/wire-static-taa-04.png | Bin 0 -> 255 bytes .../captures/wire-static-taa-05.png | Bin 0 -> 256 bytes .../captures/wire-static-taa-06.png | Bin 0 -> 262 bytes .../captures/wire-static-taa-07.png | Bin 0 -> 261 bytes .../captures/wire-static-taa-08.png | Bin 0 -> 240 bytes .../captures/wire-static-taa-09.png | Bin 0 -> 262 bytes .../captures/wire-static-taa-10.png | Bin 0 -> 236 bytes .../captures/wire-static-taa-11.png | Bin 0 -> 282 bytes .../captures/wire-static-taa-12.png | Bin 0 -> 279 bytes .../captures/wire-static-taa-13.png | Bin 0 -> 298 bytes .../captures/wire-static-taa-14.png | Bin 0 -> 269 bytes .../captures/wire-static-taa-15.png | Bin 0 -> 254 bytes .../captures/wire-static-upscale-00.png | Bin 0 -> 171 bytes .../captures/wire-static-upscale-01.png | Bin 0 -> 248 bytes .../captures/wire-static-upscale-02.png | Bin 0 -> 297 bytes .../captures/wire-static-upscale-03.png | Bin 0 -> 279 bytes .../captures/wire-static-upscale-04.png | Bin 0 -> 275 bytes .../captures/wire-static-upscale-05.png | Bin 0 -> 259 bytes .../captures/wire-static-upscale-06.png | Bin 0 -> 292 bytes .../captures/wire-static-upscale-07.png | Bin 0 -> 301 bytes .../captures/wire-static-upscale-08.png | Bin 0 -> 316 bytes .../captures/wire-static-upscale-09.png | Bin 0 -> 316 bytes .../captures/wire-static-upscale-10.png | Bin 0 -> 322 bytes .../captures/wire-static-upscale-11.png | Bin 0 -> 287 bytes .../captures/wire-static-upscale-12.png | Bin 0 -> 301 bytes .../captures/wire-static-upscale-13.png | Bin 0 -> 281 bytes .../captures/wire-static-upscale-14.png | Bin 0 -> 297 bytes .../captures/wire-static-upscale-15.png | Bin 0 -> 298 bytes .../wire-static-upscale-current-00.png | Bin 0 -> 171 bytes .../wire-static-upscale-current-01.png | Bin 0 -> 175 bytes .../wire-static-upscale-current-02.png | Bin 0 -> 175 bytes .../wire-static-upscale-current-03.png | Bin 0 -> 178 bytes .../wire-static-upscale-current-04.png | Bin 0 -> 171 bytes .../wire-static-upscale-current-05.png | Bin 0 -> 171 bytes .../wire-static-upscale-current-06.png | Bin 0 -> 178 bytes .../wire-static-upscale-current-07.png | Bin 0 -> 174 bytes .../wire-static-upscale-current-08.png | Bin 0 -> 167 bytes .../wire-static-upscale-current-09.png | Bin 0 -> 174 bytes .../wire-static-upscale-current-10.png | Bin 0 -> 175 bytes .../wire-static-upscale-current-11.png | Bin 0 -> 171 bytes .../wire-static-upscale-current-12.png | Bin 0 -> 171 bytes .../wire-static-upscale-current-13.png | Bin 0 -> 170 bytes .../wire-static-upscale-current-14.png | Bin 0 -> 173 bytes .../wire-static-upscale-current-15.png | Bin 0 -> 168 bytes .../p3-temporal-2026-09-24/contact-sheet.png | Bin 0 -> 13067 bytes .../door-edge-nearest-5x.png | Bin 0 -> 5399 bytes .../p3-temporal-2026-09-24/frames.csv | 371 ++++++++ .../p3-temporal-2026-09-24/metrics.json | 852 ++++++++++++++++++ .../profile-720p-debug.csv | 91 ++ tools/analyze_temporal_quality.py | 205 +++++ 379 files changed, 1650 insertions(+) create mode 100644 docs/validation/p3-temporal-2026-09-24/README.md create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/cut-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-off-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-off-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-off-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-off-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-taa-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/resize-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-off-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-00.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-01.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-02.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-03.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-04.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-05.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-06.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-07.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-08.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-09.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-10.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-11.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-12.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-13.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-14.png create mode 100644 docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-15.png create mode 100644 docs/validation/p3-temporal-2026-09-24/contact-sheet.png create mode 100644 docs/validation/p3-temporal-2026-09-24/door-edge-nearest-5x.png create mode 100644 docs/validation/p3-temporal-2026-09-24/frames.csv create mode 100644 docs/validation/p3-temporal-2026-09-24/metrics.json create mode 100644 docs/validation/p3-temporal-2026-09-24/profile-720p-debug.csv create mode 100644 tools/analyze_temporal_quality.py diff --git a/docs/manual/editor/temporal.md b/docs/manual/editor/temporal.md index 453b0d8..ad4cd2b 100644 --- a/docs/manual/editor/temporal.md +++ b/docs/manual/editor/temporal.md @@ -52,3 +52,14 @@ World transparency and sprites use the scene depth/order and reject stale color their reactive pixels. TAA and Upscale are optional image-quality paths; compare them against Off on the actual game scene, especially thin geometry, slow pans, newly revealed surfaces and moving transparent content. + +These are first-generation, opt-in reconstruction modes. They can reduce shimmer +on a stationary edge while lowering the peak brightness of a subpixel line, and +a newly revealed edge can differ by one pixel from its settled appearance. The +amount depends on scene content, resolution and motion. Upscale also trades +internal render resolution for resolve cost and extra images; it is not always +faster. Compare Off, TAA and Upscale at the target output resolution with both +still and moving cameras, and inspect thin objects and opening doors before +choosing a mode for a game. The [P3 temporal validation record](https://github.com/emil28092005/Faset_Engine/blob/main/docs/validation/p3-temporal-2026-09-24/README.md) +contains source captures, paired image measurements and a bounded 720p cost +profile. diff --git a/docs/validation/README.md b/docs/validation/README.md index d37ccb9..4a62484 100644 --- a/docs/validation/README.md +++ b/docs/validation/README.md @@ -7,6 +7,7 @@ These files preserve bounded checks and their inputs. Each record states its sou - [P2 GPU visibility Linux evidence](p2-gpu-visibility-2026-09-23/README.md): Debug/Release GPU acceptance, lavapipe functional checks, relocated Player exports, and explicit platform/performance limits. - [P2 pinned SwiftShader compatibility](p2-swiftshader-2026-09-23/README.md): the Windows CI regression, shader capability fix, independent review closure, final native CI and relocated Player evidence. - [P3 lighting and shadows](p3-lighting-2026-09-24/README.md): implementation, Forward+ A/B and image parity, acceptance matrix, bounded Linux evidence, and remaining Windows/platform checks; temporal reconstruction is tracked separately. +- [P3 temporal reconstruction](p3-temporal-2026-09-24/README.md): Off/TAA/Upscale source captures, edge and reveal measurements, and bounded 720p costs. - [Windows software Vulkan](windows-software-vulkan-2026-09-18/README.md): fresh native build, 35 tests, launcher/window/MCP workflows and both relocated Release games on SwiftShader. - [Checkpoint 5 Linux acceptance](checkpoint5-linux-2026-09-18/README.md): clean offline source build, first Editor launch, exact-candidate standalone games and live Blender checks. - [Final Linux source checks](final-linux-2026-09-18/README.md): `4cb8255` integrated test results and both Release games after the asset-relocation correction, including package manifests and standalone captures. diff --git a/docs/validation/p3-temporal-2026-09-24/README.md b/docs/validation/p3-temporal-2026-09-24/README.md new file mode 100644 index 0000000..bead99b --- /dev/null +++ b/docs/validation/p3-temporal-2026-09-24/README.md @@ -0,0 +1,119 @@ +# P3 temporal reconstruction: image quality and cost, 2026-09-24 + +This record covers Faset's first-generation, opt-in TAA and temporal upscaler. +The temporal shader source under test is +`1a1f69f7e88b3ea69986931dfcf6baf9b43a431c` on +`feat/p3-temporal-integration`; the combined integration source revision is +`4a3453e`. Final CI results are tracked with that integration branch. The +physical Vulkan device was an +NVIDIA GeForce RTX 2080 Ti with proprietary driver 595.84 on Linux. Both +fixtures requested Vulkan validation and every recorded frame reported zero +validation errors. These observations do not establish physical Windows GPU +behavior or high-end reconstruction quality. + +## Raw artifacts and method + +- [Lossless PNG example](captures/wire-static-taa-15.png) and + [frame-level CSV linking every capture](frames.csv) cover + the Direct visibility path at 160×120, except the 319×241 resize frame. + The sequences are static subpixel wire (16 phases), slow camera pan (16), + moving cube (16), unobstructed background (16), opening door (4), camera cut + (2), resize (2), and translucent world geometry plus sharp UI (2). Each has + Off, jittered current-only TAA, accumulated TAA, current-only Upscale, and + accumulated Upscale captures. The current-only controls mark each frame as a + camera cut: they retain the same 16-phase jitter and internal extent while + rejecting history. Upscale uses render scale 0.67. Off has no jitter. +- [Computed metrics](metrics.json) contain every sample, fixed ROI coordinates, + steady-state timing distributions and paired image errors. The + [contact sheet](contact-sheet.png) shows representative source frames without + artistic retouching. The [door edge detail](door-edge-nearest-5x.png) crops + phase 3 and enlarges pixels 5× with nearest-neighbor sampling; its second row + is the same-jitter unobstructed reference. + `tools/analyze_temporal_quality.py` converts the raw PPM output of + `faset_render_temporal_acceptance_tests --capture-quality DIR` to PNG + losslessly and computes the metrics. It needs Python with NumPy and Pillow. +- [720p raw profile](profile-720p-debug.csv) contains 30 measured frames per + Off/TAA/Upscale mode after 10 warm-up frames, with rotating mode order. + `faset_render_temporal_acceptance_tests --profile-720p CSV` reproduces this + fixed Direct scene: one opaque cube and one thin wire, output 1280×720, + Upscale internal 858×483. It was a Linux Debug run with validation requested, + not a Release or gameplay frame-rate result. GPU timestamps include submitted + work and the synchronous image-to-buffer capture; renderer CPU time includes + the wait and host readback. + +Reproduction from a configured build: + +```sh +cmake --build build/linux-debug --target faset_render_temporal_acceptance_tests --parallel 2 +ctest --test-dir build/linux-debug --no-tests=error -R '^render_temporal_acceptance$' --output-on-failure +build/linux-debug/faset_render_temporal_acceptance_tests --capture-quality /tmp/faset-p3-quality +python3 tools/analyze_temporal_quality.py --input /tmp/faset-p3-quality \ + --output docs/validation/p3-temporal-2026-09-24 \ + --revision 1a1f69f7e88b3ea69986931dfcf6baf9b43a431c \ + --driver 'NVIDIA proprietary 595.84' +build/linux-debug/faset_render_temporal_acceptance_tests --profile-720p /tmp/faset-p3-720p.csv +``` + +## Image-quality observations + +The static variation measure is the mean absolute RGB difference between +consecutive frames over phases 5–15 in the fixed ROI; lower means less frame +shimmer, but it says nothing by itself about retained contrast. Wire energy is +the mean summed RGB value over phases 4–15 in that ROI, and peak is the mean +brightest channel per frame. All color figures use 8-bit output values. + +| 160×120 fixture | Current-only | Accumulated | Change | +| --- | ---: | ---: | ---: | +| Static wire RGB frame delta, TAA | 0.388 | 0.360 | −7.2% | +| Static wire RGB frame delta, Upscale | 0.439 | 0.412 | −6.1% | +| Static wire ROI RGB energy, TAA | 8,234 | 8,275 | +0.5% | +| Static wire ROI RGB energy, Upscale | 7,429 | 7,485 | +0.8% | +| Static wire mean peak, TAA | 179 | 167 | −6.7% | +| Static wire mean peak, Upscale | 179 | 161 | −9.9% | +| Slow pan RGB frame delta, TAA | 0.399 | 0.398 | −0.2% | +| Moving cube RGB frame delta, TAA | 1.930 | 1.917 | includes real motion | + +The separate static cube-edge acceptance ROI fell from 0.832 jittered +current-only to about 0.739 under TAA. Its exact percentage does not transfer +to the thin wire. The original resolver achieved a much larger apparent wire +variance reduction by dimming the wire about 15%; the final depth-aware +resolver retains total wire energy within 1% in this fixture. It still reduces +peak contrast and offers little gain during a slow pan. Upscale is not +equivalent to a full-resolution reference for thin detail. +Off has zero static frame variation because it has no jitter; that does not +make its edges alias-free. + +The door's newly exposed center matched current-only within one RGB value on +the first open frame. No red pixels from the old door appeared in the tested +old-door ROI. Against a phase-aligned, unobstructed temporal background, the +30×35 edge ROI had 121 TAA and 176 Upscale pixels with any channel difference +above 8 on the first open frame, then 17 and 28 respectively on the next frame. +The enlarged comparison shows a one-pixel dark green/top-bottom edge +difference, with no displaced red silhouette. It is a bounded residual, not a +claim of zero halo. The explicit cut output matched +current-only exactly in its ROI; resize and UI pixels matched their controls. +The existing Direct, GPU-frustum and GPU-occlusion tests separately cover +moving reveal, cut, reset, resize, shader reload and Vulkan validation. + +## 1280×720 cost on this sparse scene + +All values below are milliseconds except allocation. p95 is linearly +interpolated at rank `(n − 1) × 0.95` among the 30 measured frames. + +| Mode | Full GPU p50 / p95 | Resolve p50 / p95 | Composite p50 / p95 | Renderer CPU p50 / p95 | Live Vulkan allocation | +| --- | ---: | ---: | ---: | ---: | ---: | +| Off | 0.560 / 0.580 | — | — | 2.256 / 2.527 | 43.02 MiB | +| TAA | 0.671 / 0.715 | 0.081 / 0.101 | 0.026 / 0.028 | 2.545 / 2.927 | 76.77 MiB (+33.75) | +| Upscale 0.67 | 0.672 / 0.703 | 0.079 / 0.099 | 0.025 / 0.027 | 2.630 / 3.448 | 68.52 MiB (+25.50) | + +Main raster p50 was only 0.015–0.018 ms because this fixture is sparse; at +this resolution and content, lower scene resolution did not pay for the output +resolve/composite. The depth-aware 2×2 history sampling is included in these +costs. A dense game scene, Release build, another driver or display path may +have different results. The renderer's synchronous full-frame capture makes +these CPU and GPU totals unsuitable as unqualified gameplay FPS predictions. + +TAA and Upscale therefore remain opt-in. Compare Off and a jittered +current-only capture at the game's target resolution, watch thin-object peak +contrast and newly revealed edges, and profile the whole frame. These fixtures +are a bounded regression check, not parity with Unreal TSR, FSR or DLSS. diff --git a/docs/validation/p3-temporal-2026-09-24/captures/cut-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/cut-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..9546c3d4b955b6c470c68e4d1bf37636ac7c315a GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8Y4978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eG8ayxx}q2%z z6#AYpl<7U-YEtG{mmvQ}<^V5?7a1 zNb^TZJ)ghG^xS?m(V5vh*u@)7#Uhd$b5An$C%SYW_^2FpQA1ttqMKzszn;8YW#j)} tSLWQQm{o6_#cp!$_e(x3ZUGAYSj29{ts$~L{d+q|fv2mV%Q~loCIBppWRw5^ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/cut-off-00.png b/docs/validation/p3-temporal-2026-09-24/captures/cut-off-00.png new file mode 100644 index 0000000000000000000000000000000000000000..1661c36ca82a877f877f448f7bce89f1db0bcdae GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eG8ayxx}q2TL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/cut-off-01.png b/docs/validation/p3-temporal-2026-09-24/captures/cut-off-01.png new file mode 100644 index 0000000000000000000000000000000000000000..123b7bd236e49fedc10bee72dbfb17f473d60d8f GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SP}IEGZ*dVA|2Z&QGPYv2-A zos&!%ZAXN34zb;dWZ26qEtc0i>Ba0~E(68u56_$PF#|PW0R=OH&rG&?ce;JP!QADi zYk0YBe)a8-ns44HDA6eRBUUy24@>r(|6SKC{_|Y3s6TnhqP`o*p0%X#pY4uW>3N@= z-8t86JRrsW=kw27vL};I3+gsL-u_H)u}l@4^wU48tM}P_V*3B}+Me`tzc0&Tu^%W@ Zuz;7VO_|^G?ipc_0#8>zmvv4FO#u8dTnhjI literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/cut-taa-00.png b/docs/validation/p3-temporal-2026-09-24/captures/cut-taa-00.png new file mode 100644 index 0000000000000000000000000000000000000000..9546c3d4b955b6c470c68e4d1bf37636ac7c315a GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8Y4978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eG8ayxx}q2%z z6#AYpl<7U-YEtG{mmvQ}<^V5?7a1 zNb^TZJ)ghG^xS?m(V5vh*u@)7#Uhd$b5An$C%SYW_^2FpQA1ttqMKzszn;8YW#j)} tSLWQQm{o6_#cp!$_e(x3ZUGAYSj29{ts$~L{d+q|fv2mV%Q~loCIBppWRw5^ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/cut-upscale-00.png b/docs/validation/p3-temporal-2026-09-24/captures/cut-upscale-00.png new file mode 100644 index 0000000000000000000000000000000000000000..bc48a870b0032ab260fa1e1a3c86f351beab7e36 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eH3Bsz0_q2g&JIEGZ*dVA|4=OF`;wu`qf z@xJoldtlUbxTMif(tJY0lu7o_ZMp^Q-sg&}2CByb8cypNs$2GdpZ|V?{kP|@g~ckq zN}gBSaDb!dz@21nEAP|4vl5!>ryuJQtGJ+o7V)g z?v~r(o4_LX+wJPJow4nH1^N5_oC(_!{pCXOo|1j*R%yMLFUMjzQ0Tzcef1lqwXW)F QO#>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eH3Bsz0_q2g&JIEGZ*dVA|4=OF`;wu`qf z@xJoldtlUbxTMif(tJY0lu7o_ZMp^Q-sg&}2CByb8cypNs$2GdpZ|V?{kP|@g~ckq zN}gBSaDb!dz@21nEAP|4vl5!>ryuJQtGJ+o7V)g z?v~r(o4_LX+wJPJow4nH1^N5_oC(_!{pCXOo|1j*R%yMLFUMjzQ0Tzcef1lqwXW)F QO#>M4lsE7Zj?jp45jg=hWw03DSTKoG{*%mt(u#|8;+A{!dx8^gZT{tZoS`AoSpP zXz9t@bxo%4>RsFWi%!{Fm=#}B);9PoQ?cUyvBNCV8NzRt@?tX-D0bldoeP@;BzW!x Q#DG+Iy85}Sb4q9e0CLznaR2}S literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..d8679389552fd80402ef6b8b8b43b297b5b3636e GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5YfIEGZ*dV6gnZ-atB+eP`u zEyoOHjvMx9C#C17zq|KZ^TA^dPM|_;z`=g;lXc&I|Je29*11XU8+Sb3%Bf?(qzp#t zCw-P}d#WDsOw9j_$PVYnnj6ljuDxsa$4pM`hQsWHcmr$(g2etkXS^*cAfX!G=L_O` My85}Sb4q9e0R2)uZvX%Q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-02.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-02.png new file mode 100644 index 0000000000000000000000000000000000000000..8972fb6661efdb7a7ae570b9d1b6e3d361f7c9b3 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~?0MIEGZ*dVAea$iYCw_2Q9; zg&TQJZ{$htz9=!(E&ZSM^6(R1Cui^im0|-G7gz7QQI!`jZ#ix6Ju9DmA8)aUNi+(A zQNHu-Pr_>o|LRs9N$<00o@~q>yUED-_}xX9jn2=MzJ7Vf>;&fAroRD<*bD}WeNY!a WJV8)0;p!nVkP1&%KbLh*2~7Y-xk0u7 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8f6cbcdfa87712ecad079a8579c30776acd532 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq-J`$IEGZ*dV6iBV2go>%fUt^ zr>w&YGKUs;2-^H9{a^CiXvuPIMxa7$;Kk;iIalA?{gW+v`~1Yxh_@eavWQ7E3WCw( zC!TV-$LA-^)L!@E(;40Tg4}28{KFET9g8mseYW;n;V&tDrs-4Iuo(*!OXv^}|0pP4 SRp49=QsL?9=d#Wzp$P!SmqEq= literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-04.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-04.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1c6a5f4e30721a2cac56c98a836b3f84d9b912 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq-J`$IEGZ*dV77NV1t5yt7FQV z3mbV(ZR9yFcK!&P&-?esRDQAa8v+$#1)p+a<=@m?TmSWY;no`d%jWlHA7D~80HY7f zx8&|`_I}o)Y-Lk?%HG1P_}T=~8J2}zeW&JB`*NM!)6PFLm7N)@u?!4fJ~MTs35pq} R{Q)_W!PC{xWt~$(69DOKKAQjl literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-05.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-05.png new file mode 100644 index 0000000000000000000000000000000000000000..fd22430f91c8dfbee919e2ecbba83656538f1612 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5bgIEGZ*dV6i7V1ojW!^H=d z3!h8$9hR7|L&xnERMMI@fM4iM57=W zy%e-i4!ZYASf{vK-HP?yg&pb7wqDJff9x=ebVg(9H<#Z{jM$6>ihbBGoo^{1rBSM% P4N~Fh>gTe~DWM4faw|Z4 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-06.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-06.png new file mode 100644 index 0000000000000000000000000000000000000000..c68a40f3a1849950d7c6fa09d2757b6c9e36af30 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq-J=!IEGZ*dV6gnZ-W7kt0TLi zViM1>M4lsE7Zj?jp44Ao&Y{n@5~KkeIAOdiFUNNKdhfo}_upmJ()XA*vbrU(fY5{E zp`|Bp*EN~Gt9NbhFFIv!VOD%iS=->VOvQ@(#}2bdX9&Mp%8SiVpxA-)cTWEikZ3Nd QPXwv(boFyt=akR{0NF}Bu>b%7 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-07.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-07.png new file mode 100644 index 0000000000000000000000000000000000000000..35f70925cad2f372f69d0f1f0e2309ae4bc57b10 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~>_KIEGZ*dV77NV1t5y>%qet zosJvnv>VApA31a9%fCFo1^ypafYf6HCyb-)uKtXvpMK|f&QC3~`xW_2+&u?4z$i4- z`^Goxij#8+Tu#e;=GQLs|d; literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-08.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-08.png new file mode 100644 index 0000000000000000000000000000000000000000..946a5f9edd9abf2b88500c01f61dc6980a34bb57 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~?0MIEGZ*dVAea$iYCw_2Q9; zg&TQJZ{$htz9=!(E&ZSM@@pr)PR`&3D#ZpWF0S5pqbhIyJo{;TpIG_q`*@2*OrlW` zjPjjte-d6(_*b{;NP3?|^JHW8*iA;p$L}t>Y;=C6^!3X-W+yP~Zjjf)W-dtV-xDTA V89{M&t^i*U*VEO{Wt~$(69ABoKnMT; literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-09.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-09.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c289160201830c43e8a5501b6133e34f3a6dcb GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5hiIEGZ*dV6iRV1t5)t7E~M z2^)D%Z{#^HrdW8!_x{~p&j%l}d4USC0R{i{RvRB%*7xo|9$F-8R=vlpk<~4M1%w`4 zzq0KQ=R70zn2Qf*2H$&d<4olIH3!ag?tii3O!b?`UrgUIwNGKgW++f>K?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOx|QJcklk$(hnXtTmve^3O;>V#eIAICv82qe7*~+H)l&s8b%hwY{XIOp|m7QAIyLZmLV|Q7kGq4&86#Vyu&DKXybmg<6 P`yeHru6{1-oD!Mp}T8 zF3D31WKJby2+D9ZJKlNwtK&nFA}3HKHt->7%AKoKdGXU_PRD%;_BmIP%f#JtfCG#? zi#Vg}n)GK{$6S=U{-51k{;6L7nr$M4lsE7Zj?jp45jg=hWw03DSTKoG{*%mt(u#|8;+A{!dx8^gZT{tZoS`AoSpP zXz9t@bxo%4>RsFWi%!{Fm=#}B);9PoQ?cUyvBNCV8NzRt@?tX-D0bldoeP@;BzW!x Q#DG+Iy85}Sb4q9e0CLznaR2}S literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-13.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-13.png new file mode 100644 index 0000000000000000000000000000000000000000..3314812f0c5ad7c3c5aec7f919ea579a1b0108bd GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5YfIEGZ*dV6gnZ-at>L!g15 zhs@zZiNhNn-IS=dF8&_p%RFCs3mZ@+HW1){e%Hq2x%02ZCoi*UKP!9QH=$8b0*rnL z-dZ;Q!GxWMgk_n+Gh~=f&$$$rdpQ4bUK8(@14i6$mh)mW5GeNNJny|8LGiB(4^0HA N@O1TaS?83{1ORdnJbM5D literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6963bff7e2e6f5a0fd61a21f4facb6a338bf72 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~>|LIEGZ*dV77NV1t5yt7E~M z3mbV(FXTBcW?0zc0slo3F3OX`njxgN@xNAG%rUe literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-15.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-current-15.png new file mode 100644 index 0000000000000000000000000000000000000000..d8679389552fd80402ef6b8b8b43b297b5b3636e GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5YfIEGZ*dV6gnZ-atB+eP`u zEyoOHjvMx9C#C17zq|KZ^TA^dPM|_;z`=g;lXc&I|Je29*11XU8+Sb3%Bf?(qzp#t zCw-P}d#WDsOw9j_$PVYnnj6ljuDxsa$4pM`hQsWHcmr$(g2etkXS^*cAfX!G=L_O` My85}Sb4q9e0R2)uZvX%Q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-off-00.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-off-00.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c289160201830c43e8a5501b6133e34f3a6dcb GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5hiIEGZ*dV6iRV1t5)t7E~M z2^)D%Z{#^HrdW8!_x{~p&j%l}d4USC0R{i{RvRB%*7xo|9$F-8R=vlpk<~4M1%w`4 zzq0KQ=R70zn2Qf*2H$&d<4olIH3!ag?tii3O!b?`UrgUIwNGKgW++f>K?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxK?m!#zXB3B SmcQ%-sql35b6Mw<&;$TOxM4lsE7Zj?jp45jg=hWw03DSTKoG{*%mt(u#|8;+A{!dx8^gZT{tZoS`AoSpP zXz9t@bxo%4>RsFWi%!{Fm=#}B);9PoQ?cUyvBNCV8NzRt@?tX-D0bldoeP@;BzW!x Q#DG+Iy85}Sb4q9e0CLznaR2}S literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-01.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-01.png new file mode 100644 index 0000000000000000000000000000000000000000..4f29ed3c462fbbb62429d29b7ebffa25ab557320 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%jvIEGZ*dV9@~ugO8c;bNqU zp<0Q|>2tyr8rJI{aB|MxdTCzYnLXlBTtAGt1%Vo{g0EYq_?On(=f5s`G41^0sh>i9 z(rnBdS=|y?Ko#$v&Ew|#y1#JqL9ttGzc1Tu vowGb-_N}K?31#l`wYSe&VYP{Y;mSwWyVl|oJ@2fJfmC?9`njxgN@xNAs#8u@ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-02.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-02.png new file mode 100644 index 0000000000000000000000000000000000000000..38412a67da72b6633947856bb9d9c3806729e015 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqz-zzIEGZ*dV9@~>yU$h!^OzW z98Ghle-hXxck-Th#hMZ)4vnbH)Xj6x>~X)PTUMVonFFW^8+gz@ttkBRHhKN!7elvy zHoYJCWl7`myNUK&Qf9u_>`!_ublNweQBVSmER-I7t@N-vDD`~*qVE2psrdyr&up#R z#Fh4rHU3rp2K*zwrLOQ+bhKR=su!H@C#UG^m`KrPrn%|z#WS1ac1D!fsevU`2% z-AA@vijOWlJ6&ow$A34U?q}U6Ys#lZaDFu5JzkYH4PFePZ!`|bz4(+dBH-mRD# zUCC}PT^ubR$$QMk#Nx{Qp3Q99TiE`m7Hs_&@M1zz-paaH#rNMzb$-&=YV+5e8JiOr b7#x)2-bN@&g!bNA0aD=U>gTe~DWM4f^^sfj literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-04.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-04.png new file mode 100644 index 0000000000000000000000000000000000000000..534babf672d6e0a37a5d604c8d8c31d95e9375d2 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqz-wyIEGZ*dV9@~?~sB>L!!cr z3LE|h@8;Sx>=rM+Y<7voTz$Hp+J}Al^~`@4P7ng>zy>}z&nru;ynm_6Yh`)k@qqsJ z%WpSjKdIZd?Rxb-|G;HDF}k=*4Z*lY4jC@#5gyHIEGZ*dV6Cd?;!&Lhrrt# zTPD1i(WRIX**Q)1hOSUxAKOKT$9#J4ziLjZPd};23eOM+q^v@kBPhI00$W92L}DyF7QKn^8wY`#{v;)jj8{zopr0H?}YIRF3v literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-06.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-06.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f65ff846630ee89b50a8f8b8dfe935ff1a407e GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SJ{IEGZ*dVAfF?~nlx>xC_u zOXT{!71kX+!fPQW9i-hFz^0k56*?zh6AAcD{`E2ZsQb=IwX%IAEayyV8?KQjNu>Xdh$Ln95bKf~V zzhJxJ_tKP7iO*LadjCCHVQ`S`7R&#?U-z``+kQB2<;Ev5pZ@&{yS>@$|5FVdQ&MBb@0F;eh+W-In literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-07.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-07.png new file mode 100644 index 0000000000000000000000000000000000000000..e13f9f3cefda29b1b6f33cc45a9e582841c221f7 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq>gyHIEGZ*dV5om?~sFl!^OxZ z#e;=9CAP~C6|nWSDX(1A%_yR>M(NC+>9@MRz27oBhXtq!8~EUM`d38mlZ#a@U-UlQ zzcHV0_T91<(>|BH*{*tjb;QpO+pwzBJFl_&`6V<8N`TP*EAz!qsz*HjGylb-#W7Fi zW6X-z`i31m^SY_~*VP>}6PRg#IIEGZ*dV75%?;!&LhroD| z2@WN1jtKZ1)bcsV_r|qxf`ye9*PVNNukY@tKUa7Rs0Ayi>zL%f^=7{R_0Lx({eJqb z%I0zYj0)w`tsKBK$u;9O(#T`6DB z+<7Ng&JIEGZ*dV9lKsL4RY;bM(L z`kmQRtqc6Gtvm2E@C3ugf@5ynFTWJ}`A@vFhi8HiPzyHj!I5w0s!P}ZZTMeTm^zopr0QjO@KmY&$ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-10.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-10.png new file mode 100644 index 0000000000000000000000000000000000000000..bc89f5555ca89c68fc4abbc2ef9d5bc1a1e7de40 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1pEdIEGZ*dV6iHAd{g$!^J0u zNYSHAxJVq)WNU!BFVdQ&MBb@01m@c A1^@s6 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-12.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-12.png new file mode 100644 index 0000000000000000000000000000000000000000..dec763e500fdcf39b34c44d489b01944cfd39f6f GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)vOfIEGZ*dV6gz?;!($hQQ;6 zF4L0PRGv8{u`la>^5=qr7T2YFd#^7qu)D9i6sR66u;)?qzxph5kI!Pcz!l#a&Ls^2104a;X9xX7tvz@!XBAO80R@l_u7-*D_>c*&>0bDwzq zW?NqO4?A>5_u@sw;gSqzi%h65ZuAawtA%#WjybBGMXD|9OAri+>gV zIIUTC3-7n3x*yKxzW%o3F1zvXr68AL0S&U1Ozbu?ANOC8iw8-2y85}Sb4q9e00Bx+ A4*&oF literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-14.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-taa-14.png new file mode 100644 index 0000000000000000000000000000000000000000..6cfab9db45421bbfea2105d55fef6eba699f7241 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)vLeIEGZ*dVAeasL4RU;o<~` zhdr{#KM9%5J9W&vLdQB?XGX)^sjORezrVUrVSdXJ5uhGy;6cCQtM1r$*BAHOzqP)(|9|ZJQu^}US!{L##U>mPUu!KR T`77w4DM*Eo4(ob-;s@%PB~c_|BlPhoYo&XjRU9&8+g#Y?#ZfYvkiaEpFT}c zaQkOflM)@G&hEV#6YAbob$v+E4h5>j3O;8}Tz+f)aT7*F4}i1pi#O^b4KgnKyuyU#0>jhu4 z?#w-N#5a8Ni#u@bGG}0NdaAHs%l`LYqkZh^IeavMTCjq@lAqk9qHSaRX3vZ1fByW_ zj{DONteI-lkK9DS?*RgMR%bqowOUzqsp#bZ83OGbfIc)I$ztaD0e F0sxffQfmMJ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-02.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-02.png new file mode 100644 index 0000000000000000000000000000000000000000..34ac2a89b859d42de717b73e4b87fe06b6e8cac7 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq;7h;IEGZ*dV9l~>yU#8>xG#r zT48#peIs@&i9gVanaa^5^ykP%fi*fooR!6XQ`ROEgE}fV{Vak_VwLoPkjFSa#oO4&iAD*-a7)5<~N=&-0gGVB4@+_ z4hhEp(G%D5iWyA4&bsgR_NAK}l2==1it0XySRHfwdTIE>fbgp~v~IEaUnr>mcKq~@ k(0?`}_U_nR0TN59V0JmJc<#$Y-5nsVr>mdKI;Vst0Ae~}P5=M^ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-03.png new file mode 100644 index 0000000000000000000000000000000000000000..50eb48ee5b1ab052f0a250eea6865c2a78592bdb GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SS~IEGZ*dVAB5ugO7x^+IHm z*Of!Xl^l=v?qDt7ys%&o1FM?Zxqa7zbL{@JZxRIRzy=Pqg?$cLTU)rP=gbvxpRoEUqr+wf|$BHU>9&By^ bisk%bcyUO<)~)X%vt>^tNvwvf8x`xm$Q4W z%{y#+f9(oQ=IiUeUH{z1zG%uC;h5$tEMgLkf?y=>d#@w--P6C);=(g#IIEGZ*dV75%?;!&L)&OZq z5f;(xjV!v_7t=VlE$V7vI+DiNWn%LDdzSgP@Afw}8G)Lx0sAK_ZfhMbE0+n=%ipT| z`M2rWkA90<&U~-gy=2b!<%dsw{r)<_-uuMj8!ov8=N#K7HwbQM5Hw&qX8zKCR)T3n z^W!fT+!ovBO*UJ^Dzp03-o5+1+NbYY-I?o>UBDh%XSXb@b{;OP7yV!=I3lB!q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-06.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-06.png new file mode 100644 index 0000000000000000000000000000000000000000..f2879d081532e8728f698439b563204a3840c9b3 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^^0oIEGZ*dVAB5ugO8c;o?o! zq>l2>Vs}ngu%AzL?{T}90`*`6e*%K!*G*}Dp8b32TYDqP z;%Tz4O#G+cF8c8Ad2;Wycc)F`AI>r=kbPBR7nz>P{Jj1bN6!H!Wdk6pH&(NY{(NYP z^@dAfTMoQ*+gU1B@#cg7-K)p8E%Gg3U%V$b+GR`6YwPFJw47z1uXH)GQUBlD&3ms; iFJ#B&5C(>Zx*A6Pe0k@48mARODm-2NT-G@yGywp2`eOY6 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-07.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-07.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec6646605955a90528500129cdf3d0fddb96b90 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SJ{IEGZ*dVAB5ugO7x^@3!R z+L3eFm8{(7moEQMG;6`8Fte}#qdnqYvmU;mpW@5{)PfBh_?B{VrQde%6u#q!&wPLX z{Pk}+4?DIc{Z5f7JUtYdwo ap+0_hx1_`IraKD9T!faQ3eWqi0cUFdP3i^ezy=cL>R4X=S{VKD+Go3~(MOM( z$3?HUylRo+CfzPSKR&MbOI(p?tMs4a_tiJQ5tF%ilr!Q0hXkYY1K+P5dU3pB9|B+h zzWdlXeCOPhbNjj3y zf@Ax14)MJ?CY5vOS_0D%u^w~t_jkVw*wr^m27xqU0T0Zb_bB&Po|=Bgs&rcMeXl*M zCo;3y^nWhRoO|oK(u4hl)%SwEE`NIa@?L-V6;a!^+IKu}m6_ZQa7ZvJCs_USS=Dqk zfw%ASW5)vl1I$j!{iNljoa>lxSp=>5S$C}Skqb~0Ht=EAvom>{9;8Z`KHetw z_vE3Of)i&l{ck_8SpW9d-~S#Te7wJJ`3ajh-@dl(n9g&jI{u!S+<{bPj%*Y4eF1-Zu4x4Ce~WKSvHbRhZA?5b6ww}o<>)FqxC%32pxyXII~=l;3>*<mdKI;Vst07%enbpQYW literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-11.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-11.png new file mode 100644 index 0000000000000000000000000000000000000000..490f64c0df9745c52f77ee2f490ff4d81d3bf012 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)vFcIEGZ*dV5om?~sE4>xG%i zn3`U1+`%$Sd7&lCawQ244YqctkOgV?FR#7v@9*ThCLq1ozz@afb(+T8PwN$3eYHwU zD{i~{-qrVy&xn3^>+j16GiRr6|I~W=gTe~DWM4fZ7Er& literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-12.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-12.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd934b907e5063af6925eebb55b9f9b0b21bbd7 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SM|IEGZ*dV6yt?;!^shrs6^ z4uZQ4S>LqYXx#ZiiRDpWUzgIN!{6iP9{Y2{wF9UDE7&JtbUrN1|N0_Vmu#m0Cqrf% zoxOed>5fl7f9Gayjq`tAWAExIxg+P)mis%;XEG~qIKa^ZLVt36Y;Hf_eMO-l&vts* zBGz+TPp#d2Ah}(?G+g|4=eC2gYl_yIzV6BV&oB2pv!f&NYQx*m`KJ%>V#ewS1_%3l X#!)i%-%Wq+0V(iw^>bP0l+XkKFp^?# literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-13.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-13.png new file mode 100644 index 0000000000000000000000000000000000000000..68be3ce5a5f8647d18ac64e833cdcddec60bc63d GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SJ{IEGZ*dV9l=ugO8c;i9Zd z@5awja!&7;F8`2Ywjw1**GHv{=e=l%$?0^pmTN#ASiv-PuX(R3EVp;uO|<{`?|5y- z%Jf3pM|-h|DWktez<<`v`(%ocTDz_%U#@b-1O{qAA~I@UmdD6e#AvmOt4{`P#>VW#2$5 NJYD@<);T3K0RZOeS=j&p literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-15.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-15.png new file mode 100644 index 0000000000000000000000000000000000000000..c466d5a6e24a3c3dcdc5e3491becfce23d828364 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq;7klM)@G&hEV#6YAbob$v+E4h5>j3O;8}Tz+f)aT7*F4}i1pi#O^b4KgnKyubm52u7B?_@ zw$RnD^lrOW!M6&p--~iLgo;IE#+#V^SRBfR%_N|h!da$rSq{ydeR~&xRCv1jxvXy<>t?NGm(uo!PTh2EB?Vj~(pQp=L>OcI@n=TxYz~Tl(4|MzY zh{>!^m47c=C>oI&ZX%X*ib?xz*RiI*ddygjVqo}?%Gk%ksbOlDc>|=v)78&qol`;+ E05r-q!~g&Q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..2f38daebb32eefaf13f80a4d770545310658d16d GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$YW~IEGZ*dV6gnZ-W7kt0TK% z;t`3S!x9~$ll!E+tjkS(zx-(704l@=8oq9swA^am=j)%#_pf5Rx99OzP8|a#Wgz8V* Mr>mdKI;Vst00?S2!~g&Q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-04.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-04.png new file mode 100644 index 0000000000000000000000000000000000000000..7052408d3819bf39370b496e43ce48a34e8cda78 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr20Kw978H@y}hvp literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-05.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-05.png new file mode 100644 index 0000000000000000000000000000000000000000..652eb47320d226504d9cd51ed982386c1fc57ce3 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$Yd1IEGZ*dV6gnZ-atB+r`5c z3k!LUC-OY*x)GV3`ss6=ue04dCsCkEY~Vmm)RVQ}UjHchcc&`r!BOe+Y8wu4^nj3l z@2Z7sIp-aes@b02G5f&HG`(C`?l+%PU2oq|lMw!MUxOK&c|b9Nr)+zla4R3&`5+0T N!qe5yWt~$(69Dg7LFWJf literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-06.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-06.png new file mode 100644 index 0000000000000000000000000000000000000000..6d307e3f07f1aafe65cf9baefd5cf504b4a16c83 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$YT}IEGZ*dV6J~V1t5yt7E~M z2^)D%FXU+#Gc+9eh>qLMmv4MuKS03z^ef+27UzY8A^_+VZW{s?F2`pd~ z_wB*%v(FcE&B=XwDQwGu$i+5mGo){`BsbNYp2B7pNX%s?<98)a)l;&;DIl(=tDnm{ Hr-UW|Lzz1= literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-07.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-07.png new file mode 100644 index 0000000000000000000000000000000000000000..391c0c398b289c424348135e210577e2432eee8c GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$YW~IEGZ*dV6IfZ-at}YoLK& zhRoqYiNiaT!qlRoK3ObZwBYB?58jMGrP#m>|K2%S`}^X*pI^I_EpE@p9479b0~}yf zvu0xO*XIF$AH4baOMBaah>K?14meMlr@l?}E&J`;*bD=S^*m+szRaoSwo)Y;#PxLb Kb6Mw<&;$UqbU&T| literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-08.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-08.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef1096b46252b1c1bdec2bf0654797d964e217a GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$Ya0IEGZ*dV6IfZ-WAZOQ3&OPc$S+)|)QY+%E3w|TFs-uG^wckQ#?(TDQq)ixa9=mDcM zPkL;wezy%8y6X8AU=4=^bkK#+d* zhr7={2eO{qR+On7^mdKI;Vst E01p{9r2qf` literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-11.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-11.png new file mode 100644 index 0000000000000000000000000000000000000000..652eb47320d226504d9cd51ed982386c1fc57ce3 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$Yd1IEGZ*dV6gnZ-atB+r`5c z3k!LUC-OY*x)GV3`ss6=ue04dCsCkEY~Vmm)RVQ}UjHchcc&`r!BOe+Y8wu4^nj3l z@2Z7sIp-aes@b02G5f&HG`(C`?l+%PU2oq|lMw!MUxOK&c|b9Nr)+zla4R3&`5+0T N!qe5yWt~$(69Dg7LFWJf literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-12.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-12.png new file mode 100644 index 0000000000000000000000000000000000000000..6d307e3f07f1aafe65cf9baefd5cf504b4a16c83 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$YT}IEGZ*dV6J~V1t5yt7E~M z2^)D%FXU+#Gc+9eh>qLMmv4MuKS03z^ef+27UzY8A^_+VZW{s?F2`pd~ z_wB*%v(FcE&B=XwDQwGu$i+5mGo){`BsbNYp2B7pNX%s?<98)a)l;&;DIl(=tDnm{ Hr-UW|Lzz1= literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-13.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-13.png new file mode 100644 index 0000000000000000000000000000000000000000..1e17418364c8e3183be39e133f4dfd814fab60b4 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq$Ya0IEGZ*dV6gnZ-at}YoLLT zhs@zZiRK-PLd3S2shuy@lI}kLRoI&ms1_UeF<;8^YMq?^y;-$SWRE_RKCian07nlP zopJ7-^JDm-2N KT-G@yGywoVFg(Qo literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..66ba154439dcbae03639afdd4841dd56eb69b237 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqy<>t?NGm(uo!PTh2EB?Vj~(pQp=L>OcI@n=TxYz~Tl(4|MzY zh{>!^m47c=C>oI&ZX%X*ib?xz*RiI*ddygjVqo}?%Gk%ksbOlDc>|=v)78&qol`;+ E05r-q!~g&Q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-15.png b/docs/validation/p3-temporal-2026-09-24/captures/door-background-upscale-current-15.png new file mode 100644 index 0000000000000000000000000000000000000000..93deb2c0151316afae7211ee9729e647ecf7a26c GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr20Hv978H@y}h!Lw?RR~HPFDv zL*{UyMDvbCA!5_Q)Xo=cam|{4dbtQtDK^mXf91sBx6ePm`u9fJ^ux2>bm52u7B?_@ zw$RnD^lrOW!M6&p--~iLgo;IE#+#V^SRBfR%_N|h!da$rSq{ydeR~&xRCv1jxvXs{@lY`~;k@O-Ui!55d;g1J+a-zO}db0g*C zoExssrP=#D-v*wW)4Y0SvbYaKCI`@h;!sSw7>BLNZ!-c&t;ucLK6TVlwtw^ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca44b62eed9bbb65c4a9f72e39ad94ad4d16306 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq%L{7IEGZ*dVA}jV3UIYgX1|P zr*55=u=jFKvGGct^a+!fDF~EcWYb8%xeE&P!wSLR1T~B zX$|$Vi$>~klW+A(zd!geP_OodN7}o&YP`0lMh7o8o}16^FQ3uQdzk%}y;a-(;F$@t iby(aIFdPIDco6Q-dBmA*$CB#bAg-sYpUXO@geCxszF(;T literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-current-02.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-current-02.png new file mode 100644 index 0000000000000000000000000000000000000000..0f8595d65580391074e417c61d1909dbe208a232 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq+WTtIEGZ*dV6alZn;?$uZ?$Ic=qqk;!&RxCk0AD1> zp34`P=KhdfQ}{%5evgI9TO`dAlqyBR*K=PihelF{r G5}E)jA#E}M literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5277b0a66fc08d63e3a8b461a0bf278f42bb6c GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&|4MIEGZ*dVA|2=OG6Hhl`yN zo>3m^N=bs#k_F|iOuBTcO2CGLt%?2a%Y{#6ef=(nJ(>NpdX%t5dZ6_VmvG}7 zxk60JANtvXT`rsb<(szih=0k)Gofh(H_vS4i)1wpw{e|*D(1WAwbdUL3MO7+Dt|of z%hPp|JqMUR^Xq;7bNA#TTmAMmc~bR%l;1wmPHeP(f7d3D9m9!00gVTY$3*o)Cb9;y Pf}}lN{an^LB{Ts5jqGc7 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-off-00.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-off-00.png new file mode 100644 index 0000000000000000000000000000000000000000..5078a3d42c6affd88e0f7a59d9d993032426e22e GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)vFcIEGZ*dV6alZ?l1jgQNAS z7Qtwxjf*ZX^_n>4$KBinIe7yEHlRXG@ZJ1-#IaJD|2n^xhweXD+^qarW8T&5-mOa6 zzHEA_eC&BC=h*MrZay$Oz3$X6)y4$KBinIe7yEHlRXG@ZJ1-#IaJD|2n^xhweXD+^qarW8T&5-mOa6 zzHEA_eC&BC=h*MrZay$Oz3$X6)yNQ+^>n>eupPETECZ#+s=&PK%jug2d2y%?eL5X|7L=u NJzf1=);T3K0RYYDZe#!e literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-off-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-off-03.png new file mode 100644 index 0000000000000000000000000000000000000000..c66b82cbf915d5227fa4efd155fa117e5083bb29 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~3bEIEGZ*dV6ax?;!($hCp^h z&#)6}9ExoTGHnYO+)in^yEnQl=}`LdZm-o;d&}p4wy*(pVE~8!Y~B}Eezw?l&F}J- znw$5$zJ`|QHf|REyJ2%*=WDJx^ADU{I``o5=c!k}em{Jb?-<{+dKZp48&=59v0o+m z#*nj7u;TK~CAq(3WsJgixQd^TNoAXUHsNQ+^>n>eupPETECZ#+s=&PK%jug2d2y%?eL5X|7L=u NJzf1=);T3K0RYYDZe#!e literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-00.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-00.png new file mode 100644 index 0000000000000000000000000000000000000000..96a022b6026fd5ae50e4adedb38a3223a6d12107 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SM|IEGZ*dVAARsL4Qp!EsB? z!lU{tA9a6xs{@lY`~;k@O-Ui!55d;g1J+a-zO}db0g*C zoExssrP=#D-v*wW)4Y0SvbYaKCI`@h;!sSw7>BLNZ!-c&t;ucLK6TVlwtw^ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-01.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-01.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca1a739b1f6caf5613963fff79b539959b76e7d GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq+WTtIEGZ*dVAB6>yUwn>qQma z9sBhzzYEYPd~>Ej;qUu7tQ;SI-9EB~4X73a9QgZ{Df`Cp3c2H_7VVGvS~!n&-<-fi z-rA4pR_U{iQ<~hnr%trAC~$lBHb*8IODcafv#0LPrq*F-G7xV#q3 zo#K4&pqpjVWYyv$dRF@i4;X4zPf0#^aOKRy|6ZIpEmL_j;N!IuEbV+-ULShItXuH$ z5|g;S?QXp-C!G>lp4n^Vh`Yb<&;9*2J+64)y3_BOG296h*wJnNQ^j4l%&0aLB<<EaktaqI0Z!>&UPA`OX~ zZ?M@khi~}8Fs*Ep`VHqwCU4!hU!~?bdi=^+s1w~Gp?$ylK6|5xr?I{9WC?X)ph1}6 zQ8tgG%l*$k-==Jiu-RXfwINAV*84$A;Q!x7eLJ7dIhcEUUwQKNQl{e@ens~0eY(ST z#=(U;>B@R`@xgtKwm0N_EDkFaoSQT4MN}#4Isb%4W4#zA_V?BHCw9BMo?Xu`m$L4| zgixE}smot%nwh;1SA-}i12mEUwG y!S2MnqMdVl{{3IW|Ig9e{>9tPpkToSE#JAf&oPSfiJ6lClJs=-b6Mw<&;$UglYzAW literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-taa-03.png new file mode 100644 index 0000000000000000000000000000000000000000..d12539ef0e9d970ca716577073947dd39e85c946 GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0EaktaqI1ETQ6ouiH3(W z&$_v;7x1u}U9z)zfr40*Yu$u*%vEh$S+dgA@ zjqww87NCKc;F7qmV^N!H;IRrrxpskdX`Aor>#Yrsa=k6IV|Spw`sDle%QsB9TVf^k z_hd24yPa}v!ugrFt zJY|{Sj`@~z7kyr(UGSe%$AGCkFPUrM#cki;C(PU|adBq)xm5mhX2o&sYj}*GS9G1z zD&8j_nkVhvIQh$uJKMG#I9ah{U$^V-yU$BE3tCLPdE2Bklzo$J3g?;syW`i!z54a{ z*Fk~Xar-{JU*UUMXWD6jLkh`UpCx4eB9ZfHfhX6G<^N4Y8| zOxG7(yD`_mtYYh_O7UC&AC%tHl44X&VCiXK#IPACps=3*M7^Tj2E$kSAZbrmKbLh* G2~7Y1^iOL5 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-01.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-01.png new file mode 100644 index 0000000000000000000000000000000000000000..2d0a66dcd6f432aa668c6151db174edc41ccac35 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^^6qIEGZ*dVAB6ugO4w^}@!L zoog(`tk*vm+_9jOC1%Ib8?Ceb?sJRJ_;aqkjRU9w6Z|UoG&r0bsgyKt*|UZ9{SXRy3^?CqMJBi+Mm7yWb(_uKjp-}i)?Fu5JzkYFsEaktaqI1^jl72pL|7f9 zFSaR4C?>IIaj8s8keaq&aT?nUMQevk?R+XN3Jw!*?9^5cez5$1iZ&-B&=3sJ@WnNH z!nCtB|2XuI2^`v`bAQeJTbmxT|LpHvduDcn@$__8ao3Nx`CsocJ2>M(Vnkke{95~W zd`y04ldfgn{5k8ke15d(+C`pO5we@^GzVUk+%k>R?ZAo`cG6LS{SRlA^p~H}-y6Dx z)9jR*#lj`gjEfgtF5Fd;{bt7NmDbN2HrMQ5y-4yPi@C4zEy38yL0i_ZTCP5S|CGAY hwt$NmP6Z46-Nm?JqUyEaktaqI1E`=CP(BJ2-* ze_woYG@tFwo1-a#i-CNW7(nUEBXO|##xKE$K>scz5R z<8M@0faYO>N7FSOUD_(=rQS>pHI?^wTP$$sWy+`1y0xL%xf2vye5X|l7icrT`^vX< z3)haN=Z+^c{x=9qss8ut`s>oFs{$JuluOF0MV&O_s;uk&e|)yDE?OnBYsvQqt8SF8 z&}@@`UmA4&-&U!o$7XJsx#)7{wY4P$k63gP-W*(edn(K7X4Wrue<^ij{lZF{XcE7f6BK`*!sTchhte=CuNr}f1#l> z?R5LkJv--3O)W0G^Iv;S?(Uw3Xvq%`#T3`CJCZn~{=c)e_UZ1IA*q<&28vic6iy2< UU7dGtN-0R*)78&qol`;+0QO_1bN~PV literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..cae97e794b8a764dd3ce97b3d1cef4b022ae8643 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%syIEGZ*dVBLCZ-W94tAmM8 z#*IlwL|?PG)MdUmThVXVxs45|3`UpCx4eB9ZfHfhX6G<^N4Y8| zOxG7(yD`_mtYYh_O7UC&AC%tHl44X&VCiXK#IPACps=3*M7^Tj2E$kSAZbrmKbLh* G2~7Y1^iOL5 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..cd360971ffd081438b27ee56f6dfb1d9565e59ae GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1p8bIEGZ*dVBLCZ>xd;i-So> z#*0Zu#5OYYHu}Fyvr>4i_dZh-s16gndCyVMwtMSTVSm}5uWa28nBG;kJr;Cnw{>qs zj_Lc0#UVSZjwP$-F7hooq?K*J{ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/door-open-upscale-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..9b90cc751d173524017e896b9cd20c38d224f265 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#k>^IEGZ*dV6al?;!&L)&O?H z&hQgz91D34TJShB_Dl)&5$t5*;t)ENzCV1Y$J6!o+ny|80qVm54mHiX9O7+c5XwpSzXw zrXSsPUprn-z%-(H<>FKR%jVcueqhIN6i{FRYkBG$nRLdf(vLyXp00i_>zopr0AXZc A$N&HU literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6a5985589c05aa86c35dd9925e51ca2724d1d5 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%pxIEGZ*dV9-}&(%Q0;bPrJ zCt+pl6<1&I{X20)ESp(KNbzF%Ii{AF^`c8yfa1)C?7tQQT}R(I^N(5eY1H(GBMQY7vh)ytf4MZDh~B^Urx& wpxwn|*OyfNy}#I~U+snlw~jFu+kip`_?%V6t2OVgT?~@?fdw46FEh>h@!xyo{v#;_{~Jck*w)zMT0bt*LmX;N`Aqkq=a6vbrU(K#-V3qu`J0S$kac><>ykkH6^l zb1%#N=J~z$KfY(g%;wy-k#*ZfMl6;wFf=@pTdOTv&A-C;B}m@W)z4*}Q$iB}qa{z} literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-02.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-02.png new file mode 100644 index 0000000000000000000000000000000000000000..51d3cf0a18ad407545b2bc87a8455a0b57a96db9 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%pxIEGZ*dV6alZ?l1bLtwLw zVz0JY!M2ZVAtsR*HD72bscI_yzNf7@;o|dkjZ=U+uz(-SQ!f_6vZ v;wP^=Hvez@HMyfKw{I}rzJbLmppZj^zQ3?=qsx*zbszXA@K;O zuA2FZ+h5q!y0xz<7<#H4S@8b1+T@Hn|Mn~?pn5Fef$>}a`PI>ve$VC!UT0VETvmLB z{A*=>yQg3GoXa#hcvaKxqM(#`WACN|96ey9W5A>gL?4z4JzAsihb6maant7qi$6}T p@Bd^oD`BzDhFD1~)&PY%GTGA`gz60SPHzP%@O1TaS?83{1OP}RNQwXe literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-04.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-04.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9bad171a5679fded72d1c5099b076754c7653c GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq!xR+IEGZ*dV6alZ-at>L!gOY zM)Fg(9lX*J7k4P}B_u7}_@E}A;n34!SxrWuax7rJLtu%E zw6^(y+&pG&>F^_p9uwxg=Pls;DZ{%Is1^(OuvGP+`FBXn?AituJ zyXOFh%}O-`CS?fPaDW3S0z^Ld4(y%pSon_V{QVs_uYd91at4c`K%oN;`sXuvG;`m3 Qt_CUaboFyt=akR{0Q*)v@c;k- literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-06.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-06.png new file mode 100644 index 0000000000000000000000000000000000000000..43588942b4330e66d3f0e7d6a11caa8d7c38bd40 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}n`P978H@y}f*pmqCEXA+YB~ z9`oZH2kv(9D9X(G&X#fMkC`e^85ZzhrcByo)89{9Zn^C_aJ2Wh+J*xhJy67?Yyd^v pV4?RpmWS&ML3{(kty^MYbO3LdZTnv*4NHv0gR yvH=uv_Z;AWARVyK`rx8t^#vz+uo%X`aA3X7-Oubg<~mH~AbC$$KbLh*2~7aO05lZ< literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-08.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-08.png new file mode 100644 index 0000000000000000000000000000000000000000..e4096206b438369f5d704c27a6666ae5bca8fb3f GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr20Kw978H@y}h+iw84PK^HWS=G` v(I^N;tZoS`Fa#A6wD8=!-V)O=kjR7mdVPiLS{}2zSA)2ou6{1-oD!Mgj=UTb0(h%D8&g@5BA5bASu+8$7@2`8+e-++VWyL)H@_2F239o9Fd8uL& qje=mr>XyI)Lr@_`Yz8qf)GcLBOJ~#k;;z3Rq`=eF&t;ucLK6V!oiscE literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-10.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-10.png new file mode 100644 index 0000000000000000000000000000000000000000..64b5dfc874db00657cb95534c27a8ff92aff6bbe GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqp_0! z)+Z$n<`)(uj0XcUxyB38Eq76_`-t>47==%g@f0z=d3>Q&!<-CpGeRE`bI&%ETn3>~JZbfouFyHX^Ughuzv1&< bU{ILMJnst6^e5>NeINy%u6{1-oD!Mo;!@W=uUKtXFl+mxml@l(@YaRglI=Ob0Y*&922jM^bKp-~{ib(P%a5`t8(=XX bD757XOTH)XY_r&^uOJ1Uu6{1-oD!MsOl)n^031HT5SF7S#ChpSipy6&+Hek`~0KE{MW*o>{r($?Qbf7 zOHt;WV^chR>!pZkr*DPLv^=bRZRdua-rO~dx0p*b3Ib6?0*f0AiOrDtb8^*X{>jok e2e8-x65^C$w&$N|wYoJ8#Pf9Zb6Mw<&;$VdRYaWt literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-15.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-current-15.png new file mode 100644 index 0000000000000000000000000000000000000000..14e6ef2c7fdeb1106158914269f79c6398c913cf GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq*i*mIEGZ*dV6c3V1t1GgJZ%9 zgL!-})Jhr-U0`W#JnE8S)M2w*>}!mj)?uJ(Y@jCX&($r@_ig*%yX8rr+q}6Sr(56K zIX^^q%D!YDq2lK2H6r_B>Z3ElOG01%OWM6CI*GgI00$817%(Zrko)tKep|QXm`OA; fVzYvQq3Sz>h%4XBH7lC=Kngrv{an^LB{Ts56x&59 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-00.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-00.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5e2a991b7ecad5f5318aa033f02c5369a3b305 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq;`6`IEGZ*dV6alZ?l1bL!f$+ zlT`T413tp}6S~?&eI2DWJv5x`_M0;>)z+{%dI5D{0SE5eSXo_v8@x_FrS9rNCi}aO znJ#b4+`_H*{_E>^A>P}Xk~1|;m7~%cn^VLj8U-OJB4Pb%ru!Enp8Zgcdik@%%XRw4!F7-_{gi8E@~Ekr$1)WmGmF;OK!OCgl&jvvMA)M?C(az3ZgSA;~o# z#Toap@0b4n;eFuU&79jdvTobRh{ZMrhK7TC8N42eRv)=+YXef?>FVdQ&MBb@06I8N A=l}o! literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-02.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-02.png new file mode 100644 index 0000000000000000000000000000000000000000..15f3039a3f98af655ff1e749e7a2d8a4258e1552 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&9lGIEGZ*dV9-|&%r>X;h~WF zmKk>zN0-yQ=OHVP6x2FiSjGs{fd$B2zE=Huzv|sRhYX&6XtX}R z<3Pxo|DT=($9*sLTg=I~++xxG3p+S+rm(stuz*pcpacl@i~K$0zu}lVQw{$;sraAY sHO?>QT&J-)v+w_;rG{AS0SbLsWd9^wuwLZLL_d%MPgg&ebxsLQ0Nq|r$N&HU literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-04.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-04.png new file mode 100644 index 0000000000000000000000000000000000000000..b37e6ebc1fc75ff05a898ce37bec44105260c8c5 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq?UTRIEGZ*dV6alZ-at>L!hZ& zM)Fg(9lX*J7k4O$eG`-N<-0H4;9w^%wTlm^91E!Mm9P5#d)hpGBi)@34>VifGizkc zi#?_KRLOveJ(TrYL;{N&7>P+V3IfrL|7`1o;-nwTKg_B5|2{A-U06nGb7tOu-fI$A dOa}`6xWLG}o$peo;MeCM1)i>cF6*2Ung9;jJ(>Uj literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-05.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-05.png new file mode 100644 index 0000000000000000000000000000000000000000..d13eecbe4ceee17578cc1c7ae56441bff173d0b6 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq-J=!IEGZ*dV6ytZ-at>Ltu%E zw6^(y+&pG&>F^_p9c?o2c?&py%J41)s>KH8M+(h(xHIc{%iE4Mjp5}s=8dfL9D1V@ zSlk{snl=hbKoP4OP$YpR?bU(3^{j>OnELPUxOx4H|CVFe%w%9V&>t5m$*plBDJBx6 Nz|+;wWt~$(69DhcIdA{~ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-06.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-06.png new file mode 100644 index 0000000000000000000000000000000000000000..f710330ff2d0fcfad1521754b992cd77e6c3e3e1 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&hua978H@y}fM6d%%Fl_27Mn zH*##P!fZFa4H*NMHkYy=nDq4x3s4~zVDW6##$(p=-#fpvd&QcUx5uoJ)h&Sqg2W^m t1tBN`EM%9W>V58${2D_n<^Y90EaqLC$)=g}a5l(M44$rjF6*2UngBxYF{1zg literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-07.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-07.png new file mode 100644 index 0000000000000000000000000000000000000000..eb75ba3338fc3a7d041a844d87c12b43e0b34fda GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq*^>(978H@y}e|}%b+OW>gb?k z%QvC9`Sp3FiUx;`GX+0PK6`r#P#qS~kX^JS`QLhZy(?x-ta^1eW{s?F2`msKCebJe mK@kw42erY0Sj+$lJ($btXuzV~7B1NbQsC+8=d#Wzp$Py-ge+$O literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-08.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-08.png new file mode 100644 index 0000000000000000000000000000000000000000..26c727db480003cd34d52152bd5ad269280ad443 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}n`P978H@y}h)N_ke-`i(^lW zqNVJGUhjf;Vue0E9)8BMcivA2smB6jid*0QytlD_!nOG`n(x%rm>&KX;<=eq$AC#0 nf;JrB=z$`L5Ees#LJnQ>S&1yVEgj=UTb0(h%D8&g@5BA5bASu+7qI-LHGq9~ItKWzBi?*bHJ|s9VaMXuzgf{ytp`q`=eF&t;ucLK6Vmku$;o literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-10.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-10.png new file mode 100644 index 0000000000000000000000000000000000000000..64b5dfc874db00657cb95534c27a8ff92aff6bbe GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq%shE zqLVH&-tFM)m~(-p)zRmGKmt==%g@f0z=d3>Q&!<-CpGeRE`bI&%ETn3>~JZbfouFyHX^Ughuzv1&< bU{ILMJnst6^e5>NeINy%u6{1-oD!M;ph?(^qTm1@2R&xZ|BVs0_wv8J{WJ;=D9h|HTb@N zp2t_2|ApVqNZLmQMJb(~?EOozc!IcI&V#%;+rR!cjoG$E{nzbFOv(mewBZ0p4-_#8 tyWRNzU}b&I>uoxB5?I)(lPE7JVB+pMzyU!z229Ez)c+%O`Pmui(me;T cm=6+Slu_j7oyqcstpmjKboFyt=akR{03YH)?*IS* literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-15.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-off-15.png new file mode 100644 index 0000000000000000000000000000000000000000..480049e4d618019c417e4cabaf0f4ab692947686 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq?UWSIEGZ*dV6c5po4>e!^Px~ zik*BV#a05ICJPOcj9DZa_kMS}`RkkBL?NJREa1b;Wveo$XIA`oDvGZ&DS9n!e=F#g z(%H+NRTC{waEhCK2za*ncy{j6+=366-aRdIaW4G+nGkh~I+)B&>De!dlb6Mw<&;$VeZblve literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-00.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-00.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6a5985589c05aa86c35dd9925e51ca2724d1d5 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%pxIEGZ*dV9-}&(%Q0;bPrJ zCt+pl6<1&I{X20)ESp(KNbzF%Ii{AF^`c8yfa1)C?7tQQT}R(I^N(5eY1H(GBMQY7vh)ytf4MZDh~B^Urx& wpxwn|*OyfNy}#I~U+snlw~jFu+kip`_?%V6t2OVgT?~@yU$h!^KdW zhV;!FKd~|HZP?4s(Xn-J_~y_lJ+)lQ9VgE1yRNSC=S-f0CM!@Q7Vu+cWNCPfWqJI( z#H}xHbJ~3G;r2Ny#(VGczlvRU(--rudVfvLVy=d&PXYJLw+A_T4nPo-@`w7CoR{hm zkNyUv&!^Mod zB`EPks56+>5Fy zeu>`JDVDCv222pd-E)BBPi*9#584)|V-AU}{b+5NH(9RN`cJ&sO1;-K zeSUn(Ry#HMilqMKYkxd%pMO^TaAolQTNgOy^qKjcUbU<2bX}#Exm!usBEhvA%_SNI z!HCr@fdz=_6kkm*c<{sK)SQ1E*D6Ac;wS$)mj9vQ7Y zzs}FPwH_Z}eqV9VD>^{rz2UT=qNd{FS|9VPg;S>;+y?Jwq_hgU)Pgg&ebxsLQ04|$fr~m)} literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-05.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-05.png new file mode 100644 index 0000000000000000000000000000000000000000..f0919f57fa28e826880213c1b2c6a3623352d4f4 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%mwIEGZ*dV6yt?;!&Lhd}8| zfg7W$*c`kL%LFW2viN+Bf>5m3f<}=8PxmtFMBY~y4+j~C1>6r2zLU74l-oapzxLVz z>3kdWM%K8-$4_TH-Y)c`)o|PI*p*jVlt1j}Y7~@!B38Eq7BKq6)~EV=!7{(+!Qz5U r|LdOd+sc;< lnh{YbD&^=>j_9>#8As-gq0x9rx^>bP0l+XkKGPXv1 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-06.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-06.png new file mode 100644 index 0000000000000000000000000000000000000000..17733a2f3d18ba941a369122c9d457d0d0c45fdf GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^5hiIEGZ*dV6yxZ-aq=t7GvJ z6Zdy~8tr^1GJEG7Q7LI~c#*xVVd|Rg(mO?f%CUe4rm<(dzvWh1B(BSjdvLEWUHC`Y z942>Z_C`SoC}MR>V1XbpiAG`Hf6evlBQO8p&NE`hVjfWF{!WIUJ2*6#7X5PsDe!dl Kb6Mw<&;$VFOF7#B literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-07.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-07.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dfa25ac3694186948be3e2411badb58147e391 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~>_KIEGZ*dV6ytXM=%=>qVCW z$7=I}IXMaM8^n%z$vCupuvqRP$?<)%h$bsgITrB4x7YII#{B!{k=Mk;DvTcAWT~4w z{lLxhp`sFvf)Esuz~Tl)je-^z-`H1F+?~P3{_eb1@ek41QtSpN2$&1b=hR*skTelw NtEa1<%Q~loCII^tI;;Qy literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-08.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-08.png new file mode 100644 index 0000000000000000000000000000000000000000..e4096206b438369f5d704c27a6666ae5bca8fb3f GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr20Kw978H@y}h+iw84PK^HWS=G` v(I^N;tZoS`Fa#A6wD8=!-V)O=kjR7mdVPiLS{}2zSA)2ou6{1-oD!Mgb?k z%U96c^7_1z#De4nC*D~7sPyCns>1?ys2!jErT*_9ovpnR*EQ;D(%T}H3JRFGdk%0w skd6V9G6Zb^3;j88MHGuUK%t66M#=fCS}lCFlR*kRUHx3vIVCg!05|wC=>Px# literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-10.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-10.png new file mode 100644 index 0000000000000000000000000000000000000000..64b5dfc874db00657cb95534c27a8ff92aff6bbe GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqL`m|7Ehg>$UH1S5Hl5=k7Vc0YN$jOv+$%zv$o3K8sS#zn>3O?qgqm|8(Kz zc|NN$gU^+FHx^%BdSz*emdKI;Vst0I7X) A8~^|S literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-13.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-13.png new file mode 100644 index 0000000000000000000000000000000000000000..131e81915b263e71de29a18cc6023ac10b60b5ab GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0EaktaqI1^jb4WXL>e9z z&o=Q6T=nRkap|_*&G||@ZkWG#r`$Q&f-5ZZ)|A%)b9PB`eSP-3ZGvXOXZ7zqo-9C< zuz&)SOpflFxO?CCt8e~!xjyFi3FA5i_a{kW!P9r@FWq8q;#+Dt_m62Y=j@o7jjO9_ zzVGO%=-nZ={9W<)qOi49doD1|za?#RtAF0?j*b^?Hu+}~8U-bwh}A8D1%w_rTjpQ8 zzkm7aIiC}lr~lkpu>JM6x4Uj{(NuDuEaktaqI2PwSI>KBpM#R zFOe3};C`?}AdiKY)A8|61{I;k8ApmuD@-)h6qaO%vnbBgO;NP1mMhirzdvvO5<#F* zSiqmA>mEK`x5mjk5NACRXcbQYB?Z361J;v(#flS`*y^eC{ z^&)2qMy zsQUJFrss=u#d0_QkgKmdGFw*)i{pVp4R!k%ybRUd^c!YNf>e0A`njxgN@xNAq62w~ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-15.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-taa-15.png new file mode 100644 index 0000000000000000000000000000000000000000..76e94e9daa1463dd1b8274da273b15df7f76134d GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0EaktaqI0ZL%+iY5)Bvc zXRcZn+A={v{PiKH`~&AiCrG^Hy= zg>CcJ?p?ca?Shr+8N5mv+3&ALaq;-CTk4pl(b2K_{b5HLm!Eh4vTo)9>c#?o%(7W~ z+*U4a{{0l2n}7Tt^qJ}zaK8Tc(0cv0-N6#3_5r`2Zs7|p)qVS*tn>R~37+b|hdSI6 zSRhDDqET?he9w3BB{_4R|Jqv3?*6wYL)j|#;*PxX2kn>gQ{(iXofm&Cz>?Sbsc2iX gZw?j*0EHUD^El09*MIdFI0I7P>FVdQ&MBb@09g!RZU6uP literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-02.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-02.png new file mode 100644 index 0000000000000000000000000000000000000000..3117c05eb244cc43d381afb4dffb742e829e6a58 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr0#jTIEGZ*dV6Cp=OG7)hKJo7 zgK}8JH;d%toaHjhQ?O`Ac%LQYqH9uPHi=bdkIMOA)w2^HpMCl~2xJB(FbXgEvP=K@ ztK)*xUOyIK>c8`tN!ehh6o1*X%|92}=G|NWd~M&9pq2x*1^H^T|1R`=`hCm3WgVCE zq&*+lb$*Lq)G^QRqV)}TF`zCm+HioQ=RnGW-PIT0J}X?fNK~hw-F2FCrOW@Xg|@o# m?OCa;$*jLWVRs7y+iT`p2BmnWoYZoVOFdovT-G@yGywo1D`6u5 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-03.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-03.png new file mode 100644 index 0000000000000000000000000000000000000000..4d5569280ad6c3831d4e0dd0daa397dd463a6698 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq+WZvIEGZ*dV6bQ)}a8AhKI$b z%`YBp-f3O>_D0!jZi{ZdzIXeg+Lfj)l4F;RVc95h=Ir;0mMVXCsyEK&0BXkq9^9WY zE$(~T-(TM+`z-tXiut?EzaI*`&l*bcjTQ) z{Ps;waOUxj4zKTjtpBD*SeAAKBec>g`}j&Vw0 zaf6~pK?x9gsdUihN50pGPkYu+llV6KY|zopr0Lj#46951J literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-05.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-05.png new file mode 100644 index 0000000000000000000000000000000000000000..52e57cfe3aafcc0469dbfa555f86b4580934a313 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq-J=!IEGZ*dVA|2XM=%&>p_>G zh2_>8=9E0R%hg)3nZb49c^}5cr>Xv)nn1-^z=7t9acW++XuaKopCSK%pNeIIoIu=;($xYk(AZ My85}Sb4q9e07v&dkpKVy literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-06.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-06.png new file mode 100644 index 0000000000000000000000000000000000000000..2808e8b3b9bde0e754cedc040a9a110540625d85 GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqx};-Qq^GN&%Q~loCIB2JI6wdZ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-09.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-09.png new file mode 100644 index 0000000000000000000000000000000000000000..08757df12e8f099a745063793e7f2442ca47cc50 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq?$Zk978H@y}fi$kU@Zl!Ewrq z^~_IS9Ek50Y4lIq-f%```V^olETAF3XwTGZZ@xQcNgJ*U{8N#`#NBg%1A=r6n3N%C l15}7VCzBD2Aq)%+@A;GpShTe-FTDkl_jL7hS?83{1OSDhF{S_j literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-10.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-10.png new file mode 100644 index 0000000000000000000000000000000000000000..42418724d60b72ee3f5d7254de8763498f7cbb31 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqMZ|9l1rYj6tHu2`rLb6K6&o^n;bxmSU`et`;q+D_uu}S zIY<9{EdRq9Tk}e_rpwJW(sg(!d|LN8+x6|~E-p3U_f2jlu(*Mdm_(x>1VsS(59~kf tGMn$dd>yY?#rC?xEA+5f0u=!6=?v714d|))C7$@c zeYtS_iK@@P{L|-~-YJ#X_513l>HJrZi7A*?n;w;TtnzNTW?sRmo%8j#?S6jy!-iSY z1?>J+1#LYTZW(&&@7YVgw$->QZ#clw14T^A1|U?-mRl#}ulfD(h0>RK6P-DJPd_fq zACv#h>_?YO|NZt)KTYLw3O4^wxfhRuBp40=!56>iENs{h4p2~yzc>gTe~ HDWM4fg*S12 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-13.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-13.png new file mode 100644 index 0000000000000000000000000000000000000000..1d94755fd10b2bd13d9fec1ad6ae3f4da8dfcf8e GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0EaktaqI2P{l14CL=HUs zuD8*diOV*5shSY;23A$oi4qO-DrYosGATYeAE?0A&>-^W{p*+?OFo}}A7cSB2MhRN zd~eyM0mtGzS^h%58TWRO};p*Ai zw0ZN^D=iazpT4yAuB|WIYI)r-R=Z1|EgwC4optjzr(WX$jvgptQZ@jg;)cZK<=_AO z+-1HE2o{<)@yguK5x4_O~^7U$>iNz zmhx{M>$YBt`u;m2@A~QKTl)>McmOE$;kO-wPP^v8iDBEaktaqI0(Yrn$|A`Tb7 zC%JP5wrrLNbMlSSieP3{RejSi@9YM4mu3+aE~OlPR;IuvCZQY8L-JyJ)<0MFWdRz6 z1$@XZ3R%2&r`^qun`PGN|Gz%r^~3*%BxhRA_YFV$=(PUSgFX$3Z0laVyjNtuDaFkt z&24VrBKe0xvHT_1(n7Dl-u$_v(nUNlbmHk(JN36u{uB00=|lXrnyPolDo@O^NayM~ zzyU!z229Ezv|Hj?ZqW68Ho0<2a`x-El{azNNGzSQE_c0O|9$;G#dfQK);@UT@t|>P z-Ram}`{bXp$eoqjb9Y<$cj;&&Eba#ieV81_c(=q*F(u;e9FPi6S3j3^P6EaktaqI2P-M)tdL>e9z z>zzBSr*ti0?iClE10q|dv~a$NY;P0P;8Y4qy8LmClY_wT-&WC^RDXZpsymkhXbu+e z;QEsV>%M(^R&(CkI6g-9nre7+MVImGsuG**GRqaOk4vrib@TJ%w3Fw5w=HgOH2(DF z(XJ_%&MXrQb&(EKy4AC%y2>K+UAaxX`iK3de^vPQPV&A^?yRT;Ljapkfi4lu07#JGne_{InTyx`RcF6*2U FngH0Mj*9>Q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c1aebfee49b934f237f32693d80b80c0d28469 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%pxIEGZ*dVAv_uY-etL!e8m zo}X33)f;?sVz!)^Il<#d;+tw#j(w7gRsj`b0S)J`Z1gLid-=3-iL;(o!DC7B83%4% z(zEbAeV1EndEA5gn@x3H5f^7XcpYeVkfY}S2l?bK~0Ef7iYI{0B;#MbF0XUhZkg v*UZFzZ<^gTi~Y|n8rNnB=fvW$FXS)7X-)nvwi$|rAlG=h`njxgN@xNA_U=f4 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-02.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-02.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca903e4861abaf6e9a658418f41bfa29b997063 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq*i;nIEGZ*dV9l=&%r>XAyHI) z%Zxh<{1%%VM8-@!n~>YI?S46f;{NZKw!8+a#sm%Xxm)*r-+1(ldQWkdV!?ZPafwF3 z8U8$H>ndZu9~U$}>iJ;ToG=q6WdktUaDb!d0LK~bQ+vDjy`R|Jr55p^X|7h-&PB!7 mOQY0;dpOHJfgFbg%qnG!5966I@r;}YNY>NU&t;ucLK6VcB1ZuL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..633071028c28e31fb5c4d1fbb4e7960e620a0a93 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}F=6IEGZ*dV9-|t3g4cA+X!; z#-%H~Z_Ms3Sh-aDmcSObmgZmgo`{^huJ70iRE`aZ7>88de=hewJ|!;rbEEtD9S1^k zUR8cJl>M%B^eD@AjrIw$7dc}7%5e7_;D8_<119AH!$=!ppSz8lE$glx`2Jw|$LII^ nFKwHV!1C=DD>hpg7{0t@a^K6}`0nH<5s(5;S3j3^P6XA@K;O z?%X>I@;>J!Y}%pJe1uVJ$*lLYtvrAH-W7745vU#uSpV|>Kc?TavI#|4rg1)i>cF6*2UngG6H BHyZ!| literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-06.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-06.png new file mode 100644 index 0000000000000000000000000000000000000000..e7355b673767283edd0bf2e27fdb8b09e90dbdf0 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq`Ey_978H@y}h)Nx50pi;h;pS zQKQIJ~w^EYWJrimx;UQ00#u= w7%(YA&<3!O&#Jf=)Bf@;)W%{CP-wzK#xz?Ny`uXoR literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-07.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-07.png new file mode 100644 index 0000000000000000000000000000000000000000..09e612b9acd6c7809463afb51087c53085a2f1d4 GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq`Ev^978H@y}fdflR=S(!Evk0 z|FVLoHyZ1sugKZ3a2m6+qzDIt)MEkbPA0|~9sgeJlxrLJAnACra6|%&8x%DPN;-Qq^GN&%Q~loCIB2JI6wdZ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-09.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-09.png new file mode 100644 index 0000000000000000000000000000000000000000..a521566fc742382a6131d4724cffaac29aeda17a GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}n`P978H@y}h)N_ke-`i(^lW zqNVJGUhjf;Vue0E9)8BMcivA2smB6jil6%ay0@`@!nOH5*>~z{Ob>qx@!ZU*W5A>g mK^qQm^gt0r2#X;=A%`yc#1t0YWu6j7AO)VTelF{r5}E+vS};cd literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-10.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-10.png new file mode 100644 index 0000000000000000000000000000000000000000..42418724d60b72ee3f5d7254de8763498f7cbb31 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_KIEGZ*dV6c3V1t2x>%r!Q zhkleem@i}&X;ahSG2vqDxbvoL!k(Jx96-fbzyovVN1NZi{`1etD>pX&(39T#b5F7v zc+HAF$9g`uyQAarYsY8_KIEGZ*dV6c5sDpt->%{_} z8Ftb))XV}hbrKDPJ(y{5+RaJqiv4980cjftZo_l;)ev)_Ymp9GUbz9k` z9rQDECW_l!d-~^2oYWRpWdkM<+HioQ2a16Fvma8PPm59Gc1yrwDp07wgRgBB*UZLe Q(ZV1Fp00i_>zopr04cCOB>(^b literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-13.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-13.png new file mode 100644 index 0000000000000000000000000000000000000000..d07c37df96564f3c545e4f82ee19a4fd50e9e8b9 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq!xR+IEGZ*dV6cPV1t5ygJbEM z33K?~uvr@zZRF&>d__{&KKZ~-=}8A4cVtKbm16-9jNkfy+v#)o^kt8oS9W~7Cu@J> z(cRyES8pWweF%7V`PQ$DDXZtF`F~k^V_pV}TLK7)Ni+&VP(*^#$JFPmrnn3D9Kd2W aNGS1*Z!GuhJIN|xAfBhIpUXO@geCx014hXJ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/moving-cube-upscale-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7db64018fd7e464488e6cf40912f5fb6ae241d GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq~>_KIEGZ*dV6c5sDpt->%{_} z8Ftb))XV}hbrKEO790$GQl7uETYtT`7f>-4a3FnG{M@p+$EWXCoqp@uME3GOr{vNY z_RiSo8uuY$`sM9!Ury1LXcPn^R<{He2ojTM%i?Ki17h9<=NP(xTpUXO@geCx{BSL8a literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..74a6d8b8a3b8952bc87cb00ef8ba3bfc42edb51e GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}jPZ$>6}jY*_d| zch`bs5k<*|^W`j|_hbWSGjMA!6hNy6($T?yb>F& fB`|dXMHakc2=o_aUGlNL5hU;F>gTe~DWM4fnlC1M literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..0515bb2bd77d35c2ade1fe61945185152128fd5d GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}j4CZO!n3)zw16tGfFDziC^D=tNjS3n)?H>T-HQxbyl!tMvM#tJ#Jk`UkR!3N f-T;d>28Inhr#6YQK3#wBFi6_d)z4*}Q$iB}HOVP& literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-02.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-02.png new file mode 100644 index 0000000000000000000000000000000000000000..085688e51e5f5b527fd6189a8ac8f52454126f42 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}f>rlfi(4#c|{R zymgMVKPVanI~~&X6a}il1b3z%QDj(Ql5k}8t-H)xx)&L=co$r15d6)~ykd(Bvlg$! gMt3nxT_6z~!vnKKSvMv|tN`&mUHx3vIVCg!0DVg+Bme*a literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..4115d030cedae7b5ac6ffaea12b3da8aa8975e60 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}jR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QSGxOl5OedQj*$JM)SyF3c-T g8oZb>wE;zRcvhVdWnI<6b{!<`>FVdQ&MBb@04SOzO#lD@ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-06.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-06.png new file mode 100644 index 0000000000000000000000000000000000000000..34d447f0345beab53f192c97956f405948f08de4 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}cgD$>6}@;<&MX zwr&Qey-S)>#hd2UAcYv9;rAp9rUox&w>_)&+Ag>x#Jk`UgBGvE#(IMWFK-hdXN5_^ e5e!`*0UJY?S>iI6CVxEx;(5CIxvXvF;F$K` zEal;Jon;@G_hcVX%a>pTs=)&EL$98HJpZe3+4gY0$*Id+m{)88Vv~p@cd-U9Z<7Wu nASa>oZ!_bZC@i`e76twq=Wi-ZIK7wys0I@>95*Wd{JEc-AtY)MV~EtWRa(l~o8FZ@O~~>zY4Gwk yS#aq<`nQ^BJ=w^8x(BaJ%3zqvhG_^;L~Zv+e`(G|o(m3xq&;2zT-G@yGywpMOf(4q literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-10.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-10.png new file mode 100644 index 0000000000000000000000000000000000000000..5de66fb36435e26a2459ee4b8e54d37521926be4 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^dk!978H@y}jnh%V5C4;u!Ql z@4_K*UDJ!~n#O#yE}V4*s=)*YYG&^I`SUm{gO=_^1}$Fi(5Vx@ZhlwxG$G5=q`}ME rWWl8d|C|)Y6S*CMIjpux-A1jt!o@}T4I!3Hm8 dEZP_tba?I+h_bGEVrC7J_H^}gS?83{1OS&3Cj$Tg literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-12.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-12.png new file mode 100644 index 0000000000000000000000000000000000000000..99ad0f6db91457674d9f4be965a86de3063734c3 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}j7|0ZKzme>s-otWUA_ovD~+ZY?XyiFRsm{*uQ==gh(K}+`{kh9=YgYq|aW*`Ss b8%QLFO>nm;yUtCKS*CMIjpux-A1jt!o@}T4IK@bOv cJ_d#j2K}<4>}mV9@q(m1UHx3vIVCg!0L{lIZU6uP literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..f303c669bfd744c7bfa860325857c954939d0b3d GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXJ;978H@y}jPZ$zZ_2>{$3e zchiDk4z6$+S`njxgN@xNA%M~gV literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-current-15.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-current-15.png new file mode 100644 index 0000000000000000000000000000000000000000..0792204cf714cc7db94212a3bec32a93dd4d8585 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}c30%b>vF;F$K` zEal;JoofO+yB~b$6=Vb|!36!Mefk;fK1Lj8VbIdO$e_jR9XeI@b^6`hQwLY60{OZZ t8@!kgzp;$gi`_Iw7b3=sX$%9yfg*ACLRlsI+?)46(w?qR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3Q6}jY*_d| zch`bs5k<*|^W`j|_hbWSGjMA!6hNy6($T?yb>F& fB`|dXMHakc2=o_aUGlNL5hU;F>gTe~DWM4fnlC1M literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-01.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-01.png new file mode 100644 index 0000000000000000000000000000000000000000..0515bb2bd77d35c2ade1fe61945185152128fd5d GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}j4CZO!n3)zw16tGfFDziC^D=tNjS3n)?H>T-HQxbyl!tMvM#tJ#Jk`UkR!3N f-T;d>28Inhr#6YQK3#wBFi6_d)z4*}Q$iB}HOVP& literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-02.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-02.png new file mode 100644 index 0000000000000000000000000000000000000000..085688e51e5f5b527fd6189a8ac8f52454126f42 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}f>rlfi(4#c|{R zymgMVKPVanI~~&X6a}il1b3z%QDj(Ql5k}8t-H)xx)&L=co$r15d6)~ykd(Bvlg$! gMt3nxT_6z~!vnKKSvMv|tN`&mUHx3vIVCg!0DVg+Bme*a literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-03.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-03.png new file mode 100644 index 0000000000000000000000000000000000000000..4115d030cedae7b5ac6ffaea12b3da8aa8975e60 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}jR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QSGxOl5OedQj*$JM)SyF3c-T g8oZb>wE;zRcvhVdWnI<6b{!<`>FVdQ&MBb@04SOzO#lD@ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-06.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-06.png new file mode 100644 index 0000000000000000000000000000000000000000..34d447f0345beab53f192c97956f405948f08de4 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}cgD$>6}@;<&MX zwr&Qey-S)>#hd2UAcYv9;rAp9rUox&w>_)&+Ag>x#Jk`UgBGvE#(IMWFK-hdXN5_^ e5e!`*0UJY?S>iI6CVxEx;(5CIxvXvF;F$K` zEal;Jon;@G_hcVX%a>pTs=)&EL$98HJpZe3+4gY0$*Id+m{)88Vv~p@cd-U9Z<7Wu nASa>oZ!_bZC@i`e7sivAesavuK+>MBelF{r5}E*Zv@^Q^ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-10.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-10.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d57369a950653ed3c0e22f043a52a6020192d4 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^dk!978H@y}cI5%b>vF8kqLq zEM+01qs~M2$;DDT9^UN+s=)*eKaGk%f9~gI2#H$67$P-om6r1B^t*3Q9lSCrgJJ5l r42PwR^KYDB3drna3z5Rq4ib^u@l#JiIzE|o35e(E>gTe~DWM4fu!1k3 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-11.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-11.png new file mode 100644 index 0000000000000000000000000000000000000000..eda157efa35a6b21092e93291e059653ce6ed8b3 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}jS*CMIjpux-A1jt!o@}T4I!3Hm8 dEZP_tba?I+h_bGEVrC7J_H^}gS?83{1OS&3Cj$Tg literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-12.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-12.png new file mode 100644 index 0000000000000000000000000000000000000000..99ad0f6db91457674d9f4be965a86de3063734c3 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}j7|0ZKzme>s-otWUA_ovD~+ZY?XyiFRsm{*uQ==gh(K}+`{kh9=YgYq|aW*`Ss b8%QLFO>nm;yUtCKS*CMIjpux-A1jt!o@}T4IK@bOv cJ_d#j2K}<4>}mV9@q(m1UHx3vIVCg!0L{lIZU6uP literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-14.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-14.png new file mode 100644 index 0000000000000000000000000000000000000000..f303c669bfd744c7bfa860325857c954939d0b3d GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXJ;978H@y}jPZ$zZ_2>{$3e zchiDk4z6$+S`njxgN@xNA%M~gV literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-15.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-taa-15.png new file mode 100644 index 0000000000000000000000000000000000000000..0792204cf714cc7db94212a3bec32a93dd4d8585 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}c30%b>vF;F$K` zEal;JoofO+yB~b$6=Vb|!36!Mefk;fK1Lj8VbIdO$e_jR9XeI@b^6`hQwLY60{OZZ t8@!kgzp;$gi`_Iw7b3=sX$%9yfg*ACLRlsI+?)46(w?q4OU978H@y}faem%)LB#bM{a z-8b1p6)pLVRVPG*FalLz0X`~$EDRCd4`+M+`65@KFL{xn!IqmLqU)ix=bMX+3^nmv iMHmk_@?g=)z@W_g(Y>AZbrmKbLh*2~7YbDJMw) literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-01.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-01.png new file mode 100644 index 0000000000000000000000000000000000000000..828af62218a657da15e3303409c121f73f67cb95 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq{=*9978H@y}faemqCGp+2PT@ z+a-?613Y%zW~da2W(BIi1cy~UAIUN-(Cxf_u5OJyLq&CZrVT?)2P1>wnr=3Rx_gmQ m{0uLA9`Pn?Sz&4hiB!dYa}{O$#_b;u;(5CIxvXw4rFe*8{1-5GA|Uh{&%CsSF9 qp&4OU978H@y}faelfi(4+2Q5C z+bIY2F3eAmzt<~pup<SQAh69V+zME`}H(@ZS h%i?6jrjLOkW9NxA0%v_sPcQ(4OU978H@y}faelfi(4+2Q5C z+bIY2F3eAmzt<~pup<SQAh69V+zME`}H(@ZS h%i?6jrjLOkW9NxA0%v_sPcQ(-QYe$wQQ-gyJ`{PE&C#t$q3>(rJ9ga%8 nn|Xv!wqef_S7uDjK#_v2`XZw2cjQl~fuucM{an^LB{Ts5-z6$v literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-08.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-08.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2ff9e9db24bbc22db1b082cdf1cd55a387b857 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^dk!978H@y}ju+?9fzi zes$CPEegyh-pM#jcDfEyiV1eCUv+F=ZFl^E`>*pnnQgQ^g}yT|T#rk#mS8ww&z%tG qeO@!mI^qDsw@F=Wn7TnC4ec_oS%k07_;}O_#PxLbb6Mw<&;$TV<}Wh< literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-09.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-09.png new file mode 100644 index 0000000000000000000000000000000000000000..bacd51a2d7b1f8eb6bfd6e4d206305ca706a3157 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr0P9g978H@y}faex50pi`2g3( z|3?3+SO1&2i0RgD-bo&va}0s1Fu{YzlT4OU978H@y}iN7%V5C4Vqo+? z@0^0xx0Ee>Y$qSA04c-(4aZeI7x6I^4OU978H@y}i-M$)Lc&;*j}2 zx9(sYhtlV~mX_=5L0YkZ2QEVW3?GWTxU(28On(=-jE`Z*W`+mfO>NSJf4^Y(qAJMC iV6aJm8H-Ma3pdzWgG3pv7kMjzq&;2zT-G@yGywoiO)41x literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-13.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-13.png new file mode 100644 index 0000000000000000000000000000000000000000..cedbb55370d9a6267a347e5c69b9f372e133b12f GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXM<978H@y}faglfi(4#liFc z-JIsI3Hb_Emm4`=2eJZ{U<2Wv*RIuVk^iB%w47~g2OERT5rzbw{)ZPC8Eo!suCW2} cv4R6ByaqA?=RXA-nStazUHx3vIVCg!0L^|VzW@LL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-14.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-14.png new file mode 100644 index 0000000000000000000000000000000000000000..48d80300b3f693ed3f127d00705a7e404dde3b5e GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)I$p978H@y}i-M$)Lc)yy4;h z`(GUQ7wk}#?+D0U4OD;y{8Ejq{`UA+qkK?RdO&vugM%U)!}$*qZF~$59@?LN#JE6! knZf(_BwZ;idVx;3&U%tXl-X-a_#KeEr>mdKI;Vst0COWP7XSbN literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-15.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-15.png new file mode 100644 index 0000000000000000000000000000000000000000..eab118e2705899881bd6c1abfe0c5573f9bac97a GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}n`P978H@y}fmi_kaQqvqMPf z|5Tgq{bw$*{@5P+&h3E4gac7PWmrJI*QAtBTrp;hA98c2X0ZH;uFm&l&gful`0Tlc zpN*m5Jd?z-w{!Fvz8`3Cx8;{EVfdx0Duu-y28M>k>{^SY3#0OLEkW|0u6{1-oD!M< D^*u9_ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7b57a18a0de3ceaf9449d190fbd22e36da2b35 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq>4OU978H@y}faem%)LB#bM{a z-8b1p6)pLVRVPG*FalLz0X`~$EDRCd4`+M+`65@KFL{xn!IqmLqU)ix=bMX+3^nmv iMHmk_@?g=)z@W_g(Y>AZbrmKbLh*2~7YbDJMw) literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..828af62218a657da15e3303409c121f73f67cb95 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq{=*9978H@y}faemqCGp+2PT@ z+a-?613Y%zW~da2W(BIi1cy~UAIUN-(Cxf_u5OJyLq&CZrVT?)2P1>wnr=3Rx_gmQ m{0uLA9`Pn?Sz&4hiB!dYa}{O$#_b;u;(5CIxvXw4rFe*8{1-5GA|Uh{&%CsSF9 qp&4OU978H@y}faelfi(4+2Q5C z+bIY2F3eAmzt<~pup<SQAh69V+zME`}H(@ZS h%i?6jrjLOkW9NxA0%v_sPcQ(4OU978H@y}faelfi(4+2Q5C z+bIY2F3eAmzt<~pup<SQAh69V+zME`}H(@ZS h%i?6jrjLOkW9NxA0%v_sPcQ(-QYe$wQQ-gyJ`{PE&C#t$q3>(rJ9ga%8 nn|Xv!wqef_S7uDjK#_v2`XZw2cjQl~fuucM{an^LB{Ts5-z6$v literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-08.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-08.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2ff9e9db24bbc22db1b082cdf1cd55a387b857 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^dk!978H@y}ju+?9fzi zes$CPEegyh-pM#jcDfEyiV1eCUv+F=ZFl^E`>*pnnQgQ^g}yT|T#rk#mS8ww&z%tG qeO@!mI^qDsw@F=Wn7TnC4ec_oS%k07_;}O_#PxLbb6Mw<&;$TV<}Wh< literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-09.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-09.png new file mode 100644 index 0000000000000000000000000000000000000000..5c26ee3fbd0c0c9b469dd4f3ccd88d007fdbcfe6 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr0P9g978H@y}fae_kaNh^MMtw z{++H6t2g#u-f>HuQ2TA udk}wX+tx)l57s7}E%s|>2Z>_?4RdY1)g^K*CaJ9kNqf5bxvX4OU978H@y}iN7%V5C4Vqo+? z@0^0xx0Ee>Y$qSA04c-(4aZeI7x6I^4OU978H@y}i-M$)Lc&;*j}2 zx9(sYhtlV~mX_=5L0YkZ2QEVW3?GWTxU(28On(=-jE`Z*W`+mfO>NSJf4^Y(qAJMC iV6aJm8H-Ma3pdzWgG3pv7kMjzq&;2zT-G@yGywoiO)41x literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-13.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-13.png new file mode 100644 index 0000000000000000000000000000000000000000..cedbb55370d9a6267a347e5c69b9f372e133b12f GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXM<978H@y}faglfi(4#liFc z-JIsI3Hb_Emm4`=2eJZ{U<2Wv*RIuVk^iB%w47~g2OERT5rzbw{)ZPC8Eo!suCW2} cv4R6ByaqA?=RXA-nStazUHx3vIVCg!0L^|VzW@LL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..48d80300b3f693ed3f127d00705a7e404dde3b5e GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)I$p978H@y}i-M$)Lc)yy4;h z`(GUQ7wk}#?+D0U4OD;y{8Ejq{`UA+qkK?RdO&vugM%U)!}$*qZF~$59@?LN#JE6! knZf(_BwZ;idVx;3&U%tXl-X-a_#KeEr>mdKI;Vst0COWP7XSbN literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-15.png b/docs/validation/p3-temporal-2026-09-24/captures/pan-upscale-current-15.png new file mode 100644 index 0000000000000000000000000000000000000000..eab118e2705899881bd6c1abfe0c5573f9bac97a GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}n`P978H@y}fmi_kaQqvqMPf z|5Tgq{bw$*{@5P+&h3E4gac7PWmrJI*QAtBTrp;hA98c2X0ZH;uFm&l&gful`0Tlc zpN*m5Jd?z-w{!Fvz8`3Cx8;{EVfdx0Duu-y28M>k>{^SY3#0OLEkW|0u6{1-oD!M< D^*u9_ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..82496f9b9fb2b6bc1ec7d2960a21267ee9c768ec GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eG8ayxx}q5YDtGoLA3?SHPe;Q&Vu6fr3qKoK`Y ghzE-SK%oz<%o!fcI<4n=?LZ1VUHx3vIVCg!0BEN#M*si- literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa73fb674a7253b8849b6b1b0e180bcf56a17d8 GIT binary patch literal 386 zcmeAS@N?(olHy`uVBq!ia0y~yV6+FaKXNbuNuxmZ9-x4yr;B4q#jUrO9eEiPcvucL zdGaJMibfn@&^pM{uXaWwW8F;-plTX{2kb{#EZ>?=in;XbOW&MToDO>%su;gE0Ws4n zRuI0zy+Ry>1N1?7L7c;05N@b)1S^Cqf+&P3f+&P3f|&OAdZ$GgjeG$#_Q6c<=vk~$ T9R8f35N7an^>bP0l+XkK&Av*t literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-off-00.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-off-00.png new file mode 100644 index 0000000000000000000000000000000000000000..1661c36ca82a877f877f448f7bce89f1db0bcdae GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eG8ayxx}q2TL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-off-01.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-off-01.png new file mode 100644 index 0000000000000000000000000000000000000000..8059df6b19b5df5ffcce63eda19eb178eede6be7 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0y~yV6+FaKXNbuNuxmZ9-x4;r;B4q#jUrO9eEiPcvucL zdGaJMibkwpj7e&87fur~xt_xUR81rBp*gK-lixb7^q!r67cI+U3eaB==dc%q8>$?E znDHyqD^?J`!VSVJ!~^s}ctIRQAxu#dL?KKOL?KKO$TS)`A7tzSVeyx7%uycIqJmdKI;Vst0RDqTyZ`_I literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-taa-00.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-taa-00.png new file mode 100644 index 0000000000000000000000000000000000000000..82496f9b9fb2b6bc1ec7d2960a21267ee9c768ec GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eG8ayxx}q5YDtGoLA3?SHPe;Q&Vu6fr3qKoK`Y ghzE-SK%oz<%o!fcI<4n=?LZ1VUHx3vIVCg!0BEN#M*si- literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-taa-01.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-taa-01.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa73fb674a7253b8849b6b1b0e180bcf56a17d8 GIT binary patch literal 386 zcmeAS@N?(olHy`uVBq!ia0y~yV6+FaKXNbuNuxmZ9-x4yr;B4q#jUrO9eEiPcvucL zdGaJMibfn@&^pM{uXaWwW8F;-plTX{2kb{#EZ>?=in;XbOW&MToDO>%su;gE0Ws4n zRuI0zy+Ry>1N1?7L7c;05N@b)1S^Cqf+&P3f+&P3f|&OAdZ$GgjeG$#_Q6c<=vk~$ T9R8f35N7an^>bP0l+XkK&Av*t literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/resize-upscale-00.png b/docs/validation/p3-temporal-2026-09-24/captures/resize-upscale-00.png new file mode 100644 index 0000000000000000000000000000000000000000..bc48a870b0032ab260fa1e1a3c86f351beab7e36 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#8V3978H@y}cC3%b>vF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eH3Bsz0_q2?=in;XbOW&MToDO>%su;gE0Ws4n zRuI0zy+Ry>1N1?7L7c;05N@b)1S^Cqf+&P3f+&P3f|&OAx*;QtJOMOTKXz&gOZ4PU R=4T)~JYD@<);T3K0RY>GNvF;J9T8 z>zV{E?T7=@+6wAUykpvMP#L5e3#eH3Bsz0_q2?=in;XbOW&MToDO>%su;gE0Ws4n zRuI0zy+Ry>1N1?7L7c;05N@b)1S^Cqf+&P3f+&P3f|&OAx*;QtJOMOTKXz&gOZ4PU R=4T)~JYD@<);T3K0RY>GNEaktaqI0JL%xFnG6x=p z$sFxD$k?OSExn`pYJ!M+0b}RMG~EaktaqI0J!*z^~3=I!s zE8PPZ7c_*gGRb?uw?0(ks9?+kRjs*xu7|zDy16x4uLos#cuY8(mj3;>)X6-fn=|iU z@GxL7e#XlzDgm8Qf*$KmPyY zg6aP|>wosuPcU1sT=%rL%)e*dA(z@hw>Mb-DF5>L!>eC0+i?4d7&bi$@)lsHqd-MIxvFf)=AF1#9 hF;f>52$M!;x8s7m)db;|#taD0e0sv$_es2H( literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-off-00.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-off-00.png new file mode 100644 index 0000000000000000000000000000000000000000..569cd052a6a6b3dc0737dc2461abf04f3220b1ae GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq%L^6IEGZ*dV6~#ZgTe~DWM4fw9H)o literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-off-01.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-off-01.png new file mode 100644 index 0000000000000000000000000000000000000000..569cd052a6a6b3dc0737dc2461abf04f3220b1ae GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq%L^6IEGZ*dV6~#ZgTe~DWM4fw9H)o literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-taa-00.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-taa-00.png new file mode 100644 index 0000000000000000000000000000000000000000..ad94eba14e55b91f8533824e206c2869b4de5748 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0EaktaqI0JL%xFnG6x=p z$sFxD$k?OSExn`pYJ!M+0b}RMG~EaktaqI1^jb4Wx7#be# zHWp*~EvDD>BB{KVp_aou{?Ng|Ukr9FlV{JaE?u!>rTznr(5}N*54vt_4RX#{cYnJ` z(S#@O@+UoYVz{MU_y10;{FTyUe;-Gm-eogMRY0Oq5P~8SSlkkTwjzUP;^8Ut)Sv&Y z^8aD>YsW5&=zpEz{~mKM$-Q`2OmxSpYrAGk*Z2E7)yVLaRqdVX6`k;4%A?f(C9f`= z4d!{j{&UU7ckTL{-L{u~zqMU0Zs-2_UoUaQSTwS_fvf@{F;v@GmIb=z*7$3dS-lQc zlf3-xVc@x+|EK@hx$)Am@5`RrNcP*O^E{2x`}oIzXYDQf*P?qX(vV#XXJ?!cZ(3$B T`>x8@6(BKBS3j3^P60FXL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-00.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-00.png new file mode 100644 index 0000000000000000000000000000000000000000..ae30d38bfac510f81d353eb46a3b014148da7ac6 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq<(n1IEGZ*dV9x^t0{n?A(6NL zQVg%`f{iPeN|&@>YdiLWBUT|JEBiHrsfoLI#*~b$js?OlEnj}tb~k-`us43LoSWc< z*uuIUbJKl$En;JIv#WV@8V_*vKoOI&0TVOO8YB=9duMXxx^2IgwRzd!|MO(a?Jf0> zJUvAF+e>dQJ^eZMZ{mLYxYX}F?vL}+03lI0o7cf(Llrvu_`8B z?8UX6zkY4{SZfq-W*V~5beFL7{n|y0NH!yw|6a4NX%%bYd^|xDB Cacx`x literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-01.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-01.png new file mode 100644 index 0000000000000000000000000000000000000000..66b6d573c4d01dd4fd10c30d464fbf4fc83dff3b GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0>EaktaqI0JTdyMy3=J1g z&S&`|Ar^KkqI>TH#VgDeOxy?EbaM8zPMtfKT_7>{s`8B!i(Du5x=MBL(Ajm=?^E35 zMo#9L`b(sQm;}}@*==+0t$y~=yNB6t@3IPtRxn^vhM)}xIC>5MZAAt;dXguL<>tog zmLKeY`TXtEo3HFE>}IsM&YSu)>VNc{XA9?+F8*KMn;qRIY@xrY_v@zeRr6FA<{tlY zP%7zxz@e{4Pv!@I*MHx==7UM)?E1sczWK#eKT_9WRtH-Kv=4}2_8Ty9gZUhP%5yo^ zuCV8Q9+DbsdVIP0-(t^QTgwHUR?K#L5D{7$?7P2e`KCP*iMJNA&Re{4b*k>yUp6n< iF3L_|Lv}iht&ntowX9LVC#jRRAR$jzKbLh*2~7ZC9FqS4 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..ae30d38bfac510f81d353eb46a3b014148da7ac6 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq<(n1IEGZ*dV9x^t0{n?A(6NL zQVg%`f{iPeN|&@>YdiLWBUT|JEBiHrsfoLI#*~b$js?OlEnj}tb~k-`us43LoSWc< z*uuIUbJKl$En;JIv#WV@8V_*vKoOI&0TVOO8YB=9duMXxx^2IgwRzd!|MO(a?Jf0> zJUvAF+e>dQJ^eZMZ{mLYxYX}F?vL}+03lI0o7cf(Llrvu_`8B z?8UX6zkY4{SZfq-W*V~5beFL7{n|y0NH!yw|6a4NX%%bYd^|xDB Cacx`x literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/ui-alpha-upscale-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..181b34461f03b65bf01ae09501bab36da615b1bd GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq`rE(IEGZ*dV9x^?_dB!!^1F{ zqdf;1d(^rQ>a9yKl_+EppD-iGj9q|JTQ5PxP}(Y7>*a;-ziPc_Z>fA)U4Q?YiDyH> z(wh&ryq|8GlwYxB&DDz=SeTRzpoqKY00$4y79`+MnCbh>GIGsn*$-d;y_xp;mH(cX zvj4YdNASN9=bPA_#h!1zd5?Gd?ae1Ro}YgFop){7aXz;M79bM4A;bYR4}x@HRw!>c z;G(%|z1H!|q4$=)OGsf)X1{*#Z`Db^rr!=yNcO^+4Gp!7lM^H=SJhesf&@KX{an^L HB{Ts5i*#!Z literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..74a6d8b8a3b8952bc87cb00ef8ba3bfc42edb51e GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}jPZ$>6}jY*_d| zch`bs5k<*|^W`j|_hbWSGjMA!6hNy6($T?yb>F& fB`|dXMHakc2=o_aUGlNL5hU;F>gTe~DWM4fnlC1M literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..0515bb2bd77d35c2ade1fe61945185152128fd5d GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}j4CZO!n3)zw16tGfFDziC^D=tNjS3n)?H>T-HQxbyl!tMvM#tJ#Jk`UkR!3N f-T;d>28Inhr#6YQK3#wBFi6_d)z4*}Q$iB}HOVP& literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-02.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-02.png new file mode 100644 index 0000000000000000000000000000000000000000..085688e51e5f5b527fd6189a8ac8f52454126f42 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}f>rlfi(4#c|{R zymgMVKPVanI~~&X6a}il1b3z%QDj(Ql5k}8t-H)xx)&L=co$r15d6)~ykd(Bvlg$! gMt3nxT_6z~!vnKKSvMv|tN`&mUHx3vIVCg!0DVg+Bme*a literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-03.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-03.png new file mode 100644 index 0000000000000000000000000000000000000000..4115d030cedae7b5ac6ffaea12b3da8aa8975e60 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}jR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3Q6}@;<&MX zwr&Qey-S)>#hd2UAcYv9;rAp9rUox&w>_)&+Ag>x#Jk`UgBGvE#(IMWFK-hdXN5_^ e5e!`*0UJY?S>iI6CVxEx;(5CIxvX6}@;<&MX zwr&Rd|0y#$%HJ@r1}eY?u1%_7F?cll)^}zt-UhE`!QIV_AyJDML!=y*GAfs`Gp{hg bri;O!CwZbMvrg?oW{|X}tDnm{r-UW|lT#$y literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-08.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-08.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3b1ffac1eb60743985374ab861dd333b4d6cd6 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXJ;978H@y}cgD$>6}@;<&MX zwr&Q~f7Wy-QFs|6* g!mP!MsShZ!!C=}wQFi`NPeG8hr>mdKI;Vst03byqI{*Lx literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-10.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-10.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3b1ffac1eb60743985374ab861dd333b4d6cd6 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXJ;978H@y}cgD$>6}@;<&MX zwr&Q~f7WyS*CMIjpux-A1jt!o@}T4I!3Hm8 dEZP_tba?I+h_bGEVrC7J_H^}gS?83{1OS&3Cj$Tg literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-12.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-12.png new file mode 100644 index 0000000000000000000000000000000000000000..99ad0f6db91457674d9f4be965a86de3063734c3 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}j7|0ZKzme>s-otWUA_ovD~+ZY?XyiFRsm{*uQ==gh(K}+`{kh9=YgYq|aW*`Ss b8%QLFO>nm;yUtCKS*CMIjpux-A1jt!o@}T4IK@bOv cJ_d#j2K}<4>}mV9@q(m1UHx3vIVCg!0L{lIZU6uP literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..53a11be5f6992a05f6d075c53ad83e60e969dd64 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Csn978H@y}i!J$>6}j;<&MX zwsr=WW1`w2`|Sy$Kn0lK&h#V74TAr#?2`}3WC)S!xgpE5;F1vUf=diqyb>F&B^;Kj eN@3~(iInm7d=h0n5G11u;(5CIxvX{$3e zchiDk4z6R!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3QR!FFRo5%D!3b(p|n+7SVU5UGMAt8cwyoH{LoVJcfd<^jRq&5R*Yix{V}IV@$w d)WpEhV9z#3Q6}jY*_d| zch`bs5k<*|^W`j|_hbWSGjMA!6hNy6($T?yb>F& fB`|dXMHakc2=o_aUGlNL5hU;F>gTe~DWM4fnlC1M literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-01.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-01.png new file mode 100644 index 0000000000000000000000000000000000000000..06f8c50ad25549f9a056bd29899347f5fd599107 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq}F=6IEGZ*dVBpKZ-asWgCmp5 z_eKBJT`!2qP7pX9khqNbYsAheKy_Hay^!qOwUzwGPg#Dyx0k*B#~nfYf1KW$f{7PG zrKUcct(4UBP`+l()@ySvFIa7|E=uUHZ*_j~x=Sle_zcC8rt5GUYV~@>Ps^AZmZ@{3 u!E5m)iz9dT2|UlX-_R<7#Wse9`xOkwnhhBLgkQ@C$$Pr`xvX5Z z;=teOZP~j%${$?2|ID2Qyp@^K+jxO0F~Pp~yYzfdthpAI9lPz1a&7DR&lOKkp0)g5 zd%b;2RJQi=lDg-Wde&J}MZ5OA-#z70)aPrLrILFLzc_kzzo_@iTpX6R_xruwc1uJB z&rLh2Td~b%+Nx_ejrLnEZ@uBv(|SYh&(qcjFYnAHTRQ#~d09uNi3tiW39Bru%?6nSu#Uyn&^pMAt#ZjijEtDnm{r-UW|@I+=Z literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-03.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-03.png new file mode 100644 index 0000000000000000000000000000000000000000..f7963fdc5004eb28375b1bbb2222ef1c2cf6d76a GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq<(n1IEGZ*dV9lhQi}o)>xE^a zIyWo+i&pu0zc?Cmi1Ynj1;)CGHFiLinBYUv+O0udb}dtj6PCMQPYkZQUtT-m zl2Vk{=UeVMxsvq?*V<2Ht-Za?H}sRyZRK}+`wj1WJ)xPKD_NtkZJUX}>}K90dn}i( z)m1)idEQu{Uft%w{wd$4^Zn~stIK=jN7mkZMsFGW4d*@IxUFZ+)@7WS&IXG7VYdIJ Vg#IIEGZ*dVAxfAhRM5!@;A~ z2b%xfXYo>Of4KFZT9ls;gOEh!{wQK;0^d;K73q37G!W4t;$Its2|mfPU9+62=fK#@HM#6zk~ UIA$d%ih<-kUHx3vIVCg!0Dc8t$N&HU literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-05.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-05.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2a99c1256b656dc482d9bc2c4c1b4c7ced14ff GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq>g*KIEGZ*dVAwG=Me=FmJ2@| zI=;m>m1!<%{2MFq-cr`(@r$|78G#BhK*QmyQPuCSJ&am9#d3M+jz}-fr6S)x7q>Y7 z*|%Ok*6Z=gqcfwjvvtcqZ2fj`>$Ma9YXvlIk8R)!igNMJTw=nO^iLrncjjW*q^(b% zO3Q5f$noV$P_$IX-GgjNJV!h-1$CEBy!1z+Zh literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-06.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-06.png new file mode 100644 index 0000000000000000000000000000000000000000..39a6d4286601e1ea5ab45579339b9b0cf83afab7 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SP}IEGZ*dV3>~t3g44^?+Bi z$e#b{_cl*hm-y}sZ^_q#`*N9q$}m8~&#(7l51sPTTsmdLaeqNR%VQGB6|aM&G|#pa zolCU;DEM%~``_21Y9CGAdMzsZU1H?(%5V3+*NR`vu9~;}T2<`y?RrZmUW({YpSb93 zMD9+DtxKmoJHP1aH1{oxt95mcM0B`*Idf$i(7fK(3O3D8Jy)l72Sxk_xs-WyNgfExwLj` z>THYpOm`QTj7MkYJ^v^@?NZIn-}|0d>iu}QTI8$5;_q^TS+QQp3Te00%-GfCJC<&l zaxB!_<@}sWvn-6Wy*1As*WJ1;X5)mlx=T&ilAh%!6&HMJjPUZ#jM+NlT50S(TP%)Y bV6gndQ14>bEiB{v79{WK>gTe~DWM4f)AnB7 literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-08.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-08.png new file mode 100644 index 0000000000000000000000000000000000000000..1b47cfc6f7737bd7ddfd1d73cbb6f3bcbf36b201 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq_%syIEGZ*dVAv_?_mWV)(ad( zoA&${RWprU7^E+9@3z8;e;fbW0M%iF4f_p`ot=L_gyFxglF}jTIkN-Tp0#xSvT;?` z+NGWT(`L?mDZ9kPP50ZC>iwHL^KUk<_L}OQ*%PI7%c-YTLbEsUwenSAgRS-nDzoi4y?EPGE;ZIRKex5AbC$$KbLh* G2~7Y116MTw literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-09.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-09.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d3a099808ad768706b3b3db84491789c36b826 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq|SP}IEGZ*dV9l=@2~<7>xBj( zwRiUE9)6O|R_W`nFulLaU?4v`ml>!M12ouge_y@!s-4g3DMhi@PgzfR9vA20;^O7G z*8jBypQdfSmwt8U=P%kl9oJ?#O~2G59c(%O`O2$BoqG=+_R^dhB(iIYn^&^JH#X^x ziI+0Ax_t3|AFHgpbmFBQNB$Hk?0X+Q+4Qr+ADjLu(=PSQxzt?~{mhjA#`dLCjydpP dxCJEefmPmF+{|A7={zYA*VEO{Wt~$(69D>8TeJWG literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-10.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-10.png new file mode 100644 index 0000000000000000000000000000000000000000..1f63e012864d6639f202b1d6b23dc918e0d56ca0 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&9oHIEGZ*dVBpK?-2zahJytP zi7Ma!FZY+rRQ&Fpu#8z~^P%gkKy{elz4>#Ur83oj?tfG7>A1Js@qSoZ+Oqc>)?T}H za_T+%i`i>CIyg43yR^dOy~(kF%;`6jU!V5Z4F(Eqaf$BOD6sfaMV9TXmzV1b)?S^m z+C;0@JBNRpK(eCSQq`!Xp;A+iIq_iH2^9ITUV2H8>a5V#jpsn}p00i_>zopr0FdZY AoB#j- literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-11.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-11.png new file mode 100644 index 0000000000000000000000000000000000000000..7842164cdedaa3704a75bdb67346d0ebc57e9f46 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq#k;@IEGZ*dV9l~uf>3e)xpW3 zMrudBXw^FRMuCj?8_w!|Jj0u_SUqkQ8&EL@X!w4*w12yf_qm_D^ro-7Y|;07-|{Jk z@)oSE-t*a}|M81m=eEbKEscF%xs6>@chORl|CthP``*7@7^S&1s7pFLu48#7mqkUN z@vGYV=Rg0rw$y~nkZYsd8iBu1TIbP0l+XkKzT|1| literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-12.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-12.png new file mode 100644 index 0000000000000000000000000000000000000000..ca521bfc50806450a553a8254696d25140d24bd0 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr0#jTIEGZ*dV9l>uSG$C#UapS z2E%{*PXWT;_^U51e8p~kxa`eMGoV6DP_c8$C5hyxoNpf1C%*r?FF)UQ&9$iPvoeRQ z&KLJg3=+C%XnX#0wf@qI*Fm%LPg&~!)0K_aOg%fr?waP2;&YbEx673s42tqvEb#gu zmmv^t?D(g@bp7i|mnL3~%3k|SVQFB;{s$2S2hUCWD6X?~sY(2{b2p3Pi$Q$LXsshk rzaDG8&5``?Kd0D?9n*C{k$dmho$eZLzcz1%Hb~yn)z4*}Q$iB}wZ3Uh literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-13.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-13.png new file mode 100644 index 0000000000000000000000000000000000000000..8d88d2ada13b5bf20c9c59ed0714dcc702d7b5c0 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&|AOIEGZ*dV6Ez#1;b{)(cx1 zg&F=XU*eLJJ>dWk-@3Nb5wG|1l|$_}q~AFAOnJ87OY`=&R_0uXo~>QM+!z+ONCxdigNj%D`}d{|EEVWJ@F2 R$6bOTc~4hAmvv4FO#rImcF6z$ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-14.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-taa-14.png new file mode 100644 index 0000000000000000000000000000000000000000..919e290591bab98c438069bc00a2a43fadc61e28 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq^@|nIEGZ*dV6Cd?-2z77Kdh? z0*1fs9cG+s^dFx!yv)cRwXr-Fs16e-E}6okxXJSQXPajNVej{T&*Mv+8gxwJI9n-S z{h_U4=XPFuwbnaxiOKztY+K`{@14*6+_yel?vBJ^fh8uh>$iS+@Syd^tsq4=MX`(V zelLT%w#!*Ajn00iur#ovygg&JIEGZ*dVAv_V~YY0ivzQK z-IxDdbC0pDV>olRL}8Zd>(4+{nBc%uqvD>2GPk0#D-X_fJ!1KM{{6zw>g!jn>f*S+ zYl@p!_lxY{U8`zd&uzb9x<=sh$I#OP=Ke4DZdc5kcd6L#`2vB(0#y^HU-d*p1mu5-@SO(~j3G>&*=3hFMMcnC<|I)Ewa6Hr;{Y S{EoBkAbC$$KbLh*2~7Y>L0?(` literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-00.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-00.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7b57a18a0de3ceaf9449d190fbd22e36da2b35 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq>4OU978H@y}faem%)LB#bM{a z-8b1p6)pLVRVPG*FalLz0X`~$EDRCd4`+M+`65@KFL{xn!IqmLqU)ix=bMX+3^nmv iMHmk_@?g=)z@W_g(Y>AZbrmKbLh*2~7YbDJMw) literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-01.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-01.png new file mode 100644 index 0000000000000000000000000000000000000000..56b673db1e92d93c8beb1c5657657405ce56e84f GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1pEdIEGZ*dV9l>k5y2B^+0E5 z3(NQWmKxplZTpSazG5?3yZ1RGP#p$nIDFRf`J8Wz4}2`2N3E{yhQbCW6<=GbP0l+XkK56e=J literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-02.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-02.png new file mode 100644 index 0000000000000000000000000000000000000000..f1abdd437c0ac0f5d88efdb9a1dfb5959d3c5a1e GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&|4MIEGZ*dV6cPV6y=a!-W$P zR(#*`&&(2W=vp&@?d4wH5|3-of7Ad~VuFhOn&lOO7pwa_o>$hq*>X%GH96n)Q4dGw zylb0uZf{%p;L7G>CZ1o;yx+_}r~aH&vdEhwp-g#e|4v)_d*9oGoM%7pd0+khuZ_Rx zoSnS!*Pp(ac&$)o?baa0>s@9_*Gi|p_@;VqkACH%&(}A)_^-YdyDNz``|vZJIJ@+# zJH5kY%)Ra|)wT;ueSfL-R>AvN^>g<-*Lwc+j$E`n^rycKrfWeW5A63f&(b~_-EwL& Oi0kR<=d#Wzp$Pz(8hH%> literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-03.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-03.png new file mode 100644 index 0000000000000000000000000000000000000000..45db4709949de68b6d3added78fd6d9f77744ea3 GIT binary patch literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr0#jTIEGZ*dVA|2Z;JsBi$hXf z%fI~>)IAnGtlg~*gKWAeuP#q@t@O<6tUGHy~zsNafd8{M0?&gDg-&$Pvz2AK; z=uDMVvdZy-|3Z7O71jPe{-JW-OwX8Y^TpVAYW>u`JHOMtex{+!l!M0$LyqpX{I=q% z-TB3-S@Vu$hFYylsq`*4d(PAIaLw!4*K|^4(~DnrXvtm`;8yu1n^pYs+uaR2Oa80y w?L3m&TzxxPf1~}!U+No$crl#^6gjZI_W36xN0WKmPk`h-UHx3vIVCg!0A&Gg!2kdN literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-04.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-04.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1a9cae7289c2219b4628defab09e137ef960f0 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq;7e-IEGZ*dVAv_Z;JsBi-X4x zg%|(3UkESEZoWPDrGlZwH$85kGEDHH(D+Y9vD|UP=QZ=(HyW>fZFQ`G|0L_ab*F7r zZg0!I|NY$N@Gt8O-Ete#&j+53Jo)bTyPD4EW2e8@);@j6{jqXhtNupTi3?gI9tp-J zbh__2bY$`BR8w_1-OXF{)_P}O-1SA?bnUtS5qfjiXid+H`SbMB&&?(Ndb+!mC&pOq rKOod!pxWu4KYNllGp5^sBKJQq-^-DI=dj^yIY{2q)z4*}Q$iB}CR=JA literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-05.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-05.png new file mode 100644 index 0000000000000000000000000000000000000000..b5eb8056e83b0c810415d7cac732270f10dccd00 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)vIdIEGZ*dV6CdZ;JyDi^Dk< zbrq&x`3Fpk1aFo%e7RvPTj2IBYdbGcDHd?g&zTa#A_ientH|Jaz2XmXgyKb-h%N+|pz9{J2&ATJ~ zVxsr$OE)fsnfyOC literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-06.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-06.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0f73a3b76b619dcbd70670755da3c150d1863e GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq+WZvIEGZ*dVAZktJOe&)uERw ze((RNB2V!}X?=z>!b_XgUiy7jI1E&Y1$_A5_qb#2UKf$bQx<)CRokCc-rMHOUcP$k zwW#8Y4>xD6-Fof7bc>}AQX{XG?tTB;#y`Jce)pGs@Au!=U)#KVPSE}Dd)K|*m(L%z zok_TVQs~+vi}O!*x*t1c=$jdAmF;4GKG|#bC95B&pIrJ-7`U_K(JsNM-qQ~-_nlh0 zTyav&u6o5z_fFe{PWR_dLj8C6rd1sH{(a38e|{`3Wnic|CVw*A?evU(F|fR+tDnm{ Hr-UW|+t+i= literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-07.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-07.png new file mode 100644 index 0000000000000000000000000000000000000000..e83c39a69f4277d5b8c53aff933294ed5bcb8c39 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq`r8%IEGZ*dVA|2Z?gdp>jgDS z!Hxf~CVJ_0l=Q6nRxN#{%>Krs&x}BonBd3Kj*gB~qA%JS>gV0R_k7M;)1@A(w=O&Q zvw983%wQ{}XLDTJcb`c9QG5UQzVG+c?9yHO4Xd^rJ<0tL^?H}yQjhGOz|V#;s#~kx zA1@4<^CoEjw@SIhX_iZ`M=4nqdqq$Fq<>^x)XDFvyyxyGyPlYH>FT>nYonU)F8%CY zvU2y9-_|du{1Q5EKV!-IsBcT3tdDYicga<`>V2-S*St&5E2sSx;>UC{14D!TXV$gv VjNI1FXnYTn_jL7hS?83{1OW3ie!u_# literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-08.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-08.png new file mode 100644 index 0000000000000000000000000000000000000000..6a96ecf61dd2b1ac32d49c5f81dc536fb3f5cae0 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*@0EaktaqI1kiz^Qs@UULE zvhj7B5XU|FTb$Mo%zo1=EaktaqI0Z$GoEoJgf&C z98Rizk3VF%*W`17o;Os#pTiiw zJ?6mw8~1+OoPWJbMK&y3_p`CgewX!Iy)^Il8!~>qH~;z0_qUgK#4LS2$E)On*4zyN z>6Qhz8ZA!C?D?LzR&~yFAziB?wmGY(&nuoay=niEn@rof#R?R@UHbTYO-}X881ox( zR<8QF`m+1Io@-utx$DK&Yaf$~H6P5lT(H*E^O)rA-l**Nd#8Nbw_aLig8bH?FPDH? kEaktaqI0Z>q*T90;~?o z6F=;>(=2dT;_Bl4CbTW?J8#>^j3wd!YJgfW!H?RlA3tTyUAFRC)&26cW^bp7uXi2u zD|pOXH}AR4`6tR&Nlm-gZSIM__WiE`kJ^sAO5UBh1;>IHUVCiut@gWSl-<(lsho2j zPYO!cylld1w&U59U;Eyd#%}C%Z#iHZvuM@ZUFT-+__+F-MW5P^r>1}Qt(Ujjk^XUO zw#6&cm`hSR)AQ!USUs9@?&MPMgyzLXFOwEz7Vw_`EVHRiSpCQU`4vSkzpanr+*$ID sZ<_bv{@dGfZ=2m`#PkINLqq;|_IXb%HlJKFVdQ&MBb@0AP)UXaE2J literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-11.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-11.png new file mode 100644 index 0000000000000000000000000000000000000000..f76e5e6a326d9f47e094376ce19e061fadc8543e GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq@H=YIEGZ*dV9-oQj3BBYe0dH zu<@x+e|o2zlr;N3V+$_ZFFw=jaJySHGf*)GsMvq6`u$ytC8C1Gex~Q%*ql#|Jhks% z65EHo*Sor2JbAvRL*Qbj?fJ`5)_sSq&ds@Wdz)s#rz!J_yI!2p%w<(KKc*4!*r|3y zoo8d^&QrXG7U_x7&!%(T^S=Ho=0)5t7q98NrvD4k{_tPvU!A~3OY`K!X<;rg*F%50 zul>{YzjL{wnrnbG%NEb|rpIo4|GO`LGKK@e0zX#TE1y+2Kk!;(4v6pR>gTe~DWM4f DjlOPE literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-12.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-12.png new file mode 100644 index 0000000000000000000000000000000000000000..376b2adcf4fa14869980ef29ab0034f107dccd6e GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq`r8%IEGZ*dVAB6uSJ1};Q*`U zj*H)`kGjvQa5z+Vc&V|y#?oA_`TRhYnBYUv=_e0$PjAazI_27|l=GTPrxcg*8L!@I z)pAn$>-XQilGS~aA559F+b*~1{O6vVD;CGR3OcoG-QMrN_icS4`S?ub{qGHvD>{W= zNi5!)rZ}%sk@s>WE_Tj&}h2P>hCb5qak1OTQ=0q*D zlUw6?#-iIEGZ*dVBMvV6y=agTw7P z%+CMggVoPWU>8-{@3C8!LsGU(6Q~dyu%EpwGdBFb;+jI4>i3z4^B*ejdB1x~Pd5_J@7%^K6>VM_R^D6WaQ) ua^B=O-nxlRm+fpKIyUMvVsjtE0du=~GD`0!%)Vp~lJ|7=b6Mw<&;$TWgl4_~ literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-14.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-14.png new file mode 100644 index 0000000000000000000000000000000000000000..e82688b98c2d7bebf5f714993cad0f188810cb13 GIT binary patch literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&|4MIEGZ*dVAv}Z?k~_gTse| zmoNN3Zu-e(TEMD~MQ_fPB)ot6bsHm4B_{ZDZ;tWXo8FU(-~HCRc-X4%v5o(C0m}o$ z=jQZUxpv28FU`GDJx@t4dCk^$zx_lXOnb3n?cVp<39YrR+plGK4WiSKp({h9mpxbl|>t)bP0l+XkKB8+^v literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-15.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-15.png new file mode 100644 index 0000000000000000000000000000000000000000..0b13cd1fc869c8940a9e770bbd4752bc0a1fe71f GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq&|AOIEGZ*dV9mW?0^CX!-0g& z2J?UCpLG1Z<#7=t{f}K&ZHYB`rmFv=oAchbv;H{>Y?w}FU}&g+AijE^I{Q%; Q$1;$-r>mdKI;Vst0C=W!-~a#s literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-00.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-00.png new file mode 100644 index 0000000000000000000000000000000000000000..1d7b57a18a0de3ceaf9449d190fbd22e36da2b35 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq>4OU978H@y}faem%)LB#bM{a z-8b1p6)pLVRVPG*FalLz0X`~$EDRCd4`+M+`65@KFL{xn!IqmLqU)ix=bMX+3^nmv iMHmk_@?g=)z@W_g(Y>AZbrmKbLh*2~7YbDJMw) literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-01.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-01.png new file mode 100644 index 0000000000000000000000000000000000000000..828af62218a657da15e3303409c121f73f67cb95 GIT binary patch literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq{=*9978H@y}faemqCGp+2PT@ z+a-?613Y%zW~da2W(BIi1cy~UAIUN-(Cxf_u5OJyLq&CZrVT?)2P1>wnr=3Rx_gmQ m{0uLA9`Pn?Sz&4hiB!dYa}{O$#_b;u;(5CIxvXw4rFe*8{1-5GA|Uh{&%CsSF9 qp&4OU978H@y}faelfi(4+2Q5C z+bIY2F3eAmzt<~pup<SQAh69V+zME`}H(@ZS h%i?6jrjLOkW9NxA0%v_sPcQ(4OU978H@y}faelfi(4+2Q5C z+bIY2F3eAmzt<~pup<SQAh69V+zME`}H(@ZS h%i?6jrjLOkW9NxA0%v_sPcQ((_?i(fDtTl!_* m0dLk?oBaU!FXWr omecxD3_DIl+R0(+28z@qFw9sk$~^IKa1uz~)78&qol`;+0DV0!761SM literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-11.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-11.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f841b9b17f13029c1046f4a8590bd91e4052c5 GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq>4OU978H@y}iN7%V5C4Vqo+? z@0^0xx0Ee>Y$qSA04c-(4aZeI7x6I^4OU978H@y}i-M$)Lc&;*j}2 zx9(sYhtlV~mX_=5L0YkZ2QEVW3?GWTxU(28On(=-jE`Z*W`+mfO>NSJf4^Y(qAJMC iV6aJm8H-Ma3pdzWgG3pv7kMjzq&;2zT-G@yGywoiO)41x literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-13.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-13.png new file mode 100644 index 0000000000000000000000000000000000000000..cedbb55370d9a6267a347e5c69b9f372e133b12f GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pqzXM<978H@y}faglfi(4#liFc z-JIsI3Hb_Emm4`=2eJZ{U<2Wv*RIuVk^iB%w47~g2OERT5rzbw{)ZPC8Eo!suCW2} cv4R6ByaqA?=RXA-nStazUHx3vIVCg!0L^|VzW@LL literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-14.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-14.png new file mode 100644 index 0000000000000000000000000000000000000000..48d80300b3f693ed3f127d00705a7e404dde3b5e GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pq)I$p978H@y}i-M$)Lc)yy4;h z`(GUQ7wk}#?+D0U4OD;y{8Ejq{`UA+qkK?RdO&vugM%U)!}$*qZF~$59@?LN#JE6! knZf(_BwZ;idVx;3&U%tXl-X-a_#KeEr>mdKI;Vst0COWP7XSbN literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-15.png b/docs/validation/p3-temporal-2026-09-24/captures/wire-static-upscale-current-15.png new file mode 100644 index 0000000000000000000000000000000000000000..3445a116759030ec8b4b732c711926a7ee8a273c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^3xK$Sg9%9fI*?}pr1Cvo978H@y}jYc%V5C4d?4-L z-75-O9Q}7a6>M&)0To~Y({FA2`;+OsFatw(;Aueykt7C(c(0s`3=MNw8)BsxzAUZX fmVreZ14BbJb4ji!WB99s;vjiXS3j3^P6L$TF6h=RGaw?%eltKfix|*ZE!-qhY?wXL-M0TMy6aY3*Rk6 z)f+>r9OabYJw4f>GL?>6tChW0cRF45LDXEB?#h$SGwj=fHWxh3icn^z@`x?o_?DLS z%x+&d4vj;H4#C~I>vgcv(fyH4N4M9Qj*eLZzKScn=HD|WV<==XgVYx%2+VW@)w`EW zOp4HCQVaTNfkStw6V-z|toll;?fB5#P}%z0()7bqf&~KIW>HOKUp~$0Y_#YByc!RB zapi=otLwF@1NiDiL!A7fV@IiH)s2k0g~F7MQP$g^L`UPkw&_TfeZ5eV>>*=|+p@R-IMFZNqOgRrkh~Ok|>o(O=`fqNvL#%rw?l+%Fr2$HgFh<^ATrq=exX zYIv#|KfZnYcD5gzWm;h0mv2|%HrrQ@!I+u#SFs|LN)w~RjcP_0Jd`M_qhZ~hol#Ly z1^M|G4GnQiU1r46#b%clWezp%!DRc==g+UK%nb(aX;MfWnnb9FKYg8^e){HG<%(jgFn}uC9(f z+0P0J3d+iSMk@X7cq56wO(>c=*vZznqHCXK@7S>;kd^zetUFODnr#U80? zuaDPI$8ja=QT7_!G$+I=d%MYShiIlC$qhzoOnEjfb6>t_XV`@CBZk`A+CF`nACE_= ztk2|4cW2>?U8m=LEImg2U%!4`TwHumC%TlfHtpl%lVO-?TI4(y%Bu*!>3U$`U!I9Ei8D$YNw~BF08a9Dz1Etm9C%VK%$TGg&AGCR6V*-Q&V%Fk#%`#>5`EV zaj-Mu1Ouc|x&IMF@HEpdvY)_pq2)k=N2x?zP6Qw-)i{d75r#aeJbPwwW&n zg|!xWtt%}{J)9=nUOGBD#>=AkhVJHH*HYY5ezoSM zP7Gy)pEBa^JK-*(pQPlyJk!9BwGiTPGKRZ(SyLvfQJt?pJ*sY3(i-u6-({RY)t;k4=S4 zh%BYjpMvK%bx7`$D~dw(`SEgdE4WTwWE%PKa1UIhN^yS3o45nzcI(y=YuTTVDfs{` zp52_JY=%Tq3$lD>H&^iGzME?a@-Am|bf~j z3WoO-I2bu68>HzqB`KGrrjAdhB~$Vc>v@Dk_&ZVkq#Jg2T(d&1t+q0|9}2UEpZWSM zkZ%q4$Axua_u;&H3R-I}GOh|fFDWK=dYaI~yHjBM_U&K4etluMg*-HfHfS?l@2IJd zLQCuQz#Vk>l{t-S!oqpI)vjp{=KR|;WZ~BAeI>X_x-5d-FUvJNHrJMtsT&h8U$R3O zDm)B^8b)0WYe`a8?7QERj7Uaf)*gx`y~@ng9YkDfcmh+%!g2UUPxj@ZQqOwr=dE90 zt@Zc!i|WQ*G&PNTWWVaZr?{kqL&BI%&A9ls-PBaa26<6GStYR#Hla)Fa}5DMjUe`r zR@q|>v?prs?>93s;Zifsy;|QBWKpv-E!C%w`)D}Q^a-)@yu_IABGmJ#}-@)QEmMFYZ{b*=tsH32XkKQ8YPHBDRL^rR<`ObQ-Xo8Qy&{wLtYhuIqZoWHlNR99A2C|f0%5vtE zk!obn+WLBYe0-;|>fu8tep7Yh{&qY%B^Xedfpl($BJn6FNGQDS)2GL+b!La1RYOUK z1qg2=A|jyS4L~0Vpx^uHYK*pUE())5oSpF8n^?A@gIsIlz|H$tqSyR$Z;*Mn7ukM6 za54u;%iCC44HtAktnZiq`4HxI?@` z2<}H7htM8@<@V1aTx>-#l@pIqYi zXN8~+87`l)VWC!j|L)8f|A%`6V;P73yd&bxVM{&0{zrCh!anA@qm&z=9NL7pP_v=ZrytS{(UZt0)UHXKtwnk zoYJ|mhiodoD1p3>qKrSkr;K6|#t$6MhIS5%c_+WhKv&lZ>zd$(h6e1A*L0%$kS8pu z3yM%x{{=Ow_!R*W^ZCJ9r%k|Y|hpe(?fKP6&u0G^O*>ZAIaIMeg zQg``E8S!AZiHID&W0*S3h~ONmY={zX=N9HzL1SgdT(CN%AvefeU3pN57kkx0~=ybp;DD>=1%4mWOW7uc`pHbbb7oQ%<= zj=Io2JoS0d9k1J;1fU1HZ*plKOvtNOe}roXJDH29;GY;voGA6rk0*HH?Dm|<+zbs3 zO;mK}le=X#S`z}5ZD?K$At(2A;Vh?oNq451EHpiz^<@(o(lI1|8lP?emWh#((E#;% z=$%svt=)ZUYda<*^Q6?p%IeRwG|?!-sk^MoUq5N_`#dS;dUz@r#a?Vc)=X)=`Tl8k?G$ z8e^nj>3R1(;h&}5ocnCwB?}9msSdFqP0Miy!y&c1m(0zTpwqEc8t5x`_V&uVjDK8S zUOpWu5)~bty1SvL>j!cu?(OX@vTc3NR{2~b2%wk4o4m2-W4sO6k`nLt_ZS5H0BVY4 zorBLB8X5+$MN60*TfX8BlSD{kO!D~ru&=N0XedvJrYK1#h{P+uY9|?dEt*_bY; zOot0;9kwX$Xm2+#HT8n2XzlYFzRP$RiAyNvf?|@>11S2fMM*R|>+y|SX{5noR|g4p zvz#j$C=?NZtvXXyDd~)XK|2r|fJ?QuqJG%`B^>(;0icWSen`-mY)w#fzX>=j!zhb= z;J1l*?v1UCJGY|*X2*L@MmCYJCuG~rA{IYNYlZQJoDu{G3COuBZKEk(wteR&?Ah+F zuF#_;lHBA(DLYy@w1Z;cs!XaAN`96ZzE8$P8%K)DLK8jK>tbZwNeZt!<;&}haCIEy zV|rX~t+vqJQbeOU>1db%8W!C-c<1LUjd1>h$DPW(VYNH%p|@mfZk^Al?p>3>E3r4N z+r0BwxFT9i&rPPM^W7qZq;rs=!_L_t)?-gTMp-^$uZ;Y9_!;fDe`LRDrDGTY$hPey zj&|>=TSC5_Y;WJ^8$Que%o4dzh=TPT2fR`88_M^WB9Lhm|EDl1`LVUBkHecz`#4!U!yLdXNMtJ~RWR|yKK`0j)dv?ZUgTteJO9I;>0dembWA$tHw%B$5)yu+Q;lXf2JQ`8o4TRU*V%cTl4zY{ zEE7jgpZ%ATFd|%+hDNYLuZbcKHelI61}HOA{zi#CEv7(rICa0%$9F5V7Vn_zVBmlF=FfOgXC1XiVvGf@k8PkD?jmuhET2OspXDKKs zBzeyjUA1fbwL3yvppK&`*PT_Vb41Ev?vT_ojnL$F@SMm8-jBt?K0o3&UoGY91Un0u z`%sa~1dUMe1EBf4ZqRn7W2FCY^giFN9aM<|43z?>3gq|o@VE~ZYjS4hY?MLOdMOAj z^^v0d3b$XSriv7uhf-u4K4E|xy-}Kx;jq3u3;dlMm$<+tlx%8YVPRroqN5Xp7FB`P zWb~Jgp+_ouF(`upesEM|X1>ettvOd1^k5J@5J_FhP?wG>JRSosfRe`FkjfU(jqB*^ zgR^Z;Wn>lR=SzT~0W4a;@86g|7Vo>xN}Xqo-0C&{F?M91!|BuYz-(fG7{LR5(_udK z^z;l3;cid10T>a@Ozkc8Tzt4k^mRrCAOH)CK~C3&>L3naM}1vgg-|5}0s>_5=*3=} zWD8)wU72QqM0xkQ0co3NVQl*vdVcslAfc(LsWR^s5n1MWWs=%op)xTu4Ee{BedkF+QQqmZ98mPDkmrB0c|mWjnC(6t8V-Wf408<{^{xI z__#PrugRAnf>7S`Z=3`;QSe%lTiKbQ%`_6JuX5V=5xO}+{+qM_Yf%)joDZblB=0&% zQbg$7I+QOxIo3eZ&q~ozM>7YWJ$nX3+@DP^L9Vr@$76B4X`NV(Ag6p+Gdj}J8yXwE zy}cv*?R?y-kF}6^ZAO3X^mXdNXnRsw5IOb3l^hsYAll`nrD%fgqHOmfZ%M&_c6rM7 zojb29?a^$W18_9hCS7bsql9L-Ub55Fc80Es3f0`K&CSiK>Cf82$Iw{Vp+*-kK8cB; zZG*X$a_VM2yO)>O1@+iB=?3ZvH*C7!TGV@6`Yd%4l%dgcojnwgZjhGB2gCPt>SG9x z?3puX?CtHL^`*3ad1I1y;r{w3bygTst(2u$rAArTcR4)z!n@OJ4Ei-RG=ymLS-*04 zJf22Q4zRb=JzH_o>8i_Kpw6nJ_b{;$9?!E#u5K*$UvVs7e3LxF&%<&h`uY`g+tk7Rinfcg@r%6r4lPQHA6rwjgu=BA3=C-E17)DpQ+oF7Dij?D z2Z!3HgYw0;b?yn|>rvXkF@D>By*88=vDO+!S>UHSK|PVetzNlwsdM7?pMWYz8aTo^ z9MrckCDH?PLj1JItBSQU{CXLJx`=>E;RQvWwi+>OX&C3Wi9O^74)Tx~vjq7N^yRt= ze(!DHkj76*`{yf7+WzN{8qo{qT9&_15M`TN$jy0}$_uUgjR7L*O_U^8cI48VXY4cf-LuYc)~yJO zwihO4+!kzoR`==Lg0jZ7*7-$b^jRtXBS8Wg)9J`^u8p zOw|J01K4(4KC)XdW{ol{evRL!t3IQm!KUkr8j}&uWO|5g+nntu!t`DdodIdVlzV0t zDb4iKTx9xRp&kwT{hWxOue1sI={W#aP!$jdt)}p_@J;r82aVDwY+mY5_p4zzNonr{ z8h7{~k&%<*tXyJyq|UirfVH^z$?A%;0U!lSm z58%0f`1q5JX5IwT(^c^9J^tI@bh_5hplRo z^^#S}K&{Bik}9~o&?IR+0jnSny#q&%4`N;}m3$0%4YYd@PNi=47dnCgLnTR3BMu>b zSF8A=qoRP(!JA@!M>fV=fa?RIg6_9DV}o$8v#VcyOi%$!;G6vu5HK}8?d|17`7A}b zvi5Znm?Q9WQ+Idw+~C1-3>8{Qs$Sw+4G$_o!SzsQ25`RHZf@6aprN!!it4M}{_=@d z^$9goof)0RDIj`_A37AFyq}ZP7^(-2EEN~?c@n}q91;o3^Oi3QF&m@&VH59YV|4AB zq@*OEtO&4ZfGq*KxdCMt=qsvh$pcsG}?3kVr7)U^P1T*lA74$lu1UMT{qBEi1ig~b&BcmhU;Bag>Jl|)iV zF)K5@kxJ+Of@Cydh~|@Qq4_u=vO}Di3u|j@0HxR}p@&591dFUM4t_^xpBGl$%hv~C zNMbC#?D9D-rNe+Ay=My+_OC2;BdJ3xxEM_5B|QR+2LHw|Bi!fed=)F8!CBDmU@&)< z+r0*uWo^#D<@+EDvpG$}F>Nupi)LmeSL-823{?CcFPyctwdL&1P%@Jt#2>|Ph-E{~ zZ|~{hRFm^ryG^P(8>X^mn|tdf3YC?W#VYV(@T~A|u-$GlU50VUyWZ4?Md9lLx9`|- zaH}HdIM&vqz)*?hR0?5NV?)EEM~`+tJSFoB5L^G#>xZS|eRVV#xjeDnV;y$T+he9D z2Np=`5@JdI&c&<%6m58-L&fnATVxNi2TA^=$_Sw%rpYk9`RccC-v+s9vEuGlkm1oZ zP^eD^UnJP3vaYx6=3p^Fx`AfX*_Ab5=`&uu5I%k@TwB=h@douteti9%NMiF`UxBzM zP0)`hY=K=g#XA5edh+B+M@Prkl@+a&R=|e`Yn}d5QgVJMDKeUjoaHkuvYk0l{}VdX z<&|I+UZfh7apNp5UX-DXHmtlQ{Dev%8iJ%3R(g7FJl?4?mG?Og=L_fu#65k)=Iy>G z_!4(ijr3*0jGl6e5z^;4f_(=$b?H#|OHAEnr9TS`y9ASf1h5+UKN1rYgV-gR1td)K zzs&UJ*~vrESb$=_bD$4<^gFt`XfjLRcbP?5^V@Lu4-O{I zjI_PfiIgh$^7a-N7guM}iI(8<&f%dt0T?{xYj++e#E5}a0Q(_QME8)S0V;^%~7~zTIkHh(rvjUbOp-Njn^%%-OZQ_?JvlU3FAxzG7>P6p}B+ zsYVL6#=i+Iky3SWadAK`+Gx+UXbW=WvF1@w+kQwZ(cg;&NGtp0oeA*R%F4>Hd+lUv zclK>Gjnllee06|G|C`Lx?DsE+Mi$_BZEuG8uJl*0p5Ce2P91um$qhb@Bd7=Dh7}iu z-$+g8<>wDS{7YsTPyQWR7u`9zjT{@gUnOdqW%E;Z`3IZR@QG8~Plmo;o5k-G*qF$| z_{BtlHdoAAO9DW>?CyttY?Ln!NFHnI74_&61C9|v2C%YG%0t+18OJzCsY)h+hewFVn+D<}}HTNjP)G9(YWhfyXoRS0$NalvM9S8J%H z1Vesj=N2T7tm@q;*YZ1?%ljlXBAua;HjCmVX86q(khXY>BR?ZBL7y zRz59fme|wtq~;^TIV)X)SIC2UK_caI*J~TR=`qjxLlYGILYe9#!t_Q{KmBwTuAT6; z*_zaZ5?$HoIqEwYCNf9h`XxwPAoYo*O)~L#FOT$N`@7wH*wn}O~~{`^|FaBmz-lMEzqKSN_-}= zC=JG2{=t={YWUwpCKC%Q<<;T)EePty6ETAeJT<&P0A8AvxH|F$VMiD5>er zuZxO`prREOc>Wkwg^}wv~|#^{aHA!&(Q6OMop!Glm^(OOA!(*;9UB%wcU(JA%`Bl%=4>D^lS7b zjrVrGw7}?0q3vEZTrjqx@9#2=MNRFGut>e#W0{|N3=+Li?V)6O>C(QiS{@!ARz9Vk z?rtLsi!yM#2m#{8?ya*Eib?DdQm;d4`V7Mbn(T!Fgp${yQUWRnRBMqHiC?oJ>!e00 zn;*{rHqk(iwH7cyux8b0Z24O-hC|BI9PEDx@PIvp{58(<;&0E8DmS}q9j4s%4N$nv z^nirc-k5WKXiQQ{ia0x~dlLZ>i1-tZ%mVpXY*UZp|5JhsFlnidG#o%# zC+ZKGfZ_&{hqf?e5?>);&EFxxNysw})D=RAlK($?eG$q(Zuf5q4~~~w(xqF^Ud5#+gG=_e zOowiXyxXU%E;ug!Hawn6h}3@zY$Po$?b)-DSeqnyudlYkyFr4P`tpU-_Y?SzsfoYy zV>X-|9cMYg4hqMUkHyg>5XTcobMJ{H*BRjmK0l?7kqD{YOIBMRw{OtX3C9wQiQG7g*>agipcni-#T(3eM zmlGufp`n47>7KW#xrJFDeR}dSwDVsDfW6o69v5yd6+wRYRlqJHQ3Dl)uYiE_rWO7r zc!iKru{-K{5$>O!B|18J@eAkAU*1bcH}~f& z0lL2_VS7*AT^hd6szTjZG)O&r+Odw6uC9|lBRAI>3WhbYy|Z(P%U9-t1bdLC^ol)H zi0&*TO`zRD9^7RTL7cb@&IPH=jLZ$O&gg*)`ph=1k5Ne+#{9mkBk%7sivB4JsP}&h zGZZX^)ymaXjlxZ##2IQ}qN4+5zC`q92Zq_Gn)Hh0%E7ep@G$(ok8Ty%M$awww^MVJ^ zTo~2$wKWiHY2|w07Q^(S^cM2Xp;9uW3nAsO;8FVa?ag40OCS{JzjaTa{SQke(mVRe z6XB8^@Mx~eT4FYrz)~S7G=38|@)K+2WaOWGPijb&&a1)wf=vVRH;ry-)yskL3mFxP z80E>@bT>Yf=F))nvOL?*5mXIn9VHB9gG3_b(};N@C^3Gwz6TuG)P#2f4+2vpnMzKM zOg_s$I|5M$sMPhdkP)~I2`2$R05NN8UP0p%7m)ZeG{5&u4xtKy9Bv@|w<<(y3lI6M z4Cc>*vqno4)+_!(^L5=u!E9Mzcud|sE}*-rF@XT2uC8v!%D;dA*|LY;;LEdBf;9s9 zx@2teDqky5HNmak;D=nM?5zcZKiU>O*s?O)RI8@ZtX_2`8xvlap7d*M}1Aox0k21CI9t0H7r( z#u`tNxIhm7C1mz1ga66oe+DT2|8Tc|ED;9&CIaD8jGnQ%~a_zl_Abc!ee@b75|~9N8TZp!P?C>_-x| zLSX|rEj>h~`bmXNjD)i-moJsaO3KF&>sf_H@YHn=k}`f16SmwQcwOa&AMv@Z45^$F zV@hW4BkT}J*qAR5OY>(*2^9ZaGPjhOq1Cc-=JGg?tLes?!!?*601MJV%l@t0Ct{I*u8OPdxJ|NMz7J;Y`%7&BP+A0n^BJ!Sl9c zc17s}V=2@OMMrMw%i9)vI@eWt|LjA4pB#2`&!^ smy(aULBa$GdJEs&33-rz>=^Fez+hvY*#dRazd38CHS|usRkOPHKk1fYC;$Ke literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/door-edge-nearest-5x.png b/docs/validation/p3-temporal-2026-09-24/door-edge-nearest-5x.png new file mode 100644 index 0000000000000000000000000000000000000000..57df083c567e10f5ada639367f1bb3c4ff77ca91 GIT binary patch literal 5399 zcmcJT2{hYT`^VGvRYt2!QB$#uQp{*6Dt20GtF5S-)KTbf?&k`-rK83`&rT14 zKo~UCZ|FlH$3H+I$DYw02bM(CqlXX(%b>=M>$e{e76#DB__ZwB#UXniof^&rV}X`R zq^J#+V#9M5dJ*^P=J9W_EwH^s-P>nd?68e_A3Gahq58kMv5We-!b6Ifc!C2nkM}ATFa`gc0Q6vn;`olK&QiRiI|?Ak>T-ud4B%Xir4ja<^HKH`Hq!|UJ<+k zhozyR;W5ZP{`l&DK>{0&K?FG<5PDk3ug(xiqp8&P_V#4^HRHQ?Z{D=Qa5)X(Or_{W zp{O)uE1^zQt-U-@Oaw}=c1)e`Y)($j*w`5Lw74IPD77qw7UaObzWNSZiLRZ=^P{X^ zzFR(B)}avLZ@Vi94eaB4Df9moF7JhlAGF*VD|;`n4~O zH6>m)PPm!N&dz?4mNwISwxBVBt!Zp&m$CsqYVnKBF}&T~-SP49w2WNyB$7_F!`AYI zyu5tpTw!6MT`=%zZEcNB#B6?U?&U&d|HpbU?{w+H)j1<`zqOlD#zsa)dU~CMgVgDq z=y3I8*1UdW>!g8xBGCj6_Zs~@>`f@62pr4j+V%WW0}`Qg2F|Q9$wR7{%An=;y%Ov^ z{OaMxP=KOqVa?K8sB4~GXSPb5nl&~ya;7ZHIhaYwz`(%PcFGY`U+K_Y$h|X6%M)z+ z(!<@&Elt61yGfDi0w!EK_nugc!RYdx#o(#i#_0O^L5-fo8<{JEKIDq>@||flMMAyL z#;aGa-izRgy}cXH(SCCuvXna?jxKEi>)S{uekGmEA?tBToI~hNvDAabd#m0XqybY? zQ%+7!M!CgnrltcJ|Fxn5dZhR5nO@2U86P`_TWmNLEx(>rsps6MK2&X+;gwfWv6d69 z;5`;8d4^kIrADEPy30nMdX#B1RT^0_9 ztF7H;4A^`#E~1gE-`Pf*opo?ZU~dY-p&dX zRn6mi`xKin2RnPX*^qm$X(yd-rh?yOYjW{YegJjZkHd5k(}bBZALj0=ef6!alYcjm}?%x`vOQlCn9KZ%Z>(&`+CPlO3%JZ^7B zT!hA{4e!*A8285^AtAD)YOA@P=Nki_<~_Gp zK5B|g?E8ArPgPfOw;aSCt7_PacY_#bt+EOIQbt^hO zHtp#;)HEy>o05{k)Ig|k^zrs?&s4;Fugx+w40sNi8XKqLUP^CN-k*3^X4{b`Nuf}3 zzAZ7wD-_l$D=TXzT>6Hm*tiO{tr%?NPXx;J?Wl>;SdeT%*(3;?0-51vW*O>yN_6m4 z7F*bT9hT%!sQ~Iusa2D=k58uWatqkFxWJ~6WrE`%V_2h@l;#dCWA

GOso+<7h#Q>B--~R1~Y|(hLY z21F5{PVb$iCY5J_*chCPS~Qou*YfzIQ*5ByFo)gfnOx;Qx6&RHMR19d6~pP% z)pb}N=>DIJ=}#jNh)vp`&HB*v{ii_t{%6afzJ4(0kmX=^md9d=kU(j{a}hOk2B0o! zByE6`2Y&54^h*F2yEP0Uzr!k`i$EnL#GmW#{tkM+jmVK+{mpoqWb=5I9t85}1mu>~ zA78^oNv}gyxuw?1EOA(YfRFrU2JnH(A6#8uvoR~~n46~#_bO0*!UnI`>u>swJnQJM^03E92+O&n8d*x>{`|hm1@awhZ5kD^tw3mF4A6pSGHv=*Ri_j7;Vw zmFazu)Pd1E4kqm~r*(n@WYQc~Vmu=FW7rK#H#aw5Uz3r0+sJB{ahE~C=>{ICO35Wh zN?t08P=y}KR*6uc%$H4jo)aR%2M}_xc65m6hN8OmiwFHC0GRNHIX zu!j#HPBT;2tMJ{QJ`w#X3wl`*XFhdzOL(2G8t^c#-B7_$wzs1=r1b&m09;!feoZ2g zT5J<5eYch~GBT#u#z(X(_Ey94&GFl_MY{59pGF%a#+EjzyWm`-xJErIDJjX$&aSWD z?NsBw{Is}Pm5%2R{!5jfzo?mjK%MKCy8wmDwh%@Dh;|9McgSzZ0XpRgK0$k?ZjVYy zwsixrG^qu!FM_}0$46rD7F8Tp4&p|I+@S)2pD{}=@4o~F?Mu=^#_oG9ZX6NS2y(Z$ji;O~a!&Whh` z6fpza4}s)jWo6CH&6QTue~jQY=y_2Fi-<&yCmHY6yeW>8@gxylf#_{$f7hlcPPpw= z!*HPUOayF0K&UTi0?G0*`u6D3gYEF&ElZh{Rvqv5*tm6Ma~sG5Se+T-;O5rdn|DAU zo*f3ecA}S9@)MNCg_zC34IG=2l*{Oib_)a-knZCK28$KjtpN296cjW=k?BS$)BVMc zHC4qU6T|>-xnzu{re+mtKt@i^L|-2yKc|ZGvO0YX67i1RqsOK+Ceq#`$z7j;fx(mL z(gd_3za-;|#l2^86YuBQEf>e)>;N^ca%2`GtP;xf)P*?e>+6f|Jg4U=HmjGB=?A4F z;n)+*)Kd%x^iD=N>A(^1-T^pQqI2vm*@sF{?Lb#AFRu$RbUdrz9;ODz`}+YxbbHS2 zJ)MOPp!7pw$Y$v$T5(NRu3jxiw8Szs066{_pw6%OT)Z1)RAS-lT)3PTYefDBBR^?Ykt+S*pIE-NSJ3qTUpU+LuR z{GzmUi5##;0l6arQcg-LNu3WgDexSZ|K>2nCnIIOSM4T23g$Dm?C?ToBz9V4TV)Eq;!fME0DR-K_tC$y z(jx_KP13!Cjlm#Wua|;$DlJvq)6+AwN8R8C-h*=XTp+L-eo7Xvi4?PKIr%6)vNa$h z5Xs^So3tC*q;BB%-h;ORcS|k4v-qtxGHjlY zGAXrQ6m%2c=y3v_M;L!x6RgyJd%|{sV z@qZe8;4g2_>DJX+BRI&yf04C zo*5I6yjk8m%O+`yqBcdE3l&Bz%}(wm(5-}ojXF$4R^WY*4YZp4zHYAr?zEPb?Tzu` z-xE2unu0^yl#eOsI~>8l4%x`#uhN+J2tT*Bb!swmv0whZil^dBR65|BgIN5(*x}1~ zUF#Hd{U)%6S7JfUO86J#truUvyK)W}b(Fr0=SRp&#!*PDtMB@4>R($9dNB+ZOeag$ zeZtYAt`CpSlHMNb@_EM6H_ZO#d#HMQn&puQV2YV&7fP=qPW<{}|Jw35PzUY^r3U1W zgQ1|JdP+l}msKA8=meok=JicR^UKie3#YLUy~gf-wS?<8VqQC;b7xumAk9a&?oiG# zH+^?;^PQ1Ud@KXeuf%##Ju)AW^OYkjQIBabg@q0w>vC7FTv7HB)_$s^ZZYF4f@9`p z)r{g7@Vz1}3`n))j-|!c?_`@tdkaWH{)`$`^!`MqoMhQQa%xM^xVqS!qzUtI;gcQm zi-=o4eHs4$QYrk`vT5I6XTL_!V@zlu_f)^s>aRQBA$j480hc6MjiWEbr-6TXLNru# KZj>n9`}yCpgLIMr literal 0 HcmV?d00001 diff --git a/docs/validation/p3-temporal-2026-09-24/frames.csv b/docs/validation/p3-temporal-2026-09-24/frames.csv new file mode 100644 index 0000000..a1b1e86 --- /dev/null +++ b/docs/validation/p3-temporal-2026-09-24/frames.csv @@ -0,0 +1,371 @@ +sequence,mode,phase,width,height,internal_width,internal_height,device,cpu_ms,gpu_ms,readback_cpu_ms,gpu_main_raster_ms,gpu_post_raster_ms,gpu_temporal_resolve_ms,gpu_temporal_composite_ms,gpu_ui_ms,gpu_allocated_bytes,history_valid,reset_reason,validation_errors,image +wire-static,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,2.44591,0.04512,0.057439,0.023072,0,0,0,0,33799184,0,0,0,captures/wire-static-off-00.png +wire-static,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.843531,0.036544,0.009838,0.016352,0,0,0,0,33799184,0,0,0,captures/wire-static-off-01.png +wire-static,off,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.905478,0.036352,0.010159,0.015488,0,0,0,0,33799184,0,0,0,captures/wire-static-off-02.png +wire-static,off,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.885891,0.036064,0.0104,0.016128,0,0,0,0,33799184,0,0,0,captures/wire-static-off-03.png +wire-static,off,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.789219,0.03744,0.009628,0.017088,0,0,0,0,33799184,0,0,0,captures/wire-static-off-04.png +wire-static,off,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.868839,0.036512,0.009708,0.01648,0,0,0,0,33799184,0,0,0,captures/wire-static-off-05.png +wire-static,off,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.870131,0.036384,0.010119,0.015264,0,0,0,0,33799184,0,0,0,captures/wire-static-off-06.png +wire-static,off,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.81655,0.03616,0.009838,0.016128,0,0,0,0,33799184,0,0,0,captures/wire-static-off-07.png +wire-static,off,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.83228,0.035968,0.009127,0.016032,0,0,0,0,33799184,0,0,0,captures/wire-static-off-08.png +wire-static,off,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.856736,0.03632,0.010129,0.016064,0,0,0,0,33799184,0,0,0,captures/wire-static-off-09.png +wire-static,off,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.822071,0.036704,0.009107,0.016352,0,0,0,0,33799184,0,0,0,captures/wire-static-off-10.png +wire-static,off,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.90084,0.036128,0.007364,0.01616,0,0,0,0,33799184,0,0,0,captures/wire-static-off-11.png +wire-static,off,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.852117,0.036064,0.01047,0.016224,0,0,0,0,33799184,0,0,0,captures/wire-static-off-12.png +wire-static,off,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.856425,0.036352,0.010219,0.016352,0,0,0,0,33799184,0,0,0,captures/wire-static-off-13.png +wire-static,off,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.859041,0.036256,0.009187,0.016384,0,0,0,0,33799184,0,0,0,captures/wire-static-off-14.png +wire-static,off,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.860523,0.036032,0.011061,0.015392,0,0,0,0,33799184,0,0,0,captures/wire-static-off-15.png +pan,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.12092,0.036256,0.009718,0.016384,0,0,0,0,33799184,0,0,0,captures/pan-off-00.png +pan,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.814607,0.036032,0.008726,0.015904,0,0,0,0,33799184,0,0,0,captures/pan-off-01.png +pan,off,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.874569,0.035936,0.009808,0.015456,0,0,0,0,33799184,0,0,0,captures/pan-off-02.png +pan,off,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.82211,0.036384,0.011612,0.016224,0,0,0,0,33799184,0,0,0,captures/pan-off-03.png +pan,off,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.834384,0.036096,0.009378,0.016224,0,0,0,0,33799184,0,0,0,captures/pan-off-04.png +pan,off,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.872235,0.036064,0.009158,0.01616,0,0,0,0,33799184,0,0,0,captures/pan-off-05.png +pan,off,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.698367,0.03648,0.007955,0.016512,0,0,0,0,33799184,0,0,0,captures/pan-off-06.png +pan,off,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.25548,0.036608,0.007744,0.016352,0,0,0,0,33799184,0,0,0,captures/pan-off-07.png +pan,off,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.746618,0.036,0.007364,0.016064,0,0,0,0,33799184,0,0,0,captures/pan-off-08.png +pan,off,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.756427,0.035904,0.007654,0.016096,0,0,0,0,33799184,0,0,0,captures/pan-off-09.png +pan,off,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.04991,0.036096,0.007664,0.016,0,0,0,0,33799184,0,0,0,captures/pan-off-10.png +pan,off,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.711923,0.035904,0.007434,0.015808,0,0,0,0,33799184,0,0,0,captures/pan-off-11.png +pan,off,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.747239,0.03632,0.007885,0.016032,0,0,0,0,33799184,0,0,0,captures/pan-off-12.png +pan,off,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.792946,0.035936,0.007474,0.015424,0,0,0,0,33799184,0,0,0,captures/pan-off-13.png +pan,off,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.680574,0.03616,0.007434,0.015776,0,0,0,0,33799184,0,0,0,captures/pan-off-14.png +pan,off,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.751818,0.03632,0.008396,0.016256,0,0,0,0,33799184,0,0,0,captures/pan-off-15.png +moving-cube,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.70369,0.040992,0.009097,0.018432,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-00.png +moving-cube,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.80616,0.037408,0.01588,0.01696,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-01.png +moving-cube,off,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.918263,0.03728,0.009428,0.016096,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-02.png +moving-cube,off,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.640428,0.035776,0.008125,0.01552,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-03.png +moving-cube,off,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.775623,0.03696,0.007975,0.016768,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-04.png +moving-cube,off,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.84823,0.035584,0.007624,0.016544,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-05.png +moving-cube,off,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.791223,0.03664,0.009168,0.017504,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-06.png +moving-cube,off,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.836649,0.03568,0.009488,0.015136,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-07.png +moving-cube,off,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.80072,0.036416,0.007584,0.016768,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-08.png +moving-cube,off,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.602828,0.034272,0.007213,0.01504,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-09.png +moving-cube,off,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.603258,0.035648,0.007614,0.015104,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-10.png +moving-cube,off,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.739004,0.036992,0.007254,0.016256,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-11.png +moving-cube,off,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.751448,0.036544,0.007855,0.01664,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-12.png +moving-cube,off,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.646369,0.034976,0.007494,0.014784,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-13.png +moving-cube,off,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.852788,0.036672,0.009478,0.01664,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-14.png +moving-cube,off,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.743372,0.036864,0.007834,0.016256,0,0,0,0,33802496,0,0,0,captures/moving-cube-off-15.png +door-background,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.928833,0.036032,0.007935,0.016128,0,0,0,0,33802496,0,0,0,captures/door-background-off-00.png +door-background,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.77393,0.036064,0.007284,0.016192,0,0,0,0,33802496,0,0,0,captures/door-background-off-01.png +door-background,off,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.84281,0.036384,0.009468,0.016384,0,0,0,0,33802496,0,0,0,captures/door-background-off-02.png +door-background,off,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.664153,0.03648,0.007705,0.01552,0,0,0,0,33802496,0,0,0,captures/door-background-off-03.png +door-background,off,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.728064,0.036416,0.007634,0.01568,0,0,0,0,33802496,0,0,0,captures/door-background-off-04.png +door-background,off,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.603067,0.034528,0.007725,0.014368,0,0,0,0,33802496,0,0,0,captures/door-background-off-05.png +door-background,off,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.709047,0.036672,0.008817,0.016352,0,0,0,0,33802496,0,0,0,captures/door-background-off-06.png +door-background,off,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.663913,0.03616,0.007625,0.015872,0,0,0,0,33802496,0,0,0,captures/door-background-off-07.png +door-background,off,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.68884,0.036416,0.008065,0.015648,0,0,0,0,33802496,0,0,0,captures/door-background-off-08.png +door-background,off,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.563944,0.034912,0.009949,0.014688,0,0,0,0,33802496,0,0,0,captures/door-background-off-09.png +door-background,off,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.749343,0.036128,0.007424,0.015232,0,0,0,0,33802496,0,0,0,captures/door-background-off-10.png +door-background,off,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.08964,0.036256,0.008507,0.016352,0,0,0,0,33802496,0,0,0,captures/door-background-off-11.png +door-background,off,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.761777,0.035872,0.007655,0.015168,0,0,0,0,33802496,0,0,0,captures/door-background-off-12.png +door-background,off,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.745016,0.036032,0.009789,0.016544,0,0,0,0,33802496,0,0,0,captures/door-background-off-13.png +door-background,off,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.730127,0.036256,0.007544,0.01632,0,0,0,0,33802496,0,0,0,captures/door-background-off-14.png +door-background,off,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.713887,0.036064,0.007424,0.016224,0,0,0,0,33802496,0,0,0,captures/door-background-off-15.png +door-open,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.82675,0.036704,0.008275,0.016384,0,0,0,0,33802496,0,0,0,captures/door-open-off-00.png +door-open,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.954531,0.03664,0.026841,0.016768,0,0,0,0,33802496,0,0,0,captures/door-open-off-01.png +door-open,off,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.32218,0.03632,0.011992,0.016096,0,0,0,0,33802496,0,0,0,captures/door-open-off-02.png +door-open,off,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.04479,0.036096,0.011992,0.01616,0,0,0,0,33802496,0,0,0,captures/door-open-off-03.png +cut,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.870482,0.036416,0.01101,0.01616,0,0,0,0,33802496,0,0,0,captures/cut-off-00.png +cut,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.819667,0.035872,0.014507,0.01552,0,0,0,0,33802496,0,0,0,captures/cut-off-01.png +resize,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.830406,0.034656,0.010189,0.0144,0,0,0,0,33802496,0,0,0,captures/resize-off-00.png +resize,off,1,319,241,319,241,NVIDIA GeForce RTX 2080 Ti,1.10794,0.076288,0.20679,0.019776,0,0,0,0,34524736,0,0,0,captures/resize-off-01.png +ui-alpha,off,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.53629,0.042464,0.014137,0.02032,0,0,0,0,33803056,0,0,0,captures/ui-alpha-off-00.png +ui-alpha,off,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.8428,0.035104,0.011612,0.015584,0,0,0,0,33803056,0,0,0,captures/ui-alpha-off-01.png +wire-static,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,2.47246,0.091072,0.054803,0.027648,0,0.030816,0.010144,0,34536752,0,2,0,captures/wire-static-current-00.png +wire-static,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.939943,0.0784,0.008776,0.0184,0,0.02976,0.009888,0,34536752,0,2,0,captures/wire-static-current-01.png +wire-static,current,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.887294,0.079264,0.01025,0.018208,0,0.030624,0.010336,0,34536752,0,2,0,captures/wire-static-current-02.png +wire-static,current,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.851376,0.078944,0.010089,0.017824,0,0.030624,0.010336,0,34536752,0,2,0,captures/wire-static-current-03.png +wire-static,current,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.815318,0.07872,0.008446,0.018496,0,0.02976,0.009536,0,34536752,0,2,0,captures/wire-static-current-04.png +wire-static,current,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.841237,0.079136,0.008956,0.018112,0,0.030592,0.010336,0,34536752,0,2,0,captures/wire-static-current-05.png +wire-static,current,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.00031,0.080288,0.017132,0.018944,0,0.030528,0.0104,0,34536752,0,2,0,captures/wire-static-current-06.png +wire-static,current,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.25532,0.079904,0.013435,0.018912,0,0.03024,0.010208,0,34536752,0,2,0,captures/wire-static-current-07.png +wire-static,current,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.28641,0.078336,0.011051,0.018336,0,0.029856,0.009632,0,34536752,0,2,0,captures/wire-static-current-08.png +wire-static,current,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.902713,0.078496,0.008676,0.017984,0,0.030336,0.01024,0,34536752,0,2,0,captures/wire-static-current-09.png +wire-static,current,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.862667,0.0784,0.01049,0.018112,0,0.030144,0.010208,0,34536752,0,2,0,captures/wire-static-current-10.png +wire-static,current,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.854041,0.078912,0.009077,0.018688,0,0.028992,0.01024,0.001024,34536752,0,2,0,captures/wire-static-current-11.png +wire-static,current,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.879038,0.079456,0.010771,0.018624,0,0.0304,0.010304,3.2e-05,34536752,0,2,0,captures/wire-static-current-12.png +wire-static,current,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.858439,0.078272,0.008446,0.01824,0,0.029792,0.010368,0,34536752,0,2,0,captures/wire-static-current-13.png +wire-static,current,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.823824,0.078816,0.008265,0.018464,0,0.030112,0.010272,0,34536752,0,2,0,captures/wire-static-current-14.png +wire-static,current,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.852108,0.078976,0.008827,0.019136,0,0.02912,0.01024,0,34536752,0,2,0,captures/wire-static-current-15.png +pan,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.832591,0.07888,0.008636,0.017824,0,0.030784,0.010176,0,34536752,0,2,0,captures/pan-current-00.png +pan,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.684722,0.075904,0.008777,0.01664,0,0.029152,0.009984,0,34536752,0,2,0,captures/pan-current-01.png +pan,current,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.814096,0.078592,0.008716,0.018496,0,0.029952,0.009664,0,34536752,0,2,0,captures/pan-current-02.png +pan,current,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.950342,0.07936,0.008896,0.01872,0,0.03008,0.010208,3.2e-05,34536752,0,2,0,captures/pan-current-03.png +pan,current,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.852277,0.077984,0.008947,0.018464,0,0.028768,0.01024,0,34536752,0,2,0,captures/pan-current-04.png +pan,current,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.815979,0.078624,0.008296,0.018528,0,0.029632,0.01024,0,34536752,0,2,0,captures/pan-current-05.png +pan,current,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.806081,0.078848,0.008205,0.018432,0,0.03008,0.009472,0,34536752,0,2,0,captures/pan-current-06.png +pan,current,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.811821,0.0784,0.008787,0.018112,0,0.029728,0.010208,0,34536752,0,2,0,captures/pan-current-07.png +pan,current,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.893224,0.075424,0.015399,0.01664,0,0.0288,0.010016,0,34536752,0,2,0,captures/pan-current-08.png +pan,current,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.39065,0.07808,0.021912,0.018208,0,0.029536,0.01024,0,34536752,0,2,0,captures/pan-current-09.png +pan,current,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.01577,0.078688,0.010991,0.018464,0,0.029824,0.009792,0,34536752,0,2,0,captures/pan-current-10.png +pan,current,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.16505,0.078112,0.009298,0.017952,0,0.029952,0.010304,3.2e-05,34536752,0,2,0,captures/pan-current-11.png +pan,current,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.858019,0.078528,0.009548,0.018304,0,0.029952,0.009504,0,34536752,0,2,0,captures/pan-current-12.png +pan,current,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.965782,0.1192,0.009398,0.04448,0,0.029376,0.01024,0,34536752,0,2,0,captures/pan-current-13.png +pan,current,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.873418,0.078624,0.01021,0.018048,0,0.030432,0.010112,0,34536752,0,2,0,captures/pan-current-14.png +pan,current,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.82733,0.0784,0.008767,0.01776,0,0.030528,0.010176,0,34536752,0,2,0,captures/pan-current-15.png +moving-cube,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.77442,0.084256,0.01083,0.02128,0,0.03072,0.01024,0,34540064,0,2,0,captures/moving-cube-current-00.png +moving-cube,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.78471,0.076032,0.01034,0.017088,0,0.028832,0.009952,0,34540064,0,2,0,captures/moving-cube-current-01.png +moving-cube,current,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.87472,0.079296,0.009108,0.018464,0,0.0304,0.010432,0,34540064,0,2,0,captures/moving-cube-current-02.png +moving-cube,current,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.00863,0.079296,0.010891,0.019264,0,0.02896,0.01024,0,34540064,0,2,0,captures/moving-cube-current-03.png +moving-cube,current,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.948028,0.07936,0.01027,0.018944,0,0.030272,0.01008,0,34540064,0,2,0,captures/moving-cube-current-04.png +moving-cube,current,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.26306,0.080384,0.019056,0.020128,0,0.029888,0.010336,0,34540064,0,2,0,captures/moving-cube-current-05.png +moving-cube,current,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.54821,0.079744,0.018745,0.018624,0,0.030592,0.01024,0,34540064,0,2,0,captures/moving-cube-current-06.png +moving-cube,current,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.33383,0.078816,0.011631,0.01872,0,0.03008,0.010112,3.2e-05,34540064,0,2,0,captures/moving-cube-current-07.png +moving-cube,current,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.28799,0.079488,0.011693,0.019104,0,0.029984,0.010304,0,34540064,0,2,0,captures/moving-cube-current-08.png +moving-cube,current,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.09513,0.08208,0.011733,0.01856,0,0.030208,0.010208,3.2e-05,34540064,0,2,0,captures/moving-cube-current-09.png +moving-cube,current,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.18038,0.079392,0.011131,0.018112,0,0.030816,0.010144,0,34540064,0,2,0,captures/moving-cube-current-10.png +moving-cube,current,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.24235,0.079136,0.009809,0.01888,0,0.029536,0.01024,0,34540064,0,2,0,captures/moving-cube-current-11.png +moving-cube,current,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.25525,0.079072,0.01069,0.019296,0,0.029728,0.00976,0,34540064,0,2,0,captures/moving-cube-current-12.png +moving-cube,current,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.09621,0.078752,0.01025,0.019264,0,0.028704,0.01024,0,34540064,0,2,0,captures/moving-cube-current-13.png +moving-cube,current,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07561,0.07856,0.010069,0.01888,0,0.02992,0.009664,0,34540064,0,2,0,captures/moving-cube-current-14.png +moving-cube,current,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.32846,0.078688,0.008356,0.018944,0,0.029632,0.00928,0,34540064,0,2,0,captures/moving-cube-current-15.png +door-background,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.810499,0.0784,0.008336,0.01856,0,0.029696,0.009216,0,34540064,0,2,0,captures/door-background-current-00.png +door-background,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.831939,0.077952,0.009629,0.018432,0,0.029472,0.009536,0,34540064,0,2,0,captures/door-background-current-01.png +door-background,current,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.7897,0.077984,0.008356,0.017856,0,0.029952,0.010112,0,34540064,0,2,0,captures/door-background-current-02.png +door-background,current,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.782676,0.078272,0.007895,0.018464,0,0.028672,0.01024,0,34540064,0,2,0,captures/door-background-current-03.png +door-background,current,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.845706,0.078848,0.008576,0.018336,0,0.030336,0.009344,0,34540064,0,2,0,captures/door-background-current-04.png +door-background,current,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.794549,0.078592,0.008015,0.018336,0,0.028672,0.011584,0,34540064,0,2,0,captures/door-background-current-05.png +door-background,current,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.994365,0.078208,0.008536,0.018144,0,0.030048,0.00912,0.001024,34540064,0,2,0,captures/door-background-current-06.png +door-background,current,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.875682,0.078272,0.008796,0.018304,0,0.02976,0.010304,0,34540064,0,2,0,captures/door-background-current-07.png +door-background,current,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.797264,0.078592,0.008156,0.01856,0,0.02976,0.0104,3.2e-05,34540064,0,2,0,captures/door-background-current-08.png +door-background,current,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.990017,0.07808,0.007825,0.018496,0,0.028672,0.01024,0,34540064,0,2,0,captures/door-background-current-09.png +door-background,current,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.796954,0.078528,0.007625,0.01824,0,0.030016,0.009728,0,34540064,0,2,0,captures/door-background-current-10.png +door-background,current,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.885991,0.105344,0.011652,0.019648,0,0.05552,0.010304,0,34540064,0,2,0,captures/door-background-current-11.png +door-background,current,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.910217,0.078944,0.008807,0.01856,0,0.029248,0.01024,0,34540064,0,2,0,captures/door-background-current-12.png +door-background,current,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.956304,0.07792,0.008456,0.018272,0,0.029088,0.01024,0,34540064,0,2,0,captures/door-background-current-13.png +door-background,current,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.963919,0.078464,0.009247,0.01824,0,0.029888,0.00992,0,34540064,0,2,0,captures/door-background-current-14.png +door-background,current,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.721471,0.075008,0.012583,0.016448,0,0.028896,0.010016,0,34540064,0,2,0,captures/door-background-current-15.png +door-open,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,4.95661,0.079552,0.025829,0.019168,0,0.029408,0.01024,0,34540064,0,2,0,captures/door-open-current-00.png +door-open,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.161,0.0792,0.012544,0.018976,0,0.03008,0.010272,0,34540064,0,2,0,captures/door-open-current-01.png +door-open,current,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.13246,0.078144,0.012673,0.017856,0,0.030176,0.010208,0,34540064,0,2,0,captures/door-open-current-02.png +door-open,current,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.1243,0.077952,0.009879,0.018016,0,0.030112,0.01024,0,34540064,0,2,0,captures/door-open-current-03.png +cut,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.42211,0.078208,0.011762,0.01824,0,0.029824,0.009856,0,34540064,0,2,0,captures/cut-current-00.png +cut,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.32289,0.077472,0.0212,0.017344,0,0.029952,0.010304,0,34540064,0,2,0,captures/cut-current-01.png +resize,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.02429,0.07824,0.010861,0.018368,0,0.029216,0.01024,0,34540064,0,2,0,captures/resize-current-00.png +resize,current,1,319,241,319,241,NVIDIA GeForce RTX 2080 Ti,1.29295,0.122944,0.199326,0.024416,0,0.031712,0.011136,3.2e-05,37474144,0,2,0,captures/resize-current-01.png +ui-alpha,current,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.89159,0.09712,0.015108,0.025664,0,0.029984,0.010208,0.00896,34540608,0,2,0,captures/ui-alpha-current-00.png +ui-alpha,current,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.01381,0.085408,0.012163,0.016192,0,0.029984,0.010272,0.008896,34540608,0,2,0,captures/ui-alpha-current-01.png +wire-static,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,2.48934,0.091648,0.016241,0.028704,0,0.028992,0.01184,0,34536752,0,1,0,captures/wire-static-taa-00.png +wire-static,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.11401,0.086848,0.011652,0.018848,0,0.037376,0.010432,0,34536752,1,0,0,captures/wire-static-taa-01.png +wire-static,taa,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.12533,0.08736,0.013876,0.019168,0,0.037888,0.009952,0,34536752,1,0,0,captures/wire-static-taa-02.png +wire-static,taa,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.02258,0.08768,0.01051,0.018816,0,0.038304,0.010624,0,34536752,1,0,0,captures/wire-static-taa-03.png +wire-static,taa,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.41762,0.08768,0.011221,0.019712,0,0.037984,0.00912,0,34536752,1,0,0,captures/wire-static-taa-04.png +wire-static,taa,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.08245,0.087168,0.013716,0.018848,0,0.037184,0.01024,0,34536752,1,0,0,captures/wire-static-taa-05.png +wire-static,taa,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07025,0.086272,0.009899,0.018592,0,0.037504,0.010112,0,34536752,1,0,0,captures/wire-static-taa-06.png +wire-static,taa,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.22525,0.086944,0.010099,0.018752,0,0.037792,0.009696,0,34536752,1,0,0,captures/wire-static-taa-07.png +wire-static,taa,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.29793,0.08672,0.014127,0.018752,0,0.037632,0.009792,0,34536752,1,0,0,captures/wire-static-taa-08.png +wire-static,taa,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.04908,0.086464,0.009377,0.019008,0,0.037152,0.01024,0,34536752,1,0,0,captures/wire-static-taa-09.png +wire-static,taa,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.20341,0.086336,0.010149,0.018336,0,0.038048,0.01008,0,34536752,1,0,0,captures/wire-static-taa-10.png +wire-static,taa,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.00161,0.086336,0.013716,0.01872,0,0.036864,0.01024,0,34536752,1,0,0,captures/wire-static-taa-11.png +wire-static,taa,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07161,0.085792,0.011732,0.018656,0,0.036864,0.01024,0,34536752,1,0,0,captures/wire-static-taa-12.png +wire-static,taa,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.36857,0.086912,0.015099,0.01888,0,0.037952,0.010176,0,34536752,1,0,0,captures/wire-static-taa-13.png +wire-static,taa,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.22632,0.08688,0.014067,0.019008,0,0.037664,0.010144,0,34536752,1,0,0,captures/wire-static-taa-14.png +wire-static,taa,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.1277,0.086976,0.011892,0.018592,0,0.038336,0.010208,0,34536752,1,0,0,captures/wire-static-taa-15.png +pan,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.06845,0.078912,0.010209,0.018592,0,0.029888,0.010336,0,34536752,0,4,0,captures/pan-taa-00.png +pan,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07835,0.085344,0.012013,0.018816,0,0.035232,0.011328,0,34536752,1,0,0,captures/pan-taa-01.png +pan,taa,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.16111,0.083168,0.011752,0.0184,0,0.034656,0.010144,3.2e-05,34536752,1,0,0,captures/pan-taa-02.png +pan,taa,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.12932,0.082496,0.012133,0.018752,0,0.032992,0.01024,0,34536752,1,0,0,captures/pan-taa-03.png +pan,taa,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.38801,0.086464,0.017473,0.01824,0,0.037472,0.009632,0,34536752,1,0,0,captures/pan-taa-04.png +pan,taa,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.32576,0.0864,0.013936,0.017984,0,0.037952,0.010208,0,34536752,1,0,0,captures/pan-taa-05.png +pan,taa,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.19407,0.085152,0.012294,0.01872,0,0.036448,0.01008,0,34536752,1,0,0,captures/pan-taa-06.png +pan,taa,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07926,0.078144,0.014538,0.015808,0,0.032224,0.009952,0,34536752,1,0,0,captures/pan-taa-07.png +pan,taa,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.48168,0.082656,0.014166,0.018592,0,0.033984,0.009184,0,34536752,1,0,0,captures/pan-taa-08.png +pan,taa,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.13451,0.085632,0.011432,0.017664,0,0.0376,0.009504,0,34536752,1,0,0,captures/pan-taa-09.png +pan,taa,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.16208,0.107584,0.014778,0.0184,0,0.059456,0.009792,3.2e-05,34536752,1,0,0,captures/pan-taa-10.png +pan,taa,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.30392,0.0864,0.012233,0.018976,0,0.037248,0.010112,0,34536752,1,0,0,captures/pan-taa-11.png +pan,taa,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07396,0.085984,0.009789,0.01872,0,0.037248,0.010144,0,34536752,1,0,0,captures/pan-taa-12.png +pan,taa,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.13843,0.101664,0.013045,0.0168,0,0.033824,0.009504,0,34536752,1,0,0,captures/pan-taa-13.png +pan,taa,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.33784,0.083328,0.013806,0.018432,0,0.034624,0.01008,0,34536752,1,0,0,captures/pan-taa-14.png +pan,taa,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.05958,0.082624,0.008847,0.018816,0,0.033824,0.009184,0,34536752,1,0,0,captures/pan-taa-15.png +moving-cube,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,2.10442,0.085312,0.014207,0.021952,0,0.030752,0.010208,0,34540064,0,4,0,captures/moving-cube-taa-00.png +moving-cube,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.41918,0.086752,0.013716,0.019456,0,0.037024,0.010272,3.2e-05,34540064,1,0,0,captures/moving-cube-taa-01.png +moving-cube,taa,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.17962,0.11744,0.013636,0.018784,0,0.043008,0.024576,0,34540064,1,0,0,captures/moving-cube-taa-02.png +moving-cube,taa,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.67551,0.086592,0.01603,0.019584,0,0.036768,0.010208,0,34540064,1,0,0,captures/moving-cube-taa-03.png +moving-cube,taa,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.758,0.088064,0.01604,0.019744,0,0.037984,0.010176,0,34540064,1,0,0,captures/moving-cube-taa-04.png +moving-cube,taa,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.44446,0.087968,0.014498,0.01952,0,0.038048,0.010272,0,34540064,1,0,0,captures/moving-cube-taa-05.png +moving-cube,taa,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.53542,0.088416,0.016031,0.019648,0,0.038432,0.009696,0,34540064,1,0,0,captures/moving-cube-taa-06.png +moving-cube,taa,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.67412,0.088192,0.015499,0.019168,0,0.038688,0.010336,0,34540064,1,0,0,captures/moving-cube-taa-07.png +moving-cube,taa,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.2743,0.087328,0.014477,0.019168,0,0.038016,0.010176,3.2e-05,34540064,1,0,0,captures/moving-cube-taa-08.png +moving-cube,taa,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.14623,0.088032,0.012093,0.019488,0,0.038016,0.010048,0,34540064,1,0,0,captures/moving-cube-taa-09.png +moving-cube,taa,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.54185,0.088128,0.011512,0.018848,0,0.039232,0.00992,0,34540064,1,0,0,captures/moving-cube-taa-10.png +moving-cube,taa,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.13235,0.087328,0.013436,0.018944,0,0.037696,0.009408,0,34540064,1,0,0,captures/moving-cube-taa-11.png +moving-cube,taa,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.1413,0.086464,0.012083,0.019648,0,0.036768,0.009184,0,34540064,1,0,0,captures/moving-cube-taa-12.png +moving-cube,taa,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.05218,0.086656,0.008456,0.019968,0,0.036544,0.010272,3.2e-05,34540064,1,0,0,captures/moving-cube-taa-13.png +moving-cube,taa,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.03463,0.08736,0.009559,0.019104,0,0.037888,0.009216,0,34540064,1,0,0,captures/moving-cube-taa-14.png +moving-cube,taa,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.22738,0.087936,0.011352,0.01952,0,0.036992,0.01024,0,34540064,1,0,0,captures/moving-cube-taa-15.png +door-background,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.3096,0.0792,0.009778,0.017856,0,0.03072,0.01024,0,34540064,0,4,0,captures/door-background-taa-00.png +door-background,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.03846,0.085536,0.017283,0.01888,0,0.036608,0.010176,0,34540064,1,0,0,captures/door-background-taa-01.png +door-background,taa,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.11382,0.085344,0.011211,0.018016,0,0.036864,0.01024,0,34540064,1,0,0,captures/door-background-taa-02.png +door-background,taa,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.36965,0.086336,0.011111,0.018336,0,0.0376,0.009504,0,34540064,1,0,0,captures/door-background-taa-03.png +door-background,taa,4,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.05394,0.0856,0.011161,0.01808,0,0.037504,0.0096,0,34540064,1,0,0,captures/door-background-taa-04.png +door-background,taa,5,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.20098,0.084928,0.013015,0.01856,0,0.036672,0.010208,3.2e-05,34540064,1,0,0,captures/door-background-taa-05.png +door-background,taa,6,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.23304,0.086176,0.01047,0.018464,0,0.037536,0.009568,0,34540064,1,0,0,captures/door-background-taa-06.png +door-background,taa,7,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.01356,0.085824,0.01073,0.01872,0,0.03648,0.010592,3.2e-05,34540064,1,0,0,captures/door-background-taa-07.png +door-background,taa,8,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.05947,0.086048,0.011061,0.018304,0,0.037312,0.009792,0,34540064,1,0,0,captures/door-background-taa-08.png +door-background,taa,9,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.25637,0.085856,0.011732,0.017952,0,0.037792,0.009312,0,34540064,1,0,0,captures/door-background-taa-09.png +door-background,taa,10,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.07356,0.086592,0.015239,0.01872,0,0.037472,0.009792,0,34540064,1,0,0,captures/door-background-taa-10.png +door-background,taa,11,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.06852,0.085376,0.01098,0.017888,0,0.037472,0.009632,0,34540064,1,0,0,captures/door-background-taa-11.png +door-background,taa,12,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.35973,0.086592,0.012354,0.018464,0,0.038144,0.010144,0,34540064,1,0,0,captures/door-background-taa-12.png +door-background,taa,13,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.00899,0.085152,0.011061,0.018624,0,0.036448,0.010144,3.2e-05,34540064,1,0,0,captures/door-background-taa-13.png +door-background,taa,14,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.06445,0.085152,0.0107,0.018656,0,0.03648,0.009248,0,34540064,1,0,0,captures/door-background-taa-14.png +door-background,taa,15,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.51862,0.086464,0.011392,0.01808,0,0.038112,0.0104,0,34540064,1,0,0,captures/door-background-taa-15.png +door-open,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.17429,0.079648,0.013656,0.0192,0,0.030272,0.010272,0,34540064,0,4,0,captures/door-open-taa-00.png +door-open,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.19256,0.086944,0.01047,0.019552,0,0.037184,0.010272,0,34540064,1,0,0,captures/door-open-taa-01.png +door-open,taa,2,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.28329,0.08688,0.01061,0.018048,0,0.038656,0.01024,0,34540064,1,0,0,captures/door-open-taa-02.png +door-open,taa,3,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.1485,0.086368,0.017293,0.018848,0,0.037344,0.009888,0,34540064,1,0,0,captures/door-open-taa-03.png +cut,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.21608,0.078368,0.011181,0.017248,0,0.03072,0.01024,0,34540064,0,4,0,captures/cut-taa-00.png +cut,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,0.983736,0.078016,0.009307,0.017728,0,0.029888,0.010304,3.2e-05,34540064,0,2,0,captures/cut-taa-01.png +resize,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.3882,0.078368,0.01082,0.017984,0,0.0304,0.010144,0,34540064,0,4,0,captures/resize-taa-00.png +resize,taa,1,319,241,319,241,NVIDIA GeForce RTX 2080 Ti,1.20955,0.125152,0.07957,0.024704,0,0.03328,0.011424,0,37474144,0,7,0,captures/resize-taa-01.png +ui-alpha,taa,0,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,2.10395,0.097984,0.014958,0.026528,0,0.029824,0.010272,0.009056,34540608,0,4,0,captures/ui-alpha-taa-00.png +ui-alpha,taa,1,160,120,160,120,NVIDIA GeForce RTX 2080 Ti,1.45794,0.096032,0.011873,0.019136,0,0.036704,0.01056,0.009792,34540608,1,0,0,captures/ui-alpha-taa-01.png +wire-static,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,3.1265,0.090336,0.017102,0.026656,0,0.031008,0.009952,0,34438448,0,2,0,captures/wire-static-upscale-current-00.png +wire-static,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.14343,0.078944,0.009368,0.018688,0,0.029792,0.009952,0,34438448,0,2,0,captures/wire-static-upscale-current-01.png +wire-static,upscale-current,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.11398,0.079232,0.011512,0.018208,0,0.030464,0.010304,0,34438448,0,2,0,captures/wire-static-upscale-current-02.png +wire-static,upscale-current,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.04552,0.079136,0.009969,0.018304,0,0.030496,0.01024,3.2e-05,34438448,0,2,0,captures/wire-static-upscale-current-03.png +wire-static,upscale-current,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.12912,0.078976,0.0104,0.018656,0,0.030208,0.009216,0.001024,34438448,0,2,0,captures/wire-static-upscale-current-04.png +wire-static,upscale-current,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.06958,0.078912,0.010189,0.018208,0,0.030112,0.010624,0,34438448,0,2,0,captures/wire-static-upscale-current-05.png +wire-static,upscale-current,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.03649,0.079264,0.009668,0.018816,0,0.030176,0.010304,0,34438448,0,2,0,captures/wire-static-upscale-current-06.png +wire-static,upscale-current,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.983535,0.078592,0.009327,0.018496,0,0.02928,0.01024,0,34438448,0,2,0,captures/wire-static-upscale-current-07.png +wire-static,upscale-current,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.33322,0.079296,0.0104,0.018432,0,0.030112,0.010464,3.2e-05,34438448,0,2,0,captures/wire-static-upscale-current-08.png +wire-static,upscale-current,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.990919,0.0792,0.009287,0.018592,0,0.030432,0.010272,0,34438448,0,2,0,captures/wire-static-upscale-current-09.png +wire-static,upscale-current,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.999204,0.079616,0.008937,0.018496,0,0.03056,0.010368,3.2e-05,34438448,0,2,0,captures/wire-static-upscale-current-10.png +wire-static,upscale-current,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.889027,0.075776,0.008406,0.016608,0,0.029152,0.009952,0,34438448,0,2,0,captures/wire-static-upscale-current-11.png +wire-static,upscale-current,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.5752,0.079136,0.008375,0.018624,0,0.030176,0.010336,3.2e-05,34438448,0,2,0,captures/wire-static-upscale-current-12.png +wire-static,upscale-current,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.05217,0.07888,0.009849,0.018944,0,0.0296,0.01024,0,34438448,0,2,0,captures/wire-static-upscale-current-13.png +wire-static,upscale-current,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.981893,0.080256,0.017593,0.018624,0,0.030304,0.010528,0,34438448,0,2,0,captures/wire-static-upscale-current-14.png +wire-static,upscale-current,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.945303,0.07888,0.008306,0.018784,0,0.029952,0.010208,0,34438448,0,2,0,captures/wire-static-upscale-current-15.png +pan,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.823774,0.079616,0.008016,0.018976,0,0.030144,0.010464,0,34438448,0,2,0,captures/pan-upscale-current-00.png +pan,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.02418,0.079072,0.007704,0.018144,0,0.03024,0.010656,0,34438448,0,2,0,captures/pan-upscale-current-01.png +pan,upscale-current,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.29235,0.078784,0.016341,0.018688,0,0.029888,0.010272,0,34438448,0,2,0,captures/pan-upscale-current-02.png +pan,upscale-current,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.820758,0.078528,0.007725,0.018304,0,0.02992,0.009472,0,34438448,0,2,0,captures/pan-upscale-current-03.png +pan,upscale-current,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.649215,0.076032,0.007555,0.016672,0,0.028672,0.01024,0,34438448,0,2,0,captures/pan-upscale-current-04.png +pan,upscale-current,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.29222,0.078656,0.008205,0.018432,0,0.028672,0.01024,0,34438448,0,2,0,captures/pan-upscale-current-05.png +pan,upscale-current,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.01028,0.07888,0.009408,0.018816,0,0.029184,0.01024,0,34438448,0,2,0,captures/pan-upscale-current-06.png +pan,upscale-current,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.04556,0.0792,0.020779,0.018624,0,0.030208,0.009728,0,34438448,0,2,0,captures/pan-upscale-current-07.png +pan,upscale-current,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.36451,0.078272,0.008546,0.018208,0,0.029824,0.010272,0,34438448,0,2,0,captures/pan-upscale-current-08.png +pan,upscale-current,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.01222,0.0792,0.009458,0.018144,0,0.030496,0.010304,0,34438448,0,2,0,captures/pan-upscale-current-09.png +pan,upscale-current,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.993655,0.079168,0.009307,0.017792,0,0.030752,0.010208,0,34438448,0,2,0,captures/pan-upscale-current-10.png +pan,upscale-current,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.997301,0.078592,0.009889,0.01856,0,0.029472,0.01024,0,34438448,0,2,0,captures/pan-upscale-current-11.png +pan,upscale-current,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.02409,0.07888,0.009789,0.018496,0,0.029952,0.009728,0,34438448,0,2,0,captures/pan-upscale-current-12.png +pan,upscale-current,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.2024,0.0792,0.011502,0.0176,0,0.03104,0.00992,0,34438448,0,2,0,captures/pan-upscale-current-13.png +pan,upscale-current,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.17529,0.07872,0.008166,0.018656,0,0.02992,0.010272,0,34438448,0,2,0,captures/pan-upscale-current-14.png +pan,upscale-current,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.03218,0.078624,0.01023,0.017856,0,0.030528,0.010144,3.2e-05,34438448,0,2,0,captures/pan-upscale-current-15.png +moving-cube,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,2.66866,0.08496,0.009678,0.022208,0,0.030528,0.010336,0,34441760,0,2,0,captures/moving-cube-upscale-current-00.png +moving-cube,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.19092,0.079424,0.009858,0.019008,0,0.029984,0.010272,0,34441760,0,2,0,captures/moving-cube-upscale-current-01.png +moving-cube,upscale-current,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.15197,0.079456,0.008777,0.0184,0,0.030688,0.010272,0,34441760,0,2,0,captures/moving-cube-upscale-current-02.png +moving-cube,upscale-current,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.06766,0.079136,0.008686,0.018368,0,0.030368,0.010144,3.2e-05,34441760,0,2,0,captures/moving-cube-upscale-current-03.png +moving-cube,upscale-current,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.963457,0.077376,0.009538,0.017312,0,0.03008,0.010048,3.2e-05,34441760,0,2,0,captures/moving-cube-upscale-current-04.png +moving-cube,upscale-current,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.13308,0.079456,0.008476,0.019008,0,0.02992,0.010656,0,34441760,0,2,0,captures/moving-cube-upscale-current-05.png +moving-cube,upscale-current,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.08232,0.079008,0.009087,0.019104,0,0.02896,0.01024,0,34441760,0,2,0,captures/moving-cube-upscale-current-06.png +moving-cube,upscale-current,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.987042,0.075776,0.007414,0.016512,0,0.028672,0.01024,0,34441760,0,2,0,captures/moving-cube-upscale-current-07.png +moving-cube,upscale-current,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.26439,0.079616,0.008726,0.018272,0,0.031072,0.009888,0,34441760,0,2,0,captures/moving-cube-upscale-current-08.png +moving-cube,upscale-current,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.15948,0.079488,0.007684,0.018784,0,0.030272,0.010528,0,34441760,0,2,0,captures/moving-cube-upscale-current-09.png +moving-cube,upscale-current,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.2032,0.07872,0.012835,0.018848,0,0.02896,0.01024,0,34441760,0,2,0,captures/moving-cube-upscale-current-10.png +moving-cube,upscale-current,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.12052,0.078912,0.009197,0.018784,0,0.030016,0.010272,0,34441760,0,2,0,captures/moving-cube-upscale-current-11.png +moving-cube,upscale-current,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.996539,0.090112,0.008306,0.016544,0,0.02976,0.0112,0,34441760,0,2,0,captures/moving-cube-upscale-current-12.png +moving-cube,upscale-current,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.23849,0.079552,0.009658,0.019296,0,0.029696,0.010112,0,34441760,0,2,0,captures/moving-cube-upscale-current-13.png +moving-cube,upscale-current,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.08274,0.079104,0.009518,0.018816,0,0.029984,0.010208,0,34441760,0,2,0,captures/moving-cube-upscale-current-14.png +moving-cube,upscale-current,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.971122,0.076256,0.010059,0.017536,0,0.028928,0.009856,3.2e-05,34441760,0,2,0,captures/moving-cube-upscale-current-15.png +door-background,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.49664,0.078592,0.007905,0.0184,0,0.030048,0.01024,0,34441760,0,2,0,captures/door-background-upscale-current-00.png +door-background,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.08269,0.07792,0.009728,0.0176,0,0.030272,0.010144,3.2e-05,34441760,0,2,0,captures/door-background-upscale-current-01.png +door-background,upscale-current,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.26314,0.078176,0.009007,0.018272,0,0.029728,0.009824,0,34441760,0,2,0,captures/door-background-upscale-current-02.png +door-background,upscale-current,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.995708,0.078656,0.01039,0.017856,0,0.030624,0.010208,0,34441760,0,2,0,captures/door-background-upscale-current-03.png +door-background,upscale-current,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.01253,0.075296,0.01034,0.015424,0,0.029792,0.00912,0,34441760,0,2,0,captures/door-background-upscale-current-04.png +door-background,upscale-current,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.24795,0.078048,0.009579,0.018016,0,0.029728,0.010208,0,34441760,0,2,0,captures/door-background-upscale-current-05.png +door-background,upscale-current,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.01929,0.078208,0.009307,0.017408,0,0.03072,0.01024,0,34441760,0,2,0,captures/door-background-upscale-current-06.png +door-background,upscale-current,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.951435,0.07488,0.011241,0.016384,0,0.028864,0.00976,3.2e-05,34441760,0,2,0,captures/door-background-upscale-current-07.png +door-background,upscale-current,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.53889,0.078912,0.011311,0.018272,0,0.03008,0.010432,0,34441760,0,2,0,captures/door-background-upscale-current-08.png +door-background,upscale-current,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.18011,0.078528,0.022222,0.018048,0,0.030368,0.010176,3.2e-05,34441760,0,2,0,captures/door-background-upscale-current-09.png +door-background,upscale-current,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.22121,0.078144,0.011612,0.018272,0,0.029696,0.009664,0,34441760,0,2,0,captures/door-background-upscale-current-10.png +door-background,upscale-current,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.12846,0.078496,0.009838,0.018496,0,0.029856,0.010144,0,34441760,0,2,0,captures/door-background-upscale-current-11.png +door-background,upscale-current,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.32895,0.077344,0.010771,0.017632,0,0.028672,0.01024,0,34441760,0,2,0,captures/door-background-upscale-current-12.png +door-background,upscale-current,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,2.05506,0.078528,0.011311,0.018336,0,0.02976,0.01024,0,34441760,0,2,0,captures/door-background-upscale-current-13.png +door-background,upscale-current,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.22239,0.078528,0.01075,0.017728,0,0.03072,0.01024,0,34441760,0,2,0,captures/door-background-upscale-current-14.png +door-background,upscale-current,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.682,0.078848,0.012584,0.018368,0,0.030272,0.010208,0,34441760,0,2,0,captures/door-background-upscale-current-15.png +door-open,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.31352,0.079328,0.010099,0.019136,0,0.02992,0.009312,0,34441760,0,2,0,captures/door-open-upscale-current-00.png +door-open,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.10389,0.075968,0.012092,0.016864,0,0.029312,0.0096,0,34441760,0,2,0,captures/door-open-upscale-current-01.png +door-open,upscale-current,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.19747,0.07824,0.009368,0.01712,0,0.03072,0.01024,0,34441760,0,2,0,captures/door-open-upscale-current-02.png +door-open,upscale-current,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.11694,0.07792,0.01062,0.018112,0,0.028672,0.01024,0,34441760,0,2,0,captures/door-open-upscale-current-03.png +cut,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.24495,0.07856,0.009137,0.018432,0,0.02992,0.009248,0,34441760,0,2,0,captures/cut-upscale-current-00.png +cut,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.999926,0.077952,0.007434,0.017696,0,0.030272,0.010144,3.2e-05,34441760,0,2,0,captures/cut-upscale-current-01.png +resize,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.743442,0.075488,0.011021,0.016864,0,0.028704,0.009984,3.2e-05,34441760,0,2,0,captures/resize-upscale-current-00.png +resize,upscale-current,1,319,241,214,162,NVIDIA GeForce RTX 2080 Ti,1.46473,0.12384,0.055685,0.025344,0,0.03072,0.012064,0,37064544,0,2,0,captures/resize-upscale-current-01.png +ui-alpha,upscale-current,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,2.94764,0.097472,0.016892,0.024704,0,0.030656,0.010208,0.009888,34442304,0,2,0,captures/ui-alpha-upscale-current-00.png +ui-alpha,upscale-current,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.52909,0.117984,0.016551,0.017888,0,0.036576,0.018432,0.016672,34442304,0,2,0,captures/ui-alpha-upscale-current-01.png +wire-static,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,2.47849,0.091168,0.013365,0.027264,0,0.031008,0.009952,0,34438448,0,1,0,captures/wire-static-upscale-00.png +wire-static,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.18957,0.08768,0.01067,0.018688,0,0.038624,0.010368,0,34438448,1,0,0,captures/wire-static-upscale-01.png +wire-static,upscale,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.822441,0.087072,0.007575,0.018976,0,0.036896,0.01024,0,34438448,1,0,0,captures/wire-static-upscale-02.png +wire-static,upscale,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.39344,0.087744,0.008025,0.018784,0,0.03856,0.010368,0,34438448,1,0,0,captures/wire-static-upscale-03.png +wire-static,upscale,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.14197,0.087648,0.006963,0.019904,0,0.037632,0.00976,0,34438448,1,0,0,captures/wire-static-upscale-04.png +wire-static,upscale,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.833082,0.0872,0.006943,0.017888,0,0.038688,0.010464,0,34438448,1,0,0,captures/wire-static-upscale-05.png +wire-static,upscale,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.778148,0.086944,0.007214,0.018816,0,0.037632,0.009888,0,34438448,1,0,0,captures/wire-static-upscale-06.png +wire-static,upscale,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.881904,0.087072,0.011181,0.018848,0,0.037728,0.009376,0,34438448,1,0,0,captures/wire-static-upscale-07.png +wire-static,upscale,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.0706,0.087616,0.007485,0.01808,0,0.038912,0.01024,0,34438448,1,0,0,captures/wire-static-upscale-08.png +wire-static,upscale,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.690383,0.0824,0.007314,0.016896,0,0.03552,0.009888,3.2e-05,34438448,1,0,0,captures/wire-static-upscale-09.png +wire-static,upscale,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.824625,0.087264,0.008025,0.01808,0,0.038976,0.010176,0,34438448,1,0,0,captures/wire-static-upscale-10.png +wire-static,upscale,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.88515,0.086848,0.007664,0.018784,0,0.036864,0.01024,0,34438448,1,0,0,captures/wire-static-upscale-11.png +wire-static,upscale,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.840676,0.086368,0.007494,0.018144,0,0.038016,0.010208,3.2e-05,34438448,1,0,0,captures/wire-static-upscale-12.png +wire-static,upscale,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.802193,0.08752,0.008206,0.019104,0,0.037792,0.010272,0,34438448,1,0,0,captures/wire-static-upscale-13.png +wire-static,upscale,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.885781,0.087264,0.008476,0.018048,0,0.038528,0.010176,3.2e-05,34438448,1,0,0,captures/wire-static-upscale-14.png +wire-static,upscale,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.982614,0.087392,0.008847,0.019168,0,0.03792,0.009184,0.001024,34438448,1,0,0,captures/wire-static-upscale-15.png +pan,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.920847,0.079552,0.011191,0.019072,0,0.02944,0.01024,0,34438448,0,4,0,captures/pan-upscale-00.png +pan,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.987613,0.08352,0.008406,0.018432,0,0.034432,0.01056,0,34438448,1,0,0,captures/pan-upscale-01.png +pan,upscale,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.46571,0.085952,0.016801,0.019392,0,0.035456,0.010048,0,34438448,1,0,0,captures/pan-upscale-02.png +pan,upscale,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.07074,0.083392,0.009347,0.018528,0,0.034432,0.010432,0,34438448,1,0,0,captures/pan-upscale-03.png +pan,upscale,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.813945,0.083936,0.008176,0.019296,0,0.034048,0.009568,0,34438448,1,0,0,captures/pan-upscale-04.png +pan,upscale,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.830176,0.085568,0.008927,0.018624,0,0.036704,0.010272,0,34438448,1,0,0,captures/pan-upscale-05.png +pan,upscale,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.794419,0.083296,0.008005,0.019136,0,0.033344,0.01024,0,34438448,1,0,0,captures/pan-upscale-06.png +pan,upscale,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.790461,0.082848,0.007805,0.01872,0,0.033856,0.010272,3.2e-05,34438448,1,0,0,captures/pan-upscale-07.png +pan,upscale,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.807313,0.08304,0.007344,0.018784,0,0.03408,0.01024,0,34438448,1,0,0,captures/pan-upscale-08.png +pan,upscale,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.733052,0.115808,0.008436,0.01712,0,0.038464,0.029792,0,34438448,1,0,0,captures/pan-upscale-09.png +pan,upscale,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.8377,0.084992,0.008355,0.019424,0,0.034752,0.010304,0,34438448,1,0,0,captures/pan-upscale-10.png +pan,upscale,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.02124,0.082656,0.009217,0.018688,0,0.033792,0.009216,0,34438448,1,0,0,captures/pan-upscale-11.png +pan,upscale,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.850935,0.083168,0.008135,0.018624,0,0.034272,0.010272,0,34438448,1,0,0,captures/pan-upscale-12.png +pan,upscale,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.739305,0.079584,0.008216,0.016544,0,0.032768,0.010144,0,34438448,1,0,0,captures/pan-upscale-13.png +pan,upscale,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.49971,0.083648,0.012714,0.019328,0,0.033984,0.010272,3.2e-05,34438448,1,0,0,captures/pan-upscale-14.png +pan,upscale,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.883978,0.082848,0.007654,0.017952,0,0.034656,0.010304,3.2e-05,34438448,1,0,0,captures/pan-upscale-15.png +moving-cube,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,2.0209,0.084928,0.009939,0.021376,0,0.030976,0.009984,0,34441760,0,4,0,captures/moving-cube-upscale-00.png +moving-cube,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.35584,0.088544,0.008446,0.019552,0,0.038528,0.010496,0,34441760,1,0,0,captures/moving-cube-upscale-01.png +moving-cube,upscale,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.916599,0.087136,0.008426,0.019104,0,0.037728,0.009376,0,34441760,1,0,0,captures/moving-cube-upscale-02.png +moving-cube,upscale,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.940945,0.088032,0.007494,0.019648,0,0.037824,0.009376,0,34441760,1,0,0,captures/moving-cube-upscale-03.png +moving-cube,upscale,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.95421,0.086784,0.007645,0.019488,0,0.037184,0.010144,0,34441760,1,0,0,captures/moving-cube-upscale-04.png +moving-cube,upscale,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.895799,0.090208,0.008105,0.020672,0,0.03904,0.010304,0,34441760,1,0,0,captures/moving-cube-upscale-05.png +moving-cube,upscale,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.761416,0.084224,0.007625,0.017664,0,0.03616,0.010304,3.2e-05,34441760,1,0,0,captures/moving-cube-upscale-06.png +moving-cube,upscale,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.880992,0.088544,0.008025,0.019968,0,0.037952,0.009888,0,34441760,1,0,0,captures/moving-cube-upscale-07.png +moving-cube,upscale,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.942487,0.08768,0.007154,0.019456,0,0.037984,0.010272,0,34441760,1,0,0,captures/moving-cube-upscale-08.png +moving-cube,upscale,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.906089,0.088032,0.007905,0.019616,0,0.037184,0.01024,0,34441760,1,0,0,captures/moving-cube-upscale-09.png +moving-cube,upscale,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.919274,0.088768,0.007535,0.01936,0,0.039008,0.01024,0,34441760,1,0,0,captures/moving-cube-upscale-10.png +moving-cube,upscale,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.94334,0.08672,0.007283,0.018656,0,0.036864,0.01024,0,34441760,1,0,0,captures/moving-cube-upscale-11.png +moving-cube,upscale,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.884078,0.088544,0.007895,0.019424,0,0.038624,0.010496,3.2e-05,34441760,1,0,0,captures/moving-cube-upscale-12.png +moving-cube,upscale,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.76303,0.08368,0.009438,0.018208,0,0.035296,0.009984,0,34441760,1,0,0,captures/moving-cube-upscale-13.png +moving-cube,upscale,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.910747,0.088064,0.008245,0.019488,0,0.03824,0.009312,0,34441760,1,0,0,captures/moving-cube-upscale-14.png +moving-cube,upscale,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.911069,0.087104,0.007364,0.018816,0,0.038016,0.010272,3.2e-05,34441760,1,0,0,captures/moving-cube-upscale-15.png +door-background,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.809216,0.07856,0.007404,0.018496,0,0.029792,0.010336,0,34441760,0,4,0,captures/door-background-upscale-00.png +door-background,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.98611,0.08768,0.008035,0.019232,0,0.03744,0.01024,0,34441760,1,0,0,captures/door-background-upscale-01.png +door-background,upscale,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.0519,0.0872,0.008196,0.018944,0,0.038208,0.009728,0,34441760,1,0,0,captures/door-background-upscale-02.png +door-background,upscale,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.847038,0.086368,0.007774,0.017856,0,0.038304,0.01024,0,34441760,1,0,0,captures/door-background-upscale-03.png +door-background,upscale,4,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.07034,0.082816,0.025809,0.016384,0,0.036416,0.01008,3.2e-05,34441760,1,0,0,captures/door-background-upscale-04.png +door-background,upscale,5,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,2.09687,0.08624,0.011011,0.018464,0,0.036928,0.01024,0,34441760,1,0,0,captures/door-background-upscale-05.png +door-background,upscale,6,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.952586,0.086784,0.007725,0.01872,0,0.037344,0.01024,0,34441760,1,0,0,captures/door-background-upscale-06.png +door-background,upscale,7,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.96983,0.086816,0.007734,0.01872,0,0.036864,0.011296,0,34441760,1,0,0,captures/door-background-upscale-07.png +door-background,upscale,8,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.04119,0.085472,0.008045,0.01792,0,0.036864,0.01024,0,34441760,1,0,0,captures/door-background-upscale-08.png +door-background,upscale,9,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.846006,0.086976,0.008266,0.018688,0,0.03792,0.0104,0,34441760,1,0,0,captures/door-background-upscale-09.png +door-background,upscale,10,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.697345,0.082784,0.007725,0.016608,0,0.036,0.009792,0,34441760,1,0,0,captures/door-background-upscale-10.png +door-background,upscale,11,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.26455,0.086528,0.008156,0.018592,0,0.037856,0.009248,0,34441760,1,0,0,captures/door-background-upscale-11.png +door-background,upscale,12,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.828814,0.087744,0.006924,0.019072,0,0.038176,0.01024,0,34441760,1,0,0,captures/door-background-upscale-12.png +door-background,upscale,13,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.772597,0.08176,0.008075,0.016768,0,0.034912,0.009888,0,34441760,1,0,0,captures/door-background-upscale-13.png +door-background,upscale,14,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.857177,0.086976,0.007524,0.018688,0,0.03824,0.010176,0,34441760,1,0,0,captures/door-background-upscale-14.png +door-background,upscale,15,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.955853,0.086816,0.007504,0.018304,0,0.038304,0.010304,0,34441760,1,0,0,captures/door-background-upscale-15.png +door-open,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.8534,0.07872,0.007744,0.018336,0,0.030432,0.010112,0,34441760,0,4,0,captures/door-open-upscale-00.png +door-open,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.752579,0.083136,0.007464,0.017344,0,0.036064,0.008992,0,34441760,1,0,0,captures/door-open-upscale-01.png +door-open,upscale,2,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.15195,0.087008,0.007304,0.017952,0,0.038624,0.010496,3.2e-05,34441760,1,0,0,captures/door-open-upscale-02.png +door-open,upscale,3,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.903955,0.086464,0.007744,0.018848,0,0.03744,0.010272,0,34441760,1,0,0,captures/door-open-upscale-03.png +cut,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.648353,0.075456,0.007935,0.015904,0,0.029664,0.009248,0,34441760,0,4,0,captures/cut-upscale-00.png +cut,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,0.673971,0.07536,0.01044,0.016576,0,0.028832,0.009024,0,34441760,0,2,0,captures/cut-upscale-01.png +resize,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.48892,0.078304,0.007484,0.017568,0,0.030688,0.010112,0,34441760,0,4,0,captures/resize-upscale-00.png +resize,upscale,1,319,241,214,162,NVIDIA GeForce RTX 2080 Ti,1.1538,0.12336,0.047209,0.025152,0,0.031488,0.010208,0,37064544,0,7,0,captures/resize-upscale-01.png +ui-alpha,upscale,0,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.81028,0.097216,0.014737,0.025408,0,0.030208,0.009696,0.01024,34442304,0,4,0,captures/ui-alpha-upscale-00.png +ui-alpha,upscale,1,160,120,108,81,NVIDIA GeForce RTX 2080 Ti,1.13703,0.09552,0.012954,0.018272,0,0.036864,0.01072,0.0096,34442304,1,0,0,captures/ui-alpha-upscale-01.png diff --git a/docs/validation/p3-temporal-2026-09-24/metrics.json b/docs/validation/p3-temporal-2026-09-24/metrics.json new file mode 100644 index 0000000..d4ab79c --- /dev/null +++ b/docs/validation/p3-temporal-2026-09-24/metrics.json @@ -0,0 +1,852 @@ +{ + "format": "faset.p3-temporal-quality", + "source_revision": "1a1f69f7e88b3ea69986931dfcf6baf9b43a431c", + "device": "NVIDIA GeForce RTX 2080 Ti", + "driver": "NVIDIA proprietary 595.84", + "capture_configuration": "Linux Debug, validation on, Direct, 160x120 except resize 319x241", + "roi_xywh": { + "wire-static": [ + 25, + 12, + 110, + 95 + ], + "pan": [ + 25, + 12, + 110, + 95 + ], + "moving-cube": [ + 35, + 25, + 90, + 75 + ], + "door-open": [ + 75, + 55, + 10, + 10 + ], + "cut": [ + 35, + 25, + 90, + 70 + ], + "resize": [ + 45, + 30, + 70, + 55 + ], + "ui-alpha": [ + 2, + 2, + 25, + 12 + ] + }, + "variation": { + "wire-static": { + "off": { + "mean_rgb_frame_delta": 0.0, + "p95_rgb_frame_delta": 0.0, + "samples": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + }, + "current": { + "mean_rgb_frame_delta": 0.38774249673771205, + "p95_rgb_frame_delta": 0.5395693779904307, + "samples": [ + 0.0, + 0.3597129186602871, + 0.4967464114832536, + 0.5138755980861244, + 0.37684210526315787, + 0.37684210526315787, + 0.3939712918660287, + 0.32545454545454544, + 0.34258373205741627, + 0.5310047846889953, + 0.548133971291866 + ] + }, + "taa": { + "mean_rgb_frame_delta": 0.35978251413658113, + "p95_rgb_frame_delta": 0.5023923444976076, + "samples": [ + 0.024497607655502393, + 0.33253588516746413, + 0.4739712918660287, + 0.4779904306220096, + 0.3357894736842105, + 0.3374162679425837, + 0.36076555023923446, + 0.30153110047846887, + 0.3083253588516746, + 0.48976076555023923, + 0.515023923444976 + ] + }, + "upscale-current": { + "mean_rgb_frame_delta": 0.4391300565463245, + "p95_rgb_frame_delta": 0.5310047846889951, + "samples": [ + 0.0, + 0.4453588516746411, + 0.5138755980861244, + 0.4453588516746411, + 0.4796172248803828, + 0.548133971291866, + 0.4796172248803828, + 0.4796172248803828, + 0.4453588516746411, + 0.4796172248803828, + 0.5138755980861244 + ] + }, + "upscale": { + "mean_rgb_frame_delta": 0.4121966072205307, + "p95_rgb_frame_delta": 0.4924401913875598, + "samples": [ + 0.04334928229665072, + 0.4075598086124402, + 0.49291866028708137, + 0.4277511961722488, + 0.43272727272727274, + 0.48995215311004786, + 0.4491866028708134, + 0.44401913875598087, + 0.4015311004784689, + 0.4532057416267943, + 0.49196172248803827 + ] + } + }, + "pan": { + "off": { + "mean_rgb_frame_delta": 0.0, + "p95_rgb_frame_delta": 0.0, + "samples": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + }, + "current": { + "mean_rgb_frame_delta": 0.39907785993910394, + "p95_rgb_frame_delta": 0.580334928229665, + "samples": [ + 0.017129186602870813, + 0.37684210526315787, + 0.5342583732057417, + 0.5717703349282297, + 0.3523444976076555, + 0.3523444976076555, + 0.3800956937799043, + 0.32545454545454544, + 0.34258373205741627, + 0.548133971291866, + 0.5888995215311005 + ] + }, + "taa": { + "mean_rgb_frame_delta": 0.39820791648542847, + "p95_rgb_frame_delta": 0.580334928229665, + "samples": [ + 0.017129186602870813, + 0.37684210526315787, + 0.5342583732057417, + 0.5717703349282297, + 0.3475598086124402, + 0.34698564593301434, + 0.38066985645933016, + 0.32545454545454544, + 0.34258373205741627, + 0.548133971291866, + 0.5888995215311005 + ] + }, + "upscale-current": { + "mean_rgb_frame_delta": 0.47307525010874296, + "p95_rgb_frame_delta": 0.6264114832535885, + "samples": [ + 0.0, + 0.4453588516746411, + 0.5823923444976077, + 0.6231578947368421, + 0.4648803827751196, + 0.5676555023923445, + 0.4861244019138756, + 0.4796172248803828, + 0.4453588516746411, + 0.4796172248803828, + 0.6296650717703349 + ] + }, + "upscale": { + "mean_rgb_frame_delta": 0.47147455415398, + "p95_rgb_frame_delta": 0.6264114832535885, + "samples": [ + 0.0, + 0.4453588516746411, + 0.5823923444976077, + 0.6231578947368421, + 0.45607655502392347, + 0.5588516746411484, + 0.4861244019138756, + 0.4796172248803828, + 0.4453588516746411, + 0.4796172248803828, + 0.6296650717703349 + ] + } + }, + "moving-cube": { + "off": { + "mean_rgb_frame_delta": 1.23265544332211, + "p95_rgb_frame_delta": 1.4505185185185185, + "samples": [ + 1.2113086419753087, + 1.2114567901234568, + 1.4501728395061728, + 1.4504197530864198, + 1.450469135802469, + 1.4505679012345678, + 0.9732839506172839, + 1.2120493827160495, + 0.9794567901234568, + 1.4414814814814816, + 0.7285432098765432 + ] + }, + "current": { + "mean_rgb_frame_delta": 1.9299887766554433, + "p95_rgb_frame_delta": 2.7756790123456794, + "samples": [ + 2.226962962962963, + 2.163358024691358, + 0.9889876543209877, + 2.9448395061728396, + 1.4725925925925927, + 1.9340246913580248, + 1.5753086419753086, + 2.339703703703704, + 1.2820246913580247, + 2.6065185185185187, + 1.6955555555555555 + ] + }, + "taa": { + "mean_rgb_frame_delta": 1.9171492704826039, + "p95_rgb_frame_delta": 2.7522222222222226, + "samples": [ + 2.2798024691358023, + 2.128641975308642, + 0.9975308641975309, + 2.949777777777778, + 1.4725925925925927, + 1.9341234567901235, + 1.534320987654321, + 2.239456790123457, + 1.321037037037037, + 2.554666666666667, + 1.6766913580246914 + ] + }, + "upscale-current": { + "mean_rgb_frame_delta": 1.8840224466891133, + "p95_rgb_frame_delta": 3.626074074074074, + "samples": [ + 1.3984197530864197, + 1.9335308641975308, + 0.966716049382716, + 4.834567901234568, + 1.4508641975308643, + 2.4175802469135803, + 1.153827160493827, + 2.371753086419753, + 1.398962962962963, + 2.127506172839506, + 0.6705185185185185 + ] + }, + "upscale": { + "mean_rgb_frame_delta": 1.836040404040404, + "p95_rgb_frame_delta": 3.626049382716049, + "samples": [ + 1.341432098765432, + 1.9367901234567901, + 0.9674567901234568, + 4.8344197530864195, + 1.4507654320987655, + 2.417679012345679, + 1.0918518518518519, + 2.1205432098765433, + 1.3752592592592592, + 1.9920987654320987, + 0.6681481481481482 + ] + } + } + }, + "wire_brightness": { + "off": { + "mean_rgb_sum": 7518.0, + "mean_frame_peak": 179.0, + "mean_pixels_over_128": 14.0 + }, + "current": { + "mean_rgb_sum": 8234.0, + "mean_frame_peak": 179.0, + "mean_pixels_over_128": 15.333333333333334 + }, + "taa": { + "mean_rgb_sum": 8275.0, + "mean_frame_peak": 166.91666666666666, + "mean_pixels_over_128": 15.333333333333334 + }, + "upscale-current": { + "mean_rgb_sum": 7428.5, + "mean_frame_peak": 179.0, + "mean_pixels_over_128": 13.833333333333334 + }, + "upscale": { + "mean_rgb_sum": 7485.25, + "mean_frame_peak": 161.33333333333334, + "mean_pixels_over_128": 13.833333333333334 + } + }, + "door_edge": { + "2": { + "taa": { + "edge_versus_current_only": { + "mean_rgb_255": 2.4038095238095236, + "max_channel_255": 60, + "pixels_over_8": 136 + }, + "edge_versus_unobstructed_temporal": { + "mean_rgb_255": 2.0425396825396827, + "max_channel_255": 60, + "pixels_over_8": 121 + }, + "old_door_red_pixels": 0 + }, + "upscale": { + "edge_versus_current_only": { + "mean_rgb_255": 3.0555555555555554, + "max_channel_255": 53, + "pixels_over_8": 198 + }, + "edge_versus_unobstructed_temporal": { + "mean_rgb_255": 2.5095238095238095, + "max_channel_255": 53, + "pixels_over_8": 176 + }, + "old_door_red_pixels": 0 + } + }, + "3": { + "taa": { + "edge_versus_current_only": { + "mean_rgb_255": 0.8495238095238096, + "max_channel_255": 40, + "pixels_over_8": 49 + }, + "edge_versus_unobstructed_temporal": { + "mean_rgb_255": 0.35873015873015873, + "max_channel_255": 40, + "pixels_over_8": 17 + }, + "old_door_red_pixels": 0 + }, + "upscale": { + "edge_versus_current_only": { + "mean_rgb_255": 1.246984126984127, + "max_channel_255": 31, + "pixels_over_8": 92 + }, + "edge_versus_unobstructed_temporal": { + "mean_rgb_255": 0.5552380952380952, + "max_channel_255": 31, + "pixels_over_8": 28 + }, + "old_door_red_pixels": 0 + } + } + }, + "paired_errors": { + "door-open": { + "2": { + "current": { + "versus_off": { + "mean_rgb_255": 0.013333333333333334, + "max_channel_255": 1, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "taa": { + "versus_off": { + "mean_rgb_255": 0.02, + "max_channel_255": 1, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.03333333333333333, + "max_channel_255": 1, + "pixels_over_8": 0 + } + }, + "upscale-current": { + "versus_off": { + "mean_rgb_255": 0.02666666666666667, + "max_channel_255": 1, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.013333333333333334, + "max_channel_255": 1, + "pixels_over_8": 0 + } + }, + "upscale": { + "versus_off": { + "mean_rgb_255": 0.02, + "max_channel_255": 1, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.04666666666666667, + "max_channel_255": 1, + "pixels_over_8": 0 + } + } + }, + "3": { + "current": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "taa": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "upscale-current": { + "versus_off": { + "mean_rgb_255": 0.01, + "max_channel_255": 1, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.01, + "max_channel_255": 1, + "pixels_over_8": 0 + } + }, + "upscale": { + "versus_off": { + "mean_rgb_255": 0.01, + "max_channel_255": 1, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + } + } + }, + "cut": { + "1": { + "current": { + "versus_off": { + "mean_rgb_255": 0.10126984126984127, + "max_channel_255": 212, + "pixels_over_8": 4 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "taa": { + "versus_off": { + "mean_rgb_255": 0.10126984126984127, + "max_channel_255": 212, + "pixels_over_8": 4 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "upscale-current": { + "versus_off": { + "mean_rgb_255": 0.5562962962962963, + "max_channel_255": 188, + "pixels_over_8": 21 + }, + "versus_current_only": { + "mean_rgb_255": 0.6572486772486772, + "max_channel_255": 212, + "pixels_over_8": 25 + } + }, + "upscale": { + "versus_off": { + "mean_rgb_255": 0.5562962962962963, + "max_channel_255": 188, + "pixels_over_8": 21 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + } + } + }, + "resize": { + "1": { + "current": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "taa": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "upscale-current": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "upscale": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + } + } + }, + "ui-alpha": { + "1": { + "current": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "taa": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "upscale-current": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + }, + "upscale": { + "versus_off": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + }, + "versus_current_only": { + "mean_rgb_255": 0.0, + "max_channel_255": 0, + "pixels_over_8": 0 + } + } + } + } + }, + "wire_static_timing_after_four_warmup_frames": { + "off": { + "cpu_ms": { + "p50": 0.8565805, + "p95": 0.8839500499999999 + }, + "gpu_ms": { + "p50": 0.036288, + "p95": 0.0370352 + }, + "readback_cpu_ms": { + "p50": 0.009773, + "p95": 0.01073595 + }, + "gpu_main_raster_ms": { + "p50": 0.016191999999999998, + "p95": 0.0167536 + }, + "gpu_post_raster_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_temporal_resolve_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_temporal_composite_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_ui_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_allocated_bytes": { + "p50": 33799184.0, + "p95": 33799184.0 + } + }, + "current": { + "cpu_ms": { + "p50": 0.8605529999999999, + "p95": 1.2693105 + }, + "gpu_ms": { + "p50": 0.07886399999999999, + "p95": 0.0800768 + }, + "readback_cpu_ms": { + "p50": 0.0090165, + "p95": 0.015098649999999998 + }, + "gpu_main_raster_ms": { + "p50": 0.01848, + "p95": 0.0190304 + }, + "gpu_post_raster_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_temporal_resolve_ms": { + "p50": 0.030128000000000002, + "p95": 0.0305568 + }, + "gpu_temporal_composite_ms": { + "p50": 0.01024, + "p95": 0.0103824 + }, + "gpu_ui_ms": { + "p50": 0.0, + "p95": 0.0004783999999999993 + }, + "gpu_allocated_bytes": { + "p50": 34536752.0, + "p95": 34536752.0 + } + }, + "taa": { + "cpu_ms": { + "p50": 1.165555, + "p95": 1.3906425 + }, + "gpu_ms": { + "p50": 0.0868, + "p95": 0.0873984 + }, + "readback_cpu_ms": { + "p50": 0.011812, + "p95": 0.0145644 + }, + "gpu_main_raster_ms": { + "p50": 0.018752, + "p95": 0.0193248 + }, + "gpu_post_raster_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_temporal_resolve_ms": { + "p50": 0.037648, + "p95": 0.0381776 + }, + "gpu_temporal_composite_ms": { + "p50": 0.010159999999999999, + "p95": 0.01024 + }, + "gpu_ui_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_allocated_bytes": { + "p50": 34536752.0, + "p95": 34536752.0 + } + }, + "upscale-current": { + "cpu_ms": { + "p50": 1.017847, + "p95": 1.442111 + }, + "gpu_ms": { + "p50": 0.079056, + "p95": 0.079904 + }, + "readback_cpu_ms": { + "p50": 0.009497499999999999, + "p95": 0.013636849999999996 + }, + "gpu_main_raster_ms": { + "p50": 0.018608, + "p95": 0.0188736 + }, + "gpu_post_raster_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_temporal_resolve_ms": { + "p50": 0.030144, + "p95": 0.030489600000000002 + }, + "gpu_temporal_composite_ms": { + "p50": 0.010288, + "p95": 0.0105712 + }, + "gpu_ui_ms": { + "p50": 0.0, + "p95": 0.0004783999999999993 + }, + "gpu_allocated_bytes": { + "p50": 34438448.0, + "p95": 34438448.0 + } + }, + "upscale": { + "cpu_ms": { + "p50": 0.86129, + "p95": 1.1027164999999999 + }, + "gpu_ms": { + "p50": 0.087232, + "p95": 0.0876304 + }, + "readback_cpu_ms": { + "p50": 0.007579, + "p95": 0.009897299999999998 + }, + "gpu_main_raster_ms": { + "p50": 0.018464, + "p95": 0.0194992 + }, + "gpu_post_raster_ms": { + "p50": 0.0, + "p95": 0.0 + }, + "gpu_temporal_resolve_ms": { + "p50": 0.037856, + "p95": 0.0389408 + }, + "gpu_temporal_composite_ms": { + "p50": 0.010176, + "p95": 0.0103584 + }, + "gpu_ui_ms": { + "p50": 0.0, + "p95": 0.0004783999999999993 + }, + "gpu_allocated_bytes": { + "p50": 34438448.0, + "p95": 34438448.0 + } + } + }, + "frame_count": 370 +} diff --git a/docs/validation/p3-temporal-2026-09-24/profile-720p-debug.csv b/docs/validation/p3-temporal-2026-09-24/profile-720p-debug.csv new file mode 100644 index 0000000..cbfc4ae --- /dev/null +++ b/docs/validation/p3-temporal-2026-09-24/profile-720p-debug.csv @@ -0,0 +1,91 @@ +mode,frame,width,height,internal_width,internal_height,device,cpu_ms,gpu_ms,readback_cpu_ms,gpu_main_raster_ms,gpu_temporal_resolve_ms,gpu_temporal_composite_ms,gpu_ui_ms,gpu_allocated_bytes,validation_errors +taa,0,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.5298,0.694848,0.417898,0.020224,0.100096,0.026816,0,80502304,0 +upscale,0,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.54917,0.695264,0.461721,0.018816,0.099776,0.026752,0,71851552,0 +off,0,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.12631,0.588256,0.535831,0.017024,0,0,0,45112576,0 +upscale,1,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.61257,0.6936,0.421686,0.019584,0.098144,0.0264,3.2e-05,71851552,0 +off,1,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.20594,0.561888,0.441142,0.016224,0,0,0,45112576,0 +taa,1,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.44068,0.696256,0.477451,0.019936,0.098304,0.028512,0,80502304,0 +off,2,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.33078,0.561952,0.439649,0.016256,0,0,0,45112576,0 +taa,2,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.4291,0.714752,0.43496,0.019712,0.100352,0.027968,0,80502304,0 +upscale,2,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.69798,0.696928,0.494643,0.020448,0.098752,0.026368,0,71851552,0 +taa,3,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.6187,0.695232,0.475467,0.020576,0.100224,0.026592,3.2e-05,80502304,0 +upscale,3,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.81203,0.700832,0.584783,0.01952,0.098816,0.026112,0,71851552,0 +off,3,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.13118,0.56256,0.448165,0.016448,0,0,0,45112576,0 +upscale,4,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.73625,0.694624,0.704249,0.018944,0.099456,0.02656,0,71851552,0 +off,4,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.06412,0.57296,0.463043,0.017152,0,0,0,45112576,0 +taa,4,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.57172,0.697184,0.425823,0.020736,0.10032,0.026656,0,80502304,0 +off,5,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.25442,0.561952,0.471389,0.016672,0,0,0,45112576,0 +taa,5,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.48341,0.694976,0.418359,0.020128,0.099552,0.027264,0,80502304,0 +upscale,5,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.27906,0.696832,0.388412,0.02064,0.098304,0.026624,0,71851552,0 +taa,6,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.35786,0.714848,0.470166,0.020192,0.100448,0.026816,0,80502304,0 +upscale,6,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.63022,0.694848,0.419511,0.019968,0.09872,0.026656,3.2e-05,71851552,0 +off,6,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",3.02216,0.563744,0.449277,0.017632,0,0,0,45112576,0 +upscale,7,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.69348,0.704032,0.468213,0.019712,0.09856,0.02624,0,71851552,0 +off,7,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.25014,0.562176,0.420904,0.016832,0,0,0,45112576,0 +taa,7,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.61486,0.696448,0.567681,0.021024,0.100032,0.025728,0,80502304,0 +off,8,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.245,0.573056,0.534579,0.01696,0,0,0,45112576,0 +taa,8,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.43463,0.695264,0.387982,0.019424,0.100736,0.02624,0,80502304,0 +upscale,8,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.80271,0.711808,0.440531,0.02032,0.099232,0.02656,0,71851552,0 +taa,9,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.6713,0.69488,0.563183,0.020224,0.1,0.026656,0,80502304,0 +upscale,9,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.63905,0.695072,0.621602,0.019936,0.09872,0.026624,0,71851552,0 +off,9,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.21471,0.563072,0.569164,0.01712,0,0,0,45112576,0 +upscale,10,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.61351,0.696608,0.444809,0.019648,0.098432,0.026048,0,71851552,0 +off,10,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.50704,0.561696,0.746137,0.016736,0,0,0,45112576,0 +taa,10,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.55871,0.718208,0.44529,0.02064,0.09984,0.026784,3.2e-05,80502304,0 +off,11,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.18882,0.56208,0.432345,0.016864,0,0,0,45112576,0 +taa,11,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.71475,0.69408,0.582609,0.018976,0.100512,0.026464,0,80502304,0 +upscale,11,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",3.68331,0.672384,0.469827,0.017888,0.07792,0.024576,0,71851552,0 +taa,12,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.55553,0.667616,0.691314,0.017312,0.080224,0.02448,0,80502304,0 +upscale,12,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.42831,0.671776,0.516754,0.01648,0.07952,0.024896,0,71851552,0 +off,12,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.22563,0.557152,0.472421,0.014912,0,0,0,45112576,0 +upscale,13,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.63025,0.66656,0.691535,0.0168,0.078368,0.024512,0,71851552,0 +off,13,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.46906,0.5568,0.531683,0.014784,0,0,0,45112576,0 +taa,13,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.61804,0.667904,0.486658,0.017952,0.078688,0.025856,0,80502304,0 +off,14,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.43435,0.556512,0.565898,0.014784,0,0,0,45112576,0 +taa,14,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.38365,0.668096,0.404262,0.016544,0.08112,0.025376,0,80502304,0 +upscale,14,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.41649,0.667904,0.577299,0.016288,0.079104,0.024832,0,71851552,0 +taa,15,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.49071,0.668032,0.437936,0.017312,0.079616,0.024992,0,80502304,0 +upscale,15,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.40943,0.667296,0.433778,0.017088,0.077344,0.024704,0,71851552,0 +off,15,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",1.95085,0.557088,0.458925,0.0152,0,0,0,45112576,0 +upscale,16,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.36698,0.66672,0.464416,0.016384,0.07888,0.024992,3.2e-05,71851552,0 +off,16,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.04283,0.56256,0.481388,0.01456,0,0,0,45112576,0 +taa,16,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.53362,0.668896,0.581397,0.017568,0.079872,0.02608,3.2e-05,80502304,0 +off,17,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.25835,0.556416,0.563162,0.014816,0,0,0,45112576,0 +taa,17,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.73559,0.66928,0.521243,0.019264,0.079904,0.024896,0,80502304,0 +upscale,17,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.70614,0.668608,0.547473,0.016864,0.078912,0.02528,3.2e-05,71851552,0 +taa,18,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.43999,0.690976,0.497589,0.017568,0.079872,0.025824,0,80502304,0 +upscale,18,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.90949,0.667264,0.475927,0.01664,0.079296,0.025088,0,71851552,0 +off,18,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.52583,0.557248,0.553805,0.0152,0,0,0,45112576,0 +upscale,19,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",4.13301,0.672512,0.578211,0.016992,0.078944,0.024736,3.2e-05,71851552,0 +off,19,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.48686,0.585056,0.567771,0.023008,0,0,0,45112576,0 +taa,19,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.99734,0.671712,0.596855,0.01792,0.080704,0.025472,0,80502304,0 +off,20,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.42481,0.556832,0.648022,0.014752,0,0,0,45112576,0 +taa,20,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.87876,0.679424,0.596405,0.017312,0.08128,0.025216,0,80502304,0 +upscale,20,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",3.15953,0.669344,0.913894,0.016928,0.08,0.024448,0,71851552,0 +taa,21,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.8991,0.666752,0.678199,0.017088,0.079872,0.025728,3.2e-05,80502304,0 +upscale,21,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.58165,0.668064,0.429029,0.017344,0.07856,0.024576,0,71851552,0 +off,21,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.31059,0.557568,0.589392,0.015392,0,0,0,45112576,0 +upscale,22,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",3.09495,0.667968,0.616763,0.017344,0.077952,0.026176,3.2e-05,71851552,0 +off,22,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.32431,0.555808,0.601295,0.014208,0,0,0,45112576,0 +taa,22,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.62825,0.669184,0.631662,0.017984,0.08016,0.024736,0,80502304,0 +off,23,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.30002,0.5648,0.486698,0.015232,0,0,0,45112576,0 +taa,23,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.47966,0.669472,0.440181,0.017824,0.08032,0.025024,0,80502304,0 +upscale,23,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.61308,0.670048,0.486959,0.017504,0.079104,0.025344,0,71851552,0 +taa,24,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.95018,0.669504,0.708366,0.017536,0.080256,0.024736,0,80502304,0 +upscale,24,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.74961,0.679776,0.545539,0.01696,0.079552,0.024896,0,71851552,0 +off,24,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.21248,0.558048,0.550088,0.015648,0,0,0,45112576,0 +upscale,25,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.7808,0.666464,0.498891,0.016864,0.078112,0.024768,0,71851552,0 +off,25,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.35475,0.556032,0.538827,0.01424,0,0,0,45112576,0 +taa,25,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.59393,0.669632,0.508549,0.017984,0.080064,0.024384,0,80502304,0 +off,26,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.52737,0.556928,0.836117,0.014208,0,0,0,45112576,0 +taa,26,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.11682,0.66928,0.410234,0.017824,0.079904,0.024544,0,80502304,0 +upscale,26,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.28625,0.668672,0.469555,0.018656,0.077952,0.024896,0,71851552,0 +taa,27,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.51246,0.668192,0.520572,0.017088,0.079872,0.024576,0,80502304,0 +upscale,27,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.39091,0.690112,0.427746,0.017152,0.078176,0.02448,0,71851552,0 +off,27,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",1.90002,0.557376,0.409923,0.0152,0,0,0,45112576,0 +upscale,28,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.46855,0.66656,0.501315,0.01664,0.078784,0.0248,0,71851552,0 +off,28,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.37855,0.556448,0.887043,0.014816,0,0,0,45112576,0 +taa,28,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.35216,0.668,0.471079,0.017952,0.079552,0.025376,0,80502304,0 +off,29,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",1.96644,0.556352,0.453966,0.01424,0,0,0,45112576,0 +taa,29,1280,720,1280,720,"NVIDIA GeForce RTX 2080 Ti",2.10195,0.668192,0.455239,0.017824,0.08,0.025088,0,80502304,0 +upscale,29,1280,720,858,483,"NVIDIA GeForce RTX 2080 Ti",2.14645,0.671936,0.460649,0.016864,0.078944,0.025504,0,71851552,0 diff --git a/tools/analyze_temporal_quality.py b/tools/analyze_temporal_quality.py new file mode 100644 index 0000000..a9e6522 --- /dev/null +++ b/tools/analyze_temporal_quality.py @@ -0,0 +1,205 @@ +#!/usr/bin/env python3 +"""Package reproducible P3 temporal captures and compute fixed-fixture image metrics.""" + +from __future__ import annotations + +import argparse +import csv +import json +from pathlib import Path +from statistics import mean + +import numpy as np +from PIL import Image, ImageDraw + + +REGIONS = { + "wire-static": (25, 12, 110, 95), + "pan": (25, 12, 110, 95), + "moving-cube": (35, 25, 90, 75), + "door-open": (75, 55, 10, 10), + "cut": (35, 25, 90, 70), + "resize": (45, 30, 70, 55), + "ui-alpha": (2, 2, 25, 12), +} +MODES = ("off", "current", "taa", "upscale-current", "upscale") + + +def quantile(samples: list[float], fraction: float) -> float: + ordered = sorted(samples) + index = (len(ordered) - 1) * fraction + lower = int(index) + upper = min(lower + 1, len(ordered) - 1) + return ordered[lower] + (ordered[upper] - ordered[lower]) * (index - lower) + + +def image_error(first: np.ndarray, second: np.ndarray, + region: tuple[int, int, int, int]) -> dict[str, float | int]: + x, y, width, height = region + first_roi = first[y:y + height, x:x + width, :3].astype(np.int16) + second_roi = second[y:y + height, x:x + width, :3].astype(np.int16) + difference = np.abs(first_roi - second_roi) + return { + "mean_rgb_255": float(difference.mean()), + "max_channel_255": int(difference.max()), + "pixels_over_8": int(np.any(difference > 8, axis=2).sum()), + } + + +def package(input_dir: Path, output_dir: Path, revision: str, driver: str) -> None: + output_dir.mkdir(parents=True, exist_ok=True) + (output_dir / "captures").mkdir(exist_ok=True) + with (input_dir / "frames.csv").open(newline="", encoding="utf-8") as source: + reader = csv.DictReader(source) + rows = list(reader) + fieldnames = reader.fieldnames + if not rows or not fieldnames: + raise ValueError("Temporal capture CSV is empty") + if len({row["device"] for row in rows}) != 1: + raise ValueError("Capture mixed Vulkan devices") + if any(int(row["validation_errors"]) != 0 for row in rows): + raise ValueError("Capture contains Vulkan validation errors") + + images: dict[tuple[str, str, int], np.ndarray] = {} + by_sequence: dict[tuple[str, str], list[dict[str, str]]] = {} + for row in rows: + ppm = input_dir / row["image"] + png = Path(row["image"]).with_suffix(".png") + with Image.open(ppm) as source: + source.save(output_dir / png, optimize=True) + images[row["sequence"], row["mode"], int(row["phase"])] = np.array(source) + row["image"] = png.as_posix() + by_sequence.setdefault((row["sequence"], row["mode"]), []).append(row) + with (output_dir / "frames.csv").open("w", newline="", encoding="utf-8") as target: + writer = csv.DictWriter(target, fieldnames=fieldnames) + writer.writeheader() + writer.writerows(rows) + + variation = {} + for sequence in ("wire-static", "pan", "moving-cube"): + variation[sequence] = {} + for mode in MODES: + sequence_rows = by_sequence[sequence, mode] + samples = [image_error(images[sequence, mode, phase], + images[sequence, mode, phase - 1], + REGIONS[sequence])["mean_rgb_255"] + for phase in range(5, len(sequence_rows))] + variation[sequence][mode] = { + "mean_rgb_frame_delta": mean(samples), + "p95_rgb_frame_delta": quantile(samples, .95), + "samples": samples, + } + + paired_errors = {} + for sequence, phases in (("door-open", (2, 3)), ("cut", (1,)), + ("resize", (1,)), ("ui-alpha", (1,))): + paired_errors[sequence] = {} + for phase in phases: + paired_errors[sequence][str(phase)] = {} + for mode in MODES[1:]: + baseline = "upscale-current" if mode == "upscale" else "current" + paired_errors[sequence][str(phase)][mode] = { + "versus_off": image_error(images[sequence, mode, phase], + images[sequence, "off", phase], + REGIONS[sequence]), + "versus_current_only": image_error(images[sequence, mode, phase], + images[sequence, baseline, phase], + REGIONS[sequence]), + } + + wire_energy = {} + x, y, region_width, region_height = REGIONS["wire-static"] + for mode in MODES: + images_after_warmup = [images["wire-static", mode, phase] + [y:y + region_height, x:x + region_width, :3] + for phase in range(4, 16)] + wire_energy[mode] = { + "mean_rgb_sum": mean(float(image.sum()) for image in images_after_warmup), + "mean_frame_peak": mean(float(image.max()) for image in images_after_warmup), + "mean_pixels_over_128": mean(float(np.any(image > 128, axis=2).sum()) + for image in images_after_warmup), + } + door_edge = {} + for phase in (2, 3): + door_edge[str(phase)] = {} + for mode in ("taa", "upscale"): + baseline = "current" if mode == "taa" else "upscale-current" + rendered = images["door-open", mode, phase] + old_door = rendered[40:85, 60:100, :3].astype(np.int16) + red_pixels = np.logical_and( + np.logical_and(old_door[:, :, 0] > old_door[:, :, 1] + 20, + old_door[:, :, 0] > old_door[:, :, 2] + 20), + old_door[:, :, 0] > 25).sum() + door_edge[str(phase)][mode] = { + "edge_versus_current_only": image_error( + rendered, images["door-open", baseline, phase], + (65, 45, 30, 35)), + "edge_versus_unobstructed_temporal": image_error( + rendered, images["door-background", mode, phase], + (65, 45, 30, 35)), + "old_door_red_pixels": int(red_pixels), + } + + timing = {} + columns = ("cpu_ms", "gpu_ms", "readback_cpu_ms", "gpu_main_raster_ms", + "gpu_post_raster_ms", "gpu_temporal_resolve_ms", + "gpu_temporal_composite_ms", "gpu_ui_ms", "gpu_allocated_bytes") + for mode in MODES: + steady = by_sequence["wire-static", mode][4:] + timing[mode] = { + column: {"p50": quantile([float(row[column]) for row in steady], .5), + "p95": quantile([float(row[column]) for row in steady], .95)} + for column in columns + } + report = { + "format": "faset.p3-temporal-quality", + "source_revision": revision, + "device": rows[0]["device"], + "driver": driver, + "capture_configuration": "Linux Debug, validation on, Direct, 160x120 except resize 319x241", + "roi_xywh": REGIONS, + "variation": variation, + "wire_brightness": wire_energy, + "door_edge": door_edge, + "paired_errors": paired_errors, + "wire_static_timing_after_four_warmup_frames": timing, + "frame_count": len(rows), + } + (output_dir / "metrics.json").write_text( + json.dumps(report, indent=2, ensure_ascii=False) + "\n", encoding="utf-8") + + examples = (("wire-static", 15), ("pan", 15), ("moving-cube", 15), + ("door-open", 2), ("cut", 1), ("ui-alpha", 1)) + cell_width, cell_height = 160, 144 + sheet = Image.new("RGB", (cell_width * len(MODES), + cell_height * len(examples)), "#111111") + draw = ImageDraw.Draw(sheet) + for row_index, (sequence, phase) in enumerate(examples): + for column_index, mode in enumerate(MODES): + x, y = column_index * cell_width, row_index * cell_height + picture = Image.fromarray(images[sequence, mode, phase], "RGB") + sheet.paste(picture, (x, y + 24)) + draw.text((x + 5, y + 4), f"{sequence} / {mode}", fill="#eeeeee") + sheet.save(output_dir / "contact-sheet.png", optimize=True) + + door_modes = ("current", "taa", "upscale-current", "upscale") + door_sheet = Image.new("RGB", (180 * len(door_modes), 210 * 2), "#111111") + door_draw = ImageDraw.Draw(door_sheet) + for row_index, sequence in enumerate(("door-open", "door-background")): + for column_index, mode in enumerate(door_modes): + x, y = column_index * 180, row_index * 210 + crop = Image.fromarray(images[sequence, mode, 3], "RGB").crop( + (65, 45, 95, 80)).resize((150, 175), Image.Resampling.NEAREST) + door_sheet.paste(crop, (x, y + 25)) + door_draw.text((x + 5, y + 4), f"{sequence} / {mode}", fill="#eeeeee") + door_sheet.save(output_dir / "door-edge-nearest-5x.png", optimize=True) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--input", type=Path, required=True) + parser.add_argument("--output", type=Path, required=True) + parser.add_argument("--revision", required=True) + parser.add_argument("--driver", required=True) + args = parser.parse_args() + package(args.input, args.output, args.revision, args.driver)