{
  "status": "recovered_existing_surface_not_survey",
  "sources": [
    {
      "source": ".cache/photogrammetry/out/mesh/house_mesh.obj",
      "recovered": "planning/reset/photogrammetry-repair/recovered/house_mesh.obj",
      "bytes": 4675431,
      "sha256": "45ee4f2264cb348d8edaf0d4157fce34b27cd927f7ce34f1637ce85c818958ec"
    },
    {
      "source": ".cache/photogrammetry/out/mesh/house_mesh.mtl",
      "recovered": "planning/reset/photogrammetry-repair/recovered/house_mesh.mtl",
      "bytes": 293,
      "sha256": "096a8df4c43907b0992ebff58e5fb19d6cb94323600552ce6ad81f9584bd0916"
    },
    {
      "source": ".cache/photogrammetry/out/poses/poses.json",
      "recovered": "planning/reset/photogrammetry-repair/recovered/poses.json",
      "bytes": 339325,
      "sha256": "37b51acbe3d00721df2622c0ce0552ae87aa73ba00670868d19f2070a16a6861"
    },
    {
      "source": ".cache/photogrammetry/out/poses/README.md",
      "recovered": "planning/reset/photogrammetry-repair/recovered/poses-readme-original.md",
      "bytes": 6094,
      "sha256": "0c4ca58f0aa8bfc369456acdf3b8764fa707a6fa0ac8e1f99e7c585ad9991bf3"
    },
    {
      "source": ".cache/photogrammetry/align.json",
      "recovered": "planning/reset/photogrammetry-repair/recovered/legacy-align-not-measurement.json",
      "bytes": 1336,
      "sha256": "022ddd03b4b8ee3611e8b7ac409a0bfe11162948155b9e17f27f7c2901d9a750"
    },
    {
      "source": ".cache/photogrammetry/out/mesh/baked_mesh_3d23c39d_tex0.png",
      "recovered": "planning/reset/photogrammetry-repair/recovered/baked_mesh_3d23c39d_tex0.png",
      "bytes": 21239199,
      "sha256": "de3cb975b5cb9ba7e41b7edab6fac964ff153e705ac8b11569a97c9230f91347"
    },
    {
      "source": ".cache/photogrammetry/out/mesh/baked_mesh_3d23c39d_norm0.png",
      "recovered": "planning/reset/photogrammetry-repair/recovered/baked_mesh_3d23c39d_norm0.png",
      "bytes": 13826626,
      "sha256": "207803ebeb0cc5f4a3c1bd82ab655f64a96427e8ac7a515414c8e8ed455afbf0"
    }
  ],
  "sourceStills": [
    {
      "filename": "dji_fly_20260911_113220_149_1789119216809_photo_optimized.JPG",
      "poseId": 150,
      "path": "pics/dji_fly_20260911_113220_149_1789119216809_photo_optimized.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "6cc578a3994ceddec09923a1062fefae9b00d2a001352caf9d1bfa3c220610af"
    },
    {
      "filename": "dji_fly_20260911_113222_150_1789119166783_photo_optimized.JPG",
      "poseId": 151,
      "path": "pics/dji_fly_20260911_113222_150_1789119166783_photo_optimized.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "38ba8cf39e08504f9d29310da6759b8055239aa56eb908ff5b92517422d4f340"
    },
    {
      "filename": "dji_fly_20260911_113300_151_1789119254425_photo_optimized.JPG",
      "poseId": 152,
      "path": "pics/dji_fly_20260911_113300_151_1789119254425_photo_optimized.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "fe7b379462ce49984eec0f28187e7861fe6736b786bad4f5f473df7b8df9707a"
    },
    {
      "filename": "dji_fly_20260911_113316_152_1789119268451_photo_optimized.JPG",
      "poseId": 153,
      "path": "pics/dji_fly_20260911_113316_152_1789119268451_photo_optimized.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "36033b15781f7c23b1a3e8cf59038d04caee6b8851df9ad22115781dfcd6acf5"
    },
    {
      "filename": "dji_fly_20260911_113352_153_1789119278544_photo_optimized.JPG",
      "poseId": 154,
      "path": "pics/dji_fly_20260911_113352_153_1789119278544_photo_optimized.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "6a58a880f09f7a5657ff1d2150e32eb26b6f6f8f52decc6ab014df745fab75ba"
    },
    {
      "filename": "dji_fly_20260912_193150_154_1789234325782_photo_optimized 2.JPG",
      "poseId": 155,
      "path": "pics/dji_fly_20260912_193150_154_1789234325782_photo_optimized 2.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "907d4f9a737dcc03d666efb1f5d2e25ce0ba30de9d03c3955d63111e60524abb"
    },
    {
      "filename": "dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "poseId": 156,
      "path": "pics/dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "0b003b763869e7c954dfdbd98e252e648422cf44d4b4eb38dd5b0762b64ab04d"
    },
    {
      "filename": "dji_fly_20260912_193440_158_1789234509988_photo_optimized 2.JPG",
      "poseId": 157,
      "path": "pics/dji_fly_20260912_193440_158_1789234509988_photo_optimized 2.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "e6832d5da8f522139fed8ce910c06143e6858ff683a60732abc24882c44ac39f"
    },
    {
      "filename": "dji_fly_20260912_193452_159_1789234522066_photo_optimized 2.JPG",
      "poseId": 158,
      "path": "pics/dji_fly_20260912_193452_159_1789234522066_photo_optimized 2.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "79472a0b7de7486aa4257f6901840c8785af7cae01782ed86fd1cda862f96c10"
    },
    {
      "filename": "dji_fly_20260912_193514_160_1789234535616_photo_optimized 2.JPG",
      "poseId": 159,
      "path": "pics/dji_fly_20260912_193514_160_1789234535616_photo_optimized 2.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "b660c5183e3dbee6e098dd5fd1340cc890c791e48b0273abdb24f6c238b80a32"
    },
    {
      "filename": "dji_fly_20260912_193516_161_1789234528689_photo_optimized 2.JPG",
      "poseId": 160,
      "path": "pics/dji_fly_20260912_193516_161_1789234528689_photo_optimized 2.JPG",
      "size": [
        4000,
        2250
      ],
      "focalLengthMm": 4.49,
      "focalLength35mmEquivalent": 24,
      "sha256": "8e970bbb5ecd9e2a35c8dffe9884d9d73696bd295bf895991444ab5ecde672b6"
    }
  ],
  "poseCount": 161,
  "poseSourceTypeCounts": {
    "video_frame": 150,
    "still_photo": 11
  },
  "meshCounts": {
    "mtllib": 1,
    "o": 1,
    "v": 25076,
    "vn": 25074,
    "vt": 30150,
    "s": 1,
    "usemtl": 1,
    "f": 50000
  },
  "objCoordinateBounds": {
    "min": [
      -76.526733,
      1e-05,
      -81.554878
    ],
    "max": [
      76.526733,
      26.906355,
      81.554878
    ]
  },
  "textureSize": [
    4096,
    4096
  ],
  "axisCorrection": "OBJ coordinate second axis is vertical (range 0..26.906355). Contrary to the old poses README, the on-disk OBJ is Y-up. Import forward -Z, up Y; then use matrix_row_major_meshframe_zup for cameras.",
  "poseMeshCaveat": "poses README says original mesh is medium detail; supplied poses come from an independent reduced-detail solve using the same 161 inputs. No surveyed control and no quantified mesh-to-pose registration residual.",
  "legacyAlignmentUse": "Read for provenance/crop selection only, not independently verified measurement.",
  "units": "Native reconstruction units, not independently calibrated metres.",
  "completeSourceClaim": "161 resolved cache inputs verified. This does not establish inclusion of all project photographs or every video frame.",
  "renderMethod": "True textured-mesh rendering, emission-only captured colour, Cycles CPU 8 samples. No CAD building, photo backplate, generative fill, geometry smoothing or invented openings.",
  "resolution": [
    1280,
    720
  ],
  "houseCrop": {
    "vertices": 1229,
    "triangles": 2334,
    "boundaryEdges": 124,
    "nativeZUpBounds": {
      "min": [
        -14.281210899353027,
        -20.387117385864258,
        6.048232555389404
      ],
      "max": [
        8.087493896484375,
        2.479132652282715,
        16.58802604675293
      ]
    },
    "selectionBoxInLegacyProvisionalFrame": {
      "x": [
        -2.5,
        13.5
      ],
      "y": [
        -11.0,
        5.5
      ]
    },
    "selectionNote": "Rectangle is only a visual house-region selector; its disputed model-derived numbers are not measurements. Original native vertex coordinates remain unchanged.",
    "nativeZUpToSelectionMatrix": [
      0.7394973462731688,
      0.6713617159650751,
      0.0,
      13.935775543490205,
      -0.6713617159650751,
      0.7394973462731688,
      0.0,
      1.6627041690215205,
      0.0,
      0.0,
      0.998790708210999,
      -8.5603156906712,
      0.0,
      0.0,
      0.0,
      1.0
    ]
  },
  "cameraIntrinsics": {
    "source": "All 11 supplied stills EXIF focalLengthIn35mmFilm=24",
    "lensMm": 24,
    "sensorWidthMm": 36,
    "sensorFit": "HORIZONTAL",
    "principalPoint": "Assumed image centre",
    "distortion": "Not calibrated"
  },
  "photoAlignmentStatus": "Recovered extrinsics from independent reduced solve, not medium-mesh bundle adjustment. Visual comparison only; unquantified photo misregistration remains. No 3D survey accuracy or held-out-image validation claimed.",
  "images": [
    {
      "file": "planning/reset/photogrammetry-repair/render-full-149.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260911_113220_149_1789119216809_photo_optimized.JPG",
      "poseId": 150,
      "cameraToWorldNativeZUp": [
        -0.3555619716644287,
        0.7656881213188171,
        -0.5360013246536255,
        -23.099281311035156,
        -0.9307639598846436,
        -0.23781324923038483,
        0.27771100401878357,
        0.6614617705345154,
        0.08517181873321533,
        0.5976341962814331,
        0.7972322106361389,
        34.428314208984375,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-150.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260911_113222_150_1789119166783_photo_optimized.JPG",
      "poseId": 151,
      "cameraToWorldNativeZUp": [
        -0.022969935089349747,
        0.8169054388999939,
        -0.5763139724731445,
        -23.021089553833008,
        -0.9973244667053223,
        0.021292874589562416,
        0.06993189454078674,
        0.8611603379249573,
        0.06939912587404251,
        0.5763784050941467,
        0.814230740070343,
        34.563411712646484,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-151.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260911_113300_151_1789119254425_photo_optimized.JPG",
      "poseId": 152,
      "cameraToWorldNativeZUp": [
        0.2946697473526001,
        -0.703357994556427,
        0.6468828320503235,
        32.1944465637207,
        0.9537444710731506,
        0.2586227357387543,
        -0.15325075387954712,
        -18.510255813598633,
        -0.05950845032930374,
        0.6621192693710327,
        0.7470320463180542,
        60.45069122314453,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-152.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260911_113316_152_1789119268451_photo_optimized.JPG",
      "poseId": 153,
      "cameraToWorldNativeZUp": [
        0.9949216842651367,
        -0.05941789597272873,
        0.08124269545078278,
        3.2605605125427246,
        0.09648604691028595,
        0.7928417325019836,
        -0.6017411947250366,
        -49.843963623046875,
        -0.02865840122103691,
        0.6065241694450378,
        0.7945484519004822,
        64.2767105102539,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-153.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260911_113352_153_1789119278544_photo_optimized.JPG",
      "poseId": 154,
      "cameraToWorldNativeZUp": [
        0.9962739944458008,
        -0.08179639279842377,
        0.027339955791831017,
        2.52374267578125,
        0.07933705300092697,
        0.9935204386711121,
        0.08138065785169601,
        -0.7555413842201233,
        -0.033819448202848434,
        -0.07890834659337997,
        0.9963080286979675,
        84.29676055908203,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-154.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260912_193150_154_1789234325782_photo_optimized 2.JPG",
      "poseId": 155,
      "cameraToWorldNativeZUp": [
        -0.4914552867412567,
        0.6758020520210266,
        -0.549329936504364,
        -23.732357025146484,
        -0.8678483366966248,
        -0.32723912596702576,
        0.37383678555488586,
        3.217097759246826,
        0.0728774219751358,
        0.6604591012001038,
        0.7473170161247253,
        35.188682556152344,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-157.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "poseId": 156,
      "cameraToWorldNativeZUp": [
        0.0692586749792099,
        -0.748633623123169,
        0.6593565940856934,
        39.076175689697266,
        0.9957246780395508,
        0.0923718735575676,
        0.0002883035922423005,
        -8.712879180908203,
        -0.06112184375524521,
        0.6565176248550415,
        0.7518304586410522,
        70.48368835449219,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-158.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260912_193440_158_1789234509988_photo_optimized 2.JPG",
      "poseId": 157,
      "cameraToWorldNativeZUp": [
        0.0655127540230751,
        -0.7555485963821411,
        0.6518085598945618,
        37.90229034423828,
        0.9957416653633118,
        0.09195760637521744,
        0.006512199994176626,
        -14.209479331970215,
        -0.06485903263092041,
        0.6486063599586487,
        0.7583555579185486,
        62.58152770996094,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-159.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260912_193452_159_1789234522066_photo_optimized 2.JPG",
      "poseId": 158,
      "cameraToWorldNativeZUp": [
        -0.06254889070987701,
        -0.8543062806129456,
        0.5159925818443298,
        24.086172103881836,
        0.9963212609291077,
        -0.023102829232811928,
        0.08252428472042084,
        -10.111100196838379,
        -0.058580122888088226,
        0.5192561745643616,
        0.8526085615158081,
        49.57547378540039,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-160.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260912_193514_160_1789234535616_photo_optimized 2.JPG",
      "poseId": 159,
      "cameraToWorldNativeZUp": [
        -0.9208917021751404,
        -0.27814432978630066,
        0.2731194794178009,
        4.299678325653076,
        0.3891908824443817,
        -0.6957629919052124,
        0.6036922931671143,
        11.792547225952148,
        0.022112853825092316,
        0.6622307896614075,
        0.748973548412323,
        27.447704315185547,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-full-161.png",
      "kind": "full-context",
      "sourcePhoto": "dji_fly_20260912_193516_161_1789234528689_photo_optimized 2.JPG",
      "poseId": 160,
      "cameraToWorldNativeZUp": [
        -0.967247724533081,
        -0.13451634347438812,
        0.2152608036994934,
        4.246448516845703,
        0.2522720694541931,
        -0.6033685207366943,
        0.7565085887908936,
        12.011714935302734,
        0.028118828311562538,
        0.7860355377197266,
        0.6175415515899658,
        26.980575561523438,
        0.0,
        0.0,
        0.0,
        1.0
      ]
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-house-154.png",
      "kind": "house-crop",
      "sourcePhoto": "dji_fly_20260912_193150_154_1789234325782_photo_optimized 2.JPG",
      "poseId": 155,
      "cameraToWorldNativeZUp": [
        -0.4914552867412567,
        0.6758020520210266,
        -0.549329936504364,
        -23.732357025146484,
        -0.8678483366966248,
        -0.32723912596702576,
        0.37383678555488586,
        3.217097759246826,
        0.0728774219751358,
        0.6604591012001038,
        0.7473170161247253,
        35.188682556152344,
        0.0,
        0.0,
        0.0,
        1.0
      ],
      "frustum": {
        "fullFrameBoundsNormalizedBottomLeft": {
          "min": [
            0.2509923279285431,
            0.1701081544160843
          ],
          "max": [
            0.6507116556167603,
            0.7672461867332458
          ]
        },
        "frustumCropWidthNormalized": 0.668794596195221,
        "frustumCentreNormalized": [
          0.4508519917726517,
          0.46867717057466507
        ],
        "renderLensMm": 35.88545608520508,
        "shiftX": -0.07348744571208954,
        "shiftY": -0.026344548910856247,
        "note": "Same recovered camera position/orientation; narrower and shifted frustum, equivalent to digital cropping. Not the original full photo field of view."
      }
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-house-157.png",
      "kind": "house-crop",
      "sourcePhoto": "dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "poseId": 156,
      "cameraToWorldNativeZUp": [
        0.0692586749792099,
        -0.748633623123169,
        0.6593565940856934,
        39.076175689697266,
        0.9957246780395508,
        0.0923718735575676,
        0.0002883035922423005,
        -8.712879180908203,
        -0.06112184375524521,
        0.6565176248550415,
        0.7518304586410522,
        70.48368835449219,
        0.0,
        0.0,
        0.0,
        1.0
      ],
      "frustum": {
        "fullFrameBoundsNormalizedBottomLeft": {
          "min": [
            0.4042433500289917,
            0.17089374363422394
          ],
          "max": [
            0.6075961589813232,
            0.4843451678752899
          ]
        },
        "frustumCropWidthNormalized": 0.3510655951499939,
        "frustumCentreNormalized": [
          0.5059197545051575,
          0.3276194557547569
        ],
        "renderLensMm": 68.36328887939453,
        "shiftX": 0.01686224713921547,
        "shiftY": -0.27619925141334534,
        "note": "Same recovered camera position/orientation; narrower and shifted frustum, equivalent to digital cropping. Not the original full photo field of view."
      }
    },
    {
      "file": "planning/reset/photogrammetry-repair/render-house-161.png",
      "kind": "house-crop",
      "sourcePhoto": "dji_fly_20260912_193516_161_1789234528689_photo_optimized 2.JPG",
      "poseId": 160,
      "cameraToWorldNativeZUp": [
        -0.967247724533081,
        -0.13451634347438812,
        0.2152608036994934,
        4.246448516845703,
        0.2522720694541931,
        -0.6033685207366943,
        0.7565085887908936,
        12.011714935302734,
        0.028118828311562538,
        0.7860355377197266,
        0.6175415515899658,
        26.980575561523438,
        0.0,
        0.0,
        0.0,
        1.0
      ],
      "frustum": {
        "fullFrameBoundsNormalizedBottomLeft": {
          "min": [
            0.2712749242782593,
            -0.005880753044039011
          ],
          "max": [
            0.7734069228172302,
            0.8088833093643188
          ]
        },
        "frustumCropWidthNormalized": 0.9125357498973609,
        "frustumCentreNormalized": [
          0.5223409235477448,
          0.4015012781601399
        ],
        "renderLensMm": 26.300338745117188,
        "shiftX": 0.0244822446256876,
        "shiftY": -0.06071601063013077,
        "note": "Same recovered camera position/orientation; narrower and shifted frustum, equivalent to digital cropping. Not the original full photo field of view."
      }
    }
  ],
  "exports": [
    {
      "file": "nettside/tegninger/existing-capture.glb",
      "recenterSubtractNativeZUp": [
        -3.096858501434326,
        -8.95399284362793,
        6.048232555389404
      ],
      "coordinates": "Native Z-up coordinates minus recenter vector, then glTF standard Y-up (x,z,-y). No metric scale or plan rotation applied.",
      "scaleApplied": 1.0,
      "units": "Uncalibrated reconstruction units; ignore glTF nominal metre convention."
    },
    {
      "file": "planning/reset/photogrammetry-repair/existing-capture-context.glb",
      "recenterSubtractNativeZUp": [
        0.0,
        0.0,
        0.0
      ],
      "coordinates": "Native Z-up coordinates minus recenter vector, then glTF standard Y-up (x,z,-y). No metric scale or plan rotation applied.",
      "scaleApplied": 1.0,
      "units": "Uncalibrated reconstruction units; ignore glTF nominal metre convention."
    }
  ],
  "sourceVideo": {
    "file": "pics/dji_fly_20260912_193308_156_1789234612553_quickshot 2.MP4",
    "bytes": 252664409,
    "sha256": "1ea0984e6372c48a34545552ce92a620547765d3890b517d25d83df8d0bb2369",
    "ffprobe": {
      "programs": [],
      "stream_groups": [],
      "streams": [
        {
          "codec_type": "video",
          "width": 1920,
          "height": 1080,
          "r_frame_rate": "30000/1001",
          "nb_frames": "1730"
        },
        {
          "codec_type": "data",
          "r_frame_rate": "0/0",
          "nb_frames": "59"
        },
        {
          "codec_type": "subtitle",
          "r_frame_rate": "0/0",
          "nb_frames": "58"
        }
      ],
      "format": {
        "duration": "58.000000"
      }
    },
    "cachedFrameCount": 150,
    "sampling": "Existing cache report states fps=2.6. Frame order and all files verified; no exact per-frame video timestamp claimed."
  },
  "poseDownwardAngleDegrees": {
    "still_photo": [
      38.13682696834054,
      85.0750650798139
    ],
    "video_frame": [
      47.00377064457677,
      55.71832117875738
    ]
  },
  "publishedImages": [
    {
      "file": "capture-154.webp",
      "kind": "existing-house-surface",
      "sourcePhoto": "dji_fly_20260912_193150_154_1789234325782_photo_optimized 2.JPG",
      "label": "Eksisterende hus — fanget 3D-overflate / foto 154",
      "camera": "Recovered pose, cropped frustum; not calibrated photo registration"
    },
    {
      "file": "capture-comparison-154.webp",
      "kind": "source-vs-render",
      "sourcePhoto": "dji_fly_20260912_193150_154_1789234325782_photo_optimized 2.JPG",
      "sourceCropPixels": [
        131.42147660255432,
        254.98396530747414,
        3475.394457578659,
        2135.968767106533
      ],
      "comparisonFrustumMargin": 1.25,
      "label": "Kildebilde mot faktisk teksturert mesh; ingen fotobakgrunn i 3D-ruten"
    },
    {
      "file": "capture-157.webp",
      "kind": "existing-house-surface",
      "sourcePhoto": "dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "label": "Eksisterende hus — fanget 3D-overflate / foto 157",
      "camera": "Recovered pose, cropped frustum; not calibrated photo registration"
    },
    {
      "file": "capture-comparison-157.webp",
      "kind": "source-vs-render",
      "sourcePhoto": "dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "sourceCropPixels": [
        1146.0150301456451,
        1019.170231372118,
        2901.3430058956146,
        2006.5422177314758
      ],
      "comparisonFrustumMargin": 1.25,
      "label": "Kildebilde mot faktisk teksturert mesh; ingen fotobakgrunn i 3D-ruten"
    },
    {
      "file": "capture-161.webp",
      "kind": "existing-house-surface",
      "sourcePhoto": "dji_fly_20260912_193516_161_1789234528689_photo_optimized 2.JPG",
      "label": "Eksisterende hus — fanget 3D-overflate / foto 161",
      "camera": "Recovered pose, cropped frustum; not calibrated photo registration"
    },
    {
      "file": "capture-comparison-161.webp",
      "kind": "source-vs-render",
      "sourcePhoto": "dji_fly_20260912_193516_161_1789234528689_photo_optimized 2.JPG",
      "sourceCropPixels": [
        -191.97568055242309,
        63.36872584652151,
        4370.703068934381,
        2629.875522432849
      ],
      "comparisonFrustumMargin": 1.25,
      "label": "Kildebilde mot faktisk teksturert mesh; ingen fotobakgrunn i 3D-ruten"
    },
    {
      "file": "capture-context.webp",
      "kind": "captured-surroundings",
      "sourcePhoto": "dji_fly_20260912_193436_157_1789234503698_photo_optimized 2.JPG",
      "label": "Fanget nabolag og terreng — ikke en komplett eller georeferert tomtemodell"
    }
  ],
  "verification": {
    "renderChecks": [
      {
        "file": "planning/reset/photogrammetry-repair/render-full-149.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-150.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-151.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.9782552083333333
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-152.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.986376953125
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-153.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-154.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-157.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.9401996527777777
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-158.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.9825358072916667
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-159.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-160.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-full-161.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 1.0
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-house-154.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.3030555555555556
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-house-157.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.2789811197916667
      },
      {
        "file": "planning/reset/photogrammetry-repair/render-house-161.png",
        "resolution": [
          1280,
          720
        ],
        "nonzeroAlphaFraction": 0.2618001302083333
      }
    ],
    "glbChecks": [
      {
        "file": "nettside/tegninger/existing-capture.glb",
        "bytes": 4917100,
        "sha256": "4c82693be9f6170fbcdc87fabaec59a57179b178a257aa2f85e7b397a3e91047",
        "triangles": 2334,
        "textureSize": [
          4096,
          4096
        ],
        "embeddedTextureBytes": 4853170,
        "unlitExtension": true,
        "externalDependencies": 0
      },
      {
        "file": "planning/reset/photogrammetry-repair/existing-capture-context.glb",
        "bytes": 6119524,
        "sha256": "97de829cf0fcacd59360e4af77d1874c3833a39ed078bec28553f165749141f7",
        "triangles": 50000,
        "textureSize": [
          4096,
          4096
        ],
        "embeddedTextureBytes": 4853170,
        "unlitExtension": true,
        "externalDependencies": 0
      }
    ],
    "allCachedInputsAccessible": true,
    "sourceImageCountVerified": 161,
    "notVerified": [
      "Independent metric scale",
      "All project images used",
      "All original video frames used",
      "Surveyed camera intrinsics or mesh-to-pose residual",
      "Hidden facades, openings, interior or watertight geometry",
      "Complete cadastral parcel or georeferenced ground"
    ],
    "glbReimportRender": {
      "file": "planning/reset/photogrammetry-repair/roundtrip-house-161.png",
      "silhouetteIntersectionOverUnion": 1.0,
      "meanRgbAbsoluteErrorOf255": 0.0002823833151801202,
      "meaning": "Export fidelity only, not physical/photo accuracy. Original source object removed before GLB import."
    }
  },
  "coverageLimits": [
    "Aerial roof coverage is stronger than facades; no ground-level or interior reconstruction.",
    "Openings are mostly baked texture on a coarse irregular surface, not parametric/window-opening geometry.",
    "Roof ridge/eaves and wall edges are wavy; trees, steps and clutter contain smearing/holes.",
    "House GLB includes an open immediate-ground patch, car and local objects; crop boundary is intentionally jagged and unsealed.",
    "Context GLB retains the full recovered neighbourhood mesh, not necessarily the complete legal parcel.",
    "No arbitrary legacy roof-length/height calibration has been applied to the exported coordinates.",
    "Comparison photos were used as reconstruction inputs, so comparison is not independent held-out validation."
  ]
}