Measured geometry → coherent video → radiance field

How this house becomes a splat.

A concise technical walkthrough of the current R5 run: how measured blueprint geometry controls generated appearance, how a coherent orbit becomes a solved camera system, and how that system is trained and evaluated as a 3D Gaussian Splat.

Current checkpoint

Generation passed. Reconstruction is one frame short.

Paid generationCompleteSeven coherent appearance pins and one 241-frame depth-guided orbit. Cumulative FAL spend: $11.70775.
COLMAP solve240 registered · f240 quarantined31,791 sparse points, 126,991 observations, 3.9946 mean track length, 0.9296 px mean reprojection error.
R5 Brush trainingComplete30k steps, six held-out checkpoints, 139.3 MB PLY, and an 18.9 MB review splat.
Decision: R5 exists and is inspectable, but R4 remains reconstruction authority. R5's PSNR-best 10k checkpoint is +0.0065 dB and -0.003710 SSIM versus R4, so the two-axis promotion gate failed.

System overview

One evidence chain, seven transformations.

Each stage receives a narrower form of authority. A generated frame can carry appearance without becoming metric geometry; a COLMAP pose can support training without proving real-world alignment; a browser conversion can make a splat viewable without preserving the full training representation.

01 · Measured modelBlueprint retrace, 3D massing, registered cameras.
02 · Line + depth241 immutable camera-control frames.
03 · FLUX pinsAppearance transferred onto admitted views.
04 · VACE orbitDepth-guided 241-frame video.
05 · COLMAP240 cameras; unmatched f240 quarantined without an invented pose.
06 · Brush30k training plus six independently measured checkpoints.
07 · BrowserRegistered opening camera and subject-only orbit proof; no promotion.
completed evidencepreserved candidatenot promoted over R4
Geometry authorityMeasured retrace + 3D modelSilhouette, roof form, massing, openings, camera path, line and depth controls.
Appearance authorityAdmitted styled stillsClapboard, trim, shutters, glazing, roof material, exposure and facade detail.
Reconstruction authorityCOLMAP + held-out rendersRecovered cameras and splat quality only after independent registration and evaluation gates.

Current run

What happened, in order.

01

Build the measured camera-control orbit

The retraced house model is rendered from a circular camera path into 241 indexed views, f000 through f240. Every view yields a line image; the same camera sequence yields a depth-control video. These controls carry camera and geometry only, never photoreal appearance.

complete
Why 241?
It closes a 240-interval orbit while retaining both endpoints. Adjacent views are about 1.49° apart, so camera motion is dense enough for correspondence.
02

Establish one house identity

The strongest FLUX.2 Pro still at f000 becomes an appearance donor. It contributes material identity and photographic treatment, but its camera is explicitly non-authoritative.

complete
FLUX.2 Pro Edit
An image-editing diffusion model. Here it receives a measured line view first and an appearance donor second, with instructions to preserve the first image’s camera and edges.
03

Measure donor-camera leakage before scaling

Three probes transferred f000 appearance to f010, f020 and f040, which sit 14.94°, 29.88° and 59.75° away. A predeclared automated gate compared each result against all 241 measured line views. All three outputs matched their requested camera exactly, ranked first, and beat the donor-exclusive edge evidence.

59.75° admitted
Adversarial gate
It scores only house-control lines. Background, lawn, foliage, crop and general “prettiness” cannot rescue a geometrically wrong result.
04

Propagate a coherent seven-pin ladder

Because 59.75° passed, the cheapest admitted spacing was selected: f000, f040, f080, f120, f160, f200 and f240. Each new pin used its measured line frame plus the immediately previous admitted photographic pin, preventing a single distant donor from repeatedly pulling the camera backward.

7 pins complete
Sequential propagation
Identity moves locally around the orbit. Camera structure is reasserted from the measured line control at every step.
05

Generate one depth-guided orbit with Wan VACE

The full 241-frame depth video supplies continuous camera motion and visible-surface structure. f000/f240 anchor the endpoints; the five interior pins reinforce identity around the loop. The result is a 34.69 MB continuous orbit.

video complete
VACE, not “VASE”
Wan 2.2 VACE is a controllable video-generation system. This run uses its depth-conditioned endpoint: depth governs motion/structure while first, last and reference images govern appearance.
06

Decode the generated orbit into reconstruction frames

FFmpeg extracts exactly 241 PNGs without interpolation or resampling. These are the images COLMAP sees. The original video, decoded frames and hashes remain separate so the reconstruction can be reproduced.

241 frames decoded
Frame integrity
The workflow checks the exact count before feature extraction and refuses a partial frame directory.
07

Recover cameras and sparse geometry with COLMAP

COLMAP extracts SIFT features, matches the frames, estimates relative motion, triangulates sparse 3D points and jointly optimizes camera poses. Intrinsics are fixed to the established PINHOLE calibration; extrinsics are solved from image correspondence.

240 / 241
COLMAP
A Structure-from-Motion and Multi-View Stereo toolkit. In this run it is the independent camera-correspondence gate between generated video and splat training.
08

Curate one training model without inventing evidence

The primary model contains f000–f239. f240 has 13,183 features but zero accepted geometric pairs, so it is quarantined instead of receiving a synthetic pose. The curated dataset contains only the 240 genuinely registered images; every raw model and log remains intact.

240 real poses curated
Why quarantine?
Brush needs one coherent coordinate system. The endpoint is redundant at 358.5°; excluding one unmatched frame is more honest than silently fabricating its camera.
09

Train a 3D Gaussian Splat with Brush

Brush optimized the curated 240-camera field for 30,000 steps, saving held-out renders every 5,000 steps and exporting the full representation as a 139,322,027-byte PLY.

30k complete
Brush
A GPU 3D Gaussian Splatting trainer/viewer. The R5 protocol saves held-out renders every 5,000 steps and exports the full training representation as PLY at 30k.
10

Evaluate held-out views, not training views

Thirty cameras were excluded from optimization and rendered at six checkpoints. R5 peaks by PSNR at 10k with 21.7726 dB / 0.571841 SSIM. It beats R4 by 0.0065 dB but loses 0.003710 SSIM, so promotion fails.

measured · not promoted
Held-out evaluation
The model is judged on cameras it did not optimize against. This tests interpolation and reconstruction coherence rather than memorization.
11

Convert and verify the browser review artifact

The full PLY was converted into 590,341 browser splats in 18,890,912 bytes. The first canvas-only test failed on a near-blank opening frame and exposed an incorrect rigid-camera inverse. After the shared viewer was corrected to compute -R^T t and load R5's registered f000 start view, the R2 test passed all 16 canvas, source-correlation, orbit and no-reseat gates.

browser proof passed
Important loss
The browser converter keeps position, scale, rotation, opacity and DC color, but drops higher-order spherical harmonics. Browser appearance can therefore differ from the full PLY.
12

Seal evidence and publish only what passed

The manifest hashes the video, camera gates, f240 quarantine, training export, six held-out reports, comparison plate and browser splat. R5 is preserved for research and inspection without replacing R4.

sealed internally
Fail closed
A useful failed experiment remains research evidence. It does not become product authority merely because it rendered successfully.

The active repair

Why f240 was quarantined, not rounded up.

The primary model registered f000–f239. f240 contains 13,183 extracted SIFT keypoints but zero accepted two-view geometries in the current database, so COLMAP cannot place it. The separate two-frame seed contains f120 and f131 rather than f240, so model merging cannot solve the omission.

Primary model240 cameras31,791 points · 126,991 observations
Fit0.929613 pxMean reprojection error · 3.994558 mean track length
Missing endpointf24013,183 keypoints · 0 accepted geometric pairs
Recorded decision: targeted sequential and guided rematching still produced zero accepted f240 geometries. The full clip passes the camera-path gate across 357°, so the unmatched redundant endpoint was excluded. Training uses no invented pose, and R5 still must beat R4 on held-out evidence to be promoted.

Gaussian splatting primer

What Brush optimized.

A 3D Gaussian Splat is not a polygon mesh and not a conventional point cloud. It is a differentiable scene representation made of many soft, oriented 3D ellipsoids. The renderer projects and alpha-composites them in screen space.

ParameterMeaning in the sceneWhy it matters
positionThe Gaussian center in 3D.Places captured radiance on reconstructed surfaces.
scaleThree radii of an anisotropic ellipsoid.Lets primitives stretch along walls, roof planes and fine detail.
rotationThe ellipsoid’s 3D orientation.Aligns scale axes to the local surface.
opacityContribution during alpha compositing.Controls visibility, density and transparency.
SH colorSpherical-harmonic coefficients for view-dependent radiance.Represents changing reflections and appearance across view direction. DC is the constant component.

Evaluation terms

TermWorking definition
PSNRPixel-error score in decibels; higher is better. It is meaningful for comparing models on the same held-out dataset, not as a universal realism score.
SSIMStructural similarity from 0 to 1; higher is better. It is more tolerant of some luminance changes than raw squared error.
reprojection errorAverage pixel distance between observed keypoints and the projections of reconstructed 3D points through solved cameras.
track lengthAverage number of images observing each sparse 3D point. Longer tracks generally provide stronger multi-view constraint.
holdoutA camera/image excluded from training and later rendered for evaluation.

Quick reference

Terms used in this run.

TermMeaning here
appearance donorAn admitted photograph used for materials and identity only; it does not own the target camera.
line controlA render of measured 3D edges from one exact camera. It constrains projected geometry.
depth controlA per-pixel distance field rendered from the measured model. VACE uses its temporal sequence to follow camera motion and structure.
pinA photoreal still generated at a known control camera and used to anchor a video segment or full orbit.
FLUX.2 Pro EditThe still-image editing model used to transfer house appearance onto measured views.
Wan VACEThe controllable video model used for the depth-guided orbit. VACE is the correct name.
SIFTScale-Invariant Feature Transform: local image keypoints and descriptors used for matching across views.
COLMAPThe SfM system that converts matched image features into camera poses and sparse 3D points.
PINHOLEThe fixed camera model used here: fx, fy, cx and cy, without distortion parameters.
BrushThe GPU trainer that optimizes and renders the 3D Gaussian representation.
PLYThe full exported Gaussian data container used as training/research authority.
.splatA compact browser-oriented binary representation. This project’s conversion is DC-only and may be downsampled to meet the byte budget.
radiance fieldA representation that predicts view-dependent color/opacity through 3D space. 3DGS implements this with explicit Gaussian primitives.
camera collapseAn edit follows the appearance donor’s view instead of the requested control camera.
disocclusionNew surface area revealed by camera motion. It must be generated coherently because it was hidden in the prior view.
promotionAdmission of a result as the new runtime/research authority after every relevant gate passes.

Review surfaces

Open the evidence directly.

Donor-distance comparison.blueprint-data/.../donor-distance-contact-sheet-r5.png
Donor-distance comparison .blueprint-data/.../donor-distance-contact-sheet-r5.png
Predeclared camera gate.blueprint-data/.../donor-distance-camera-gate-r5.json
{
  "schema": "blueprint.donor-distance-camera-gate/1",
  "createdAt": "2026-08-17T00:51:37.913946+00:00",
  "question": "How far can f000 donate appearance before it overrides the requested measured camera?",
  "authority": "House camera and measured line retention only. Background, garden, crop, and aesthetic quality do not affect admission.",
  "thresholdsDeclaredBeforeGeneration": true,
  "thresholds": {
    "targetCoverage8": 0.8,
    "targetCoverage16": 0.9,
    "targetExclusiveCoverage8": 0.55,
    "targetExclusiveAdvantage8": 0.03,
    "nearestMeasuredFrameError": 8,
    "targetMeasuredRank": 12
  },
  "donor": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/pins-line-only-r2/f000.png",
  "donorSha256": "e7ad9c0b6eb5c54714fca608ca41475c4b5f172a5226423d4f983855735ec7b0",
  "rows": [
    {
      "frame": 10,
      "separationDegrees": 14.937759336099585,
      "generated": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/pins-donor-distance-r5/f010.png",
      "generatedSha256": "d671681f70c76f9296d76b0b10f833d3ab49c6ebc28e72a0708ad80bc0f6506d",
      "targetLine": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/orbit-facade/line/f010.png",
      "targetLineSha256": "266d1fd2f4a4090db5ddf362878d1ad663a0d8d08727b01a7b5e8a9a80bb97f2",
      "targetCoverage": {
        "4": 0.9698083894355256,
        "8": 0.9939280165717245,
        "16": 1
      },
      "donorCoverage": {
        "4": 0.8670800425947289,
        "8": 0.9534452923950661,
        "16": 0.9865116691809389
      },
      "targetExclusivePixels": 31685,
      "donorExclusivePixels": 47997,
      "targetExclusiveCoverage8": 0.9964336436799748,
      "donorExclusiveCoverage8": 0.9252869971039857,
      "targetExclusiveAdvantage8": 0.07114664657598913,
      "targetCompositeScore": 0.9782502589331952,
      "nearestMeasuredFrame": 10,
      "nearestMeasuredScore": 0.9782502589331952,
      "nearestMeasuredFrameError": 0,
      "targetMeasuredRank": 1,
      "topMeasuredFrames": [
        {
          "frame": 10,
          "score": 0.9782502589331952
        },
        {
          "frame": 9,
          "score": 0.9365217500187825
        },
        {
          "frame": 8,
          "score": 0.9316444259953363
        },
        {
          "frame": 1,
          "score": 0.9042732872629324
        },
        {
          "frame": 2,
          "score": 0.9031220840657075
        },
        {
          "frame": 11,
          "score": 0.9028452943209309
        },
        {
          "frame": 7,
          "score": 0.9001657931329554
        },
        {
          "frame": 3,
          "score": 0.8984625013606182
        },
        {
          "frame": 0,
          "score": 0.8973078800248471
        },
        {
          "frame": 239,
          "score": 0.8890237212262184
        },
        {
          "frame": 240,
          "score": 0.8887775407099506
        },
        {
          "frame": 4,
          "score": 0.8841505693146072
        }
      ],
      "gates": {
        "targetCoverage8AtLeast0_80": true,
        "targetCoverage16AtLeast0_90": true,
        "targetExclusiveCoverage8AtLeast0_55": true,
        "targetExclusiveBeatsDonorBy0_03": true,
        "nearestMeasuredViewWithin8Frames": true,
        "targetRanksInTop12MeasuredViews": true
      },
      "admitted": true
    },
    {
      "frame": 20,
      "separationDegrees": 29.87551867219917,
      "generated": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/pins-donor-distance-r5/f020.png",
      "generatedSha256": "4a0739114de3e1d65a0d6fcc45e6e52c648c5fe0944165a4d79d2e3b388e74dd",
      "targetLine": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/orbit-facade/line/f020.png",
      "targetLineSha256": "242f577b9b2dabdcf70ef11249efaa6613fb63fd9a67172c44f74336cf955467",
      "targetCoverage": {
        "4": 0.9834520521393614,
        "8": 0.9974923680767553,
        "16": 1
      },
      "donorCoverage": {
        "4": 0.8991370130446358,
        "8": 0.9627850740970805,
        "16": 0.9940544857573875
      },
      "targetExclusivePixels": 39851,
      "donorExclusivePixels": 52758,
      "targetExclusiveCoverage8": 0.99746555920805,
      "donorExclusiveCoverage8": 0.938966602221464,
      "targetExclusiveAdvantage8": 0.058498956986586026,
      "targetCompositeScore": 0.9883661627174493,
      "nearestMeasuredFrame": 20,
      "nearestMeasuredScore": 0.9883661627174493,
      "nearestMeasuredFrameError": 0,
      "targetMeasuredRank": 1,
      "topMeasuredFrames": [
        {
          "frame": 20,
          "score": 0.9883661627174493
        },
        {
          "frame": 21,
          "score": 0.9444682417105073
        },
        {
          "frame": 19,
          "score": 0.933069351174886
        },
        {
          "frame": 238,
          "score": 0.9309423720733703
        },
        {
          "frame": 3,
          "score": 0.9304392075759225
        },
        {
          "frame": 18,
          "score": 0.9297013357346542
        },
        {
          "frame": 4,
          "score": 0.9276992601125338
        },
        {
          "frame": 239,
          "score": 0.9271126374229224
        },
        {
          "frame": 240,
          "score": 0.9265474203212576
        },
        {
          "frame": 2,
          "score": 0.9238786537334809
        },
        {
          "frame": 1,
          "score": 0.9236118163954694
        },
        {
          "frame": 13,
          "score": 0.9233521893461437
        }
      ],
      "gates": {
        "targetCoverage8AtLeast0_80": true,
        "targetCoverage16AtLeast0_90": true,
        "targetExclusiveCoverage8AtLeast0_55": true,
        "targetExclusiveBeatsDonorBy0_03": true,
        "nearestMeasuredViewWithin8Frames": true,
        "targetRanksInTop12MeasuredViews": true
      },
      "admitted": true
    },
    {
      "frame": 40,
      "separationDegrees": 59.75103734439834,
      "generated": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/pins-donor-distance-r5/f040.png",
      "generatedSha256": "4030e7957e02ecad8b3642d3b0356e69f24b779f47123053cd4872c343130ae7",
      "targetLine": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/orbit-facade/line/f040.png",
      "targetLineSha256": "00761e10afc5b662b29cb8dd367594c49c4cf7f26ea9d9d66b6a6004a272f2d3",
      "targetCoverage": {
        "4": 0.9358025061454524,
        "8": 0.9873793392889262,
        "16": 0.9975268301456922
      },
      "donorCoverage": {
        "4": 0.8751663856597746,
        "8": 0.9398460378028219,
        "16": 0.9696512556571124
      },
      "targetExclusivePixels": 34284,
      "donorExclusivePixels": 62457,
      "targetExclusiveCoverage8": 0.979494808073737,
      "donorExclusiveCoverage8": 0.9183598315641162,
      "targetExclusiveAdvantage8": 0.06113497650962085,
      "targetCompositeScore": 0.9538543977456682,
      "nearestMeasuredFrame": 40,
      "nearestMeasuredScore": 0.9538543977456682,
      "nearestMeasuredFrameError": 0,
      "targetMeasuredRank": 1,
      "topMeasuredFrames": [
        {
          "frame": 40,
          "score": 0.9538543977456682
        },
        {
          "frame": 42,
          "score": 0.9138994086771643
        },
        {
          "frame": 27,
          "score": 0.912089609675646
        },
        {
          "frame": 28,
          "score": 0.9093274356357037
        },
        {
          "frame": 15,
          "score": 0.9090376766285807
        },
        {
          "frame": 22,
          "score": 0.9086519698940717
        },
        {
          "frame": 39,
          "score": 0.9084417181464388
        },
        {
          "frame": 23,
          "score": 0.907599322010605
        },
        {
          "frame": 41,
          "score": 0.9072117187500001
        },
        {
          "frame": 24,
          "score": 0.9070188728961497
        },
        {
          "frame": 13,
          "score": 0.906794436012894
        },
        {
          "frame": 21,
          "score": 0.9067395868526473
        }
      ],
      "gates": {
        "targetCoverage8AtLeast0_80": true,
        "targetCoverage16AtLeast0_90": true,
        "targetExclusiveCoverage8AtLeast0_55": true,
        "targetExclusiveBeatsDonorBy0_03": true,
        "nearestMeasuredViewWithin8Frames": true,
        "targetRanksInTop12MeasuredViews": true
      },
      "admitted": true
    }
  ],
  "largestAdmittedSeparationDegrees": 59.75103734439834,
  "contactSheet": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/donor-distance-r5/donor-distance-contact-sheet-r5.png",
  "contactSheetSha256": "f1dd409d295afbe68d5de1c2cac4709c772b5cbe67ff97f2f655b55c4adaaca9"
}
Coherent R5 orbit.blueprint-data/.../vace-full-000-240-r5.mp4
R5 generation manifest.blueprint-data/.../full-r5/auto-r5-generation.json
{
  "schema": "blueprint.coherent-r5-generation/1",
  "createdAt": "2026-08-16T02:13:29.696Z",
  "cameraGate": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/donor-distance-r5/donor-distance-camera-gate-r5.json",
  "admittedStepFrames": 40,
  "admittedStepDegrees": 59.75103734439834,
  "pinFrames": [
    0,
    40,
    80,
    120,
    160,
    200,
    240
  ],
  "video": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/clips-coherent-r5/vace-full-000-240-r5.mp4",
  "cumulativeCommittedUsd": 11.707750000000003,
  "ceilingUsd": 20
}
Raw COLMAP report.blueprint-data/.../full-r5/colmap-solve-r5.json
{
  "schema": "blueprint.colmap-closure-solve/1",
  "video": {
    "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/clips-coherent-r5/vace-full-000-240-r5.mp4",
    "bytes": 34690953,
    "sha256": "769a33d00be7839b3b6214d37d3da0648141a303ec39fb9bdc52edc57580914e",
    "decodedFrames": 241
  },
  "protocol": {
    "colmap": ".blueprint-data/toolchains/colmap-4.1.1-windows-x64-cuda-r1/bin/colmap.exe",
    "cameraModel": "PINHOLE",
    "cameraParams": [
      962.8637,
      962.8637,
      639.5,
      359.5
    ],
    "singleCamera": true,
    "matcher": "exhaustive",
    "intrinsicsRefined": false
  },
  "models": [
    {
      "id": "0",
      "registeredImages": 2,
      "points": 34,
      "observations": 68,
      "meanTrackLength": 2,
      "meanReprojectionErrorPx": 1.061507,
      "log": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/logs/r5-solve/analyzer-0.log"
    },
    {
      "id": "1",
      "registeredImages": 240,
      "points": 31791,
      "observations": 126991,
      "meanTrackLength": 3.994558,
      "meanReprojectionErrorPx": 0.929613,
      "log": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/logs/r5-solve/analyzer-1.log"
    }
  ],
  "primaryModelId": "1",
  "gates": {
    "completePrimaryModel": false,
    "noCompetingSubstantialModel": true
  },
  "admittedForTraining": false
}
R4/R5 held-out plate.blueprint-data/.../r4-r5-heldout-comparison.png
R4/R5 held-out plate .blueprint-data/.../r4-r5-heldout-comparison.png
R5 review splat.blueprint-data/.../circumnav-solve241-r5-primary-30k.splat

Not embedded. Read it in the repo at the path above.

Retained R4 held-out comparison.blueprint-data/.../full-r4/r3-r4-heldout-comparison.png
Retained R4 held-out comparison .blueprint-data/.../full-r4/r3-r4-heldout-comparison.png
Failed browser R1.blueprint-data/.../browser-verification-r1/verification.json
{
  "schema": "blueprint.browser-splat-subject-verification/1",
  "createdAt": "2026-08-16T02:05:29.388Z",
  "authority": "automated local browser review; no human review claimed",
  "story": "Direct R5 viewer URL loads the exact candidate bytes, applies its registered opening camera, draws a structured subject-only canvas, and survives a real orbit without pivot reseating.",
  "viewerUrl": "http://127.0.0.1:4310/dist/blueprint-preview/viewer.html?url=http%3A%2F%2F127.0.0.1%3A4310%2F.blueprint-data%2Fgenerative-experiments%2Fpinned-house-rerun-20260814-r1%2Ffull-r5%2Fcircumnav-solve241-r5-primary-30k.splat",
  "sourceCameraFrame": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/frames/f000.png",
  "splat": {
    "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/circumnav-solve241-r5-primary-30k.splat",
    "expectedBytes": 18890912,
    "responseStatus": 200,
    "responseBytes": 18890912
  },
  "coverageLabel": "240 solved frames over 347° · reads across 347°",
  "camera": {
    "initial": {
      "active": true,
      "ready": true,
      "settled": true,
      "moved": false,
      "azDeg": 0,
      "targetAzDeg": 0,
      "pivot": [
        0.620732637269362,
        -0.05749133992516048,
        2.6582302832468585
      ],
      "distance": 2.7450141816390254,
      "homeDistance": 2.7450141816390254,
      "matrix": [
        -0.4692299555513182,
        -0.008309994453957215,
        0.8830369147467637,
        0,
        0.033288611192179525,
        0.9990785485764417,
        0.02709099738448624,
        0,
        -0.8824483651626331,
        0.04210698002191015,
        -0.46852095476641237,
        0,
        2.638931122333835,
        -0.049333400209069234,
        -2.0461499265006338,
        1
      ]
    },
    "afterOrbit": {
      "moved": true,
      "azDeg": 16.199999999999996,
      "pivot": [
        0.620732637269362,
        -0.05749133992516048,
        2.6582302832468585
      ],
      "matrix": [
        -0.6969580089650715,
        -0.015317955432717339,
        0.7169483202998698,
        0,
        0.024408695808801152,
        0.9986857929367368,
        0.04506553622486382,
        0,
        -0.7166964136287811,
        0.04890855986105484,
        -0.6956681705123219,
        0,
        2.3391719822012083,
        -0.06308607565916816,
        -1.3382103272757973,
        1
      ]
    },
    "pivotDrift": 0,
    "postOrbitCameraDrift": 0
  },
  "pixels": {
    "opening": {
      "p05": 5.2178,
      "p95": 9.1456,
      "mean": 7.168470518667418,
      "standardDeviation": 2.7003604939360164,
      "nonBackgroundFraction": 0.0003881557058888766,
      "centralEdgeFraction": 0,
      "foregroundBounds": {
        "minX": 168,
        "minY": 135,
        "maxX": 170,
        "maxY": 142
      },
      "backgroundRgb": [
        5,
        8,
        6
      ]
    },
    "orbit": {
      "p05": 5.430400000000001,
      "p95": 23.502599999999997,
      "mean": 10.116981971572848,
      "standardDeviation": 15.975157008714197,
      "nonBackgroundFraction": 0.04122768104691139,
      "centralEdgeFraction": 0.007585464609707345,
      "foregroundBounds": {
        "minX": 26,
        "minY": 81,
        "maxX": 254,
        "maxY": 142
      },
      "backgroundRgb": [
        6,
        9,
        6
      ]
    },
    "openingVsSource": {
      "luminanceCorrelation": 0.02503654650373253,
      "rgbMeanAbsoluteError": 103.47666196469825
    },
    "openingVsOrbit": {
      "luminanceCorrelation": -0.0008735058054109264,
      "rgbMeanAbsoluteError": 4.284722222222156
    }
  },
  "consoleErrors": [],
  "failedRequests": [],
  "screenshots": [
    {
      "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/browser-verification-r1/r5-opening-canvas.png",
      "bytes": 38290,
      "sha256": "79f870ecbba86270ff30f1349a6d7c1a21107fde4beccc91ec1174a9a8dc20ad"
    },
    {
      "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/browser-verification-r1/r5-orbit-canvas.png",
      "bytes": 105759,
      "sha256": "cd7e6cb988f356688fba2b44103442f50e1ac7bd46c09faeb4e932667c9da5ac"
    }
  ],
  "checks": {
    "splatHttp200": true,
    "splatByteExact": true,
    "spinnerCleared": true,
    "noViewerMessage": true,
    "noConsoleErrors": true,
    "noFailedRequests": true,
    "cameraSettled": true,
    "measuredCoverageLoaded": true,
    "openingNotFlat": false,
    "openingHasCentralStructure": false,
    "openingHasForeground": false,
    "openingMatchesRegisteredSource": false,
    "orbitChangedCamera": true,
    "orbitChangedPixels": true,
    "orbitStillVisible": false,
    "noPostDragReseat": true
  },
  "passed": false
}
Passing browser R2.blueprint-data/.../browser-verification-r2/verification.json
{
  "schema": "blueprint.browser-splat-subject-verification/1",
  "createdAt": "2026-08-16T02:09:13.308Z",
  "authority": "automated local browser review; no human review claimed",
  "story": "Direct R5 viewer URL loads the exact candidate bytes, applies its registered opening camera, draws a structured subject-only canvas, and survives a real orbit without pivot reseating.",
  "viewerUrl": "http://127.0.0.1:4310/dist/blueprint-preview/viewer.html?url=http%3A%2F%2F127.0.0.1%3A4310%2F.blueprint-data%2Fgenerative-experiments%2Fpinned-house-rerun-20260814-r1%2Ffull-r5%2Fcircumnav-solve241-r5-primary-30k.splat",
  "sourceCameraFrame": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/frames/f000.png",
  "splat": {
    "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/circumnav-solve241-r5-primary-30k.splat",
    "expectedBytes": 18890912,
    "responseStatus": 200,
    "responseBytes": 18890912
  },
  "coverageLabel": "240 solved frames over 347° · reads across 347°",
  "camera": {
    "initial": {
      "active": true,
      "ready": true,
      "settled": true,
      "moved": false,
      "azDeg": 0,
      "targetAzDeg": 0,
      "pivot": [
        -0.5165199817988051,
        0.12907918753305803,
        0.525600670433924
      ],
      "distance": 2.6300740231830795,
      "homeDistance": 2.6300740231830795,
      "matrix": [
        -0.46922995555131836,
        -0.008309994453957208,
        0.8830369147467637,
        0,
        0.033288611192179525,
        0.9990785485764417,
        0.02709099738448624,
        0,
        -0.8824483651626331,
        0.04210698002191015,
        -0.46852095476641253,
        0,
        0.21715193736518845,
        -0.1553839824455239,
        3.3289382783214703,
        1
      ]
    },
    "afterOrbit": {
      "moved": true,
      "azDeg": 16.199999999999996,
      "pivot": [
        -0.5165199817988051,
        0.12907918753305803,
        0.525600670433924
      ],
      "matrix": [
        -0.6969580089650717,
        -0.0013012396441765038,
        0.7171107588893306,
        0,
        0.024408695808801152,
        0.999375864977498,
        0.025536171784174996,
        0,
        -0.716696413628781,
        0.035301377818236855,
        -0.6964912514998143,
        0,
        0.01355272277196451,
        -0.14822516881727502,
        3.363256139745384,
        1
      ]
    },
    "pivotDrift": 0,
    "postOrbitCameraDrift": 0
  },
  "pixels": {
    "opening": {
      "p05": 10.503799999999998,
      "p95": 217.639,
      "mean": 120.66701593967099,
      "standardDeviation": 58.669139544457536,
      "nonBackgroundFraction": 0.8885161361872019,
      "centralEdgeFraction": 0.27886833068525446,
      "foregroundBounds": {
        "minX": 1,
        "minY": 1,
        "maxX": 254,
        "maxY": 142
      },
      "backgroundRgb": [
        38,
        39,
        27
      ]
    },
    "orbit": {
      "p05": 1,
      "p95": 117.858,
      "mean": 46.452859044052495,
      "standardDeviation": 38.0124719495511,
      "nonBackgroundFraction": 0.6758068093600976,
      "centralEdgeFraction": 0.05320075854646097,
      "foregroundBounds": {
        "minX": 1,
        "minY": 1,
        "maxX": 254,
        "maxY": 142
      },
      "backgroundRgb": [
        45,
        46,
        21
      ]
    },
    "openingVsSource": {
      "luminanceCorrelation": 0.3917860486382337,
      "rgbMeanAbsoluteError": 57.593578197338196
    },
    "openingVsOrbit": {
      "luminanceCorrelation": -0.010853152116518428,
      "rgbMeanAbsoluteError": 79.80659541377352
    }
  },
  "consoleErrors": [],
  "failedRequests": [],
  "screenshots": [
    {
      "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/browser-verification-r2/r5-opening-canvas.png",
      "bytes": 1446514,
      "sha256": "0f4197d53c55c11086d5b162e973ad60537f5ba51f8356b315bcbc88e8e43013"
    },
    {
      "path": ".blueprint-data/generative-experiments/pinned-house-rerun-20260814-r1/full-r5/browser-verification-r2/r5-orbit-canvas.png",
      "bytes": 1193509,
      "sha256": "616a988b65accdff541398a60fb2341d2fd90eedddf49e1ee7d476fc32e893ec"
    }
  ],
  "checks": {
    "splatHttp200": true,
    "splatByteExact": true,
    "spinnerCleared": true,
    "noViewerMessage": true,
    "noConsoleErrors": true,
    "noFailedRequests": true,
    "cameraSettled": true,
    "measuredCoverageLoaded": true,
    "openingNotFlat": true,
    "openingHasCentralStructure": true,
    "openingHasForeground": true,
    "openingMatchesRegisteredSource": true,
    "orbitChangedCamera": true,
    "orbitChangedPixels": true,
    "orbitStillVisible": true,
    "noPostDragReseat": true
  },
  "passed": true
}
Verified opening canvas.blueprint-data/.../browser-verification-r2/r5-opening-canvas.png
Verified opening canvas .blueprint-data/.../browser-verification-r2/r5-opening-canvas.png