2026年10月1日版。最新の公式工事資料は2026年9月22日。完成予想図ではありません。
資料に基づく独立した建築再構成であり、公式計測モデルではありません。塔内部・立入制限区域、彫刻の細部、装飾、周辺環境に推定と簡略化を含みます。リアルタイムの光は鑑賞用の近似で、特定時刻の測定された採光を表すものではありません。
イエス塔の外装は172.5mで完成、内部は工事中です。栄光のファサードと被昇天礼拝堂は未完成として扱います。完成状況の文章は下記公式資料に基づきます。
独自の編集可能Blender建築モデル。Godot Engine 4.7.2 (MIT)、日本語フォントはNoto Sans CJKの改変サブセット (SIL OFL 1.1)。歩行制御と分割配信ローダーは同じワークスペース内の先行作品から再利用。窓ガラスには利用条件を確認した写真由来の素材を使用しています。同じ窓群の写真を繰り返す箇所と、後陣への解釈的な適用を含みます。原作者・ライセンス・加工内容は素材台帳を参照してください。
フォントライセンス全文 · Godotライセンス · Godot依存ライブラリの著作権・ライセンス通知
# 完成部分・推定・表現上の制約 この作品は資料照合を重ねた独立した建築再構成です。測量された公式デジタルツインではありません。 ## 完成状況の基準 依頼日2026年10月1日に対し、工事状況の最新確認資料は公式2026年9月22日発表です。イエス塔の172.5m外装、完成した聖母塔と4福音書記者塔、未完成の栄光側と被昇天礼拝堂を区別しています。中央クレーンは7月24日発表の54m屋根上設置・最高174mを反映し、正確なXYは写真による推定です。 栄光側の閉鎖壁・扉は2022年の正面写真、上部ガラスは2024年写真を基に、その状態が継続するという仮定です。2026年10月1日に現地を測量・撮影したと表現してはいけません。 ## 建築と内部 全長90m、幅45m、主要な天井高の序列と石種は公式資料に基づきます。柱は二重ねじれの多角形断面、石種ごとの太さと異なるテーパー、分岐をモデル化しています。各柱のテーパー比・接合曲面・細部装飾は写真に基づく推定であり、公式の施工数値ではありません。 天井は厚みのある連続した星状・双曲面系の曲面へ改良しています。全ての石の継目や厳密な数学的接合まで公式原形を複製したものではありません。周囲の街区・植栽・工事資材の配置は簡略化しています。 ## ステンドグラス 東側4種、西側3種の写真窓群から、実際の図柄と文字を開口ごとに対応させています。赤・橙・緑の相対順序は照合しました。正確なベイ番号、上段への再利用、一部の繰り返し、後陣には未特定・解釈が残ります。写真最下段に写るロープ・影・画角切れも出典台帳に記録しています。淡緑系は同じ窓の2枚の確認済み写真を組み合わせています。現地にない色柄のランダムな生成はしていません。 ## 彫刻 7組の具体的な彫刻を写真由来の閉じた立体レリーフとして配置しています。正面の図像は写真に基づきますが、奥行きは推定で、急な側面と背面は石材です。これは全周の形状を取得した3Dスキャンではありません。斜め・真横・背後からの厳密な解剖形態や衣服の曲面を保証しません。 外尾悦郎の作品と他の作者の作品をARTWORK_SOURCES/EXTERIOR_EVIDENCEで区別しています。植物扉の葉・花・虫は独自立体であり、実物の全要素の配置を精密複製したものではありません。 ## 光・実行・権利 Cycles静止画とWeb/Godot実時間描画は別の照明計算です。写真RGBを使った色光・点光源は鑑賞用の近似で、測定された分光透過率や特定日時の採光ではありません。窓の内側は透過して見える色、外側は昼の暗い反射面を別々に近似し、外側には内部用の発光を適用しません。比較図・UV図は診断画像であり実時間画面ではありません。 公式の参照専用画像はWeb配布物に含めていません。利用した写真の帰属・CC条件と加工内容は台帳とWebの出典ページに記録しています。写真の利用条件と写された現代美術そのものの権利は区別しています。V12はレビュー後、ユーザーの依頼によりDEMOSギャラリーへ公開しています。Git pushは行っていません。
{
"requested_as_of": "2026-10-01",
"latest_verified_construction_bulletin": "2026-09-22",
"work_stage": "V12 public review release: four east and three west real window patterns; photo-guided capitals and star wells; weathered historic Nativity stone; completed checks and remaining limitations are recorded in the accompanying validation documents",
"facts": [
{
"part": "Jesus Christ tower",
"status": "Exterior completed on 2026-02-20;172.5m including17m high13.5m wide three-dimensional four-arm cross. Interior incomplete and not accessible in this walkthrough.",
"source": "https://sagradafamilia.org/en/-/una-creu-que-arriba-al-cel-de-barcelona",
"confidence": "official actual milestone"
},
{
"part": "Glory façade",
"status": "Under construction; future four apostle towers not modeled as complete.",
"source": "https://sagradafamilia.org/es/-/la-sagrada-familia-avanca-en-la-darrera-fase-de-construccio-del-temple-projectat-per-antoni-gaudi",
"confidence": "official 2026-09-22 actual state"
},
{
"part": "Assumption chapel",
"status": "Unfinished;8m stone tribune vault constructed; planned exterior statues not yet placed per bulletin.",
"source": "https://sagradafamilia.org/es/-/la-sagrada-familia-avanca-en-la-darrera-fase-de-construccio-del-temple-projectat-per-antoni-gaudi",
"confidence": "official 2026-09-22 actual state"
},
{
"part": "Central crane",
"status": "Remains; crane based on central nave roof at54m, reduced from203m to174m in July2026; Jesus bracing removed; serving Glory works. Exact roofXY is estimated from photographs.",
"source": "https://sagradafamilia.org/es/-/la-grua-central-de-la-sagrada-familia-inicia-una-nova-etapa-despres-de-completar-l-exterior-de-la-torre-de-jesucrist",
"confidence": "official height and status; exact position estimated"
}
],
"policy": "Plans are not treated as actual completed work. Unverified areas use explicit approximations. No official reference-only photographs in exported runtime."
}
{
"count": 490,
"minimum_penetration_m": 0.3289035139481129,
"max_xy_adjustment_m": 4.3486,
"results": [
{
"name": "Nave_granite_7.5_-1_upper_0_-1",
"surface": "Nave_Catalan_0_-3.75",
"mesh_intrados": 40.708145299222906,
"haunch_penetration": 0.3408653111742268,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_0_1",
"surface": "Nave_Catalan_0_-3.75",
"mesh_intrados": 40.05902900569592,
"haunch_penetration": 0.44438192508849284,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_1_-1",
"surface": "Nave_Catalan_0_-3.75",
"mesh_intrados": 39.88401803940235,
"haunch_penetration": 0.346194464352763,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_1_1",
"surface": "Nave_Catalan_0_-3.75",
"mesh_intrados": 41.403228875066326,
"haunch_penetration": 0.4572606510869477,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_2_-1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 41.403008329909724,
"haunch_penetration": 0.457481196243549,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_2_1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 39.901308989806566,
"haunch_penetration": 0.32890351394854633,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_3_-1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 40.05556484377029,
"haunch_penetration": 0.44784608701412054,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_upper_3_1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 40.70905149109213,
"haunch_penetration": 0.339959119305,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_lower_-1",
"surface": "Aisle_white_concrete_0_-11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_-1_lower_1",
"surface": "Aisle_white_concrete_1_-11.25",
"mesh_intrados": 27.04321979420293,
"haunch_penetration": 0.4514872329993729,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_0_-1",
"surface": "Aisle_white_concrete_1_-11.25",
"mesh_intrados": 27.393746219553144,
"haunch_penetration": 0.39608482773412135,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_0_1",
"surface": "Aisle_white_concrete_1_-11.25",
"mesh_intrados": 27.391169875597384,
"haunch_penetration": 0.3986611716898807,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_1_-1",
"surface": "Aisle_white_concrete_0_-11.25",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_1_1",
"surface": "Aisle_white_concrete_0_-11.25",
"mesh_intrados": 27.391169875597324,
"haunch_penetration": 0.3986611716899411,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_2_-1",
"surface": "Aisle_white_concrete_0_-18.75",
"mesh_intrados": 27.393746219553247,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_2_1",
"surface": "Aisle_white_concrete_0_-18.75",
"mesh_intrados": 27.39116987559779,
"haunch_penetration": 0.39866117168947923,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_3_-1",
"surface": "Aisle_white_concrete_1_-18.75",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_upper_3_1",
"surface": "Aisle_white_concrete_1_-18.75",
"mesh_intrados": 27.39116987559784,
"haunch_penetration": 0.3986611716894295,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_lower_-1",
"surface": "Aisle_white_concrete_0_-18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_-1_lower_1",
"surface": "Aisle_white_concrete_1_-18.75",
"mesh_intrados": 27.043219794202933,
"haunch_penetration": 0.4514872329993658,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_0_-1",
"surface": "Nave_Catalan_0_3.75",
"mesh_intrados": 40.05556484377333,
"haunch_penetration": 0.4478460870110794,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_0_1",
"surface": "Nave_Catalan_0_3.75",
"mesh_intrados": 40.709051491093675,
"haunch_penetration": 0.3399591193034581,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_1_-1",
"surface": "Nave_Catalan_0_3.75",
"mesh_intrados": 41.40300832990972,
"haunch_penetration": 0.4574811962435561,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_1_1",
"surface": "Nave_Catalan_0_3.75",
"mesh_intrados": 39.90130898980699,
"haunch_penetration": 0.32890351394812,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_2_-1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 39.88401803940131,
"haunch_penetration": 0.3461944643538004,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_2_1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 41.403228875066496,
"haunch_penetration": 0.45726065108677716,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_3_-1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 40.708145299225116,
"haunch_penetration": 0.340865311172017,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_upper_3_1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 40.05902900569795,
"haunch_penetration": 0.4443819250864607,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_lower_-1",
"surface": "Aisle_white_concrete_0_11.25",
"mesh_intrados": 27.04321979420287,
"haunch_penetration": 0.4514872329994297,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_7.5_1_lower_1",
"surface": "Aisle_white_concrete_1_11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.45133689499378704,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_0_-1",
"surface": "Aisle_white_concrete_1_18.75",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.396084827734132,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_0_1",
"surface": "Aisle_white_concrete_1_18.75",
"mesh_intrados": 27.39116987559739,
"haunch_penetration": 0.39866117168987714,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_1_-1",
"surface": "Aisle_white_concrete_0_18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340254,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_1_1",
"surface": "Aisle_white_concrete_0_18.75",
"mesh_intrados": 27.391169875597328,
"haunch_penetration": 0.3986611716899411,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_2_-1",
"surface": "Aisle_white_concrete_0_11.25",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_2_1",
"surface": "Aisle_white_concrete_0_11.25",
"mesh_intrados": 27.391169875597782,
"haunch_penetration": 0.3986611716894828,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_3_-1",
"surface": "Aisle_white_concrete_1_11.25",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_upper_3_1",
"surface": "Aisle_white_concrete_1_11.25",
"mesh_intrados": 27.391169875597836,
"haunch_penetration": 0.3986611716894295,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_lower_-1",
"surface": "Aisle_white_concrete_0_18.75",
"mesh_intrados": 27.043219794202873,
"haunch_penetration": 0.45148723299942617,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_7.5_1_lower_1",
"surface": "Aisle_white_concrete_1_18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_0_-1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 40.7081452992229,
"haunch_penetration": 0.3408653111742339,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_0_1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 40.059029005695926,
"haunch_penetration": 0.44438192508848573,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_1_-1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 39.884018039402356,
"haunch_penetration": 0.3461944643527559,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_1_1",
"surface": "Nave_Catalan_1_-3.75",
"mesh_intrados": 41.403228875066326,
"haunch_penetration": 0.4572606510869477,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_2_-1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 41.403008329909724,
"haunch_penetration": 0.457481196243549,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_2_1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 39.901308989806566,
"haunch_penetration": 0.32890351394854633,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_3_-1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 40.05556484377029,
"haunch_penetration": 0.44784608701412054,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_upper_3_1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 40.70905149109213,
"haunch_penetration": 0.339959119305,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_lower_-1",
"surface": "Aisle_white_concrete_1_-11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_-1_lower_1",
"surface": "Aisle_white_concrete_2_-11.25",
"mesh_intrados": 27.04321979420293,
"haunch_penetration": 0.4514872329993729,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_0_-1",
"surface": "Aisle_white_concrete_2_-11.25",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.39608482773413556,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_0_1",
"surface": "Aisle_white_concrete_2_-11.25",
"mesh_intrados": 27.39116987559739,
"haunch_penetration": 0.39866117168987714,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_1_-1",
"surface": "Aisle_white_concrete_1_-11.25",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_1_1",
"surface": "Aisle_white_concrete_1_-11.25",
"mesh_intrados": 27.39116987559732,
"haunch_penetration": 0.39866117168994464,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_2_-1",
"surface": "Aisle_white_concrete_1_-18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.39608482773402187,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_2_1",
"surface": "Aisle_white_concrete_1_-18.75",
"mesh_intrados": 27.39116987559779,
"haunch_penetration": 0.39866117168947923,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_3_-1",
"surface": "Aisle_white_concrete_2_-18.75",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_upper_3_1",
"surface": "Aisle_white_concrete_2_-18.75",
"mesh_intrados": 27.391169875597846,
"haunch_penetration": 0.3986611716894224,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_lower_-1",
"surface": "Aisle_white_concrete_1_-18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_-1_lower_1",
"surface": "Aisle_white_concrete_2_-18.75",
"mesh_intrados": 27.043219794202933,
"haunch_penetration": 0.4514872329993658,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_0_-1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 40.05556484377334,
"haunch_penetration": 0.4478460870110723,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_0_1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 40.709051491093675,
"haunch_penetration": 0.3399591193034581,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_1_-1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 41.40300832990972,
"haunch_penetration": 0.4574811962435561,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_1_1",
"surface": "Nave_Catalan_1_3.75",
"mesh_intrados": 39.901308989807,
"haunch_penetration": 0.3289035139481129,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_2_-1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 39.88401803940131,
"haunch_penetration": 0.3461944643538004,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_2_1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 41.403228875066496,
"haunch_penetration": 0.45726065108677716,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_3_-1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 40.708145299225116,
"haunch_penetration": 0.340865311172017,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_upper_3_1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 40.05902900569795,
"haunch_penetration": 0.4443819250864607,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_lower_-1",
"surface": "Aisle_white_concrete_1_11.25",
"mesh_intrados": 27.04321979420287,
"haunch_penetration": 0.4514872329994297,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_15_1_lower_1",
"surface": "Aisle_white_concrete_2_11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.45133689499378704,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_0_-1",
"surface": "Aisle_white_concrete_2_18.75",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.39608482773412845,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_0_1",
"surface": "Aisle_white_concrete_2_18.75",
"mesh_intrados": 27.391169875597395,
"haunch_penetration": 0.3986611716898736,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_1_-1",
"surface": "Aisle_white_concrete_1_18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340254,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_1_1",
"surface": "Aisle_white_concrete_1_18.75",
"mesh_intrados": 27.391169875597328,
"haunch_penetration": 0.3986611716899411,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_2_-1",
"surface": "Aisle_white_concrete_1_11.25",
"mesh_intrados": 27.393746219553254,
"haunch_penetration": 0.3960848277340112,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_2_1",
"surface": "Aisle_white_concrete_1_11.25",
"mesh_intrados": 27.391169875597782,
"haunch_penetration": 0.3986611716894828,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_3_-1",
"surface": "Aisle_white_concrete_2_11.25",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_upper_3_1",
"surface": "Aisle_white_concrete_2_11.25",
"mesh_intrados": 27.39116987559784,
"haunch_penetration": 0.3986611716894295,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_lower_-1",
"surface": "Aisle_white_concrete_1_18.75",
"mesh_intrados": 27.043219794202873,
"haunch_penetration": 0.45148723299942617,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_15_1_lower_1",
"surface": "Aisle_white_concrete_2_18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_0_-1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 40.7081452992229,
"haunch_penetration": 0.3408653111742339,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_0_1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 40.059029005695926,
"haunch_penetration": 0.44438192508848573,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_1_-1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 39.884018039402356,
"haunch_penetration": 0.3461944643527559,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_1_1",
"surface": "Nave_Catalan_2_-3.75",
"mesh_intrados": 41.403228875066326,
"haunch_penetration": 0.4572606510869477,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_2_-1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 41.403008329909724,
"haunch_penetration": 0.457481196243549,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_2_1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 39.901308989806566,
"haunch_penetration": 0.32890351394854633,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_3_-1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 40.05556484377029,
"haunch_penetration": 0.44784608701412054,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_upper_3_1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 40.70905149109213,
"haunch_penetration": 0.339959119305,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_lower_-1",
"surface": "Aisle_white_concrete_2_-11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_-1_lower_1",
"surface": "Aisle_white_concrete_3_-11.25",
"mesh_intrados": 27.04321979420293,
"haunch_penetration": 0.4514872329993729,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_0_-1",
"surface": "Aisle_white_concrete_3_-11.25",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.39608482773413556,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_0_1",
"surface": "Aisle_white_concrete_3_-11.25",
"mesh_intrados": 27.39116987559739,
"haunch_penetration": 0.39866117168987714,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_1_-1",
"surface": "Aisle_white_concrete_2_-11.25",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_1_1",
"surface": "Aisle_white_concrete_2_-11.25",
"mesh_intrados": 27.391169875597328,
"haunch_penetration": 0.3986611716899411,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_2_-1",
"surface": "Aisle_white_concrete_2_-18.75",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_2_1",
"surface": "Aisle_white_concrete_2_-18.75",
"mesh_intrados": 27.391169875597797,
"haunch_penetration": 0.3986611716894721,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_3_-1",
"surface": "Aisle_white_concrete_3_-18.75",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_upper_3_1",
"surface": "Aisle_white_concrete_3_-18.75",
"mesh_intrados": 27.391169875597846,
"haunch_penetration": 0.3986611716894224,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_lower_-1",
"surface": "Aisle_white_concrete_2_-18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_-1_lower_1",
"surface": "Aisle_white_concrete_3_-18.75",
"mesh_intrados": 27.043219794202933,
"haunch_penetration": 0.4514872329993658,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_0_-1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 40.05556484377334,
"haunch_penetration": 0.4478460870110723,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_0_1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 40.709051491093675,
"haunch_penetration": 0.3399591193034581,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_1_-1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 41.40300832990972,
"haunch_penetration": 0.4574811962435561,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_1_1",
"surface": "Nave_Catalan_2_3.75",
"mesh_intrados": 39.90130898980699,
"haunch_penetration": 0.32890351394812,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_2_-1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 39.88401803940131,
"haunch_penetration": 0.3461944643538004,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_2_1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 41.403228875066496,
"haunch_penetration": 0.45726065108677716,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_3_-1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 40.708145299225116,
"haunch_penetration": 0.340865311172017,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_upper_3_1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 40.05902900569795,
"haunch_penetration": 0.4443819250864607,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_lower_-1",
"surface": "Aisle_white_concrete_2_11.25",
"mesh_intrados": 27.04321979420287,
"haunch_penetration": 0.4514872329994297,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_22.5_1_lower_1",
"surface": "Aisle_white_concrete_3_11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.45133689499378704,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_0_-1",
"surface": "Aisle_white_concrete_3_18.75",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.39608482773412845,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_0_1",
"surface": "Aisle_white_concrete_3_18.75",
"mesh_intrados": 27.391169875597395,
"haunch_penetration": 0.3986611716898736,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_1_-1",
"surface": "Aisle_white_concrete_2_18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_1_1",
"surface": "Aisle_white_concrete_2_18.75",
"mesh_intrados": 27.391169875597335,
"haunch_penetration": 0.398661171689934,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_2_-1",
"surface": "Aisle_white_concrete_2_11.25",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_2_1",
"surface": "Aisle_white_concrete_2_11.25",
"mesh_intrados": 27.39116987559779,
"haunch_penetration": 0.39866117168947923,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_3_-1",
"surface": "Aisle_white_concrete_3_11.25",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_upper_3_1",
"surface": "Aisle_white_concrete_3_11.25",
"mesh_intrados": 27.39116987559784,
"haunch_penetration": 0.3986611716894295,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_lower_-1",
"surface": "Aisle_white_concrete_2_18.75",
"mesh_intrados": 27.043219794202873,
"haunch_penetration": 0.45148723299942617,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_22.5_1_lower_1",
"surface": "Aisle_white_concrete_3_18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_0_-1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 40.7081452992229,
"haunch_penetration": 0.3408653111742339,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_0_1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 40.059029005695926,
"haunch_penetration": 0.44438192508848573,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_1_-1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 39.884018039402356,
"haunch_penetration": 0.3461944643527559,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_1_1",
"surface": "Nave_Catalan_3_-3.75",
"mesh_intrados": 41.403228875066326,
"haunch_penetration": 0.4572606510869477,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_2_-1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 41.403008329909724,
"haunch_penetration": 0.457481196243549,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_2_1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 39.901308989806566,
"haunch_penetration": 0.32890351394854633,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_3_-1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 40.05556484377029,
"haunch_penetration": 0.44784608701412054,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_upper_3_1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 40.709051491092126,
"haunch_penetration": 0.3399591193050071,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_lower_-1",
"surface": "Aisle_white_concrete_3_-11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_-1_lower_1",
"surface": "Aisle_white_concrete_4_-11.25",
"mesh_intrados": 27.043219794202933,
"haunch_penetration": 0.4514872329993693,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_0_-1",
"surface": "Aisle_white_concrete_4_-11.25",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.39608482773413556,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_0_1",
"surface": "Aisle_white_concrete_4_-11.25",
"mesh_intrados": 27.391169875597395,
"haunch_penetration": 0.3986611716898736,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_1_-1",
"surface": "Aisle_white_concrete_3_-11.25",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_1_1",
"surface": "Aisle_white_concrete_3_-11.25",
"mesh_intrados": 27.391169875597328,
"haunch_penetration": 0.3986611716899411,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_2_-1",
"surface": "Aisle_white_concrete_3_-18.75",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_2_1",
"surface": "Aisle_white_concrete_3_-18.75",
"mesh_intrados": 27.391169875597797,
"haunch_penetration": 0.3986611716894721,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_3_-1",
"surface": "Aisle_white_concrete_4_-18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340112,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_upper_3_1",
"surface": "Aisle_white_concrete_4_-18.75",
"mesh_intrados": 27.391169875597832,
"haunch_penetration": 0.39866117168943305,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_lower_-1",
"surface": "Aisle_white_concrete_3_-18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_-1_lower_1",
"surface": "Aisle_white_concrete_4_-18.75",
"mesh_intrados": 27.043219794202933,
"haunch_penetration": 0.4514872329993658,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_0_-1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 40.05556484377334,
"haunch_penetration": 0.4478460870110723,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_0_1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 40.709051491093675,
"haunch_penetration": 0.3399591193034581,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_1_-1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 41.40300832990972,
"haunch_penetration": 0.4574811962435561,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_1_1",
"surface": "Nave_Catalan_3_3.75",
"mesh_intrados": 39.90130898980699,
"haunch_penetration": 0.32890351394812,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_2_-1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 39.88401803940131,
"haunch_penetration": 0.3461944643538004,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_2_1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 41.403228875066496,
"haunch_penetration": 0.45726065108677716,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_3_-1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 40.70814529922511,
"haunch_penetration": 0.3408653111720241,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_upper_3_1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 40.059029005697944,
"haunch_penetration": 0.4443819250864678,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_lower_-1",
"surface": "Aisle_white_concrete_3_11.25",
"mesh_intrados": 27.04321979420287,
"haunch_penetration": 0.4514872329994297,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_30_1_lower_1",
"surface": "Aisle_white_concrete_4_11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.45133689499378704,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_0_-1",
"surface": "Aisle_white_concrete_4_18.75",
"mesh_intrados": 27.39374621955313,
"haunch_penetration": 0.39608482773412845,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_0_1",
"surface": "Aisle_white_concrete_4_18.75",
"mesh_intrados": 27.391169875597406,
"haunch_penetration": 0.3986611716898629,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_1_-1",
"surface": "Aisle_white_concrete_3_18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_1_1",
"surface": "Aisle_white_concrete_3_18.75",
"mesh_intrados": 27.391169875597335,
"haunch_penetration": 0.398661171689934,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_2_-1",
"surface": "Aisle_white_concrete_3_11.25",
"mesh_intrados": 27.39374621955325,
"haunch_penetration": 0.39608482773401477,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_2_1",
"surface": "Aisle_white_concrete_3_11.25",
"mesh_intrados": 27.39116987559779,
"haunch_penetration": 0.39866117168947923,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_3_-1",
"surface": "Aisle_white_concrete_4_11.25",
"mesh_intrados": 27.393746219553243,
"haunch_penetration": 0.3960848277340112,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_upper_3_1",
"surface": "Aisle_white_concrete_4_11.25",
"mesh_intrados": 27.391169875597825,
"haunch_penetration": 0.39866117168944015,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_lower_-1",
"surface": "Aisle_white_concrete_3_18.75",
"mesh_intrados": 27.043219794202873,
"haunch_penetration": 0.45148723299942617,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_30_1_lower_1",
"surface": "Aisle_white_concrete_4_18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_0_-1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 40.708145299222906,
"haunch_penetration": 0.3408653111742268,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_0_1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 40.059029005695926,
"haunch_penetration": 0.44438192508848573,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_1_-1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 39.88401803940235,
"haunch_penetration": 0.3461944643527559,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_1_1",
"surface": "Nave_Catalan_4_-3.75",
"mesh_intrados": 41.40322887506632,
"haunch_penetration": 0.4572606510869548,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_2_-1",
"surface": "Transition_41.25_-3.75",
"mesh_intrados": 45.595808068587196,
"haunch_penetration": 0.4587885591411123,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_2_1",
"surface": "Transition_41.25_-3.75",
"mesh_intrados": 42.5906847468257,
"haunch_penetration": 0.3327323432831264,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_3_-1",
"surface": "Transition_41.25_-3.75",
"mesh_intrados": 47.844062658970046,
"haunch_penetration": 0.4476534879927456,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_upper_3_1",
"surface": "Transition_41.25_-3.75",
"mesh_intrados": 48.04925565652461,
"haunch_penetration": 0.33809662937340335,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_lower_-1",
"surface": "Aisle_white_concrete_4_-11.25",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_-1_lower_1",
"surface": "Transept_-1_0_41.25",
"mesh_intrados": 27.003345021914384,
"haunch_penetration": 0.45199824261036525,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_0_-1",
"surface": "Transept_-1_0_41.25",
"mesh_intrados": 27.338412209583346,
"haunch_penetration": 0.39720965438027633,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_0_1",
"surface": "Transept_-1_0_41.25",
"mesh_intrados": 27.336163555953625,
"haunch_penetration": 0.39945830801000426,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_1_-1",
"surface": "Aisle_white_concrete_4_-11.25",
"mesh_intrados": 27.39374621955326,
"haunch_penetration": 0.39608482773400766,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_1_1",
"surface": "Aisle_white_concrete_4_-11.25",
"mesh_intrados": 27.39116987559732,
"haunch_penetration": 0.39866117168994464,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_2_-1",
"surface": "Aisle_white_concrete_4_-18.75",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340183,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_2_1",
"surface": "Aisle_white_concrete_4_-18.75",
"mesh_intrados": 27.391169875597807,
"haunch_penetration": 0.39866117168946147,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_3_-1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 27.33841220958344,
"haunch_penetration": 0.3972096543801733,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_upper_3_1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 27.33616355595406,
"haunch_penetration": 0.39945830800957083,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_lower_-1",
"surface": "Aisle_white_concrete_4_-18.75",
"mesh_intrados": 27.043370132208516,
"haunch_penetration": 0.4513368949937835,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_-1_lower_1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 27.003345021914388,
"haunch_penetration": 0.4519982426103546,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_0_-1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 40.05556484377333,
"haunch_penetration": 0.4478460870110794,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_0_1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 40.709051491093675,
"haunch_penetration": 0.3399591193034581,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_1_-1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 41.40300832990972,
"haunch_penetration": 0.4574811962435561,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_1_1",
"surface": "Nave_Catalan_4_3.75",
"mesh_intrados": 39.90130898980699,
"haunch_penetration": 0.3289035139481129,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_2_-1",
"surface": "Transition_41.25_3.75",
"mesh_intrados": 42.58006503285649,
"haunch_penetration": 0.3433520572523392,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_2_1",
"surface": "Transition_41.25_3.75",
"mesh_intrados": 45.59581280855714,
"haunch_penetration": 0.45878381917116684,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_3_-1",
"surface": "Transition_41.25_3.75",
"mesh_intrados": 48.04639675839488,
"haunch_penetration": 0.34095552750313374,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_upper_3_1",
"surface": "Transition_41.25_3.75",
"mesh_intrados": 47.845576450367744,
"haunch_penetration": 0.44613969659504704,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_lower_-1",
"surface": "Aisle_white_concrete_4_11.25",
"mesh_intrados": 27.04321979420287,
"haunch_penetration": 0.4514872329994297,
"xy_adjustment": 0.0
},
{
"name": "Nave_granite_37.5_1_lower_1",
"surface": "Transept_1_0_41.25",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.4518527377567949,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_0_-1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 27.33841220958334,
"haunch_penetration": 0.3972096543802799,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_0_1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 27.336163555953632,
"haunch_penetration": 0.3994583080100007,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_1_-1",
"surface": "Aisle_white_concrete_4_18.75",
"mesh_intrados": 27.393746219553258,
"haunch_penetration": 0.39608482773400766,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_1_1",
"surface": "Aisle_white_concrete_4_18.75",
"mesh_intrados": 27.391169875597324,
"haunch_penetration": 0.3986611716899411,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_2_-1",
"surface": "Aisle_white_concrete_4_11.25",
"mesh_intrados": 27.39374621955324,
"haunch_penetration": 0.3960848277340254,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_2_1",
"surface": "Aisle_white_concrete_4_11.25",
"mesh_intrados": 27.391169875597797,
"haunch_penetration": 0.3986611716894721,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_3_-1",
"surface": "Transept_1_0_41.25",
"mesh_intrados": 27.338412209583446,
"haunch_penetration": 0.39720965438016975,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_upper_3_1",
"surface": "Transept_1_0_41.25",
"mesh_intrados": 27.33616355595406,
"haunch_penetration": 0.3994583080095637,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_lower_-1",
"surface": "Aisle_white_concrete_4_18.75",
"mesh_intrados": 27.04321979420287,
"haunch_penetration": 0.4514872329994297,
"xy_adjustment": 0.0
},
{
"name": "Aisle_Montjuic_37.5_1_lower_1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.4518527377567878,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_0_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.30083766258085,
"haunch_penetration": 0.4557902378321401,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_0_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.78156528712635,
"haunch_penetration": 0.3928938270732658,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_1_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.55518930497211,
"haunch_penetration": 0.4595902067841706,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_1_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.961874372627946,
"haunch_penetration": 0.45849211200593487,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_2_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.43762773423709,
"haunch_penetration": 0.388925990249966,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_2_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.41891427827775,
"haunch_penetration": 0.4463488674812268,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_3_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.070266449831635,
"haunch_penetration": 0.4509390023685995,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_upper_3_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.479781379914776,
"haunch_penetration": 0.4797589354507821,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_lower_-1",
"surface": "Transept_-1_0_48.75",
"mesh_intrados": 42.08659009889741,
"haunch_penetration": 0.45754010283058477,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_-1_lower_1",
"surface": "Transept_-1_0_48.75",
"mesh_intrados": 42.513768102484114,
"haunch_penetration": 0.42035241825034575,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_0_-1",
"surface": "Transept_-1_1_48.75",
"mesh_intrados": 40.191915313293116,
"haunch_penetration": 0.45536814750015253,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_0_1",
"surface": "Transept_-1_1_48.75",
"mesh_intrados": 40.698022725953,
"haunch_penetration": 0.35164061014509684,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_1_-1",
"surface": "Transept_-1_1_48.75",
"mesh_intrados": 41.3042947486893,
"haunch_penetration": 0.449091658895135,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_1_1",
"surface": "Transept_-1_1_48.75",
"mesh_intrados": 40.15032223551154,
"haunch_penetration": 0.45408748296767243,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_2_-1",
"surface": "Transept_-1_0_48.75",
"mesh_intrados": 40.14915124558052,
"haunch_penetration": 0.4552584728986844,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_2_1",
"surface": "Transept_-1_0_48.75",
"mesh_intrados": 41.304404834458495,
"haunch_penetration": 0.4489815731259412,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_3_-1",
"surface": "Transept_-1_0_48.75",
"mesh_intrados": 40.6996939262551,
"haunch_penetration": 0.3499694098429984,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_upper_3_1",
"surface": "Transept_-1_0_48.75",
"mesh_intrados": 40.19252720146167,
"haunch_penetration": 0.4547562593315959,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_lower_-1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 27.003345021914384,
"haunch_penetration": 0.4519982426103617,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_-1_lower_1",
"surface": "Transept_-1_0_41.25",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.45185273775679136,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_45_-1_upper_0_-1",
"surface": "Transept_-1_2_41.25",
"mesh_intrados": 25.46264601754966,
"haunch_penetration": 0.4538880733315409,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_45_-1_upper_0_1",
"surface": "Transept_-1_2_41.25",
"mesh_intrados": 25.767757221806196,
"haunch_penetration": 0.45572351196829786,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_45_-1_upper_1_-1",
"surface": "Transept_-1_2_41.25",
"mesh_intrados": 25.668989744988156,
"haunch_penetration": 0.41044621993328434,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_45_-1_upper_1_1",
"surface": "Transept_-1_2_41.25",
"mesh_intrados": 25.74447795892961,
"haunch_penetration": 0.4546088496359424,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_45_-1_upper_2_-1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 25.74448136344855,
"haunch_penetration": 0.4546054451170036,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_45_-1_upper_2_1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 25.678650187513103,
"haunch_penetration": 0.40078577740833765,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_45_-1_upper_3_-1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 25.774181367125273,
"haunch_penetration": 0.4492993666492211,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_45_-1_upper_3_1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 25.46325368413968,
"haunch_penetration": 0.4532804067415199,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_45_-1_lower_-1",
"surface": "Transept_-1_2_41.25",
"mesh_intrados": 27.003345021914384,
"haunch_penetration": 0.4519982426103617,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_45_-1_lower_1",
"surface": "Transept_-1_1_41.25",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.45185273775679136,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_0_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.785255100035315,
"haunch_penetration": 0.3892040141642994,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_0_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.30125932511158,
"haunch_penetration": 0.4553685753014065,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_1_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.96145454118849,
"haunch_penetration": 0.45891194344539343,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_1_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.55473735762285,
"haunch_penetration": 0.46004215413343275,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_2_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.423508567061575,
"haunch_penetration": 0.44175457869739887,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_2_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.43621948187318,
"haunch_penetration": 0.39033424261387495,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_3_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.478752874129555,
"haunch_penetration": 0.4807874412360036,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_upper_3_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.069534599109026,
"haunch_penetration": 0.45167085309120836,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_lower_-1",
"surface": "Transept_1_0_48.75",
"mesh_intrados": 42.08686019543484,
"haunch_penetration": 0.4572700062931574,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_45_1_lower_1",
"surface": "Transept_1_0_48.75",
"mesh_intrados": 42.512909228078385,
"haunch_penetration": 0.42121129265607493,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_0_-1",
"surface": "Transept_1_0_48.75",
"mesh_intrados": 40.191915313293116,
"haunch_penetration": 0.45536814750015253,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_0_1",
"surface": "Transept_1_0_48.75",
"mesh_intrados": 40.69802272595301,
"haunch_penetration": 0.35164061014508974,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_1_-1",
"surface": "Transept_1_0_48.75",
"mesh_intrados": 41.304294748689294,
"haunch_penetration": 0.44909165889514213,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_1_1",
"surface": "Transept_1_0_48.75",
"mesh_intrados": 40.15032223551154,
"haunch_penetration": 0.4540874829676653,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_2_-1",
"surface": "Transept_1_1_48.75",
"mesh_intrados": 40.14915124558052,
"haunch_penetration": 0.4552584728986915,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_2_1",
"surface": "Transept_1_1_48.75",
"mesh_intrados": 41.304404834458495,
"haunch_penetration": 0.4489815731259412,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_3_-1",
"surface": "Transept_1_1_48.75",
"mesh_intrados": 40.6996939262551,
"haunch_penetration": 0.3499694098429984,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_upper_3_1",
"surface": "Transept_1_1_48.75",
"mesh_intrados": 40.19252720146167,
"haunch_penetration": 0.4547562593315959,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_lower_-1",
"surface": "Transept_1_0_41.25",
"mesh_intrados": 27.003345021914384,
"haunch_penetration": 0.4519982426103617,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_45_1_lower_1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.45185273775679136,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_45_1_upper_0_-1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 25.46264601754966,
"haunch_penetration": 0.4538880733315409,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_45_1_upper_0_1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 25.767757221806196,
"haunch_penetration": 0.45572351196829786,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_45_1_upper_1_-1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 25.668989744988156,
"haunch_penetration": 0.41044621993328434,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_45_1_upper_1_1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 25.74447795892961,
"haunch_penetration": 0.4546088496359424,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_45_1_upper_2_-1",
"surface": "Transept_1_2_41.25",
"mesh_intrados": 25.74448136344855,
"haunch_penetration": 0.4546054451170036,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_45_1_upper_2_1",
"surface": "Transept_1_2_41.25",
"mesh_intrados": 25.678650187513103,
"haunch_penetration": 0.40078577740833765,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_45_1_upper_3_-1",
"surface": "Transept_1_2_41.25",
"mesh_intrados": 25.774181367125273,
"haunch_penetration": 0.4492993666492211,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_45_1_upper_3_1",
"surface": "Transept_1_2_41.25",
"mesh_intrados": 25.46325368413968,
"haunch_penetration": 0.4532804067415199,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_45_1_lower_-1",
"surface": "Transept_1_1_41.25",
"mesh_intrados": 27.003345021914384,
"haunch_penetration": 0.4519982426103617,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_45_1_lower_1",
"surface": "Transept_1_2_41.25",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.45185273775679136,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_0_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.78525510003553,
"haunch_penetration": 0.38920401416408623,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_0_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.301259325107225,
"haunch_penetration": 0.45536857530576924,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_1_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.96145454118821,
"haunch_penetration": 0.45891194344567054,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_1_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.55473735762284,
"haunch_penetration": 0.46004215413343985,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_2_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.423508567062136,
"haunch_penetration": 0.44175457869684465,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_2_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.436219481872754,
"haunch_penetration": 0.3903342426143013,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_3_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.47875287412988,
"haunch_penetration": 0.48078744123567674,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_upper_3_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.0695345991095,
"haunch_penetration": 0.4516708530907323,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_lower_-1",
"surface": "Transept_-1_0_56.25",
"mesh_intrados": 42.086860195435264,
"haunch_penetration": 0.45727000629273107,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_-1_lower_1",
"surface": "Transept_-1_0_56.25",
"mesh_intrados": 42.512909228078705,
"haunch_penetration": 0.4212112926557481,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_0_-1",
"surface": "Transept_-1_1_56.25",
"mesh_intrados": 40.699693926255385,
"haunch_penetration": 0.3499694098427142,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_0_1",
"surface": "Transept_-1_1_56.25",
"mesh_intrados": 40.19252720146174,
"haunch_penetration": 0.45475625933152486,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_1_-1",
"surface": "Transept_-1_1_56.25",
"mesh_intrados": 40.14915124558512,
"haunch_penetration": 0.45525847289409427,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_1_1",
"surface": "Transept_-1_1_56.25",
"mesh_intrados": 41.304404834460875,
"haunch_penetration": 0.4489815731235609,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_2_-1",
"surface": "Transept_-1_0_56.25",
"mesh_intrados": 41.30429474868585,
"haunch_penetration": 0.44909165889858826,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_2_1",
"surface": "Transept_-1_0_56.25",
"mesh_intrados": 40.15032223550838,
"haunch_penetration": 0.45408748297082013,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_3_-1",
"surface": "Transept_-1_0_56.25",
"mesh_intrados": 40.19191531329331,
"haunch_penetration": 0.4553681474999607,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_upper_3_1",
"surface": "Transept_-1_0_56.25",
"mesh_intrados": 40.69802272595374,
"haunch_penetration": 0.3516406101443579,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_lower_-1",
"surface": "Transept_-1_1_63.75",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.4518527377567878,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_-1_lower_1",
"surface": "Transept_-1_0_63.75",
"mesh_intrados": 27.00334502191437,
"haunch_penetration": 0.45199824261037236,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_60_-1_upper_0_-1",
"surface": "Transept_-1_2_63.75",
"mesh_intrados": 25.774181367126808,
"haunch_penetration": 0.4492993666476863,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_60_-1_upper_0_1",
"surface": "Transept_-1_2_63.75",
"mesh_intrados": 25.463253684138884,
"haunch_penetration": 0.45328040674231573,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_60_-1_upper_1_-1",
"surface": "Transept_-1_2_63.75",
"mesh_intrados": 25.744481363448962,
"haunch_penetration": 0.4546054451165915,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_60_-1_upper_1_1",
"surface": "Transept_-1_2_63.75",
"mesh_intrados": 25.67865018751311,
"haunch_penetration": 0.40078577740833055,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_60_-1_upper_2_-1",
"surface": "Transept_-1_1_63.75",
"mesh_intrados": 25.668989744987826,
"haunch_penetration": 0.41044621993361474,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_60_-1_upper_2_1",
"surface": "Transept_-1_1_63.75",
"mesh_intrados": 25.74447795892961,
"haunch_penetration": 0.4546088496359424,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_60_-1_upper_3_-1",
"surface": "Transept_-1_1_63.75",
"mesh_intrados": 25.46264601754757,
"haunch_penetration": 0.4538880733336299,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_60_-1_upper_3_1",
"surface": "Transept_-1_1_63.75",
"mesh_intrados": 25.7677572218062,
"haunch_penetration": 0.4557235119682943,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_60_-1_lower_-1",
"surface": "Transept_-1_2_63.75",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.4518527377567878,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_60_-1_lower_1",
"surface": "Transept_-1_1_63.75",
"mesh_intrados": 27.00334502191437,
"haunch_penetration": 0.45199824261037236,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_0_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.30083766258218,
"haunch_penetration": 0.4557902378308114,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_0_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.781565287127215,
"haunch_penetration": 0.39289382707239895,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_1_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.5551893049721,
"haunch_penetration": 0.4595902067841777,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_1_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.96187437262817,
"haunch_penetration": 0.4584921120057075,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_2_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.437627734237765,
"haunch_penetration": 0.388925990249291,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_2_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 54.41891427827971,
"haunch_penetration": 0.4463488674792728,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_3_-1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 55.07026644983165,
"haunch_penetration": 0.4509390023685853,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_upper_3_1",
"surface": "Crossing_great_central_hyperboloid",
"mesh_intrados": 56.47978137991477,
"haunch_penetration": 0.4797589354507892,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_lower_-1",
"surface": "Transept_1_0_56.25",
"mesh_intrados": 42.08659009889621,
"haunch_penetration": 0.4575401028317856,
"xy_adjustment": 0.0
},
{
"name": "Crossing_porphyry_60_1_lower_1",
"surface": "Transept_1_0_56.25",
"mesh_intrados": 42.51376810248411,
"haunch_penetration": 0.42035241825034575,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_0_-1",
"surface": "Transept_1_0_56.25",
"mesh_intrados": 40.69969392625539,
"haunch_penetration": 0.3499694098427071,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_0_1",
"surface": "Transept_1_0_56.25",
"mesh_intrados": 40.19252720146174,
"haunch_penetration": 0.45475625933152486,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_1_-1",
"surface": "Transept_1_0_56.25",
"mesh_intrados": 40.14915124558512,
"haunch_penetration": 0.45525847289408716,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_1_1",
"surface": "Transept_1_0_56.25",
"mesh_intrados": 41.304404834460875,
"haunch_penetration": 0.4489815731235609,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_2_-1",
"surface": "Transept_1_1_56.25",
"mesh_intrados": 41.304294748685855,
"haunch_penetration": 0.44909165889858116,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_2_1",
"surface": "Transept_1_1_56.25",
"mesh_intrados": 40.15032223550838,
"haunch_penetration": 0.45408748297082724,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_3_-1",
"surface": "Transept_1_1_56.25",
"mesh_intrados": 40.19191531329331,
"haunch_penetration": 0.4553681474999607,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_upper_3_1",
"surface": "Transept_1_1_56.25",
"mesh_intrados": 40.69802272595374,
"haunch_penetration": 0.3516406101443579,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_lower_-1",
"surface": "Transept_1_0_63.75",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.4518527377567878,
"xy_adjustment": 0.0
},
{
"name": "Crossing_basalt_60_1_lower_1",
"surface": "Transept_1_1_63.75",
"mesh_intrados": 27.00334502191437,
"haunch_penetration": 0.45199824261037236,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_60_1_upper_0_-1",
"surface": "Transept_1_1_63.75",
"mesh_intrados": 25.774181367126808,
"haunch_penetration": 0.4492993666476863,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_60_1_upper_0_1",
"surface": "Transept_1_1_63.75",
"mesh_intrados": 25.463253684138884,
"haunch_penetration": 0.45328040674231573,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_60_1_upper_1_-1",
"surface": "Transept_1_1_63.75",
"mesh_intrados": 25.744481363448962,
"haunch_penetration": 0.4546054451165915,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_60_1_upper_1_1",
"surface": "Transept_1_1_63.75",
"mesh_intrados": 25.67865018751311,
"haunch_penetration": 0.40078577740833055,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_60_1_upper_2_-1",
"surface": "Transept_1_2_63.75",
"mesh_intrados": 25.668989744987826,
"haunch_penetration": 0.41044621993361474,
"xy_adjustment": 4.0054
},
{
"name": "Transept_granite_60_1_upper_2_1",
"surface": "Transept_1_2_63.75",
"mesh_intrados": 25.74447795892961,
"haunch_penetration": 0.4546088496359424,
"xy_adjustment": 4.3486
},
{
"name": "Transept_granite_60_1_upper_3_-1",
"surface": "Transept_1_2_63.75",
"mesh_intrados": 25.46264601754757,
"haunch_penetration": 0.4538880733336299,
"xy_adjustment": 2.3129
},
{
"name": "Transept_granite_60_1_upper_3_1",
"surface": "Transept_1_2_63.75",
"mesh_intrados": 25.7677572218062,
"haunch_penetration": 0.4557235119682943,
"xy_adjustment": 3.1198
},
{
"name": "Transept_granite_60_1_lower_-1",
"surface": "Transept_1_1_63.75",
"mesh_intrados": 27.003490526767955,
"haunch_penetration": 0.4518527377567878,
"xy_adjustment": 0.0
},
{
"name": "Transept_granite_60_1_lower_1",
"surface": "Transept_1_2_63.75",
"mesh_intrados": 27.00334502191437,
"haunch_penetration": 0.45199824261037236,
"xy_adjustment": 0.0
},
{
"name": "Apse_horseshoe_0_upper_0_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 56.26718188532334,
"haunch_penetration": 0.45862224722303324,
"xy_adjustment": 3.1458
},
{
"name": "Apse_horseshoe_0_upper_0_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 56.13909640316406,
"haunch_penetration": 0.45311051211363207,
"xy_adjustment": 2.3423
},
{
"name": "Apse_horseshoe_0_upper_1_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.232002834123,
"haunch_penetration": 0.3907353062729584,
"xy_adjustment": 1.2588
},
{
"name": "Apse_horseshoe_0_upper_1_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 56.44019753033556,
"haunch_penetration": 0.459782556572776,
"xy_adjustment": 0.9257
},
{
"name": "Apse_horseshoe_0_upper_2_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 1.0069
},
{
"name": "Apse_horseshoe_0_upper_2_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 1.7288
},
{
"name": "Apse_horseshoe_0_upper_3_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 3.2892
},
{
"name": "Apse_horseshoe_0_upper_3_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 4.0846
},
{
"name": "Apse_horseshoe_0_lower_-1",
"surface": "Apse_radial_tier_1_0",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 3.2884
},
{
"name": "Apse_horseshoe_0_lower_1",
"surface": "Apse_radial_tier_1_0",
"mesh_intrados": 40.64126988796262,
"haunch_penetration": 0.4579138677420289,
"xy_adjustment": 2.2383
},
{
"name": "Apse_horseshoe_1_upper_0_-1",
"surface": "Apse_radial_tier_2_1",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 2.8305
},
{
"name": "Apse_horseshoe_1_upper_0_1",
"surface": "Apse_radial_tier_2_1",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 2.1197
},
{
"name": "Apse_horseshoe_1_upper_1_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 1.3986
},
{
"name": "Apse_horseshoe_1_upper_1_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 0.5446
},
{
"name": "Apse_horseshoe_1_upper_2_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 56.22886083781915,
"haunch_penetration": 0.39809807026912125,
"xy_adjustment": 0.5963
},
{
"name": "Apse_horseshoe_1_upper_2_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.925264313998895,
"haunch_penetration": 0.39231259807306174,
"xy_adjustment": 1.1791
},
{
"name": "Apse_horseshoe_1_upper_3_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.71332245699182,
"haunch_penetration": 0.4561761661468964,
"xy_adjustment": 2.5818
},
{
"name": "Apse_horseshoe_1_upper_3_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.720033371871565,
"haunch_penetration": 0.45579162712229504,
"xy_adjustment": 3.4381
},
{
"name": "Apse_horseshoe_1_lower_-1",
"surface": "Apse_radial_tier_1_0",
"mesh_intrados": 40.8730027346517,
"haunch_penetration": 0.4077432867843598,
"xy_adjustment": 1.4845
},
{
"name": "Apse_horseshoe_1_lower_1",
"surface": "Apse_radial_tier_1_0",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 2.158
},
{
"name": "Apse_horseshoe_2_upper_0_-1",
"surface": "Apse_radial_tier_2_2",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 2.8179
},
{
"name": "Apse_horseshoe_2_upper_0_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.79519569718842,
"haunch_penetration": 0.4471834078760608,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_2_upper_1_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.022440335210035,
"haunch_penetration": 0.4425431454643842,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_2_upper_1_1",
"surface": "Apse_radial_tier_2_1",
"mesh_intrados": 56.237613686319634,
"haunch_penetration": 0.458521795270066,
"xy_adjustment": 0.5043
},
{
"name": "Apse_horseshoe_2_upper_2_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 56.56483215503752,
"haunch_penetration": 0.4712274790828985,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_2_upper_2_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.28195074708914,
"haunch_penetration": 0.44674790783933815,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_2_upper_3_-1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 2.1827
},
{
"name": "Apse_horseshoe_2_upper_3_1",
"surface": "Apse_radial_tier_2_0",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 2.9644
},
{
"name": "Apse_horseshoe_2_lower_-1",
"surface": "Apse_radial_tier_1_0",
"mesh_intrados": 41.16931661103514,
"haunch_penetration": 0.4600239820575496,
"xy_adjustment": 0.8259
},
{
"name": "Apse_horseshoe_2_lower_1",
"surface": "Apse_radial_tier_1_1",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 1.6928
},
{
"name": "Apse_horseshoe_3_upper_0_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 56.125843205503756,
"haunch_penetration": 0.446939707111369,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_3_upper_0_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.07149514129904,
"haunch_penetration": 0.443675879708195,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_3_upper_1_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 58.92677306882876,
"haunch_penetration": 0.44979001140577424,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_3_upper_1_1",
"surface": "Apse_radial_tier_2_2",
"mesh_intrados": 56.197958102135644,
"haunch_penetration": 0.4006816302531604,
"xy_adjustment": 0.5198
},
{
"name": "Apse_horseshoe_3_upper_2_-1",
"surface": "Apse_radial_tier_2_2",
"mesh_intrados": 56.12288975302549,
"haunch_penetration": 0.42574598839095756,
"xy_adjustment": 0.5275
},
{
"name": "Apse_horseshoe_3_upper_2_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.032925623476444,
"haunch_penetration": 0.42484776221826337,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_3_upper_3_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.18891370339513,
"haunch_penetration": 0.44616995231596235,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_3_upper_3_1",
"surface": "Apse_radial_tier_2_1",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 2.7756
},
{
"name": "Apse_horseshoe_3_lower_-1",
"surface": "Apse_radial_tier_1_1",
"mesh_intrados": 42.64244772609025,
"haunch_penetration": 0.46004708681045514,
"xy_adjustment": 0.0
},
{
"name": "Apse_horseshoe_3_lower_1",
"surface": "Apse_radial_tier_1_2",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 2.2326
},
{
"name": "Apse_horseshoe_4_upper_0_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 56.600039745951605,
"haunch_penetration": 0.4503720179352939,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_4_upper_0_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.70764850663621,
"haunch_penetration": 0.4478640693888565,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_4_upper_1_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 59.39770747842103,
"haunch_penetration": 0.42726781083694476,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_4_upper_1_1",
"surface": "Apse_radial_tier_2_3",
"mesh_intrados": 56.41223015167128,
"haunch_penetration": 0.43213528107447274,
"xy_adjustment": 0.7318
},
{
"name": "Apse_horseshoe_4_upper_2_-1",
"surface": "Apse_radial_tier_2_3",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 0.6921
},
{
"name": "Apse_horseshoe_4_upper_2_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 58.75463896328954,
"haunch_penetration": 0.43387801658932545,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_4_upper_3_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.099199243816614,
"haunch_penetration": 0.45392808772610493,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_4_upper_3_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.91044911419098,
"haunch_penetration": 0.4495693583429201,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_4_lower_-1",
"surface": "Apse_radial_tier_1_1",
"mesh_intrados": 40.757246624803855,
"haunch_penetration": 0.4587394665446851,
"xy_adjustment": 1.1773
},
{
"name": "Apse_horseshoe_4_lower_1",
"surface": "Apse_radial_tier_1_2",
"mesh_intrados": 40.87325449247902,
"haunch_penetration": 0.4085896179035373,
"xy_adjustment": 1.799
},
{
"name": "Apse_horseshoe_5_upper_0_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.90724145251486,
"haunch_penetration": 0.45277702001904174,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_5_upper_0_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.09861633584207,
"haunch_penetration": 0.4545109957006517,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_5_upper_1_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 58.75463027449339,
"haunch_penetration": 0.4338867053854756,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_5_upper_1_1",
"surface": "Apse_radial_tier_2_3",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 0.6921
},
{
"name": "Apse_horseshoe_5_upper_2_-1",
"surface": "Apse_radial_tier_2_3",
"mesh_intrados": 56.41707767682897,
"haunch_penetration": 0.4272877559167867,
"xy_adjustment": 0.7318
},
{
"name": "Apse_horseshoe_5_upper_2_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 59.396235572354115,
"haunch_penetration": 0.4287397169038627,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_5_upper_3_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.7144536867924,
"haunch_penetration": 0.44105888923266434,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_5_upper_3_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 56.60137349482801,
"haunch_penetration": 0.4490382690588888,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_5_lower_-1",
"surface": "Apse_radial_tier_1_5",
"mesh_intrados": 40.75724662480387,
"haunch_penetration": 0.4587394665446709,
"xy_adjustment": 1.1773
},
{
"name": "Apse_horseshoe_5_lower_1",
"surface": "Apse_radial_tier_1_4",
"mesh_intrados": 40.87369689163879,
"haunch_penetration": 0.40814721874377113,
"xy_adjustment": 1.799
},
{
"name": "Apse_horseshoe_6_upper_0_-1",
"surface": "Apse_radial_tier_2_5",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 2.7756
},
{
"name": "Apse_horseshoe_6_upper_0_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.1863669806871,
"haunch_penetration": 0.44871667502398793,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_6_upper_1_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.03278348701825,
"haunch_penetration": 0.42498989867645776,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_6_upper_1_1",
"surface": "Apse_radial_tier_2_4",
"mesh_intrados": 56.11843322852339,
"haunch_penetration": 0.4302025128930538,
"xy_adjustment": 0.5275
},
{
"name": "Apse_horseshoe_6_upper_2_-1",
"surface": "Apse_radial_tier_2_4",
"mesh_intrados": 56.17965510158412,
"haunch_penetration": 0.41898463080468673,
"xy_adjustment": 0.5198
},
{
"name": "Apse_horseshoe_6_upper_2_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 58.924011164475,
"haunch_penetration": 0.45255191575953546,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_6_upper_3_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.07151191494645,
"haunch_penetration": 0.4436591060607853,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_6_upper_3_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 56.13077682915663,
"haunch_penetration": 0.44200608345849446,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_6_lower_-1",
"surface": "Apse_radial_tier_1_5",
"mesh_intrados": 42.64265709954175,
"haunch_penetration": 0.45983771335895796,
"xy_adjustment": 0.0
},
{
"name": "Apse_horseshoe_6_lower_1",
"surface": "Apse_radial_tier_1_4",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 2.2326
},
{
"name": "Apse_horseshoe_7_upper_0_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.834317514989905,
"haunch_penetration": 0.45732358889005553,
"xy_adjustment": 2.9644
},
{
"name": "Apse_horseshoe_7_upper_0_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.834317514989905,
"haunch_penetration": 0.45732358889005553,
"xy_adjustment": 2.1827
},
{
"name": "Apse_horseshoe_7_upper_1_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.286797648980425,
"haunch_penetration": 0.44190100594805415,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_7_upper_1_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 56.56779013989074,
"haunch_penetration": 0.46826949422968056,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_7_upper_2_-1",
"surface": "Apse_radial_tier_2_5",
"mesh_intrados": 56.237683225266906,
"haunch_penetration": 0.4584522563227935,
"xy_adjustment": 0.5043
},
{
"name": "Apse_horseshoe_7_upper_2_1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 57.01815009900149,
"haunch_penetration": 0.4468333816729384,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_7_upper_3_-1",
"surface": "Apse_75m_hyperboloid_light_funnel",
"mesh_intrados": 55.798104723086354,
"haunch_penetration": 0.44427438197812563,
"xy_adjustment": 0
},
{
"name": "Apse_horseshoe_7_upper_3_1",
"surface": "Apse_radial_tier_2_4",
"mesh_intrados": 55.834317514989905,
"haunch_penetration": 0.45732358889005553,
"xy_adjustment": 2.8179
},
{
"name": "Apse_horseshoe_7_lower_-1",
"surface": "Apse_radial_tier_1_6",
"mesh_intrados": 41.16944597912511,
"haunch_penetration": 0.4598946139675846,
"xy_adjustment": 0.8259
},
{
"name": "Apse_horseshoe_7_lower_1",
"surface": "Apse_radial_tier_1_5",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 1.6928
},
{
"name": "Apse_horseshoe_8_upper_0_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.71508426634065,
"haunch_penetration": 0.4607407326532069,
"xy_adjustment": 3.4381
},
{
"name": "Apse_horseshoe_8_upper_0_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.70932366419907,
"haunch_penetration": 0.4601749589396462,
"xy_adjustment": 2.5818
},
{
"name": "Apse_horseshoe_8_upper_1_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.92085038677887,
"haunch_penetration": 0.39672652529308294,
"xy_adjustment": 1.1791
},
{
"name": "Apse_horseshoe_8_upper_1_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 56.21094445638008,
"haunch_penetration": 0.4160144517081861,
"xy_adjustment": 0.5963
},
{
"name": "Apse_horseshoe_8_upper_2_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.834317514989905,
"haunch_penetration": 0.45732358889005553,
"xy_adjustment": 0.5446
},
{
"name": "Apse_horseshoe_8_upper_2_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.834317514989905,
"haunch_penetration": 0.45732358889005553,
"xy_adjustment": 1.3986
},
{
"name": "Apse_horseshoe_8_upper_3_-1",
"surface": "Apse_radial_tier_2_5",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 2.1197
},
{
"name": "Apse_horseshoe_8_upper_3_1",
"surface": "Apse_radial_tier_2_5",
"mesh_intrados": 55.83431751498989,
"haunch_penetration": 0.45732358889006974,
"xy_adjustment": 2.8305
},
{
"name": "Apse_horseshoe_8_lower_-1",
"surface": "Apse_radial_tier_1_6",
"mesh_intrados": 40.873439285846345,
"haunch_penetration": 0.40730673558972086,
"xy_adjustment": 1.4845
},
{
"name": "Apse_horseshoe_8_lower_1",
"surface": "Apse_radial_tier_1_6",
"mesh_intrados": 40.75724662480387,
"haunch_penetration": 0.4587394665446709,
"xy_adjustment": 2.158
},
{
"name": "Apse_horseshoe_9_upper_0_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 4.0846
},
{
"name": "Apse_horseshoe_9_upper_0_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 3.2892
},
{
"name": "Apse_horseshoe_9_upper_1_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 1.7288
},
{
"name": "Apse_horseshoe_9_upper_1_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.8343175149899,
"haunch_penetration": 0.45732358889006264,
"xy_adjustment": 1.0069
},
{
"name": "Apse_horseshoe_9_upper_2_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 56.44037039991046,
"haunch_penetration": 0.4596096869978865,
"xy_adjustment": 0.9257
},
{
"name": "Apse_horseshoe_9_upper_2_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 55.222340582677994,
"haunch_penetration": 0.4003975577179659,
"xy_adjustment": 1.2588
},
{
"name": "Apse_horseshoe_9_upper_3_-1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 56.13784119213264,
"haunch_penetration": 0.4543657231450524,
"xy_adjustment": 2.3423
},
{
"name": "Apse_horseshoe_9_upper_3_1",
"surface": "Apse_radial_tier_2_6",
"mesh_intrados": 56.26687171460102,
"haunch_penetration": 0.45893241794535555,
"xy_adjustment": 3.1458
},
{
"name": "Apse_horseshoe_9_lower_-1",
"surface": "Apse_radial_tier_1_6",
"mesh_intrados": 40.75724662480386,
"haunch_penetration": 0.458739466544678,
"xy_adjustment": 3.2884
},
{
"name": "Apse_horseshoe_9_lower_1",
"surface": "Apse_radial_tier_1_6",
"mesh_intrados": 40.64041012964487,
"haunch_penetration": 0.45877362605975947,
"xy_adjustment": 2.2383
},
{
"name": "Ambulatory_0_upper_0_-1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.68624581077646,
"haunch_penetration": 0.3429978036878296,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_0_1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.26848049081182,
"haunch_penetration": 0.4561456359569007,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_1_-1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.468586834590212,
"haunch_penetration": 0.399227167976111,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_1_1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.701707381590168,
"haunch_penetration": 0.4578037218600173,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_2_-1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.78803801871472,
"haunch_penetration": 0.3618163258617386,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_2_1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 27.10791750595861,
"haunch_penetration": 0.3420668593810241,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_3_-1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 27.324315398101916,
"haunch_penetration": 0.45724873279415235,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_upper_3_1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.745636820122577,
"haunch_penetration": 0.41676834178941746,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_lower_-1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.046176942797594,
"haunch_penetration": 0.454599914969279,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_0_lower_1",
"surface": "Apse_radial_tier_0_0",
"mesh_intrados": 26.105392432884766,
"haunch_penetration": 0.4577080540935192,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_0_-1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.748850472412766,
"haunch_penetration": 0.3916197584470922,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_0_1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.51337834364344,
"haunch_penetration": 0.3831196839403539,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_1_-1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.550158909986465,
"haunch_penetration": 0.4590834651732294,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_1_1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.57968095751354,
"haunch_penetration": 0.45811174112033726,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_2_-1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.644132256908136,
"haunch_penetration": 0.36988200314055675,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_2_1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.830609749322385,
"haunch_penetration": 0.3929130372944769,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_3_-1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 27.292546506783445,
"haunch_penetration": 0.46025252492391644,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_upper_3_1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 27.18515985237068,
"haunch_penetration": 0.39388602545796303,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_1_lower_-1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 25.975318437821826,
"haunch_penetration": 0.4525484465868246,
"xy_adjustment": 0.0373
},
{
"name": "Ambulatory_1_lower_1",
"surface": "Apse_radial_tier_0_1",
"mesh_intrados": 26.134952337269997,
"haunch_penetration": 0.4527848437861408,
"xy_adjustment": 0.0373
},
{
"name": "Ambulatory_2_upper_0_-1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.95702574277874,
"haunch_penetration": 0.35788452902889745,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_0_1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.723075250831965,
"haunch_penetration": 0.38275004811621116,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_1_-1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.63306936866317,
"haunch_penetration": 0.4548804087545619,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_1_1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.539871010401537,
"haunch_penetration": 0.45981454998509363,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_2_-1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.40576476489157,
"haunch_penetration": 0.38181414884174103,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_2_1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.69520567992157,
"haunch_penetration": 0.371381040607659,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_3_-1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.89103762708094,
"haunch_penetration": 0.38150250053326573,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_upper_3_1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 27.316343030086482,
"haunch_penetration": 0.4595122817855213,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_2_lower_-1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 25.943826634517915,
"haunch_penetration": 0.45642515646095916,
"xy_adjustment": 0.1764
},
{
"name": "Ambulatory_2_lower_1",
"surface": "Apse_radial_tier_0_2",
"mesh_intrados": 26.073555812088248,
"haunch_penetration": 0.4298950538666162,
"xy_adjustment": 0.1764
},
{
"name": "Ambulatory_3_upper_0_-1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 27.28605561062198,
"haunch_penetration": 0.41609037573235597,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_0_1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.7848825140157,
"haunch_penetration": 0.367637621491113,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_1_-1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.704845488112532,
"haunch_penetration": 0.36064908795575334,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_1_1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.35556735864055,
"haunch_penetration": 0.3869956341179517,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_2_-1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.351166026973097,
"haunch_penetration": 0.39139696578540395,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_2_1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.69375923604825,
"haunch_penetration": 0.3717353400200345,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_3_-1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.805182937142398,
"haunch_penetration": 0.34733719836441423,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_upper_3_1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 27.284156499433763,
"haunch_penetration": 0.41798948692056825,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_3_lower_-1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 25.92746393705221,
"haunch_penetration": 0.4377281138614819,
"xy_adjustment": 0.35
},
{
"name": "Ambulatory_3_lower_1",
"surface": "Apse_radial_tier_0_3",
"mesh_intrados": 26.086157174944972,
"haunch_penetration": 0.4010177456710018,
"xy_adjustment": 0.35
},
{
"name": "Ambulatory_4_upper_0_-1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 27.31630435234416,
"haunch_penetration": 0.4595509595278422,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_0_1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.903617042856,
"haunch_penetration": 0.3689230847582081,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_1_-1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.70683587074337,
"haunch_penetration": 0.35975084978586125,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_1_1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.39494970275935,
"haunch_penetration": 0.39262921097395775,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_2_-1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.53975474486482,
"haunch_penetration": 0.4599308155218118,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_2_1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.633312598477033,
"haunch_penetration": 0.45463717894070044,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_3_-1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.73743534198107,
"haunch_penetration": 0.36838995696710697,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_upper_3_1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.950294011564093,
"haunch_penetration": 0.3646162602435439,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_4_lower_-1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 25.943962603278944,
"haunch_penetration": 0.4562891876999302,
"xy_adjustment": 0.1764
},
{
"name": "Ambulatory_4_lower_1",
"surface": "Apse_radial_tier_0_4",
"mesh_intrados": 26.099268059743995,
"haunch_penetration": 0.4041828062108692,
"xy_adjustment": 0.1764
},
{
"name": "Ambulatory_5_upper_0_-1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 27.179663048329004,
"haunch_penetration": 0.39938282949963266,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_0_1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 27.29348142135648,
"haunch_penetration": 0.4593176103508867,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_1_-1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.837098165159727,
"haunch_penetration": 0.3864246214571345,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_1_1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.638700944656815,
"haunch_penetration": 0.37531331539188173,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_2_-1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.579657418864727,
"haunch_penetration": 0.4581352797691487,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_2_1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.55041337467064,
"haunch_penetration": 0.45882900048905384,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_3_-1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.540048361942393,
"haunch_penetration": 0.3564496656413958,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_upper_3_1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.74725620905562,
"haunch_penetration": 0.3932140218042335,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_5_lower_-1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 25.97604749143814,
"haunch_penetration": 0.4518193929705099,
"xy_adjustment": 0.0373
},
{
"name": "Ambulatory_5_lower_1",
"surface": "Apse_radial_tier_0_5",
"mesh_intrados": 26.13600394261215,
"haunch_penetration": 0.4517332384439925,
"xy_adjustment": 0.0373
},
{
"name": "Ambulatory_6_upper_0_-1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.750150849009646,
"haunch_penetration": 0.4122543129023626,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_0_1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 27.324429680704213,
"haunch_penetration": 0.45713445019185883,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_1_-1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 27.10880403650264,
"haunch_penetration": 0.34118032883695903,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_1_1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.785351828216974,
"haunch_penetration": 0.3645025163595008,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_2_-1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.70163187159874,
"haunch_penetration": 0.4578792318514324,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_2_1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.469339899929,
"haunch_penetration": 0.3984741026373406,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_3_-1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.26844374223875,
"haunch_penetration": 0.45618238452997417,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_upper_3_1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.685872434085123,
"haunch_penetration": 0.34337118037915815,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_lower_-1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.046627683394135,
"haunch_penetration": 0.45414917437273417,
"xy_adjustment": 0.0
},
{
"name": "Ambulatory_6_lower_1",
"surface": "Apse_radial_tier_0_6",
"mesh_intrados": 26.104589252878696,
"haunch_penetration": 0.4585112340995927,
"xy_adjustment": 0.0
}
],
"revision": "capital and multiscale star pass after v8 exterior snapshot"
}{
"status": "Frozen new candidate banks handed off to materials agent for integration. Final GLB/export verification remains with root/runtime.",
"created_utc_date": "2026-10-01",
"scope": "Faithful distinct east-side glass photographic patterns. No geometry/runtime edits.",
"candidate_json": "assets/textures/east_bank_candidates.json",
"reproduction_script": "src/prepare_extra_east_banks.py",
"preview_script": "src/preview_extra_east_banks.py",
"new_banks": [
{
"id": "east_yellowgreen",
"texture": "assets/textures/glass_east_yellowgreen_meskens2016.jpg",
"size_px": [
2112,
2816
],
"sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"qa_preview": "screenshots/materials/additional_window_bank_east_yellowgreen_uv.png",
"identification": "East-aisle yellow/green bank left of pale-green bank in Ad Meskens 2016 interior10/11 and Richard Mortel 2016 photos4/5/10. Relative adjacency confirmed; absolute bay number unresolved.",
"limits": "Bottom visitor rail touches the original lowest glass edges; crops stop just inside observed glazing. Perspective, dimensional placement and lighting exposure approximate; source photograph contains brighter highlights in upper-right panes.",
"derivation": {
"method": "55 independently traced observed glass apertures. Rose hull from colour segmentation; capsules and circles manually traced against source. Per-aperture UV fan and affine projection basis; no whole-bank homography; no pattern invention, recolouring, text replacement, generative filling or pixel modification.",
"source_view_width_px": 960,
"coordinate_scale": 2.2,
"source_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"texture_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"geometry_limit": "Approximate source perspective correction and metric aperture placement; not surveyed."
}
},
{
"id": "east_palegreen",
"texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"size_px": [
1920,
2986
],
"sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"qa_preview": "screenshots/materials/additional_window_bank_east_palegreen_uv.png",
"identification": "East-aisle pale-green bank between yellowgreen and bluegreen banks in Ad Meskens 2016 interior11 and Richard Mortel2016 photos10/11/12; unique bottom blue-to-red capsules and Juan Sahagun oculus. Absolute bay number unresolved.",
"limits": "Mortel upper49 apertures preserve lower-exposure real motifs; six complete lower capsules come from the same identified bank in Meskens2016. Exact matching confirmed by unique blue/green/red lower pattern and Juan Sahagun oculus. Photograph lighting differs between source blocks, with residual highlights. No generated fill, individual-glass colour change or cross-bank substitution.",
"derivation": {
"method": "Lossless vertical pixel atlas: Mortel1920x1280 at[0,0], Meskens1920x1706 at[0,1280]. All49 upper/oculus/rose polygons refer to Mortel; only six bottom capsule polygons refer to Meskens, offset1280px. Each complete aperture belongs to one unchanged photo block. Affine per-aperture UV, no global homography.",
"atlas_license": "CC BY-SA4.0",
"atlas_license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"sources": [
{
"path": "assets/reference/artwork_east_mortel_2016_11_high.jpg",
"photographer": "Richard Mortel",
"license": "CC BY2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"offset_px": [
0,
0
],
"sha256": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105"
},
{
"path": "assets/reference/artwork_east_barcelona11_high.jpg",
"photographer": "Ad Meskens",
"license": "CC BY-SA4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"offset_px": [
0,
1280
],
"sha256": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83"
}
],
"atlas_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"underlying_artist": "Joan Vila-Grau, separately attributed glass designer; photographer licenses do not establish separate artwork copyright waiver."
}
}
],
"source_entries": [
{
"id": "east_painting04",
"kind": "photograph",
"title": "Stained Glass paintings at Sagrada Familia, Barcelona 04.jpg",
"local_path": "assets/reference/artwork_east_painting04_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Stained_Glass_paintings_at_Sagrada_Familia%2C_Barcelona_04.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/1/1b/Stained_Glass_paintings_at_Sagrada_Familia%2C_Barcelona_04.jpg/1920px-Stained_Glass_paintings_at_Sagrada_Familia%2C_Barcelona_04.jpg",
"photographer": "Ank Kumar",
"capture_date": "2014-09-13 11:35:10",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ank Kumar / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
2880
],
"sha256": "9f999618cff0e39213ba63a085b0e3cd59206a07cbbb37401ff7e7974f46166a",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_painting04.source.html",
"use_status": "Reference-only cross-check for Mortel blue bank; bottom visitor posters prevent using this full photo as final texture.",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_2016_mortel2",
"kind": "photograph",
"title": "Sagrada Famiia, stained glass windows (2) (31240948686).jpg",
"local_path": "assets/reference/artwork_east_2016_mortel2_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/b/b1/Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg/3840px-Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 11:18",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
3840,
2560
],
"sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_2016_mortel2.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_barcelona10",
"kind": "photograph",
"title": "Barcelona Sagrada Familia interior 10.jpg",
"local_path": "assets/reference/artwork_east_barcelona10_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_10.jpg",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/5/5c/Barcelona_Sagrada_Familia_interior_10.jpg",
"photographer": "Ad Meskens",
"capture_date": "2016-05-23 18:24:31",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
2112,
2816
],
"sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre. Yellow-green bank next to pale-green bank; source lowest rail grazes final pane edges, traced slightly inside glass.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_barcelona10.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_barcelona11",
"kind": "photograph",
"title": "Barcelona Sagrada Familia interior 11.jpg",
"local_path": "assets/reference/artwork_east_barcelona11_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_11.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/e/e6/Barcelona_Sagrada_Familia_interior_11.jpg/1920px-Barcelona_Sagrada_Familia_interior_11.jpg",
"photographer": "Ad Meskens",
"capture_date": "2016-05-23 18:25:25",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
1706
],
"sha256": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre. Pale-green bank between yellow-green and bluegreen banks; source upper-pane highlights are clipped and remain a documented fidelity limit.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_barcelona11.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_mortel_2016_11",
"kind": "photograph",
"title": "Sagrada Familia, stained glass windows (11) (31150428592).jpg",
"local_path": "assets/reference/artwork_east_mortel_2016_11_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/2/2e/Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg/1920px-Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 10:58",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
1920,
1280
],
"sha256": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_mortel_2016_11.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
}
],
"relative_order": {
"interior_facing_photo_left_to_right": [
"east_yellowgreen",
"east_palegreen",
"unimplemented Chartres/Lourdes bluegreen bank",
"east_blue_mortel2016"
],
"evidence": [
"assets/reference/artwork_east_mortel_2016_10.jpg",
"assets/reference/artwork_east_barcelona09.jpg",
"assets/reference/artwork_east_barcelona10.jpg",
"assets/reference/artwork_east_barcelona11.jpg"
],
"limits": "Absolute bay numbers and the original Ribeiro bank relation to this chain remain unestablished; model assignment must be marked approximate."
},
"rejected_shortcuts": [
"Did not tint or randomize repeated glass.",
"Did not substitute another bank for unseen details.",
"Did not retain visitor-poster photography on the blue bank (materials chose the matched Mortel view).",
"No new services, authentication, purchases, or GPU workloads."
],
"validation": {
"apertures_per_new_bank": 55,
"unique_rose_sectors_per_bank": 12,
"cpu_uv_images_visually_inspected": true,
"atlas_mortel_block_pixel_identical": true,
"atlas_meskens_block_pixel_identical": true,
"preview_type": "CPU geometry/UV rasterization; not Cycles render or real-time screenshot."
},
"detail_review": "docs/YELLOWGREEN_DETAIL_VALIDATION.json: capsule4 red circular detail retained after independent-photo and primary artist evidence review; crown-glass identity plausible but not individually proven."
}{
"method": "CPU AABB/plane proof using exact generated box parameters; final Blender scene ray audit still required after integration",
"boxes_source_frame": [
{
"name": "Nativity_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
]
},
{
"name": "Passion_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
-29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
]
}
],
"formerly_missed_rays": [
{
"pixel": [
705,
610
],
"original_no_hit_to_m": 600,
"predicted_hit_object": "Nativity_inner_weather_backing_above_entrance_clearance",
"distance_m": 25.47257949195049,
"predicted_world_hit": [
48.0400842545188,
-29.450000000000003,
19.21943023841065
]
},
{
"pixel": [
710,
590
],
"original_no_hit_to_m": 600,
"predicted_hit_object": "Nativity_inner_weather_backing_above_entrance_clearance",
"distance_m": 25.464967060909384,
"predicted_world_hit": [
47.94841317203567,
-29.450000000000003,
19.543294101312537
]
}
],
"entrance_clearance_m": 10,
"ground_routes_and_existing_colliders_changed": false,
"source_photo_context": [
"assets/reference/qa_nativity_front.jpg",
"assets/reference/qa_passion_front.jpg"
],
"evidence_limits": "Facade photographs show enclosed sculptural masonry backing. They do not establish exact inner-wall height/layout or hidden windows. This plain recessed weather layer and its dimensions are an explicit reconstruction inference, not new claimed ornament or measured survey.",
"added_colliders_source_frame": [
{
"type": "box",
"name": "Nativity_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
],
"walkable_floor": false
},
{
"type": "box",
"name": "Passion_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
-29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
],
"walkable_floor": false
}
],
"collider_validation": {
"count": 2,
"exact_geometry_bounds_match": true,
"minimum_z_m": 10,
"maximum_z_m": 30.5,
"ground_entrance_clearance_preserved": true,
"runtime_path": "Normal walking StaticBody3D boxes only. Existing inspection-flight noclip behavior is preserved; no additional camera or flight restriction.",
"inspection_flight_noclip_preserved": true
},
"existing_colliders_changed": false,
"integration_validation": "Parent/runtime to verify scene rays and matching box-shape coordinates; no flight movement blocking intended."
}
{
"status": "Resolved: retain unchanged photographed detail; not a transient foreground occluder.",
"scope": "east_yellowgreen bottom register capsule4 (leftmost of right triplet), upper red circular detail",
"observations": [
"Same circular centre and surrounding red/orange glass fragment occur in the May2016 Meskens photo and November2016 Mortel photos from different viewpoints.",
"The feature remains aligned with the same stained-glass lead pattern. Adjacent bottom capsules5 and6 have comparable small circular features.",
"The railing moves across the lower panes in the source views, but the upper circular feature remains fixed to its glass location."
],
"interpretation": "A fixed detail of the installed stained glass, visually consistent with crown/bottle glass. Exact identity/function of this particular circle is inferred, not independently catalogued. There is no evidence supporting removal as a camera, visitor, poster or loose equipment.",
"primary_artist_evidence": {
"url": "https://www.vidimus.org/issue-40/feature-114/",
"title": "Glazing the Sagrada Família: Exclusive Interview With Joan Vila Grau",
"interviewer": "Margaret Martlew",
"quote_1": "I have not used crowns (bottle glass) in the white glass",
"quote_2": "I used crowns because they catch the light",
"limits": "Artist confirms technique at Sagrada Familia; interview does not individually identify this capsule detail."
},
"action": "No texture, UV, geometry or source-pixel changes. Preserve observed real detail.",
"source_comparison": [
{
"path": "assets/reference/artwork_east_barcelona10_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_10.jpg",
"capture_date": "2016-05-23 18:24:31",
"photographer": "Ad Meskens",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"crop_at_960px_width": [
420,
860,
565,
1018
],
"original_scale": 2.2
},
{
"path": "assets/reference/artwork_east_mortel_2016_5_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%285%29_%2831150758322%29.jpg",
"capture_date": "2016-11-12 10:56",
"photographer": "Richard Mortel",
"license": "CC BY2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"crop_at_960px_width": [
380,
495,
560,
637
],
"original_scale": 4
},
{
"path": "assets/reference/artwork_east_mortel_2016_4.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%284%29_%2831150823672%29.jpg",
"capture_date": "2016-11-12 10:56",
"photographer": "Richard Mortel",
"license": "CC BY2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"crop_at_960px_width": [
375,
505,
550,
637
],
"original_scale": 1
}
],
"comparison_image": "assets/reference/artwork_yellowgreen_round_detail_comparison.png",
"comparison_derivative_license": "CC BY-SA4.0",
"comparison_modifications": "Analytical cropping, resizing and side-by-side layout with text captions. No retouching or colour modification. Reference-only, not used in exported model.",
"texture_sha256_unchanged": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98"
}{
"mode": "CPU only / no rendering / no source model saved",
"new_closed_shallow_faces": 16,
"local_capital_lens": {
"base_color": [
0.04800000041723251,
0.052000001072883606,
0.04800000041723251,
1.0
],
"roughness": 0.1899999976158142,
"emission_strength": 0.0
},
"original_glass_white_unchanged": true,
"objects": 26
}{
"schema_version": 1,
"scope": "Sagrada Familia artwork references; task 6, 2026-10-01",
"entries": [
{
"id": "glass_east_2014_ribeiro",
"kind": "photograph",
"title": "Windows in the aisles - Interior of the Sagrada Família - Barcelona 2014 (2 crop).JPG",
"local_path": "assets/reference/artwork_glass_east_2014_ribeiro.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%282_crop%29.JPG",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/4/4d/Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%282_crop%29.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"capture_date": "2014-02-11 09:41:34",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "© José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"dimensions_px": [
1133,
2978
],
"sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"visually_inspected": true,
"location_evidence": "East aisle; Commons category, precise bay not established",
"observations": "Strong usable entire bank; three registers of six capsule windows + oculi + twelve-petal rose. Near front view. Blue/violet top, multicolour accents in lower panels. Bottom rail occludes tiny lower edge.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "glass_west_2014_ribeiro_3",
"kind": "photograph",
"title": "Windows in the aisles - Interior of the Sagrada Família - Barcelona 2014 (3).JPG",
"local_path": "assets/reference/artwork_glass_west_2014_ribeiro_3.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/9/9f/Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"capture_date": "2014-02-11 09:45:18",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "© José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"dimensions_px": [
2048,
3072
],
"sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"visually_inspected": true,
"location_evidence": "West aisle; Commons category and warm colour appearance, precise bay not established",
"observations": "Strong usable entire bank; three registers of six capsule windows + oculi + twelve-petal rose. Mild upward perspective. Uppermost rose petal slightly clipped by frame, avoid fabricating unseen portion as traced. Red/orange/yellow dominant with rare blue/green accent fragments.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "glass_west_2014_ribeiro_1",
"kind": "photograph",
"title": "Windows in the aisles - Interior of the Sagrada Família - Barcelona 2014.JPG",
"local_path": "assets/reference/artwork_glass_west_2014_ribeiro_1.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014.JPG",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/4/40/Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"capture_date": "2014:02:11 09:41:26",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "© José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"dimensions_px": [
2048,
3072
],
"sha256": "ca5aa85acf2e2b2c6a729758f94524c534e9f0579db73e3ec6719200a73050ad",
"visually_inspected": true,
"location_evidence": "Location unresolved; Commons West Aisle category but visually multicolour/cool rose",
"observations": "Research only pending location; full bank with one bottom pane boarded. Do not copy boarded pane into current-state model without current evidence.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "glass_west_2015_alvesgaspar",
"kind": "photograph",
"title": "Sagrada Familia March 2015-18a.jpg",
"local_path": "assets/reference/artwork_glass_west_2015_alvesgaspar.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia_March_2015-18a.jpg",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/f/f4/Sagrada_Familia_March_2015-18a.jpg",
"photographer": "Alvesgaspar",
"capture_date": "2015-03-06 16:50:26",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Alvesgaspar / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
6013,
7959
],
"sha256": "35c0cf8403edf6a6a48ee0689534423215fcacbfe7e9f37047f9fb9c1168693e",
"visually_inspected": true,
"location_evidence": "West aisle; Commons category",
"observations": "Colour-light reference only. High-angle stitched panorama; column and gallery net occlusions prevent clean texture use. Not evidence of 2026 gallery nets.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_angel_harp_2014",
"kind": "photograph",
"title": "Angels - Nativity Facade - Sagrada Família - Barcelona 2014 (3).JPG",
"local_path": "assets/reference/artwork_sculpture_angel_harp_2014.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Angels_-_Nativity_Facade_-_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"source_snapshot": "assets/reference/artwork_sculpture_angel_harp_2014.source.html",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/c/ce/Angels_-_Nativity_Facade_-_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"sculptor": "Etsuro Sotoo",
"artwork_authorship_source_id": "sotoo_primary",
"capture_date": "2014-02-11 10:32:17",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"dimensions_px": [
2048,
3072
],
"sha256": "d2a55a0b3eeda32b44958b8ee0fed5a53b960720f9a74c072f23b3221df95cfd",
"visually_inspected": true,
"location_evidence": "Nativity Charity portal musician ensemble; exact harp lateral position not conclusively established in this closeup",
"observations": "Full seated harp player. Naturalistic face and articulated hands; harp taller than seated body, in viewer-left of this crop. Flowing folded robe, not angular Subirachs manner.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_choir_2016",
"kind": "photograph",
"title": "Sagrada Familia, Nativity facade (15) (31133090922).jpg",
"local_path": "assets/reference/artwork_sculpture_choir_2016.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2815%29_%2831133090922%29.jpg",
"source_snapshot": "assets/reference/artwork_sculpture_choir_2016.source.html",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/b/b6/Sagrada_Familia%2C_Nativity_facade_%2815%29_%2831133090922%29.jpg",
"photographer": "Richard Mortel",
"sculptor": "Etsuro Sotoo",
"artwork_authorship_source_id": "sotoo_primary",
"capture_date": "2016-11-12 10:31:32",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
5954,
3930
],
"sha256": "81a463f74225ebd43b3ec3248eb68e24af8ab5ca77ce17f11c7c5a0a9188582a",
"visually_inspected": true,
"location_evidence": "Nativity Charity portal, immediately above central Holy Family, child figures straddle centre Star trail",
"observations": "Nine visibly distinct child angels in left four/right five clusters, mixed seated and standing singing/gesturing poses. Preserve their different postures.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_judas",
"kind": "photograph",
"title": "Der Judaskuss und das magische Quadrat von Josep Maria Subirachs.jpg",
"local_path": "assets/reference/artwork_sculpture_judas.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Der_Judaskuss_und_das_magische_Quadrat_von_Josep_Maria_Subirachs.jpg",
"source_snapshot": "assets/reference/artwork_sculpture_judas.source.html",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/3/3f/Der_Judaskuss_und_das_magische_Quadrat_von_Josep_Maria_Subirachs.jpg",
"photographer": "Karsten Knöfler",
"sculptor": "Josep Maria Subirachs",
"artwork_authorship_source_id": "passion_official",
"capture_date": "2014-04-02 13:44:16",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 3.0",
"license_url": "https://creativecommons.org/licenses/by/3.0/",
"required_attribution": "Karsten Knöfler / Wikimedia Commons / CC BY 3.0",
"dimensions_px": [
2048,
1362
],
"sha256": "5ea22bfb168f2088c55063676bc95228d8c07e1af285089bfda54a11294b9a08",
"visually_inspected": true,
"location_evidence": "Passion facade lower tier, Kiss of Judas beside magic square",
"observations": "Two close angular faces and enveloping long triangular drapery. Square viewer-left reads rows 1,14,14,4 / 11,7,6,9 / 8,10,10,5 / 13,2,3,15. Snake at foot.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_nativity_2023",
"kind": "photograph",
"title": "Nativity Façade Centerpiece, Sagrada Família, Barcelona, 2023.jpg",
"local_path": "assets/reference/artwork_sculpture_nativity_2023.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Nativity_Fa%C3%A7ade_Centerpiece%2C_Sagrada_Fam%C3%ADlia%2C_Barcelona%2C_2023.jpg",
"source_snapshot": "assets/reference/artwork_sculpture_nativity_2023.source.html",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/3/3f/Nativity_Fa%C3%A7ade_Centerpiece%2C_Sagrada_Fam%C3%ADlia%2C_Barcelona%2C_2023.jpg",
"photographer": "Julian Lupyan",
"sculptor": "Jaume Busquets",
"artwork_authorship_source_id": "nativity_official",
"capture_date": "2023-08-04 09:22:34",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC0 1.0",
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
"required_attribution": "Julian Lupyan / Wikimedia Commons / CC0 1.0",
"dimensions_px": [
5706,
3873
],
"sha256": "374a96494b92b42a3c0b4724eec901ebc232d8b4aa4beb63d34baee97076fcf7",
"visually_inspected": true,
"location_evidence": "Nativity Charity portal central column capital, between doors",
"observations": "Ultra-low angle reference of Holy Family beneath angel choir; metric reconstruction should prefer 2016 front view. Commons file explicitly includes Spain freedom-of-panorama rationale for photograph.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_angel_mandolin_2016",
"kind": "photograph",
"title": "Sagrada Familia, Nativity facade (18) (30489800873).jpg",
"local_path": "assets/reference/artwork_sculpture_angel_mandolin_2016.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2818%29_%2830489800873%29.jpg",
"source_snapshot": "assets/reference/artwork_sculpture_angel_mandolin_2016.source.html",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/1/1a/Sagrada_Familia%2C_Nativity_facade_%2818%29_%2830489800873%29.jpg",
"photographer": "Richard Mortel",
"sculptor": "Etsuro Sotoo",
"artwork_authorship_source_id": "sotoo_primary",
"capture_date": "2016-11-12 10:31:41",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
6000,
4000
],
"sha256": "d7803da295733c9b2197cde34053f7b3b5f1a2603ca0de0bafa19ef9fca8ff2c",
"visually_inspected": true,
"location_evidence": "Nativity Charity portal LEFT of central child choir as viewed from outside; choir visible at right edge",
"observations": "Violin player on image-left at higher base; pear-shaped mandolin/lute player on image-right lower. Head and instrument gestures face inward. Lute has short neck and broad pear body, not waisted guitar.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_nativity_2016",
"kind": "photograph",
"title": "Sagrada Familia, Nativity facade (16) (31153735122).jpg",
"local_path": "assets/reference/artwork_sculpture_nativity_2016.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2816%29_%2831153735122%29.jpg",
"source_snapshot": "assets/reference/artwork_sculpture_nativity_2016.source.html",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/b/b3/Sagrada_Familia%2C_Nativity_facade_%2816%29_%2831153735122%29.jpg",
"photographer": "Richard Mortel",
"sculptor": "Jaume Busquets",
"artwork_authorship_source_id": "nativity_official",
"capture_date": "2016-11-12 10:31:35",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
6000,
4000
],
"sha256": "eeacd7a710cae5297bff8076a21d37574de7b57d2ad5aa94da84565848a35145",
"visually_inspected": true,
"location_evidence": "Nativity Charity portal centre column capital, between double doors",
"observations": "Excellent near-front Holy Family: standing Joseph viewer-left behind, hooded Mary seated/front-right, upright baby over cradle, ox viewer-left, donkey viewer-right. Naturalistic anatomy and broad soft drapery.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Original downloaded unchanged"
},
{
"id": "sculpture_crucifixion_2014",
"kind": "photograph",
"title": "Crucifixion - Sagrada Familia - Barcelona 2014.JPG",
"local_path": "assets/reference/artwork_sculpture_crucifixion_2014.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"source_snapshot": "assets/reference/artwork_sculpture_crucifixion_2014.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/a/ab/Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG/960px-Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"sculptor": "Josep Maria Subirachs",
"artwork_authorship_source_id": "passion_official",
"capture_date": "2014-02-11 09:15:09",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"dimensions_px": [
960,
1440
],
"sha256": "e74947849029a8d0d1236dabaa841f934bb6df2c2a74788040362f9c8911cc5e",
"visually_inspected": true,
"location_evidence": "Passion facade high central tier above Veronica",
"observations": "Angular naked Christ, raised V-shaped arms, bowed head and comb-like crown. Dark I-section beam cross behind. Three mourners viewer-left; skull, tomb opening and round stone on viewer-right. This is photographed sculpture, not an inferred human pose.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Wikimedia-provided thumbnail; no local edits. Original download throttled HTTP429; provider suggested thumbnail route."
},
{
"id": "sculpture_veronica_2014",
"kind": "photograph",
"title": "La Veronica - Sagrada Familia - Barcelona 2014.JPG",
"local_path": "assets/reference/artwork_sculpture_veronica_2014.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"source_snapshot": "assets/reference/artwork_sculpture_veronica_2014.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/f/f5/La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG/1920px-La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"sculptor": "Josep Maria Subirachs",
"artwork_authorship_source_id": "passion_official",
"capture_date": "2014-02-11 09:15:26",
"capture_date_note": "Author-supplied Commons date or EXIF; camera clock not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"dimensions_px": [
1920,
1280
],
"sha256": "f84a07f041d5557c7f3e543f40fbcf335e09aeacbc7cef9f7255e28f1fcff8d9",
"visually_inspected": true,
"location_evidence": "Passion facade centre tier below Crucifixion",
"observations": "Blank-faced hooded Veronica, concentric curved folds on upper garment, broad cloth with detailed Christ face. Two helmeted soldiers immediately viewer-left, angular draped male farther left. Source only frontal visible surfaces; reverse geometry unknown.",
"permitted_use": "Photograph reusable subject to stated license. Local modeling reference. Credits and changed-file declaration required for derivatives; share-alike where specified.",
"underlying_artwork_note": "Sculpture copyright separate from photograph; outdoor public-facing photographs are hosted by Commons, and Nativity2023 page explicitly documents Spain FoP. Artist authorship does not imply release of unrestricted 3D reproduction rights.",
"changes": "Wikimedia-provided thumbnail; no local edits. Original download throttled HTTP429; provider suggested thumbnail route."
},
{
"id": "glass_west_2015_bracons_aisles",
"kind": "photograph",
"title": "Barcelona. Basilica of La Sagrada Família. Stained glass windows of the aisles. (18561136293).jpg",
"local_path": "assets/reference/artwork_glass_west_2015_bracons_aisles.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona._Basilica_of_La_Sagrada_Fam%C3%ADlia._Stained_glass_windows_of_the_aisles._(18561136293).jpg",
"source_snapshot": "assets/reference/artwork_glass_west_2015_bracons_aisles.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/3/36/Barcelona._Basilica_of_La_Sagrada_Fam%C3%ADlia._Stained_glass_windows_of_the_aisles._%2818561136293%29.jpg/3840px-Barcelona._Basilica_of_La_Sagrada_Fam%C3%ADlia._Stained_glass_windows_of_the_aisles._%2818561136293%29.jpg",
"photographer": "Catalan Art & Architecture Gallery (Josep Bracons)",
"capture_date": "2015-06-14 18:21",
"capture_date_note": "Commons/Flickr photographer supplied, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 2.0",
"license_url": "https://creativecommons.org/licenses/by-sa/2.0/",
"required_attribution": "Catalan Art & Architecture Gallery (Josep Bracons) / Wikimedia Commons / CC BY-SA 2.0",
"dimensions_px": [
3840,
2550
],
"original_dimensions_px": [
4288,
2848
],
"sha256": "414f7ac4721fc2791d1fc0cc2beae93be8a26018384f619494725fd78efb9bd1",
"visually_inspected": true,
"location_evidence": "West aisle category; three consecutive warm banks. Centre matches Ribeiro2014_3 pattern.",
"observations": "Steep oblique view, receding left. Centre matches warm bank. Right bank cyan-green right half and orange left half; top rose and bottom register clipped. Leftmost red-dominant bank partly occluded by column. Supports relative ordering and partial additional patterns; insufficient for three complete faithful banks.",
"permitted_use": "Local reference; photo reuse under CC BY-SA2.0 with credits+modifications declaration.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau; photographer license does not itself document separate artist waiver.",
"changes": "Wikimedia 3840px thumbnail, no local edits. Original4288px request HTTP429; provider suggested thumbnail route."
},
{
"id": "glass_candidate_west_mortel6",
"kind": "photograph",
"title": "Sagrada Famiia, stained glass windows (6) (31240669306).jpg",
"local_path": "assets/reference/artwork_glass_candidate_west_mortel6.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%286%29_%2831240669306%29.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_west_mortel6.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/c/c1/Sagrada_Famiia%2C_stained_glass_windows_%286%29_%2831240669306%29.jpg/960px-Sagrada_Famiia%2C_stained_glass_windows_%286%29_%2831240669306%29.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/c/c1/Sagrada_Famiia%2C_stained_glass_windows_%286%29_%2831240669306%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 11:21",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
3840,
2560
],
"sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"visually_inspected": true,
"location_evidence": "Red warm bank, immediately left of Ribeiro warm2014_3 by comparison to Bracons2015 panorama.",
"observations": "Same bank as Alikhan2022. Full twelve-petal rose and top two capsule registers visible. Lowest register is outside frame. Rose/source pairing established by matching pane shapes, not colour alone.",
"mapping_scope": "Second distinct warm bank: use visible rose only with separately recorded same-bank capsule mapping.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_west_mortel7",
"kind": "photograph",
"title": "Sagrada Famiia, stained glass windows (7) (30469001873).jpg",
"local_path": "assets/reference/artwork_glass_candidate_west_mortel7.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%287%29_%2830469001873%29.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_west_mortel7.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/3/37/Sagrada_Famiia%2C_stained_glass_windows_%287%29_%2830469001873%29.jpg/960px-Sagrada_Famiia%2C_stained_glass_windows_%287%29_%2830469001873%29.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/3/37/Sagrada_Famiia%2C_stained_glass_windows_%287%29_%2830469001873%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 11:22",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
960,
640
],
"sha256": "9fd14fda9c694f79488878066f3f7830e746a4a4cae671d162282c59e88cfaf9",
"visually_inspected": true,
"location_evidence": "Ribeiro warm2014_3 centre; right greener bank partly visible.",
"observations": "Mostly duplicate of existing warm bank; adjacent green/cyan bank cropped.",
"mapping_scope": "Context/order reference; no extra complete bank.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_west_mortel8",
"kind": "photograph",
"title": "Sagrada Familia, stained glass windows (8) (31150596812).jpg",
"local_path": "assets/reference/artwork_glass_candidate_west_mortel8.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%288%29_%2831150596812%29.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_west_mortel8.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/5/59/Sagrada_Familia%2C_stained_glass_windows_%288%29_%2831150596812%29.jpg/960px-Sagrada_Familia%2C_stained_glass_windows_%288%29_%2831150596812%29.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/5/59/Sagrada_Familia%2C_stained_glass_windows_%288%29_%2831150596812%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 10:57",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
960,
640
],
"sha256": "cff109d56ec3666ab1d311efeba32107f76ba70d7e1daad5f87e0761f2319b48",
"visually_inspected": true,
"location_evidence": "Warm west side viewed obliquely across nave.",
"observations": "Columns and gallery occlude glazing. Distinct warm-colour regions and repeated structural bays visible.",
"mapping_scope": "Whole-side context and bank order; not a direct texture.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_west_2022",
"kind": "photograph",
"title": "SagradaFamilia Oct6 2022.jpg",
"local_path": "assets/reference/artwork_glass_candidate_west_2022.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:SagradaFamilia_Oct6_2022.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_west_2022.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/2/29/SagradaFamilia_Oct6_2022.jpg/960px-SagradaFamilia_Oct6_2022.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/2/29/SagradaFamilia_Oct6_2022.jpg",
"photographer": "Anusha Alikhan",
"capture_date": "2022-10-06 11:59:30",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Anusha Alikhan / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
2560
],
"sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"visually_inspected": true,
"location_evidence": "Red warm bank immediately left of Ribeiro2014_3; matched to Mortel6 and Bracons panorama.",
"observations": "Near-front whole three-by-six capsule bank. Topmost rose area partly blocked by gallery. First capsule on left of middle register has blue bottom. Foreground temporary Evangelist models/signs are dated exhibits, not permanent building fabric.",
"mapping_scope": "Second distinct warm bank, eighteen visible capsules; pair rose with Mortel6 only if each surface source is recorded. Do not copy temporary displays.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_interior_ospingou",
"kind": "photograph",
"title": "Sagrada Familia interior.jpg",
"local_path": "assets/reference/artwork_glass_candidate_interior_ospingou.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia_interior.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_interior_ospingou.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/4/41/Sagrada_Familia_interior.jpg/1920px-Sagrada_Familia_interior.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/4/41/Sagrada_Familia_interior.jpg",
"photographer": "Ospingou",
"capture_date": "2022-10-06 11:49:27",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ospingou / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
2560
],
"sha256": "582b161da6183c1fa5739d8a6a9232e188860e258d8a2f2d63532c16a51c4f1f",
"visually_inspected": true,
"location_evidence": "Precise facade/bay unverified. Spiral stone stair visible at image right.",
"observations": "Blue/green/orange bank with sixteen-petal rose, pointed lancets and nested double pointed arches. It is structurally different from the aisle capsule-bank template.",
"mapping_scope": "Distinct bank usable with its own opening geometry; do not stretch onto capsule/12-petal template.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_2023_2",
"kind": "photograph",
"title": "Stained-glass windows of the Sagrada Família 2023 2.jpg",
"local_path": "assets/reference/artwork_glass_candidate_2023_2.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_2.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_2023_2.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/d/d6/Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_2.jpg/1920px-Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_2.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/d/d6/Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_2.jpg",
"photographer": "Smiley.toerist",
"capture_date": "2023-06-04 12:22:11",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Smiley.toerist / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
1280
],
"sha256": "9fc32a54f1e4290f8b10ae1e373818b7e57c5259766331165dd7df14a6362a1c",
"visually_inspected": true,
"location_evidence": "Cool side interior/nave; precise individual bay unverified.",
"observations": "Wide image shows cool glazing, upper oval clerestory windows, gallery and column relations; substantial obstruction and exposure variation.",
"mapping_scope": "Colour, gallery and upper-oculus context; not clean isolated texture.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_2017_02",
"kind": "photograph",
"title": "Barcelona Sagrada Familia Interior 2017 02.jpg",
"local_path": "assets/reference/artwork_glass_candidate_2017_02.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_Interior_2017_02.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_2017_02.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/8/8e/Barcelona_Sagrada_Familia_Interior_2017_02.jpg/960px-Barcelona_Sagrada_Familia_Interior_2017_02.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/8/8e/Barcelona_Sagrada_Familia_Interior_2017_02.jpg",
"photographer": "Ad Meskens",
"capture_date": "2017-05-15 18:48:12",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
960,
1280
],
"sha256": "ea2dd382464afba48970519e5866836a0420ab60d3ea56860672459b39d48b5c",
"visually_inspected": true,
"location_evidence": "Same red warm bank as Alikhan2022, confirmed by pane motifs.",
"observations": "Oblique bank view with strong warm light. Source is same bank, not an additional design.",
"mapping_scope": "Lighting and cross-date corroboration.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_2017_03",
"kind": "photograph",
"title": "Barcelona Sagrada Familia Interior 2017 03.jpg",
"local_path": "assets/reference/artwork_glass_candidate_2017_03.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_Interior_2017_03.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_2017_03.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/c/c6/Barcelona_Sagrada_Familia_Interior_2017_03.jpg/960px-Barcelona_Sagrada_Familia_Interior_2017_03.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/c/c6/Barcelona_Sagrada_Familia_Interior_2017_03.jpg",
"photographer": "Ad Meskens",
"capture_date": "2017-05-15 18:48:20",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
960,
1280
],
"sha256": "05458b93ad02bbad1d0747d2d1e6ea78adfc2b5ea2d2fec2c5d6092946cb912f",
"visually_inspected": true,
"location_evidence": "Same red warm bank as Alikhan2022, confirmed by pane motifs.",
"observations": "Oblique bank view with strong warm light. Source is same bank, not an additional design.",
"mapping_scope": "Lighting and cross-date corroboration.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_2017_04",
"kind": "photograph",
"title": "Barcelona Sagrada Familia Interior 2017 04.jpg",
"local_path": "assets/reference/artwork_glass_candidate_2017_04.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_Interior_2017_04.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_2017_04.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/8/8a/Barcelona_Sagrada_Familia_Interior_2017_04.jpg/960px-Barcelona_Sagrada_Familia_Interior_2017_04.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/8/8a/Barcelona_Sagrada_Familia_Interior_2017_04.jpg",
"photographer": "Ad Meskens",
"capture_date": "2017-05-15 18:48:22",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
960,
1280
],
"sha256": "657344e0467dd79f1963ad5098a3443cb92db51de133bda6c53d63ab16d449b7",
"visually_inspected": true,
"location_evidence": "Same red warm bank as Alikhan2022, confirmed by pane motifs.",
"observations": "Oblique bank view with strong warm light. Source is same bank, not an additional design.",
"mapping_scope": "Lighting and cross-date corroboration.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_stained04",
"kind": "photograph",
"title": "Sagrada Familia Stained Glass 04.jpg",
"local_path": "assets/reference/artwork_glass_candidate_stained04.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia_Stained_Glass_04.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_stained04.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/c/ca/Sagrada_Familia_Stained_Glass_04.jpg/960px-Sagrada_Familia_Stained_Glass_04.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/c/ca/Sagrada_Familia_Stained_Glass_04.jpg",
"photographer": "Ank Kumar",
"capture_date": "2014-09-13 11:05:47",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ank Kumar / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
960,
1440
],
"sha256": "7dc26519937db0903f42a67cf6e6cbc01df043f189c0086c1dec69c2b9706e5e",
"visually_inspected": true,
"location_evidence": "Same warm bank as Ribeiro2014_3, extreme upward view.",
"observations": "Foreshortening and lower blue sign reduce texture utility. No additional bank pattern.",
"mapping_scope": "Secondary same-bank correspondence.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_2023_3",
"kind": "photograph",
"title": "Stained-glass windows of the Sagrada Família 2023 3.jpg",
"local_path": "assets/reference/artwork_glass_candidate_2023_3.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_2023_3.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/8/85/Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg/3840px-Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/8/85/Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg",
"photographer": "Smiley.toerist",
"capture_date": "2023-06-04 12:23:10",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Smiley.toerist / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
3840,
2560
],
"sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"visually_inspected": true,
"location_evidence": "Warm side panorama. Ribeiro2014_3 at centre-left; next right bank matches Bracons right bank.",
"observations": "At 3840px, next-right bank full twelve-petal rose and all eighteen capsules are largely visible. Right half contains green/cyan, left half orange. Bottom-right edge/rail crop remains; steep perspective. Another green bank at far right is column-occluded.",
"mapping_scope": "Third distinct warm-side bank candidate with mostly visible geometry. Complete only observed surfaces; document any missing edge. Pair same bank with Bracons2015 where useful.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_2019_32",
"kind": "photograph",
"title": "Barcelona Sagrada Familia 2019 32.jpg",
"local_path": "assets/reference/artwork_glass_candidate_2019_32.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_2019_32.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_2019_32.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/b/b8/Barcelona_Sagrada_Familia_2019_32.jpg/960px-Barcelona_Sagrada_Familia_2019_32.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/b/b8/Barcelona_Sagrada_Familia_2019_32.jpg",
"photographer": "Ad Meskens",
"capture_date": "2019-07-22 17:37:48",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
960,
1923
],
"sha256": "14e05c3e44917918ea4b0bb1dc2b01746f9b6307fde0590aec56deaafb688f0f",
"visually_inspected": true,
"location_evidence": "Upper oval clerestory window; precise bay unverified.",
"observations": "Close-up yellow/white/ochre glazing with real leadwork and horizontal support bars. Distinct from tall aisle bank.",
"mapping_scope": "Actual upper oval pattern; placement and reverse side unverified.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glass_candidate_stained5",
"kind": "photograph",
"title": "Sagrada Familia Stained Glass 5 (5839063649).jpg",
"local_path": "assets/reference/artwork_glass_candidate_stained5.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia_Stained_Glass_5_%285839063649%29.jpg",
"source_snapshot": "assets/reference/artwork_glass_candidate_stained5.source.html",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/2/25/Sagrada_Familia_Stained_Glass_5_%285839063649%29.jpg/960px-Sagrada_Familia_Stained_Glass_5_%285839063649%29.jpg",
"original_url": "https://upload.wikimedia.org/wikipedia/commons/2/25/Sagrada_Familia_Stained_Glass_5_%285839063649%29.jpg",
"photographer": "Tony Hisgett",
"capture_date": "2011-06-08 09:24",
"capture_date_note": "Commons author supplied date/EXIF or Flickr date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Tony Hisgett / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
960,
2270
],
"sha256": "dd87bf5645b42b3a41ed32285a19ed3eb23a2756c546cf0bfd7a1f6f5a86b8c3",
"visually_inspected": true,
"location_evidence": "Same multicolour bank as Ribeiro2014_1, verified matching rose and panes; precise bay unverified.",
"observations": "Full twelve-petal rose, circles and eighteen capsules. At 2011 all capsules are glazed; Ribeiro2014_1 later shows bottom-left capsule boarded. This is historical artwork-pattern evidence, not proof of its 2026 installed state. Old source caption construction forecasts must not be treated as current facts.",
"mapping_scope": "Historic full pattern of an additional bank. Any use of bottom-left capsule must disclose 2011 source/current-state uncertainty.",
"permitted_use": "Local visual reference. Photo reuse requires attribution, license link and changes declaration; ShareAlike applies where stated.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. Photo license is not evidence of a separate artist copyright waiver; project-level publication approval does not waive separate artwork rights.",
"changes": "Wikimedia-provided thumbnail downloaded unchanged; no local image edits."
},
{
"id": "glory_2022_canaan",
"kind": "photograph",
"local_path": "assets/reference/artwork_glory_2022_canaan.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:SF_-_Gloria_(2022).jpg",
"source_snapshot": "assets/reference/artwork_glory_2022_canaan.source.html",
"photographer": "Canaan",
"capture_date": "2022-04-30 12:25:36",
"capture_date_note": "Commons EXIF/author date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Canaan / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
3840,
2872
],
"sha256": "b1e3c1abe65316d54816eda57a5d064dc54c5f1e56d09dd6b8bbf41faf12d1a4",
"visually_inspected": true,
"observations": "Frontal Glory exterior. Continuous unfinished concrete side walls, narrow closed slits; central three stacked frosted greenish glazed grid bays. Bottom centre beneath canopy closed dark teal door/panel screen. No unobstructed view into nave. Confirms closure in 2022, not all current 2026 construction details.",
"changes": "Wikimedia thumbnail downloaded unchanged"
},
{
"id": "glory_2024_crane",
"kind": "photograph",
"local_path": "assets/reference/artwork_glory_2024_crane.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Grua_de_la_Sagrada_Fam%C3%ADlia_-_20240503_115304.jpg",
"source_snapshot": "assets/reference/artwork_glory_2024_crane.source.html",
"photographer": "Pere López Brosa",
"capture_date": "2024-05-03 11:53:05",
"capture_date_note": "Commons EXIF/author date, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Pere López Brosa / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
2560
],
"sha256": "5546c35e7b4b6ca87fba1503f063cfeb29a52bd8d7a3c1fb6d5cffba12c4165d",
"visually_inspected": true,
"observations": "Distant view between apartment buildings shows upper glazed Glory closure still present. Bottom door level entirely obscured; not suitable for precise current lower wall reconstruction.",
"changes": "Wikimedia thumbnail downloaded unchanged"
},
{
"id": "east_painting04",
"kind": "photograph",
"title": "Stained Glass paintings at Sagrada Familia, Barcelona 04.jpg",
"local_path": "assets/reference/artwork_east_painting04_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Stained_Glass_paintings_at_Sagrada_Familia%2C_Barcelona_04.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/1/1b/Stained_Glass_paintings_at_Sagrada_Familia%2C_Barcelona_04.jpg/1920px-Stained_Glass_paintings_at_Sagrada_Familia%2C_Barcelona_04.jpg",
"photographer": "Ank Kumar",
"capture_date": "2014-09-13 11:35:10",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ank Kumar / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
2880
],
"sha256": "9f999618cff0e39213ba63a085b0e3cd59206a07cbbb37401ff7e7974f46166a",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_painting04.source.html",
"use_status": "Reference-only cross-check for Mortel blue bank; bottom visitor posters prevent using this full photo as final texture.",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_2016_mortel2",
"kind": "photograph",
"title": "Sagrada Famiia, stained glass windows (2) (31240948686).jpg",
"local_path": "assets/reference/artwork_east_2016_mortel2_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/b/b1/Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg/3840px-Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 11:18",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
3840,
2560
],
"sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_2016_mortel2.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_barcelona10",
"kind": "photograph",
"title": "Barcelona Sagrada Familia interior 10.jpg",
"local_path": "assets/reference/artwork_east_barcelona10_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_10.jpg",
"download_url": "https://upload.wikimedia.org/wikipedia/commons/5/5c/Barcelona_Sagrada_Familia_interior_10.jpg",
"photographer": "Ad Meskens",
"capture_date": "2016-05-23 18:24:31",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
2112,
2816
],
"sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre. Yellow-green bank next to pale-green bank; source lowest rail grazes final pane edges, traced slightly inside glass.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_barcelona10.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_barcelona11",
"kind": "photograph",
"title": "Barcelona Sagrada Familia interior 11.jpg",
"local_path": "assets/reference/artwork_east_barcelona11_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_11.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/e/e6/Barcelona_Sagrada_Familia_interior_11.jpg/1920px-Barcelona_Sagrada_Familia_interior_11.jpg",
"photographer": "Ad Meskens",
"capture_date": "2016-05-23 18:25:25",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"required_attribution": "© Ad Meskens / Wikimedia Commons / CC BY-SA 4.0",
"dimensions_px": [
1920,
1706
],
"sha256": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre. Pale-green bank between yellow-green and bluegreen banks; source upper-pane highlights are clipped and remain a documented fidelity limit.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_barcelona11.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
},
{
"id": "east_mortel_2016_11",
"kind": "photograph",
"title": "Sagrada Familia, stained glass windows (11) (31150428592).jpg",
"local_path": "assets/reference/artwork_east_mortel_2016_11_high.jpg",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"download_url": "https://thumb.wikimedia.org/wikipedia/commons/thumb/2/2e/Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg/1920px-Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 10:58",
"capture_date_note": "Commons author-supplied date/EXIF, not independently verified",
"accessed_utc": "2026-10-01",
"photo_license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "© Richard Mortel / Wikimedia Commons / CC BY 2.0",
"dimensions_px": [
1920,
1280
],
"sha256": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105",
"visually_inspected": true,
"location_evidence": "East aisle Commons category and matched neighbouring photographed patterns. Relative adjacency supported; absolute numbered bay unresolved.",
"observations": "Individually identifiable real capsule-bank pattern; three registers of six capsules, eighteen small oculi, six large oculi and twelve-petal rose plus centre.",
"permitted_use": "Local visual reference; photo may be reused subject to stated attribution/share-alike requirements. Record modifications in any rectified or traced derivative.",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights.",
"changes": "Downloaded pixels unchanged. Texture is a byte-identical local copy; glass apertures cropped through individually traced UVs and perspective approximation. Derivative UV coordinate records are CC BY-SA4.0 for Meskens/Kumar photos and CC BY2.0 for Mortel photos.",
"source_evidence_html": "assets/reference/artwork_east_mortel_2016_11.source.html",
"underlying_artist": "Joan Vila-Grau (glass artwork; distinct from photographer)"
}
],
"mapping_limitations": [
"East/cool and west/warm design families are established. Some exact bay indices remain unverified; relative order of three west banks is supported by continuous Bracons2015 and Smiley2023 panoramas. Do not claim a full exact inventory.",
"All photos predate current date and establish persistent artwork patterns, not current construction conditions.",
"Human-created original reference images, no generated imagery.",
"Sculpture photos supply visible-front reference, not calibrated multiview photogrammetry; reverse surfaces and metric offsets remain interpretation.",
"Three different warm-side banks have corroborating photographs: red bank (Alikhan2022 + Mortel6), Ribeiro2014_3 centre bank, greener bank immediately right (Smiley2023_3 + Bracons2015). Any composite must identify the source per aperture; unseen surfaces must remain flagged.",
"No paid asset purchases, authentication changes, or GPU jobs performed. No external publication had been performed when this source record was prepared.",
"Ospingou2022 depicts a different pointed-lancet/16-petal opening geometry; it must not be mapped to the aisle capsule/12-petal template.",
"Hisgett2011 and Ribeiro2014_1 are the same bank, with bottom-left pane glazed in 2011 and boarded in 2014. Current state of that pane has not been verified."
],
"authorship_sources": [
{
"id": "sotoo_primary",
"source": "https://www.etsurosotoo.com/en",
"type": "artist own official site",
"verified": "2026-10-01",
"supports": "Sotoo authorship of four Nativity doors, Musician Angels and singing children. Does not justify assigning all Nativity sculptures to Sotoo."
},
{
"id": "nativity_official",
"source": "https://blog.sagradafamilia.org/en/nativity-scenes/",
"alternate_source": "https://blog.sagradafamilia.org/escenes-naixement/",
"type": "Sagrada Familia official blog",
"published": "2026-01-12",
"supports": "Identifies Jaume Busquets with Nativity and Annunciation groups, describes Hope/Charity/Faith portals left to right and sculpture sequence."
},
{
"id": "passion_official",
"source": "https://blog.sagradafamilia.org/en/meaning-passion-facade-sagrada-familia/",
"alternate_source": "https://sagradafamilia.org/en/detalle/-/asset_publisher/7JWibz9G2KUY/content/l-obra-de-subirachs-a-la-sagrada-familia-declarada-be-cultural-d-interes-nacional",
"type": "Sagrada Familia official site",
"verified": "2026-10-01",
"supports": "Josep Maria Subirachs Passion sculptural programme; contemporary work separately distinguished from Nativity artists."
}
],
"excluded_references": [
{
"local_path": "assets/reference/artwork_glory_future_RENDER_official_2025.jpg",
"source": "https://sagradafamilia.org/en/-/s-esta-treballant-en-la-verticalitat-de-la-facana-de-la-gloria",
"publication_date": "2025-03-25",
"reason": "Official article illustration is a FUTURE COMPLETION RENDER, not a photograph. Excluded from current-state evidence. No photo reuse license established; local analysis only."
}
]
}{
"project": "Sagrada Familia 2026 exterior",
"as_of_requested": "2026-10-01",
"latest_official_state_used": "2026-09-22",
"photographic_state_anchor": "2026-08-09",
"model_status": "Exterior v3: dimensional tower/current-state anchors + photo-guided authored geometry; seven selected actual sculpture groups use masked licensed photographic relief, not a 3D scan.",
"sources": [
{
"url": "https://sagradafamilia.org/en/-/una-creu-que-arriba-al-cel-de-barcelona",
"type": "official construction announcement",
"published": "2026-02-20",
"claims": [
"Jesus exterior complete172.5m",
"12faces;12levels from85m to142.5m",
"29m pinnacle",
"four-armed3D cross17m tall13.5m wide ceramic/glass",
"interior works2027–28"
],
"usage": "facts and architectural visual reference only"
},
{
"url": "https://sagradafamilia.org/es/-/la-sagrada-familia-avanca-en-la-darrera-fase-de-construccio-del-temple-projectat-per-antoni-gaudi",
"type": "official construction update",
"published": "2026-09-22",
"claims": [
"Glory construction continues",
"Assumption incomplete;8m tribune stone vault built, exterior sculptures await installation",
"Jesus interior scaffold about1year to removal",
"Nativity conservation ongoing;Simon tower restoration is future"
],
"usage": "Current state, no extrapolated completion"
},
{
"url": "https://sagradafamilia.org/es/-/la-grua-central-de-la-sagrada-familia-inicia-una-nova-etapa-despres-de-completar-l-exterior-de-la-torre-de-jesucrist",
"type": "official construction update",
"published": "2026-07-24",
"claims": [
"Central crane lowered to174m",
"Jesus brace removed",
"Crane now supportsGlory work"
],
"usage": "Crane remains, placement and slew angle approximate"
},
{
"url": "https://sagradafamilia.org/en/history-of-the-temple",
"type": "official history",
"claims": [
"Mary138m finished2021",
"Evangelists4x135m completed2023",
"Jesus blessed2026-06-10"
],
"usage": "Heights and state"
},
{
"url": "https://sagradafamilia.org/en/photo-gallery",
"type": "official visual references",
"capture_date": "Unspecified; explicitly not equated with gallery update timestamp",
"files": [
"references/exterior/nativity_official.jpg",
"references/exterior/passion_pinnacles_official.jpg",
"references/exterior/mary_star_official.jpg",
"references/exterior/jesus_cross_official.jpg",
"references/exterior/construction_official.jpg",
"references/exterior/passion_detail_official.jpg",
"references/exterior/passion_official.jpg"
],
"license": "Copyright Sagrada Familia. Reference-only, no texture or public package inclusion authorized.",
"usage": "Tower/cross/mosaic/pediment shape, carvings. Historical construction images not treated as current.",
"capture_dates_verified_by_visualQA": {
"nativity": "2026-03-25",
"passion_detail": "2018-11-21",
"passion_front": "2019-12-23",
"jesus_cross": "2026-06-10"
}
},
{
"url": "https://commons.wikimedia.org/wiki/File:View_of_Sagrada_Familia_2026.jpg",
"type": "firsthand geotagged photo",
"capture_date": "2026-08-09T10:25:16",
"author": "ほっきー",
"license": "CC0 1.0",
"claims": [
"Completed white cross; no upperJesus exterior platforms",
"Central crane tie absent",
"Additional apse-side luffing crane present",
"Nativity four towers and side nave crowns"
],
"usage": "Dated exterior silhouette anchor; Glory partly occluded."
},
{
"url": "https://sagradafamilia.org/documents/20142/1000561/Booklet_10.pdf/d5c2d0df-43ce-b6d2-0b51-103d5718820e",
"type": "official booklet shared by visualQA",
"claims": [
"Nativity12ribs square-to-round",
"Passion14ribs rhomboid-to-ellipse",
"Evangelists8ribs",
"Jesus/Marybase approx18mdiameter"
],
"usage": "Architectural construction principles, target shapes; verified by sibling QA"
},
{
"url": "https://www.etsurosotoo.com/en/sotoo",
"type": "artist official career chronology",
"claims": [
"Harpangel1984,bassoon1985,viola1987,guitar1988,dulzainaanddrum1989",
"Motherpelicanandchicks1991",
"Nativityfirstdoor2014-07-16 and doors complete2015",
"Grape mosaic2003,wheatandbread2005model/Eucharist2006"
],
"usage": "Individual authorship limited to grounded chronology; no attribution of allNativity sculpture."
},
{
"url": "https://www.capaesculturas.com/en/realized-works/fachada-de-la-natividad-nativity-facade/",
"type": "producing foundry project record",
"claims": [
"SotooNativitydoors:4doors7m bronze12tons2015"
],
"usage": "Door dimensions/material/authorship"
}
],
"geometry_assumptions": [
"Coordinate grid/intertower positions photo-derived; not surveyed",
"Tower heights anchored but panels details simplified",
"No future Glory fourtowers or grandstairs",
"Glory construction wall/platform placement is schematic, not documented exact extent",
"Assumption unfinishedwall heights/plan schematic;onlytribune8m official",
"Apse framing follows internal7chapel contract, individualabutments approximate",
"Museum/roof visitoraccess notasserted;Jesusinterior notwalkable",
"Second apse-side crane present in dated8/9photo; modeled126m tip approximate; exact configuration can change daily",
"Nativity stone portal face projects4.5m beyond initialcontract30mtransect; active portalfront nowy34.5source coordinates",
"Photographic relief imagery must not be interpreted as measured sculpture depth",
"Sotoo botanical leaf door relief is entirely author-created geometry; arrangement approximated from foundry photograph, four7m panels",
"Centralcrane mast54..112m +luffingjib174m;54mroofanchor and174mheightofficial,exactXYandjibangleestimated"
],
"sculpture_method": "Seven selected sculpture groups preserve actual source faces/poses using photo-textured hand-masked relief meshes with stone silhouette returns and support ledges. Depth0.45–0.85m and local metric placement are estimated; photographed lighting remains in diffuse textures. Not photogrammetric or complete freestanding sculpture reproduction.",
"derived_artwork_assets": [
{
"id": "Busquets_Nativity_Holy_Family",
"source": "artwork_sculpture_nativity_2016.jpg",
"cx": 52.5,
"y": 38.0,
"z": 9.8,
"h": 6.8,
"depth": 0.85,
"sign": 1,
"license": "CC BY 2.0",
"author": "Richard Mortel",
"date": "2016-11-12",
"texture": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png",
"nx": 256,
"ny": 296,
"width": 5.874739583333334,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2816%29_%2831153735122%29.jpg",
"original_photo_download": "https://upload.wikimedia.org/wikipedia/commons/b/b3/Sagrada_Familia%2C_Nativity_facade_%2816%29_%2831153735122%29.jpg",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "Richard Mortel / Wikimedia Commons / CC BY 2.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY 2.0",
"sha256": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"mask_refinement": "Blue-sky fringe removed by conservative chroma threshold;1px alphaerosion;256segmenthorizontalgrid for close-up contour",
"grid": [
256,
296
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
},
{
"id": "Sotoo_Harp_Angel_1984",
"source": "artwork_sculpture_angel_harp_2014.jpg",
"cx": 59.3,
"y": 38.0,
"z": 17.7,
"h": 7.6,
"depth": 0.65,
"sign": 1,
"license": "CC BY-SA 3.0",
"author": "José Luiz Bernardes Ribeiro",
"date": "2014-02-11",
"texture": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png",
"nx": 96,
"ny": 178,
"width": 4.106770833333333,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:Angels_-_Nativity_Facade_-_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"original_photo_download": "https://upload.wikimedia.org/wikipedia/commons/c/ce/Angels_-_Nativity_Facade_-_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY-SA 3.0",
"sha256": "c2afce86382f2cf86dc01750180ef3f2f4b5b18730cdff077d61457e5b7dd924",
"grid": [
96,
178
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
},
{
"id": "Sotoo_Viola_and_Lute_Angels",
"source": "artwork_sculpture_angel_mandolin_2016.jpg",
"cx": 45.75,
"y": 38.0,
"z": 17.9,
"h": 7.8,
"depth": 0.62,
"sign": 1,
"license": "CC BY 2.0",
"author": "Richard Mortel",
"date": "2016-11-12",
"texture": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png",
"nx": 96,
"ny": 92,
"width": 8.098261877172654,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2818%29_%2830489800873%29.jpg",
"original_photo_download": "https://upload.wikimedia.org/wikipedia/commons/1/1a/Sagrada_Familia%2C_Nativity_facade_%2818%29_%2830489800873%29.jpg",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "Richard Mortel / Wikimedia Commons / CC BY 2.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY 2.0",
"sha256": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"grid": [
96,
92
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
},
{
"id": "Sotoo_Singing_Children_1999",
"source": "artwork_sculpture_choir_2016.jpg",
"cx": 52.5,
"y": 37.9,
"z": 23.0,
"h": 5.7,
"depth": 0.58,
"sign": 1,
"license": "CC BY 2.0",
"author": "Richard Mortel",
"date": "2016-11-12",
"texture": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png",
"nx": 96,
"ny": 60,
"width": 9.169120287253142,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2815%29_%2831133090922%29.jpg",
"original_photo_download": "https://upload.wikimedia.org/wikipedia/commons/b/b6/Sagrada_Familia%2C_Nativity_facade_%2815%29_%2831133090922%29.jpg",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"required_attribution": "Richard Mortel / Wikimedia Commons / CC BY 2.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY 2.0",
"sha256": "1c9492cc7d5416f90201306e0a4511ac2516a4bed42767f3bccc3509bec0054e",
"grid": [
96,
60
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
},
{
"id": "Subirachs_Judas_Kiss_and_Magic_Square",
"source": "artwork_sculpture_judas.jpg",
"cx": 42.6,
"y": -33.7,
"z": 3.5,
"h": 5.8,
"depth": 0.45,
"sign": -1,
"license": "CC BY 3.0",
"author": "Karsten Knöfler",
"date": "Source page date retained in metadata",
"texture": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square.png",
"nx": 96,
"ny": 98,
"width": 5.694270833333333,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:Der_Judaskuss_und_das_magische_Quadrat_von_Josep_Maria_Subirachs.jpg",
"original_photo_download": "https://upload.wikimedia.org/wikipedia/commons/3/3f/Der_Judaskuss_und_das_magische_Quadrat_von_Josep_Maria_Subirachs.jpg",
"license_url": "https://creativecommons.org/licenses/by/3.0/",
"required_attribution": "Karsten Knöfler / Wikimedia Commons / CC BY 3.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY 3.0",
"sha256": "f5b6bb71d9118edd135061b0ec682082acd231485d5e6d73cb3e66bc4ed8f1db",
"grid": [
96,
98
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
},
{
"id": "Subirachs_Crucifixion",
"source": "artwork_sculpture_crucifixion_2014.jpg",
"cx": 52.5,
"y": -33.65,
"z": 22.1,
"h": 7.5,
"depth": 0.72,
"sign": -1,
"license": "CC BY-SA 3.0",
"author": "José Luiz Bernardes Ribeiro",
"date": "2014-02-11",
"texture": "assets/textures/exterior_sculpture/Subirachs_Crucifixion.png",
"nx": 96,
"ny": 94,
"width": 7.671232876712328,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"original_photo_download": "https://thumb.wikimedia.org/wikipedia/commons/thumb/a/ab/Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG/960px-Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY-SA 3.0",
"sha256": "e8bcc03364260309155fa3f34b3d192b8aefddd26de60d7fafae4b82aa37d7f9",
"grid": [
96,
94
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
},
{
"id": "Subirachs_Veronica_and_Soldiers",
"source": "artwork_sculpture_veronica_2014.jpg",
"cx": 52.5,
"y": -33.65,
"z": 14.0,
"h": 6.0,
"depth": 0.6,
"sign": -1,
"license": "CC BY-SA 3.0",
"author": "José Luiz Bernardes Ribeiro",
"date": "2014-02-11",
"texture": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers.png",
"nx": 96,
"ny": 60,
"width": 9.591436217662801,
"reconstruction": "Licensed photograph on a hand-masked curved relief; depth and metric placement are approximations, not photogrammetry.",
"original_photo_page": "https://commons.wikimedia.org/wiki/File:La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"original_photo_download": "https://thumb.wikimedia.org/wikipedia/commons/thumb/f/f5/La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG/1920px-La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"required_attribution": "José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"adaptation": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author.",
"adaptation_license": "CC BY-SA 3.0",
"sha256": "29207a6bbd015141355d111202e7c996c1d2b4e8e4c29d3f988c3aae8670d663",
"grid": [
192,
120
],
"method": "Original licensed photograph on a closed hand-masked rounded relief. Front silhouette, source shading and pose retained; depth, hidden sides/back and metric placement estimated, not photogrammetry or complete sculpture survey."
}
],
"artwork_licenses_note": "CC BY attribution and CC BY-SA adaptations remain under their respective source licenses. Complete Commons original URL/license snapshots maintained in docs/ARTWORK_SOURCES.json (or source HTML beside assets/reference by artwork_references owner). Full official gallery photos are REFERENCE ONLY and excluded from distribution.",
"current_artwork_texture_bytes": 27813356,
"v4_changes": [
"Central crane atsource(31,0) supported on central nave roof54m, as officialJuly24statement; no mastbelow54m",
"Passionbelfry drums shifted3.8mbehind sculpturestage to make visible deepportico; placementphoto-estimated, towerheightsunchanged",
"NativityHolyFamily centralpier+carvedbacking restored; supportsactualcapital visibleinreference; centraldoorwaydividesinto twopassages",
"HolyFamily silhouette256widegrid;bluephotographicfringeremoved"
],
"v5_changes": [
"HolyFamily: restored original unaltered RGB photograph; removed only conservative blue sky connected to polygon exterior and filled enclosed accidental voids. Retained256horizontal sampling.",
"All7photo reliefs: closed front/rear shared-edge mesh, thin15cm silhouette rim, subcell smoothed contour and8cell depth taper. No missing edges or boundary pinches in topology validation. Unseen backs remain plain estimated stone; no claim of complete surveyed sculpture.",
"Veronica: real open gap between robed male and soldiers hand-traced from original source to remove daylight wedge; originalphoto RGB otherwise retained. Sampling192horizontal.",
"HolyFamily separate plain background reduced from10.6m tall triangular panel to silhouette-following7.45m carved support, avoiding a giant blank panel above actualgroup.",
"Glory existing weather closure reconstructed from2022-04-30Canaan frontalphoto: rawconcreteflanks, narrowclosedslits, three centralglazedbays, closedtealentrancescreen andconcretecanopy. Broadfuture completedsculptures/fourtowers stillabsent. Newer2024photo onlyconfirms upperglazing; retentionof2022lowerclosure into2026 is explicitly anassumption.",
"Centralcrane mastremains54mroofmount; temporarysupportstool connects54mplatform toapproximatefoldedroof46.55m, entirelyabove45mvault. Detailedmemberlayout is interpreted."
],
"v5_relief_topology_validation": [
{
"vertices": 78230,
"faces": 78228,
"boundary_vertices": 1180,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Busquets_Nativity_Holy_Family"
},
{
"vertices": 21632,
"faces": 21630,
"boundary_vertices": 524,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Sotoo_Harp_Angel_1984"
},
{
"vertices": 12310,
"faces": 12308,
"boundary_vertices": 422,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Sotoo_Viola_and_Lute_Angels"
},
{
"vertices": 8664,
"faces": 8662,
"boundary_vertices": 412,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Sotoo_Singing_Children_1999"
},
{
"vertices": 12232,
"faces": 12230,
"boundary_vertices": 364,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Subirachs_Judas_Kiss_and_Magic_Square"
},
{
"vertices": 7268,
"faces": 7266,
"boundary_vertices": 518,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Subirachs_Crucifixion"
},
{
"vertices": 36244,
"faces": 36244,
"boundary_vertices": 740,
"non_closed_edges": 0,
"boundary_pinches": 0,
"id": "Subirachs_Veronica_and_Soldiers"
}
],
"v5_glory_weather_closure_source": {
"source_url": "https://commons.wikimedia.org/wiki/File:SF_-_Gloria_(2022).jpg",
"local_photo": "assets/reference/artwork_glory_2022_canaan.jpg",
"author": "Canaan",
"license": "CC BY-SA 4.0",
"capture_date": "2022-04-30",
"use": "Reference-only, authored geometry; photo not texture",
"verified_features": "Continuous concrete lower wall;closed narrow slits;three stacked central facetedgreenishglazingbays;closeddarktealentrancescreen undercurvedconcretecanopy.",
"limitation": "Exact2026lowerclosure configuration notphotographicallyconfirmed;2024photo confirmsupperglazedbay only. Dimensions andtemporaryweather-envelope geometry approximate."
},
"v6_relief_topology_validation": [
{
"vertices": 78230,
"faces": 78228,
"boundary_vertices": 1180,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 6684,
"photo_front_faces": 30660,
"id": "Busquets_Nativity_Holy_Family"
},
{
"vertices": 21632,
"faces": 21630,
"boundary_vertices": 524,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 1817,
"photo_front_faces": 8212,
"id": "Sotoo_Harp_Angel_1984"
},
{
"vertices": 12310,
"faces": 12308,
"boundary_vertices": 422,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 653,
"photo_front_faces": 4868,
"id": "Sotoo_Viola_and_Lute_Angels"
},
{
"vertices": 8664,
"faces": 8662,
"boundary_vertices": 412,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 735,
"photo_front_faces": 2978,
"id": "Sotoo_Singing_Children_1999"
},
{
"vertices": 12232,
"faces": 12230,
"boundary_vertices": 364,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 943,
"photo_front_faces": 4626,
"id": "Subirachs_Judas_Kiss_and_Magic_Square"
},
{
"vertices": 7268,
"faces": 7266,
"boundary_vertices": 518,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 915,
"photo_front_faces": 1941,
"id": "Subirachs_Crucifixion"
},
{
"vertices": 36244,
"faces": 36244,
"boundary_vertices": 740,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 2431,
"photo_front_faces": 14581,
"id": "Subirachs_Veronica_and_Soldiers"
}
],
"v6_changes": [
"Steep authored outer-depth-taper faces (within18cmphysicaloutlineband,capped1.8..8gridcells,and plane-normalalignment<0.88) now use neutralstone rather thanfrontphotoUVs. Originalphoto textureunchanged; interior/front-facingpixels preserved. Backs/rim alreadyneutralstone. Physicaledgewidthavoids erasingthinlimbs inlowerresolutiongroups.",
"Removed projecting silhouette-shaped backing board. Replaced withnarrow rounded supportspine recessedbehindcentralfigure andbelowheads. Allunobservedsides remain estimated stone, notmulti-view sculpture reconstruction."
],
"v7_relief_topology_validation": [
{
"vertices": 78230,
"faces": 78228,
"boundary_vertices": 1180,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 7748,
"photo_front_faces": 29596,
"id": "Busquets_Nativity_Holy_Family"
},
{
"vertices": 113162,
"faces": 113160,
"boundary_vertices": 1414,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 9917,
"photo_front_faces": 44542,
"id": "Sotoo_Harp_Angel_1984"
},
{
"vertices": 83858,
"faces": 83856,
"boundary_vertices": 1128,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 5728,
"photo_front_faces": 34508,
"id": "Sotoo_Viola_and_Lute_Angels"
},
{
"vertices": 36680,
"faces": 36678,
"boundary_vertices": 1162,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 5688,
"photo_front_faces": 10908,
"id": "Sotoo_Singing_Children_1999"
},
{
"vertices": 12232,
"faces": 12230,
"boundary_vertices": 364,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 1243,
"photo_front_faces": 4326,
"id": "Subirachs_Judas_Kiss_and_Magic_Square"
},
{
"vertices": 7268,
"faces": 7266,
"boundary_vertices": 518,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 1239,
"photo_front_faces": 1617,
"id": "Subirachs_Crucifixion"
},
{
"vertices": 36244,
"faces": 36244,
"boundary_vertices": 740,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 2614,
"photo_front_faces": 14398,
"id": "Subirachs_Veronica_and_Soldiers"
}
],
"v7_changes": [
"Sotoo choir mask follows separate4left/5right child groups andfloralbases. Largephotographedbluewindowpanes excluded; lowerleftwindow opening also traced. SourceRGBunchanged. Separate recessedconsoles replaceonewidehorizontalplank.",
"Harp mask followsactualinstrumentcurve, angel anddrapery insteadofrectangularbackground.",
"Choir, harp, viola/lute masks tessellatedat256horizontal samples. Other4originalphotoassets preserved.",
"Manhattan grid-distance taper replacedbyphysicalEuclidean distance transform;12localdepth-smoothingpasses and14boundarysmoothingpasses reduceedgecorrugation. Neutralstone returns andclosedbacks retained. Geometrydepths unmeasured2.5D interpretation remain explicitlylimited."
],
"v7_derived_photo_hashes": {
"Busquets_Nativity_Holy_Family": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"Sotoo_Harp_Angel_1984": "5f75db27a19fdc7dc78e48ca3966db2d66eef41516382b97865e9e7b0d724d2d",
"Sotoo_Viola_and_Lute_Angels": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"Sotoo_Singing_Children_1999": "2339ceab9e26de3ca8015e145a2e7a3ae143eecaa81ced65f21571a22802b396",
"Subirachs_Judas_Kiss_and_Magic_Square": "f5b6bb71d9118edd135061b0ec682082acd231485d5e6d73cb3e66bc4ed8f1db",
"Subirachs_Crucifixion": "e8bcc03364260309155fa3f34b3d192b8aefddd26de60d7fafae4b82aa37d7f9",
"Subirachs_Veronica_and_Soldiers": "29207a6bbd015141355d111202e7c996c1d2b4e8e4c29d3f988c3aae8670d663"
},
"v8_photo_edge_derivatives": [
{
"id": "Busquets_Nativity_Holy_Family",
"source_texture": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png",
"source_sha256": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"derivative_texture": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_blended.png",
"derivative_sha256": "385e4fb2d61924a569320ff9b28135ffe2e37ac362c37c749eb66688f6501184",
"transition_mask": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_transition.png",
"transition_mask_sha256": "2fca58833c91ecfe39144e4bc260323435389242398865ed54a999a1c71079b8",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 730549,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [],
"protected_narrow_figure_core_ellipses": []
},
{
"id": "Sotoo_Harp_Angel_1984",
"source_texture": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png",
"source_sha256": "5f75db27a19fdc7dc78e48ca3966db2d66eef41516382b97865e9e7b0d724d2d",
"derivative_texture": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_blended.png",
"derivative_sha256": "1c0e5416f98df75a45df6fe67dfeed679a2ca836b40e9a7715370e0a7557a775",
"transition_mask": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_transition.png",
"transition_mask_sha256": "4cc62feeb9b8a20f465bb1b1bb68a000d1bb82ecba4babddbcb1613c5f2679e7",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 429556,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [],
"protected_narrow_figure_core_ellipses": []
},
{
"id": "Sotoo_Viola_and_Lute_Angels",
"source_texture": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png",
"source_sha256": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"derivative_texture": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_blended.png",
"derivative_sha256": "b2aae62c8538ad532483d6bbf89c5b03fe63aa98d3a3ac5996cae27ab9982c2a",
"transition_mask": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_transition.png",
"transition_mask_sha256": "802873a0425a8d324d3486d1f321ccab7b7c24b7c2c082aff0761513c26aa341",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 1571655,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [],
"protected_narrow_figure_core_ellipses": []
},
{
"id": "Sotoo_Singing_Children_1999",
"source_texture": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png",
"source_sha256": "2339ceab9e26de3ca8015e145a2e7a3ae143eecaa81ced65f21571a22802b396",
"derivative_texture": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_blended.png",
"derivative_sha256": "8ae055162829ab1dfe7ab5936bb578dc113265f359e1d5911e501a57ca990c8e",
"transition_mask": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_transition.png",
"transition_mask_sha256": "c446a587cc8966d2f0e1e60f31e5a203b91f53aefa2cf557f17e33903de5905a",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 503034,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [
[
0.154,
0.219,
0.024,
0.033
],
[
0.205,
0.442,
0.025,
0.036
],
[
0.334,
0.35,
0.023,
0.036
],
[
0.321,
0.531,
0.026,
0.043
],
[
0.813,
0.196,
0.026,
0.044
],
[
0.849,
0.198,
0.027,
0.04
],
[
0.628,
0.473,
0.02,
0.035
],
[
0.678,
0.432,
0.032,
0.041
],
[
0.669,
0.527,
0.025,
0.042
]
],
"protected_narrow_figure_core_ellipses": [
[
0.151,
0.337,
0.033,
0.136
],
[
0.333,
0.453,
0.03,
0.113
],
[
0.813,
0.35,
0.027,
0.165
],
[
0.859,
0.346,
0.029,
0.16
]
]
},
{
"id": "Subirachs_Judas_Kiss_and_Magic_Square",
"source_texture": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square.png",
"source_sha256": "f5b6bb71d9118edd135061b0ec682082acd231485d5e6d73cb3e66bc4ed8f1db",
"derivative_texture": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png",
"derivative_sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"transition_mask": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_transition.png",
"transition_mask_sha256": "10a29414bf91c34f0e3626511d38a14fa36df9e3ca48e2c9d11a8ecc1b3569f3",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 902037,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [],
"protected_narrow_figure_core_ellipses": []
},
{
"id": "Subirachs_Crucifixion",
"source_texture": "assets/textures/exterior_sculpture/Subirachs_Crucifixion.png",
"source_sha256": "e8bcc03364260309155fa3f34b3d192b8aefddd26de60d7fafae4b82aa37d7f9",
"derivative_texture": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png",
"derivative_sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"transition_mask": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_transition.png",
"transition_mask_sha256": "7a016be94345016a30a0370d3b95f87546add53669215ba7b0d6dc1a62c97c8e",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 274288,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [],
"protected_narrow_figure_core_ellipses": []
},
{
"id": "Subirachs_Veronica_and_Soldiers",
"source_texture": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers.png",
"source_sha256": "29207a6bbd015141355d111202e7c996c1d2b4e8e4c29d3f988c3aae8670d663",
"derivative_texture": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png",
"derivative_sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"transition_mask": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_transition.png",
"transition_mask_sha256": "2ca1bd719e81f80b34f813dc7737fcd1f0a7539d86b1f61a15ff645ada48a070",
"stone_tile": "assets/textures/stone_light_base.png",
"stone_tile_sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"method": "v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"fully_preserved_original_pixels": 1099628,
"plateau_max_rgb_difference": 0,
"protected_original_face_ellipses": [],
"protected_narrow_figure_core_ellipses": []
}
],
"v8_relief_topology_validation": [
{
"vertices": 78230,
"faces": 78228,
"boundary_vertices": 1180,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 7748,
"photo_front_faces": 37344,
"smooth_baked_edge_transition": true,
"id": "Busquets_Nativity_Holy_Family"
},
{
"vertices": 113162,
"faces": 113160,
"boundary_vertices": 1414,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 9917,
"photo_front_faces": 54459,
"smooth_baked_edge_transition": true,
"id": "Sotoo_Harp_Angel_1984"
},
{
"vertices": 83858,
"faces": 83856,
"boundary_vertices": 1128,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 5728,
"photo_front_faces": 40236,
"smooth_baked_edge_transition": true,
"id": "Sotoo_Viola_and_Lute_Angels"
},
{
"vertices": 36680,
"faces": 36678,
"boundary_vertices": 1162,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 5688,
"photo_front_faces": 16596,
"smooth_baked_edge_transition": true,
"id": "Sotoo_Singing_Children_1999"
},
{
"vertices": 12232,
"faces": 12230,
"boundary_vertices": 364,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 1243,
"photo_front_faces": 5569,
"smooth_baked_edge_transition": true,
"id": "Subirachs_Judas_Kiss_and_Magic_Square"
},
{
"vertices": 7268,
"faces": 7266,
"boundary_vertices": 518,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 1239,
"photo_front_faces": 2856,
"smooth_baked_edge_transition": true,
"id": "Subirachs_Crucifixion"
},
{
"vertices": 36244,
"faces": 36244,
"boundary_vertices": 740,
"non_closed_edges": 0,
"boundary_pinches": 0,
"neutral_front_returns": 0,
"estimated_return_faces": 2614,
"photo_front_faces": 17012,
"smooth_baked_edge_transition": true,
"id": "Subirachs_Veronica_and_Soldiers"
}
],
"v8_changes": [
"V7geometryandmaskfieldpreserved. Binaryfrontphoto/stonematerialassignment replacedbyonebaked diffuseimagewithsmoothUVedgecolourtransition; standardimage→PrincipledsupportsidenticalBlender/glTFbehaviour. SourcePNGsretainedandhashed; derivativeandtransitionmask savedseparately.",
"Fullphoto plateau retains originalsourceRGBexactly(verifiedpixelcomparison). Steepouterreturns becomeauthoredstone; hiddenback/rimremainplainstone. Underlyingphotoreliefisstilllimited2.5D reconstruction.",
"Nine choir face cores and four narrow standing-figure robe cores preserve original photographed detail through explicit source-coordinate ellipse masks. Outside these protected cores the edge transition remains gradual. No generated faces, repainting, recolouring of preserved pixels or geometry changes. Seven original PNG hashes verified unchanged from V7."
],
"v8_actual_render_texture_bytes": 17045590,
"v9_changes": [
"Material routing limited to apostle_tower(old=True): four Nativity apostles; and nativity(): historic organic portal/gable mass. Keys nativity_stone and nativity_stone_detail supplied by materials agent. Passion, central/new towers, nave roof, glass, mosaics, bronze and all photographic relief materials remain unchanged.",
"Relative warmer/darker Nativity stone appearance follows2026-08-09 dated exterior photograph. Texture patina is original procedural approximation, not a colourimetric survey or damage/conservation assessment. Existing facade stone has varied repairs; this is a restrained visual material grouping.",
"Faceted ellipsoid bead chains beside reliefs replaced with continuous smooth stems and individually curled lobed leaf surfaces; shallow embedded smooth knots replace scattered angular boulders. Leaves remain authored approximations of organic facade carving, with no claim to reproduce an identified sculptor artwork or botanically exact species.",
"Same existing three gable envelopes, portal openings, four tower geometry/radii/heights; no central-tower or unfinished-state changes. V8 sculpture source and derivative PNG hashes verified unchanged."
],
"v9_carved_leaf_mesh_validation": {
"vertices_per_leaf": 90,
"faces_per_leaf": 88,
"non_closed_edges": 0,
"finite_coordinates": true,
"smooth_shading": "Only Nativity foliage/knots batch"
},
"portal_weather_backing_fix": {
"method": "CPU AABB/plane proof using exact generated box parameters; final Blender scene ray audit still required after integration",
"boxes_source_frame": [
{
"name": "Nativity_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
]
},
{
"name": "Passion_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
-29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
]
}
],
"formerly_missed_rays": [
{
"pixel": [
705,
610
],
"original_no_hit_to_m": 600,
"predicted_hit_object": "Nativity_inner_weather_backing_above_entrance_clearance",
"distance_m": 25.47257949195049,
"predicted_world_hit": [
48.0400842545188,
-29.450000000000003,
19.21943023841065
]
},
{
"pixel": [
710,
590
],
"original_no_hit_to_m": 600,
"predicted_hit_object": "Nativity_inner_weather_backing_above_entrance_clearance",
"distance_m": 25.464967060909384,
"predicted_world_hit": [
47.94841317203567,
-29.450000000000003,
19.543294101312537
]
}
],
"entrance_clearance_m": 10,
"ground_routes_and_existing_colliders_changed": false,
"source_photo_context": [
"assets/reference/qa_nativity_front.jpg",
"assets/reference/qa_passion_front.jpg"
],
"evidence_limits": "Facade photographs show enclosed sculptural masonry backing. They do not establish exact inner-wall height/layout or hidden windows. This plain recessed weather layer and its dimensions are an explicit reconstruction inference, not new claimed ornament or measured survey.",
"collider_validation": {
"count": 2,
"exact_geometry_bounds_match": true,
"minimum_z_m": 10,
"maximum_z_m": 30.5,
"ground_entrance_clearance_preserved": true,
"runtime_path": "Normal walking StaticBody3D boxes only. Existing inspection-flight noclip behavior is preserved; no additional camera or flight restriction.",
"inspection_flight_noclip_preserved": true
},
"added_colliders_source_frame": [
{
"type": "box",
"name": "Nativity_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
],
"walkable_floor": false
},
{
"type": "box",
"name": "Passion_inner_weather_backing_above_entrance_clearance",
"center": [
52.5,
-29.85,
20.25
],
"size": [
30.0,
0.8,
20.5
],
"walkable_floor": false
}
]
},
"nativity_render_harmonization": {
"report": "docs/NATIVITY_RENDER_GRADE.json",
"comparison": "docs/NATIVITY_RENDER_GRADE_comparison.jpg",
"source_and_previous_derivatives_unchanged": true,
"records": [
{
"id": "Busquets_Nativity_Holy_Family",
"author": "Richard Mortel",
"license": "CC BY 2.0",
"capture_date": "2016-11-12",
"original_photo": "assets/reference/artwork_sculpture_nativity_2016.jpg",
"original_photo_sha256": "eeacd7a710cae5297bff8076a21d37574de7b57d2ad5aa94da84565848a35145",
"masked_source_png": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png",
"masked_source_sha256": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"previous_v8_render_png": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_blended.png",
"previous_v8_render_sha256": "385e4fb2d61924a569320ff9b28135ffe2e37ac362c37c749eb66688f6501184",
"output_render_png": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png",
"output_sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"dimensions": [
1327,
1536
],
"white_balance_gains_srgb": [
1.04,
0.997,
0.925
],
"brightness_gain_srgb": 0.94,
"net_channel_gains_srgb": [
0.9776,
0.9371799999999999,
0.8694999999999999
],
"channel_transform": "round(source_8bit_sRGB * net_channel_gain), clamped to 0..255; no resampling, blur, sharpening or painted detail",
"transition_mask": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_transition.png",
"transition_mask_sha256": "2fca58833c91ecfe39144e4bc260323435389242398865ed54a999a1c71079b8",
"transition_method": "Unchanged V8 smooth UV edge mask, including protected choir faces/robes; composite(graded source, stone tile, mask). No alpha or mesh changes.",
"neutral_return_texture": "assets/textures/nativity_stone_detail_base.png",
"neutral_return_texture_sha256": "9742cd1a0e681b3dc731b0bdd6a25f9a182f5d86c6ad675b6e4321feb77e4105",
"neutral_return_material": "nativity_stone_detail",
"core_pixels_verified_equal_to_exact_lut": 730549,
"alpha_byte_identical": true,
"limitation": "Photograph-derived 2.5D relief; estimated shallow depth and neutral unseen returns. Grade is restrained scene harmonization, not measured artwork albedo."
},
{
"id": "Sotoo_Harp_Angel_1984",
"author": "José Luiz Bernardes Ribeiro",
"license": "CC BY-SA 3.0",
"capture_date": "2014-02-11",
"original_photo": "assets/reference/artwork_sculpture_angel_harp_2014.jpg",
"original_photo_sha256": "d2a55a0b3eeda32b44958b8ee0fed5a53b960720f9a74c072f23b3221df95cfd",
"masked_source_png": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png",
"masked_source_sha256": "5f75db27a19fdc7dc78e48ca3966db2d66eef41516382b97865e9e7b0d724d2d",
"previous_v8_render_png": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_blended.png",
"previous_v8_render_sha256": "1c0e5416f98df75a45df6fe67dfeed679a2ca836b40e9a7715370e0a7557a775",
"output_render_png": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png",
"output_sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"dimensions": [
830,
1536
],
"white_balance_gains_srgb": [
1.025,
1.005,
0.955
],
"brightness_gain_srgb": 0.96,
"net_channel_gains_srgb": [
0.9839999999999999,
0.9647999999999999,
0.9168
],
"channel_transform": "round(source_8bit_sRGB * net_channel_gain), clamped to 0..255; no resampling, blur, sharpening or painted detail",
"transition_mask": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_transition.png",
"transition_mask_sha256": "4cc62feeb9b8a20f465bb1b1bb68a000d1bb82ecba4babddbcb1613c5f2679e7",
"transition_method": "Unchanged V8 smooth UV edge mask, including protected choir faces/robes; composite(graded source, stone tile, mask). No alpha or mesh changes.",
"neutral_return_texture": "assets/textures/nativity_stone_detail_base.png",
"neutral_return_texture_sha256": "9742cd1a0e681b3dc731b0bdd6a25f9a182f5d86c6ad675b6e4321feb77e4105",
"neutral_return_material": "nativity_stone_detail",
"core_pixels_verified_equal_to_exact_lut": 429556,
"alpha_byte_identical": true,
"limitation": "Photograph-derived 2.5D relief; estimated shallow depth and neutral unseen returns. Grade is restrained scene harmonization, not measured artwork albedo."
},
{
"id": "Sotoo_Viola_and_Lute_Angels",
"author": "Richard Mortel",
"license": "CC BY 2.0",
"capture_date": "2016-11-12",
"original_photo": "assets/reference/artwork_sculpture_angel_mandolin_2016.jpg",
"original_photo_sha256": "d7803da295733c9b2197cde34053f7b3b5f1a2603ca0de0bafa19ef9fca8ff2c",
"masked_source_png": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png",
"masked_source_sha256": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"previous_v8_render_png": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_blended.png",
"previous_v8_render_sha256": "b2aae62c8538ad532483d6bbf89c5b03fe63aa98d3a3ac5996cae27ab9982c2a",
"output_render_png": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png",
"output_sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"dimensions": [
1792,
1726
],
"white_balance_gains_srgb": [
1.025,
1.005,
0.955
],
"brightness_gain_srgb": 0.96,
"net_channel_gains_srgb": [
0.9839999999999999,
0.9647999999999999,
0.9168
],
"channel_transform": "round(source_8bit_sRGB * net_channel_gain), clamped to 0..255; no resampling, blur, sharpening or painted detail",
"transition_mask": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_transition.png",
"transition_mask_sha256": "802873a0425a8d324d3486d1f321ccab7b7c24b7c2c082aff0761513c26aa341",
"transition_method": "Unchanged V8 smooth UV edge mask, including protected choir faces/robes; composite(graded source, stone tile, mask). No alpha or mesh changes.",
"neutral_return_texture": "assets/textures/nativity_stone_detail_base.png",
"neutral_return_texture_sha256": "9742cd1a0e681b3dc731b0bdd6a25f9a182f5d86c6ad675b6e4321feb77e4105",
"neutral_return_material": "nativity_stone_detail",
"core_pixels_verified_equal_to_exact_lut": 1571655,
"alpha_byte_identical": true,
"limitation": "Photograph-derived 2.5D relief; estimated shallow depth and neutral unseen returns. Grade is restrained scene harmonization, not measured artwork albedo."
},
{
"id": "Sotoo_Singing_Children_1999",
"author": "Richard Mortel",
"license": "CC BY 2.0",
"capture_date": "2016-11-12",
"original_photo": "assets/reference/artwork_sculpture_choir_2016.jpg",
"original_photo_sha256": "81a463f74225ebd43b3ec3248eb68e24af8ab5ca77ce17f11c7c5a0a9188582a",
"masked_source_png": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png",
"masked_source_sha256": "2339ceab9e26de3ca8015e145a2e7a3ae143eecaa81ced65f21571a22802b396",
"previous_v8_render_png": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_blended.png",
"previous_v8_render_sha256": "8ae055162829ab1dfe7ab5936bb578dc113265f359e1d5911e501a57ca990c8e",
"output_render_png": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png",
"output_sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"dimensions": [
1792,
1114
],
"white_balance_gains_srgb": [
1.025,
1.005,
0.955
],
"brightness_gain_srgb": 0.96,
"net_channel_gains_srgb": [
0.9839999999999999,
0.9647999999999999,
0.9168
],
"channel_transform": "round(source_8bit_sRGB * net_channel_gain), clamped to 0..255; no resampling, blur, sharpening or painted detail",
"transition_mask": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_transition.png",
"transition_mask_sha256": "c446a587cc8966d2f0e1e60f31e5a203b91f53aefa2cf557f17e33903de5905a",
"transition_method": "Unchanged V8 smooth UV edge mask, including protected choir faces/robes; composite(graded source, stone tile, mask). No alpha or mesh changes.",
"neutral_return_texture": "assets/textures/nativity_stone_detail_base.png",
"neutral_return_texture_sha256": "9742cd1a0e681b3dc731b0bdd6a25f9a182f5d86c6ad675b6e4321feb77e4105",
"neutral_return_material": "nativity_stone_detail",
"core_pixels_verified_equal_to_exact_lut": 503034,
"alpha_byte_identical": true,
"limitation": "Photograph-derived 2.5D relief; estimated shallow depth and neutral unseen returns. Grade is restrained scene harmonization, not measured artwork albedo."
}
],
"scope_limit": "Four Nativity photo relief render textures and their neutral return material only. Passion, stained glass, source photographs, masked source PNGs, V8 textures/masks, and geometry unchanged."
}
}
{
"audited_utc": "2026-10-02T01:50:04.875116+00:00",
"scope": "Source/attribution integrity for local review build. This does not grant new underlying-artwork reproduction rights or authorize publication.",
"status": "pass",
"inputs": {
"docs/ARTWORK_SOURCES.json": "4714262276f60d19fd387742332216c6123fe6ec63a45ab0b9e8e670a0cca8c7",
"docs/MATERIAL_SOURCES.json": "daafad82cf953dc166d15d12c76a5498094b1ebbd9d507fa653124f54d52f018",
"docs/EXTERIOR_EVIDENCE.json": "d706ff602de43dc636aae2caf82de8e752b3a2d42b7615bfbd9c5871fed092ca",
"assets/textures/window_banks.json": "99c0071c8e45bffe2a02425590e73a5341a8bf7849d81c9e8c7f604052ea08b8",
"assets/textures/exterior_sculpture/reliefs.json": "3b5c198a7dc93254398fc7fc81a1c648826d608cae6acf9f5071f36ed2af3ae8",
"assets/textures/east_bank_candidates.json": "1bb0b7eb9fac0823b666162ae7a5dc1faba4037b82c92f097def1c7fc15d795c",
"docs/EAST_GLAZING_ADDITIONS.json": "5254811dcf2343eeef0c855937b2b0e4233adc9154078d7526b16da53e00d9f4"
},
"used_photo_textures": [
{
"kind": "glass",
"texture": "assets/textures/glass_east_ribeiro2014.jpg",
"texture_sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"source_id": "glass_east_2014_ribeiro",
"source_url": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%282_crop%29.JPG",
"photographer": "Jose Luiz Bernardes Ribeiro",
"license": "CC BY-SA3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"modifications": "Image bytes unchanged. Per-aperture UV fitting only; stone not photographically textured. Exact east-aisle numbered bay unresolved.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_west_ribeiro2014.jpg",
"texture_sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"source_id": "glass_west_2014_ribeiro_3",
"source_url": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"photographer": "Jose Luiz Bernardes Ribeiro",
"license": "CC BY-SA3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"modifications": "Image bytes unchanged. Per-aperture UV fitting only; stone not photographically textured. Exact west-aisle numbered bay unresolved. Upper flower tip slightly cropped; used only observed source pixels, no invented unseen image detail.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_west_red_alikhan2022.jpg",
"texture_sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"source_id": "glass_candidate_west_2022",
"source_url": "https://commons.wikimedia.org/wiki/File:SagradaFamilia_Oct6_2022.jpg",
"photographer": "Anusha Alikhan",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"modifications": "Original photograph bytes unchanged; individually bounded glass UV fitting only. See known_approximations for cropped/occluded regions.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_west_red_rose_mortel.jpg",
"texture_sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"source_id": "glass_candidate_west_mortel6",
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%286%29_%2831240669306%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"modifications": "Original photograph bytes unchanged; individually bounded glass UV fitting only. See known_approximations for cropped/occluded regions.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_west_green_smiley2023.jpg",
"texture_sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"source_id": "glass_candidate_2023_3",
"source_url": "https://commons.wikimedia.org/wiki/File:Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg",
"photographer": "Smiley.toerist",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"modifications": "Original photograph bytes unchanged; individually bounded glass UV fitting only. See known_approximations for cropped/occluded regions.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_east_blue_mortel2016.jpg",
"texture_sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"source_id": "east_2016_mortel2",
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"modifications": "Original photograph bytes unchanged; individually bounded glass UV mapping only.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_east_yellowgreen_meskens2016.jpg",
"texture_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"source_id": "east_barcelona10",
"source_url": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_10.jpg",
"photographer": "Ad Meskens",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"modifications": "Original photograph bytes unchanged; individually bounded glass UV mapping only.",
"original_file_bytes_match": true,
"source_chain_verified": true,
"atlas_validation": null,
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"texture_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"source_id": "east_mortel_2016_11",
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"modifications": "Decoded photo pixels packed unchanged into lossless atlas; see derivation.",
"original_file_bytes_match": false,
"source_chain_verified": true,
"atlas_validation": {
"passed": true,
"atlas_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"atlas_license": "CC BY-SA4.0",
"atlas_license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"method": "Lossless vertical pixel atlas: Mortel1920x1280 at[0,0], Meskens1920x1706 at[0,1280]. All49 upper/oculus/rose polygons refer to Mortel; only six bottom capsule polygons refer to Meskens, offset1280px. Each complete aperture belongs to one unchanged photo block. Affine per-aperture UV, no global homography.",
"components": [
{
"path": "assets/reference/artwork_east_mortel_2016_11_high.jpg",
"sha256": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105",
"declared_hash_matches": true,
"registered_source_id": "east_mortel_2016_11",
"offset_px": [
0,
0
],
"size_px": [
1920,
1280
],
"decoded_pixel_block_identical": true,
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights."
},
{
"path": "assets/reference/artwork_east_barcelona11_high.jpg",
"sha256": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"declared_hash_matches": true,
"registered_source_id": "east_barcelona11",
"offset_px": [
0,
1280
],
"size_px": [
1920,
1706
],
"decoded_pixel_block_identical": true,
"source_url": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_11.jpg",
"photographer": "Ad Meskens",
"license": "CC BY-SA4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights."
}
],
"apertures_checked": 55,
"aperture_checks": [
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "core",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
}
]
},
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "glass",
"texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"texture_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"source_id": "east_barcelona11",
"source_url": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_11.jpg",
"photographer": "Ad Meskens",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"modifications": "Decoded photo pixels packed unchanged into lossless atlas; see derivation.",
"original_file_bytes_match": false,
"source_chain_verified": true,
"atlas_validation": {
"passed": true,
"atlas_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"atlas_license": "CC BY-SA4.0",
"atlas_license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"method": "Lossless vertical pixel atlas: Mortel1920x1280 at[0,0], Meskens1920x1706 at[0,1280]. All49 upper/oculus/rose polygons refer to Mortel; only six bottom capsule polygons refer to Meskens, offset1280px. Each complete aperture belongs to one unchanged photo block. Affine per-aperture UV, no global homography.",
"components": [
{
"path": "assets/reference/artwork_east_mortel_2016_11_high.jpg",
"sha256": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105",
"declared_hash_matches": true,
"registered_source_id": "east_mortel_2016_11",
"offset_px": [
0,
0
],
"size_px": [
1920,
1280
],
"decoded_pixel_block_identical": true,
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights."
},
{
"path": "assets/reference/artwork_east_barcelona11_high.jpg",
"sha256": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"declared_hash_matches": true,
"registered_source_id": "east_barcelona11",
"offset_px": [
0,
1280
],
"size_px": [
1920,
1706
],
"decoded_pixel_block_identical": true,
"source_url": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_11.jpg",
"photographer": "Ad Meskens",
"license": "CC BY-SA4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"underlying_artwork_note": "Glass design attributed separately to Joan Vila-Grau. The photographer license is not evidence of a separate artist copyright waiver; the user authorized this DEMOS gallery publication, which does not add or imply a waiver of the underlying artwork rights."
}
],
"apertures_checked": 55,
"aperture_checks": [
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
1
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "caps",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "circles",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "large",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "core",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
},
{
"group": "petals",
"source_block_indices": [
0
],
"within_one_source_block": true
}
]
},
"underlying_artist": "Joan Vila-Grau, separately attributed in MATERIAL_SOURCES.redistribution.photograph_attribution",
"underlying_rights_distinguished": true,
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Busquets_Nativity_Holy_Family",
"texture": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png",
"texture_sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"source_id": "sculpture_nativity_2016",
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2816%29_%2831153735122%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY 2.0",
"underlying_artist": "Jaume Busquets",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png",
"sha256": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_blended.png",
"sha256": "385e4fb2d61924a569320ff9b28135ffe2e37ac362c37c749eb66688f6501184",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_transition.png",
"sha256": "2fca58833c91ecfe39144e4bc260323435389242398865ed54a999a1c71079b8",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Sotoo_Harp_Angel_1984",
"texture": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png",
"texture_sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"source_id": "sculpture_angel_harp_2014",
"source_url": "https://commons.wikimedia.org/wiki/File:Angels_-_Nativity_Facade_-_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY-SA 3.0",
"underlying_artist": "Etsuro Sotoo",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png",
"sha256": "5f75db27a19fdc7dc78e48ca3966db2d66eef41516382b97865e9e7b0d724d2d",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_blended.png",
"sha256": "1c0e5416f98df75a45df6fe67dfeed679a2ca836b40e9a7715370e0a7557a775",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_transition.png",
"sha256": "4cc62feeb9b8a20f465bb1b1bb68a000d1bb82ecba4babddbcb1613c5f2679e7",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Sotoo_Viola_and_Lute_Angels",
"texture": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png",
"texture_sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"source_id": "sculpture_angel_mandolin_2016",
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2818%29_%2830489800873%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY 2.0",
"underlying_artist": "Etsuro Sotoo",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png",
"sha256": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_blended.png",
"sha256": "b2aae62c8538ad532483d6bbf89c5b03fe63aa98d3a3ac5996cae27ab9982c2a",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_transition.png",
"sha256": "802873a0425a8d324d3486d1f321ccab7b7c24b7c2c082aff0761513c26aa341",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Sotoo_Singing_Children_1999",
"texture": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png",
"texture_sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"source_id": "sculpture_choir_2016",
"source_url": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_Nativity_facade_%2815%29_%2831133090922%29.jpg",
"photographer": "Richard Mortel",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY 2.0",
"underlying_artist": "Etsuro Sotoo",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png",
"sha256": "2339ceab9e26de3ca8015e145a2e7a3ae143eecaa81ced65f21571a22802b396",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_blended.png",
"sha256": "8ae055162829ab1dfe7ab5936bb578dc113265f359e1d5911e501a57ca990c8e",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_transition.png",
"sha256": "c446a587cc8966d2f0e1e60f31e5a203b91f53aefa2cf557f17e33903de5905a",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Subirachs_Judas_Kiss_and_Magic_Square",
"texture": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png",
"texture_sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"source_id": "sculpture_judas",
"source_url": "https://commons.wikimedia.org/wiki/File:Der_Judaskuss_und_das_magische_Quadrat_von_Josep_Maria_Subirachs.jpg",
"photographer": "Karsten Knöfler",
"license": "CC BY 3.0",
"license_url": "https://creativecommons.org/licenses/by/3.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY 3.0",
"underlying_artist": "Josep Maria Subirachs",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square.png",
"sha256": "f5b6bb71d9118edd135061b0ec682082acd231485d5e6d73cb3e66bc4ed8f1db",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png",
"sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_transition.png",
"sha256": "10a29414bf91c34f0e3626511d38a14fa36df9e3ca48e2c9d11a8ecc1b3569f3",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Subirachs_Crucifixion",
"texture": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png",
"texture_sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"source_id": "sculpture_crucifixion_2014",
"source_url": "https://commons.wikimedia.org/wiki/File:Crucifixion_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY-SA 3.0",
"underlying_artist": "Josep Maria Subirachs",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Subirachs_Crucifixion.png",
"sha256": "e8bcc03364260309155fa3f34b3d192b8aefddd26de60d7fafae4b82aa37d7f9",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png",
"sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_transition.png",
"sha256": "7a016be94345016a30a0370d3b95f87546add53669215ba7b0d6dc1a62c97c8e",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
},
{
"kind": "sculpture",
"id": "Subirachs_Veronica_and_Soldiers",
"texture": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png",
"texture_sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"source_id": "sculpture_veronica_2014",
"source_url": "https://commons.wikimedia.org/wiki/File:La_Veronica_-_Sagrada_Familia_-_Barcelona_2014.JPG",
"photographer": "José Luiz Bernardes Ribeiro",
"license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"modifications": "Cropped, hand-masked, downsampled photographic texture on estimated-depth relief. Adaptation by project author. v8: baked sRGB diffuse transition to authored stone_light_base.png. Area-weighted geometric vertex-normal alignment smoothstep0.70..0.97 only within outer18cmreturnband; interior beyondband+2gridcells fullyphoto; boundary0photo;0.65gridpixelGaussian+ bicubicupsampling. Allfrontfaces shareoneglTFimage. SourceRGBatweight255 retainedexactly; sourcePNGuntouched.",
"adaptation_license": "CC BY-SA 3.0",
"underlying_artist": "Josep Maria Subirachs",
"underlying_rights_distinguished": true,
"source_chain": {
"source_texture": {
"path": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers.png",
"sha256": "29207a6bbd015141355d111202e7c996c1d2b4e8e4c29d3f988c3aae8670d663",
"matches_record": true
},
"derivative_texture": {
"path": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png",
"sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"matches_record": true
},
"transition_mask": {
"path": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_transition.png",
"sha256": "2ca1bd719e81f80b34f813dc7737fcd1f0a7539d86b1f61a15ff645ada48a070",
"matches_record": true
},
"stone_tile": {
"path": "assets/textures/stone_light_base.png",
"sha256": "699ab8448f13ccaefda23dbd0dfe1916eb6f27e33779e7cfc0d9e30676ceb462",
"matches_record": true
}
},
"missing_metadata": []
}
],
"glb": {
"path": "build/sagrada_familia.glb",
"sha256": "5050da208701b9cb4bd5c7c4cd1f9595a364d761dbc086e27c88184a499e0710",
"bytes": 319558244,
"stable_during_read": true,
"image_count": 73,
"material_count": 65,
"photo_image_count": 15,
"images": [
{
"index": 0,
"name": "sandstone_normal",
"bytes": 1448514,
"sha256": "e4f09a7e330f0415455d3d52f18a0a7068e03b8ce1ddfe4ea12b291875d88f7a",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/sandstone_normal.png",
"assets/textures/stone_pbr_web_v11/sandstone_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 1,
"name": "sandstone_base",
"bytes": 455730,
"sha256": "e39ade56ff53da17805e345b0c6a2ec506aae4e8e8f5396507bb07de0b2db9fd",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/sandstone_base.png",
"assets/textures/stone_pbr_web_v11/sandstone_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 2,
"name": "sandstone_rough",
"bytes": 715880,
"sha256": "33593fc4e5e2581487a7b346bb7ba82e603e71b9fc8c37d9ee885d3e5549c61d",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/sandstone_rough.png",
"assets/textures/stone_pbr_web_v11/sandstone_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 3,
"name": "shaft_sandstone_normal",
"bytes": 1449211,
"sha256": "8435750f573c9d10ab91f9b535f64e055b147cf1c859314779d9c0f0ab80ca0e",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_sandstone_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 4,
"name": "shaft_sandstone_base",
"bytes": 517808,
"sha256": "4b17d9119d788a26cafe911292bbdf4b9a8da6d521bf7ac6742d1f2483cf4b1c",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_sandstone_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 5,
"name": "shaft_sandstone_rough",
"bytes": 716305,
"sha256": "2409810894661f626f0e7662e017026f64330829f6f4a7dfb333408f782d3053",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_sandstone_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 6,
"name": "vault_normal",
"bytes": 1449605,
"sha256": "5529d1897d1725c474465cffc9c314b04bd4b8255531e283dead1594c8d18d9e",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_pbr_web_v11/vault_normal.png",
"assets/textures/vault_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 7,
"name": "vault_base",
"bytes": 440760,
"sha256": "f50d9ee918bc1605b2b5e3faa194119be5873fedbe49626b9c06a1ae2717a9ef",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_pbr_web_v11/vault_base.png",
"assets/textures/vault_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 8,
"name": "vault_rough",
"bytes": 686534,
"sha256": "795a7d7fa8fecb32cbaac5390a4ab97d99f1ac8c905276c5b871511d4ba2195c",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_pbr_web_v11/vault_rough.png",
"assets/textures/vault_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 9,
"name": "stone_light_normal",
"bytes": 1477122,
"sha256": "488b07c7289f080b77c7803f26177220f5ad69c351ff110996d25e6b460648dd",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_light_normal.png",
"assets/textures/stone_pbr_web_v11/stone_light_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 10,
"name": "stone_light_base",
"bytes": 470916,
"sha256": "2a5272aafe2678327abeb6ce280926be41a9c4114e2c04d4679cf14659794bf1",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_light_base.png",
"assets/textures/stone_pbr_web_v11/stone_light_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 11,
"name": "stone_light_rough",
"bytes": 742111,
"sha256": "2c1e7ec0e9b53854bc0fbcc5e031df7cc7542db03e0f97a61fc04b4243a6a6f6",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_light_rough.png",
"assets/textures/stone_pbr_web_v11/stone_light_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 12,
"name": "concrete_normal",
"bytes": 1518381,
"sha256": "03774d96f0b898841f1363189e8167a385fd466a5d45b6843fb8396b8575d147",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/concrete_normal.png",
"assets/textures/stone_pbr_web_v11/concrete_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 13,
"name": "concrete_base",
"bytes": 468452,
"sha256": "90412914a11ef4cd0301701f17a65698388b01f1ed9062894a75e265bdb1d7f9",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/concrete_base.png",
"assets/textures/stone_pbr_web_v11/concrete_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 14,
"name": "concrete_rough",
"bytes": 778252,
"sha256": "5026d419c841feb3490627dc2f6a0f1ae0bb7125ef905e2ee3e1a22fa9a4ec21",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/concrete_rough.png",
"assets/textures/stone_pbr_web_v11/concrete_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 15,
"name": "stone_normal",
"bytes": 1538410,
"sha256": "393a226185a8195e91eae334a3634fb084d04d5d6a3c69d206d10ce7d5170872",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_normal.png",
"assets/textures/stone_pbr_web_v11/stone_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 16,
"name": "stone_base",
"bytes": 471855,
"sha256": "f5b8623ec5f6486a16ceb188e6278f8c334dc2a1cd4272a1e894f0fc5bd73541",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_base.png",
"assets/textures/stone_pbr_web_v11/stone_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 17,
"name": "stone_rough",
"bytes": 765713,
"sha256": "8423668a5dec9c75585bc383d38e6ca75a1457f4d976f0ca0b80e499f042db1f",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_pbr_web_v11/stone_rough.png",
"assets/textures/stone_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 18,
"name": "floor_normal",
"bytes": 1311505,
"sha256": "ed8fff2ee74205a3682d4c4ec7e3b4a0189d6175a6c59c14dce5ce08c4c77079",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/floor_normal.png",
"assets/textures/stone_pbr_web_v11/floor_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 19,
"name": "floor_base",
"bytes": 348221,
"sha256": "f94d26cd33fc31d8138b5cbfbf0aab3f5c6fe79b80c7673033e58835761b3ae2",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/floor_base.png",
"assets/textures/stone_pbr_web_v11/floor_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 20,
"name": "floor_rough",
"bytes": 643769,
"sha256": "7e92a4fb8418ebfdc4bb8dc15a5578dd8a1cc7a03a6531d3ddd1c3c464edc56b",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/floor_rough.png",
"assets/textures/stone_pbr_web_v11/floor_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 21,
"name": "basalt_normal",
"bytes": 1365667,
"sha256": "a684839970c5f5f1be4b0a839173b6553ae856518f33c530239f2608627caf1a",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/basalt_normal.png",
"assets/textures/stone_pbr_web_v11/basalt_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 22,
"name": "basalt_base",
"bytes": 434625,
"sha256": "7622cc0ae48310a7eeefddaf109c848574c0380c7a91f612e4e610f01203c08b",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/basalt_base.png",
"assets/textures/stone_pbr_web_v11/basalt_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 23,
"name": "basalt_rough",
"bytes": 714572,
"sha256": "470237a6952e69bf57d1f8c141074553f69cbda9ed70ace80a195bb8aa3327a3",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/basalt_rough.png",
"assets/textures/stone_pbr_web_v11/basalt_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 24,
"name": "shaft_basalt_normal",
"bytes": 1366790,
"sha256": "0df061719f23f429ba3cb19ce4df6ed5983d9dea9e43958ea20bef66771f4a80",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_basalt_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 25,
"name": "shaft_basalt_base",
"bytes": 449298,
"sha256": "1f7918200b909e98469ce361af75c8bd807e069459c98893a8d1511a43d243ef",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_basalt_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 26,
"name": "shaft_basalt_rough",
"bytes": 714995,
"sha256": "1ba4ae98c332626d3a19560aa23856d64cb316d2f5491ca0e2c34a34b69eb884",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_basalt_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 27,
"name": "granite_normal",
"bytes": 1472858,
"sha256": "5f573144080f2712cce0928c70be004753f819a792b2b592fe63180b89d2cb03",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/granite_normal.png",
"assets/textures/stone_pbr_web_v11/granite_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 28,
"name": "granite_base",
"bytes": 764924,
"sha256": "f1054bad8adff06efe9385921ce546d1c3b26f1ff730e0ab333e29eb860f56e3",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/granite_base.png",
"assets/textures/stone_pbr_web_v11/granite_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 29,
"name": "granite_rough",
"bytes": 779791,
"sha256": "45d7e0e7dda4082a1f49a99c283ad88b2080dfed3d7048f5d88c95522c290d27",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/granite_rough.png",
"assets/textures/stone_pbr_web_v11/granite_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 30,
"name": "shaft_granite_normal",
"bytes": 1473538,
"sha256": "4837211c4bcd71a310b8a89cbcba58376da2311f211570e8f74a629ae89bb8bc",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_granite_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 31,
"name": "shaft_granite_base",
"bytes": 784756,
"sha256": "32ec66c12bb7f1dfd97f131bbbbc1ccd616bb0fe1af0e24917bb7e286adee839",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_granite_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 32,
"name": "shaft_granite_rough",
"bytes": 780305,
"sha256": "3fcdd633e1f493ed3a02ed450c706fc9b3766572180715a1919ed28b9b6d6acb",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_granite_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 33,
"name": "Busquets_Nativity_Holy_Family_nativity_warm_render",
"bytes": 2520155,
"sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 34,
"name": "nativity_stone_detail_normal",
"bytes": 1565043,
"sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_stone_detail_normal.png",
"assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 35,
"name": "nativity_stone_detail_base",
"bytes": 651424,
"sha256": "958704ba28fdd8bbf7e2a994304e363253cc628b3099ed9eead34230895c2f87",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_stone_detail_base.png",
"assets/textures/stone_pbr_web_v11/nativity_stone_detail_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 36,
"name": "nativity_stone_detail_rough",
"bytes": 805535,
"sha256": "42371b39ab4e04bf4063e03d9b13c683cbf9601b022a0c80d853f625c9fec4ce",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_stone_detail_rough.png",
"assets/textures/stone_pbr_web_v11/nativity_stone_detail_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 37,
"name": "wall_stone_light_normal",
"bytes": 1480216,
"sha256": "c42001f848abe33a01ff1aad39b2887acd06d41752ddc6ca2869d46c55ab948c",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/wall_stone_light_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 38,
"name": "wall_stone_light_base",
"bytes": 607239,
"sha256": "2f2281fe80866668811b93509cccdba2168cd1b0586418c69fb74ed36e7e8d4a",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/wall_stone_light_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 39,
"name": "wall_stone_light_rough",
"bytes": 745404,
"sha256": "1274d7cbca4ead4e875879a885612862b55f3979031ff033a746bf0f7fc381fa",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/wall_stone_light_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 40,
"name": "porphyry_normal",
"bytes": 1452995,
"sha256": "b7a8ebdb8fc67fcb505de7cd918b45994542cc7ebabe7a6be4c9b6b4461fb038",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/porphyry_normal.png",
"assets/textures/stone_pbr_web_v11/porphyry_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 41,
"name": "porphyry_base",
"bytes": 1126223,
"sha256": "293e8f8d16049a6a84c856be979ebb53b3c0e9679554f33afdc9879cb1cdd9d7",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/porphyry_base.png",
"assets/textures/stone_pbr_web_v11/porphyry_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 42,
"name": "porphyry_rough",
"bytes": 766086,
"sha256": "4ad2d4e2771e685f4213d0ba54a1e07d8a29e21e4e7aea1b90c860790ebb77eb",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/porphyry_rough.png",
"assets/textures/stone_pbr_web_v11/porphyry_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 43,
"name": "shaft_porphyry_normal",
"bytes": 1453808,
"sha256": "7a305fb4020a9715b861e347a560f08532d32c7bf7ee532c636fa099d7433a40",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_porphyry_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 44,
"name": "shaft_porphyry_base",
"bytes": 1164597,
"sha256": "1ff9d756f7c964e614c7cca6cee67e13b1ff0ec8d59ea076cb86e79e436fcb39",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_porphyry_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 45,
"name": "shaft_porphyry_rough",
"bytes": 766576,
"sha256": "f6d6c1092cd44cde4eaa7fedec2247fa61d9ec685d7596929281a3a603c88132",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/shaft_porphyry_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 46,
"name": "nativity_stone_detail_anchor_base",
"bytes": 722075,
"sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png"
],
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 47,
"name": "nativity_stone_detail_anchor_rough",
"bytes": 805535,
"sha256": "ab97957366509e72aa4bd44f37d65ccef80571d56b43f8914d7c3d10b160dfbe",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png"
],
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 48,
"name": "nativity_stone_normal",
"bytes": 1585107,
"sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_stone_normal.png",
"assets/textures/stone_pbr_web_v11/nativity_stone_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 49,
"name": "nativity_stone_anchor_base",
"bytes": 643133,
"sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png"
],
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 50,
"name": "nativity_stone_anchor_rough",
"bytes": 820349,
"sha256": "87b9a052e1df2c6583e742ed97be4413e0e86b50bbf7eb0a7aca2a005637df75",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png"
],
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 51,
"name": "nativity_stone_base",
"bytes": 564834,
"sha256": "3f811002942d67cb1bba93a1e736328d60d1a309c2b382de62cb060aff4c9cdf",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_stone_base.png",
"assets/textures/stone_pbr_web_v11/nativity_stone_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 52,
"name": "nativity_stone_rough",
"bytes": 820349,
"sha256": "0935199e60a61caf630145e08d3e5871c5ec13267995f42afbf6f2c4fd439260",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/nativity_stone_rough.png",
"assets/textures/stone_pbr_web_v11/nativity_stone_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 53,
"name": "glass_east_blue_mortel2016",
"bytes": 1313874,
"sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_east_blue_mortel2016.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_east_blue_mortel2016.jpg",
"comparison": "identical_bytes"
}
]
},
{
"index": 54,
"name": "glass_east_ribeiro2014",
"bytes": 2385990,
"sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_east_ribeiro2014.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_east_ribeiro2014.jpg",
"comparison": "identical_bytes"
}
]
},
{
"index": 55,
"name": "glass_east_palegreen_mortel_meskens_atlas",
"bytes": 7632494,
"sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_east_palegreen_mortel_meskens_atlas.png"
],
"source_matches": [
{
"path": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 56,
"name": "glass_east_yellowgreen_meskens2016",
"bytes": 3508197,
"sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_east_yellowgreen_meskens2016.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_east_yellowgreen_meskens2016.jpg",
"comparison": "identical_bytes"
}
]
},
{
"index": 57,
"name": "glass_west_green_smiley2023",
"bytes": 2032909,
"sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_west_green_smiley2023.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_west_green_smiley2023.jpg",
"comparison": "identical_bytes"
}
]
},
{
"index": 58,
"name": "wall_stone_normal",
"bytes": 1541217,
"sha256": "678d17599ff17d5d5381a398f0d41a00e486533a9a4f73032e9dc412bb758bdd",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/wall_stone_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 59,
"name": "wall_stone_base",
"bytes": 605441,
"sha256": "dc8a605eecc2ba7c595d435a1d0f1406e0dc7f0e4a1234cfacd278876d93f422",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/wall_stone_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 60,
"name": "wall_stone_rough",
"bytes": 769155,
"sha256": "c5ea8db431631504f98f9459906054b6d6274bdd70f855a75cffceb3f8ae8e58",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_finishes_v12/wall_stone_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 61,
"name": "Sotoo_Harp_Angel_1984_nativity_warm_render",
"bytes": 1590768,
"sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 62,
"name": "Sotoo_Singing_Children_1999_nativity_warm_render",
"bytes": 2325584,
"sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 63,
"name": "Sotoo_Viola_and_Lute_Angels_nativity_warm_render",
"bytes": 3613369,
"sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 64,
"name": "Subirachs_Crucifixion_edge_blended",
"bytes": 2475949,
"sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Subirachs_Crucifixion.png",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 65,
"name": "Subirachs_Judas_Kiss_and_Magic_Square_edge_blended",
"bytes": 2592294,
"sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square.png",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 66,
"name": "Subirachs_Veronica_and_Soldiers_edge_blended",
"bytes": 3051967,
"sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers.png",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png"
],
"source_matches": [
{
"path": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 67,
"name": "stone_dark_normal",
"bytes": 1547513,
"sha256": "3da94f4fb8cad084f49055af5130a7453b5bf9c0254aad1349ca19520ad91f12",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_dark_normal.png",
"assets/textures/stone_pbr_web_v11/stone_dark_normal.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_normal.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 68,
"name": "stone_dark_base",
"bytes": 502612,
"sha256": "9fd1787b93614b41a8ac1908a91595bae51922570835600bf55d8af2a70d8ce6",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_dark_base.png",
"assets/textures/stone_pbr_web_v11/stone_dark_base.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_base.png",
"comparison": "identical_bytes"
}
]
},
{
"index": 69,
"name": "stone_dark_rough",
"bytes": 784587,
"sha256": "f025a07e3ade2df810b1e5586f89db6a3d9b914c24f9d14ddbc9260d1455f440",
"classification": "authored_procedural",
"source_candidates_checked": [
"assets/textures/stone_dark_rough.png",
"assets/textures/stone_pbr_web_v11/stone_dark_rough.png"
],
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_rough.png",
"comparison": "roughness green channel identical, red/blue constant255"
}
]
},
{
"index": 70,
"name": "glass_west_red_alikhan2022",
"bytes": 1157903,
"sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_west_red_alikhan2022.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_west_red_alikhan2022.jpg",
"comparison": "identical_bytes"
}
]
},
{
"index": 71,
"name": "glass_west_red_rose_mortel",
"bytes": 1147453,
"sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_west_red_rose_mortel.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_west_red_rose_mortel.jpg",
"comparison": "identical_bytes"
}
]
},
{
"index": 72,
"name": "glass_west_ribeiro2014",
"bytes": 3039417,
"sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"classification": "licensed_photo_derivative",
"source_candidates_checked": [
"assets/textures/glass_west_ribeiro2014.jpg"
],
"source_matches": [
{
"path": "assets/textures/glass_west_ribeiro2014.jpg",
"comparison": "identical_bytes"
}
]
}
],
"final_v8_derivatives_embedded": true
},
"official_reference_exclusion": {
"known_reference_image_hashes_checked": 32,
"embedded_reference_byte_matches": [],
"ingredient_set": "73 embedded images; 15 photo-derived and 58 procedural. Every image is compared to known source/derivative bytes or decoded pixels; roughness packing is checked channel by channel.",
"conclusion": "No official reference image identified among GLB ingredients."
},
"user_attribution": {
"path": "web/dist/credits.html",
"photo_credits": [
{
"texture": "assets/textures/glass_east_ribeiro2014.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_west_ribeiro2014.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_west_red_alikhan2022.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_west_red_rose_mortel.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_west_green_smiley2023.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_east_blue_mortel2016.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_east_yellowgreen_meskens2016.jpg",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
},
{
"texture": "assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png",
"photographer_present": true,
"source_url_present": true,
"license_url_present": true,
"underlying_artist_present": true
}
],
"v8_changes_included": true,
"access": "UI 資料と出典 opens credits.html; split bundle copies same credit file, verified separately by runtime agent."
},
"issues": [],
"limits": [
"Whole official reference folder is absent from runtime ingredient manifest; this audit separately verifies exact embedded image content.",
"Final static split-package credits hash must be checked after packaging.",
"Source documents distinguish original photographer licenses from Joan Vila-Grau, Etsuro Sotoo, Jaume Busquets and Josep Maria Subirachs underlying artwork. Existing local-review scope retained."
]
}
{
"artifact": "Sagrada Familia 2026: interior geometry",
"scope_date": "2026-10-01",
"geometry_authoring": "Original procedural editable mesh, not photogrammetry or a surveyed as-built model",
"primary_source": {
"title": "Sagrada Familia Information Booklet 9: Interior of the Basilica",
"publisher": "Fundacio Junta Constructora del Temple Expiatori de la Sagrada Familia",
"url": "https://sagradafamilia.org/documents/20142/1000561/Booklet_09.pdf/283a74b1-9c07-cedb-6211-cf3cb4db7aad",
"retrieved": "2026-10-01",
"publication_date": "02/2026 edition verified visually by independent QA; stable architectural evidence, not current work-completion evidence",
"pages_visually_inspected": [
2,
5,
7
],
"facts": {
"heights_m": {
"choir": 15,
"side_nave": 30,
"central_nave": 45,
"crossing": 60,
"apse": 75
},
"length_m": 90,
"central_nave_width_m": 15,
"grid_m": 7.5,
"columns": "Intersecting opposite helicoidal forms, elliptical knots, repeated branching. Sandstone at aisles, granite in nave, basalt at crossing perimeter, red porphyry for four central supports.",
"vaults": "Hyperboloid skylights; white concrete aisles; central Catalan tiles with green and gold mosaic. Rising radial apse tiers.",
"choirs": "Side horseshoe and apse children's gallery; railings feature musical staves.",
"apse": "Seven chapels; presbytery bounded by ten columns and raised two metres.",
"altar": "Porphyry monolith 2.72m long; suspended crucifix; heptagonal baldachin five metres across and fifty lamps.",
"glass": "Cool Nativity-side colour, warm Passion-side colour; increasing transparency upwards. Actual glazing is authored separately."
},
"rights": "Official PDF and photographs used privately as visual references. No reference photograph is mapped onto, embedded in or redistributed with runtime geometry."
},
"approximation_register": [
{
"element": "Column placements",
"method": "7.5m grid followed where practical; main rows y+-7.5 and +-15, apse horseshoe radii12.5/18.6",
"uncertainty": "Photographic alignment, not surveyed coordinates"
},
{
"element": "Shaft radii and twists",
"method": "Radial intersection of two counter-rotating polygon envelopes, with progressive upper rounding",
"uncertainty": "Mathematical reconstruction captures principle; not recovered Gaudi fabrication sections"
},
{
"element": "Branches",
"method": "Substantial upright continuation trunk, two lower shoulder boughs and compact high fork with eight short secondary supports",
"uncertainty": "Branch topology and control points simplified from photographs"
},
{
"element": "Vaults",
"method": "Open hyperboloid throats within serrated eight-point canopy cells, warm tile fields and mosaic wedges",
"uncertainty": "Cell distribution, decorative wedges and precise curvature approximate"
},
{
"element": "Window frame envelope",
"method": "Five 7.5m nave wall bays each side; seven apse bays; separate upper clear clerestory",
"uncertainty": "Coordinates and moulding dimensions estimated photographically; glazing module retains own evidence"
},
{
"element": "Medallions",
"method": "Original glazed geometric discs with bronze edges",
"uncertainty": "Does not reproduce diocesan coats of arms or Fita artwork exactly"
},
{
"element": "Sanctuary furniture",
"method": "Dimension-anchored altar and baldachin; simplified original terracotta crucifix, grape/wheat motifs and twin organ banks",
"uncertainty": "Fine sculpture, lettering and organ proportions approximate"
},
{
"element": "Choir rail notes",
"method": "Original schematic staff and square notes",
"uncertainty": "No claim to reproduce an actual hymn"
},
{
"element": "Floor and seating",
"method": "Original tiled floor pattern and individual pale timber chair banks",
"uncertainty": "Arrangement approximated; visitor routes may differ"
},
{
"element": "Exterior/interior roof transitions",
"method": "Continuous backing planes with skylight apertures, faceted vault-step risers, crossing shoulders and apse drum/roof to Mary plinth",
"uncertainty": "Original envelope reconstruction; roof structure and construction-level joints not surveyed"
},
{
"element": "Glory internal upper weather closure",
"method": "Plain neutral closure at x0, central z28..45.65 and side z22.15..30.45, behind the construction facade",
"uncertainty": "The nave is documented enclosed, but this exact current infill pattern is not photographed/surveyed here; no future Glory artwork or towers implied"
},
{
"element": "Transverse clerestory height-step closure",
"method": "Stone sill and clear framed panes at x45/x60, y+-7.5..30. The solid base reaches24.5m to meet the low vault skirts; crown remains30m, high nave45m",
"uncertainty": "Highest-nave transparent glass is source-grounded; precise transverse frames and enclosure sections are original approximations"
}
],
"current_status_exclusions": [
"No tower interiors, Jesus tower lift, cross observation deck or unfinished Glory tower interiors represented as accessible"
],
"runtime": {
"walkable_ground_z": 0,
"presbytery_top_z": 2,
"colliders": "Ground slabs and sanctuary steps explicitly marked walkable_floor; furniture and columns are obstacles",
"geometry_budget": "Math-only v3 dry-run estimate: 866121 triangles, 478524 vertices, 4929 editable objects before export batching; exact Blender metrics reported in build/model_stats.json",
"flight_note": "Runtime owner confirmed free inspection flight with only Jesus-construction exclusion; upper branch/vault visual meshes intentionally lack individual flight colliders."
},
"validation": {
"syntax": "python3 -m py_compile passed 2026-10-01",
"visual": "v1/v2 render QA identified Glory upper weather gap and transverse clerestory missing height-step enclosure. v3 geometry corrected both using supplied ray intersections, and replaced broad vertical riser curtains with tilted folded vault cells. Integrated v3 render review pending.",
"geometry_dry_run": "Passed all mesh face index and finite coordinate checks; emitted 90 colliders and 34 window descriptors",
"remaining_limitations": [
"Repeated branch/cell layout is photo-guided rather than surveyed",
"Fine symbolic sculpture, medallion artwork and inscriptions simplified",
"Exact Glory interior weather infill and transverse clerestory subdivisions remain uncertain, represented neutrally",
"Final basalt/porphyry contrast and reflected coloured light require material/light integration review"
],
"qa_ray_closures": [
{
"view": "04_Tree_canopy",
"pixel": [
730,
15
],
"intersection": [
0,
-3.26,
38.12
],
"result": "Inside new Glory weather closure"
},
{
"view": "04_Tree_canopy",
"pixel": [
740,
32
],
"intersection": [
0,
-4.58,
39.3
],
"result": "Inside new Glory weather closure"
},
{
"view": "04_Tree_canopy",
"pixel": [
75,
745
],
"intersection": [
60,
20.76,
27.5622
],
"result": "Inside new transverse clerestory sill"
},
{
"view": "04_Tree_canopy",
"pixel": [
50,
730
],
"intersection": [
60,
22.7481,
27.937
],
"result": "Inside new transverse clerestory sill"
}
]
},
"v12_roof_side_returns": {
"issue": "Unframed sky leaks between rising axial bays and lower adjacent roofs, confirmed in actual Chrome and Blender rays.",
"source": "Existing authored roof/clerestory boundaries and reference photos of the enclosed interior; exact roof section not surveyed.",
"added_meshes": 4,
"extent": "X37.5..45 or60..67.5; |Y|7.5..7.82; high edge follows existing tilted roof, low edge z30.45; vertical backing offset .24m.",
"preservation": "All13004 existing mesh coordinate/topology/UV digests unchanged;732 optical objects unchanged; no transverse clear-glass aperture intersections.",
"why_previous_closure_report_did_not_cover_this": "Previous specific rays covered Glory upper envelope and transept clerestory sill from camera04, not the crossing viewpoint.",
"geometry_audit": "runtime/qa/ceiling_geometry_v12.json",
"ray_audit": "runtime/qa/crossing_rays_v12_final.json",
"review": "docs/CEILING_REPAIR_V12.md"
}
}
{
"project": "Sagrada Familia evidence-led reconstruction",
"updated": "2026-10-01",
"status": "Photo-grounded glazing v4: one east and three distinct adjacent west banks, modeled relief, explicit limits",
"authorship": {
"stone_textures": "Original deterministic procedural textures, not photographs or scans. The retained V10 source is generated by src/materials.py. Final deliverable V11 uses 36 original 1024x1024 base-color/roughness/OpenGL tangent-normal PNGs from src/prepare_stone_pbr_web_v11.py, plus 18 construction-finish PNGs composed by src/stone_finishes.py for six copied materials on 95 explicitly selected interior stone objects. The folder name stone_finishes_v12 is an internal process-stage label, not the deliverable version. See stone_revision for reference-only evidence, estimated dimensions, exact scope and preservation checks.",
"prototype_glass": "Original abstract pane tessellation in src/glazing.py. Photo-informed aggregate colour and opening types, NOT exact Joan Vila-Grau panel art. Keep labeled as an interpretive prototype until individual photographed panels are identified and incorporated.",
"reference_images_in_runtime": "Only separately licensed photographic artwork textures; official reference-only images excluded.",
"photographic_glass": "Seven observed banks: four east/Nativity (Ribeiro2014, blue Mortel2016, yellowgreen Meskens2016, palegreen Mortel+Meskens2016) and three west/Passion (Ribeiro2014 orange, Alikhan2022 red with Mortel2016 rose, Smiley2023 green). Seven unchanged photographic JPEG textures plus one lossless two-source atlas preserve actual photographed artwork. Metric UV correction, absolute bay indices and upper-bank reuse remain approximate.",
"licensed_photographs_as_glass_texture": true,
"official_reference_images_in_runtime": false
},
"references": [
{
"id": "official-booklet09",
"title": "Information Booklet 9: Interior of the Basilica",
"publisher": "Fundacio Junta Constructora del Temple Expiatori de la Sagrada Familia",
"url": "https://sagradafamilia.org/documents/20142/1000561/Booklet_09.pdf/283a74b1-9c07-cedb-6211-cf3cb4db7aad",
"retrieved": "2026-10-01",
"date_of_photography": "Not specified in source. Architecture/material reference, not a 2026 construction-state record.",
"use": "REFERENCE ONLY. Copyright not relicensed. Excluded from runtime/export/distribution.",
"local_reference": "tmp/references/official_interior_booklet09.pdf",
"pages_reviewed_visually": [
6,
8
],
"evidence": {
"p6": "Montjuic sandstone side-nave columns; granite central-nave; basalt crossing perimeter; red porphyry four central columns.",
"p7": "Side-nave vault exposed white concrete. Main nave/crossing/apse Catalan tiled vault with green/gold Venetian glass trencadis triangles.",
"p8": "Lower windows darker, ascending glazing more transparent; clear glass highest in central nave. Nativity cool-blue, western Passion orange. Actual side-bank diagram/photo shows round-headed narrow windows in repeated registers with small circles, upper circle groups and radial flower opening."
}
},
{
"id": "official-windows-blog",
"title": "The Sagrada Familia's stained-glass windows: captivating light",
"url": "https://blog.sagradafamilia.org/en/stained-glass-light-colour-creation/",
"use": "Primary explanatory reference only. Direct web fetch returned HTTP406; official Booklet09 used for verified facts/visuals."
},
{
"id": "official-columns-blog",
"title": "The geometry, mechanics and materials of a stone forest",
"url": "https://blog.sagradafamilia.org/en/columns-sagrada-familia-geometry-mechanics-materials-stone-forest/",
"use": "Primary explanatory reference only. Official Booklet09 used for verified stone assignment."
},
{
"id": "official-vilagrau",
"title": "Sagrada Familia mourns loss of Joan Vila-Grau",
"url": "https://sagradafamilia.org/en/detalle/-/asset_publisher/7JWibz9G2KUY/content/la-sagrada-familia-lamenta-la-defuncio-de-joan-vila-grau-autor-dels-vitralls-del-temple-de-la-sagrada-familia",
"publication_date": "2022-11-11",
"use": "Reference only, confirms 1999 start and almost20-year glazing project."
},
{
"id": "commons-glass-east-ribeiro2014",
"title": "Windows in the aisles - Interior of the Sagrada Familia - Barcelona2014(2crop)",
"url": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%282_crop%29.JPG",
"photographer": "Jose Luiz Bernardes Ribeiro",
"capture_date": "2014-02-11 09:41:34",
"license": "CC BY-SA3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"included_texture": "assets/textures/glass_east_ribeiro2014.jpg",
"changes": "Image bytes unchanged. Per-aperture UV fitting only; stone not photographically textured. Exact east-aisle numbered bay unresolved."
},
{
"id": "commons-glass-west-ribeiro2014",
"title": "Windows in the aisles - Interior of the Sagrada Familia - Barcelona2014(3)",
"url": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"photographer": "Jose Luiz Bernardes Ribeiro",
"capture_date": "2014-02-11 09:45:18",
"license": "CC BY-SA3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"included_texture": "assets/textures/glass_west_ribeiro2014.jpg",
"changes": "Image bytes unchanged. Per-aperture UV fitting only; stone not photographically textured. Exact west-aisle numbered bay unresolved. Upper flower tip slightly cropped; used only observed source pixels, no invented unseen image detail."
},
{
"id": "glass_candidate_west_2022",
"title": "SagradaFamilia Oct6 2022.jpg",
"url": "https://commons.wikimedia.org/wiki/File:SagradaFamilia_Oct6_2022.jpg",
"photographer": "Anusha Alikhan",
"capture_date": "2022-10-06 11:59:30",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"included_texture": "assets/textures/glass_west_red_alikhan2022.jpg",
"changes": "Original photograph bytes unchanged; individually bounded glass UV fitting only. See known_approximations for cropped/occluded regions."
},
{
"id": "glass_candidate_west_mortel6",
"title": "Sagrada Famiia, stained glass windows (6) (31240669306).jpg",
"url": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%286%29_%2831240669306%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 11:21",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"included_texture": "assets/textures/glass_west_red_rose_mortel.jpg",
"changes": "Original photograph bytes unchanged; individually bounded glass UV fitting only. See known_approximations for cropped/occluded regions."
},
{
"id": "glass_candidate_2023_3",
"title": "Stained-glass windows of the Sagrada Família 2023 3.jpg",
"url": "https://commons.wikimedia.org/wiki/File:Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg",
"photographer": "Smiley.toerist",
"capture_date": "2023-06-04 12:23:10",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"included_texture": "assets/textures/glass_west_green_smiley2023.jpg",
"changes": "Original photograph bytes unchanged; individually bounded glass UV fitting only. See known_approximations for cropped/occluded regions."
},
{
"id": "east_2016_mortel2",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Famiia%2C_stained_glass_windows_%282%29_%2831240948686%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 11:18",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"included_texture": "assets/textures/glass_east_blue_mortel2016.jpg",
"source_note": "Original photo metadata: docs/ARTWORK_SOURCES.json#east_2016_mortel2",
"changes": "Original photograph bytes unchanged; individually bounded glass UV mapping only."
},
{
"id": "east_barcelona10",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_10.jpg",
"photographer": "Ad Meskens",
"capture_date": "2016-05-23 18:24:31",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"included_texture": "assets/textures/glass_east_yellowgreen_meskens2016.jpg",
"source_note": "Original photo metadata: docs/ARTWORK_SOURCES.json#east_barcelona10",
"changes": "Original photograph bytes unchanged; individually bounded glass UV mapping only."
},
{
"id": "east_mortel_2016_11",
"source_page": "https://commons.wikimedia.org/wiki/File:Sagrada_Familia%2C_stained_glass_windows_%2811%29_%2831150428592%29.jpg",
"photographer": "Richard Mortel",
"capture_date": "2016-11-12 10:58",
"license": "CC BY 2.0",
"license_url": "https://creativecommons.org/licenses/by/2.0/",
"included_texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"source_note": "Original photo metadata: docs/ARTWORK_SOURCES.json#east_mortel_2016_11",
"changes": "Decoded photo pixels packed unchanged into lossless atlas; see derivation."
},
{
"id": "east_barcelona11",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona_Sagrada_Familia_interior_11.jpg",
"photographer": "Ad Meskens",
"capture_date": "2016-05-23 18:25:25",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"included_texture": "assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"source_note": "Original photo metadata: docs/ARTWORK_SOURCES.json#east_barcelona11",
"changes": "Decoded photo pixels packed unchanged into lossless atlas; see derivation."
}
],
"known_approximations": [
"Stone colors and microsurface are photographic estimates, not measured spectrophotometric albedo or exact quarry scans.",
"Window-bay metric dimensions and individual opening layout are approximate; shapes use photo-derived architectural vocabulary.",
"No artist inscriptions or saint names are invented as readable panel text.",
"Apse and central clerestory patterns remain original interpretations pending more identifiable sources.",
"West red/orange/green relative sequence confirmed against Bracons2015 and Smiley2023 photographs. Absolute bay indices are approximate. Each source bank is also reused at the upper side-wall level because an exact upper inventory is not available.",
"Smiley2023 green bank: bottom edges of several source panes are partly cropped; visitor cord and photograph shadows cross parts of the bottom register. Those observed source pixels are retained; unseen artwork is not fabricated.",
"The Alikhan2022 red-bank rose is occluded by the gallery in that image. Its entire flower is mapped from a matching Mortel2016 photograph, identified by the Lujan/Copecabana/Maria Congo oculi and distinctive blue glass at the base of the left register.",
"Ruled spandrel folds and stepped stone reveals use photo-derived0.08–0.22m relief, not survey measurements. Existing opening shape and glass UVs remain unchanged.",
"Runtime glass is opaque and weakly emissive for WebGL2. The integrator adds offline coloured transparent shadow rays from the photoRGB and separately documented runtime lighting. This is not a spectral reconstruction.",
"Daylight exterior glass is a side-aware appearance approximation informed by qa_nativity_2026_08_09_cc0.jpg and qa_passion_close.jpg: linear base=sourceRGB*0.045+(0.012,0.018,0.022), emission0, roughness0.22, coat0.25, IOR1.5. Interior shader remains unchanged. This is not measured spectral transmission or exact exterior photography.",
"Historic Nativity weathering is an original procedural photographic estimate: warmer ochre-grey albedo, gentle low-frequency mottling, small mineral pits and restrained directional staining. Not a quarry scan or restoration-condition survey. Explicitly limited to old Nativity fabric by exterior geometry owner; new central towers retain existing materials.",
"Photographs document installed artwork at capture dates2014–2023, not current2026 construction state. Their exposure and illumination are retained, without a claim of recovered spectral albedo.",
"East source-photo left-to-right verified order is yellowgreen→palegreen→unimplemented Chartres/Lourdes bluegreen→MontAthos blue. Modeled X-order is blue→Ribeiro→palegreen→yellowgreen→yellowgreen. Ribeiro is an additional real bank with unresolved location, NOT asserted to be the missing Chartres/Lourdes artwork. Absolute bay assignment, spacing, repeat and upper-bank reuse remain approximate.",
"Apse and central clerestory remain original interpretations; this is not an exact entire-basilica artwork inventory.",
"MontAthos blue Mortel source: first two lower capsules meet the photograph edge; only visible glass is mapped. No visitor posters, invented continuation or cross-bank substitutions were added.",
"Palegreen atlas uses49 upper apertures from Mortel2016 and six complete lower capsules from the same bank in Meskens2016; source matches include Juan Sahagun inscription and distinct lower blue/green/red fields. Residual exposure difference is a photographic limitation."
],
"redistribution": {
"included": [
"assets/textures/*_base.png",
"assets/textures/*_rough.png",
"assets/textures/*_normal.png",
"src/materials.py",
"src/glazing.py",
"assets/textures/glass_east_ribeiro2014.jpg",
"assets/textures/glass_west_ribeiro2014.jpg",
"assets/textures/window_banks.json",
"assets/textures/glass_west_red_alikhan2022.jpg",
"assets/textures/glass_west_red_rose_mortel.jpg",
"assets/textures/glass_west_green_smiley2023.jpg",
"src/prepare_photo_panels.py",
"src/prepare_extra_photo_banks.py",
"src/preview_glazing_uv.py",
"assets/textures/glass_east_palegreen_mortel_meskens_atlas.png",
"assets/textures/glass_east_blue_mortel2016.jpg",
"assets/textures/glass_east_yellowgreen_meskens2016.jpg",
"src/prepare_blue_photo_bank.py",
"src/prepare_extra_east_banks.py",
"assets/textures/east_bank_candidates.json",
"assets/textures/east_blue_bank_candidate.json"
],
"excluded": [
"tmp/references/**",
"assets/reference/**"
],
"purchased_assets": false,
"new_services_or_authentication": false,
"photograph_attribution": "Glass photographs: © José Luiz Bernardes Ribeiro / CC BY-SA3.0; © Anusha Alikhan / CC BY-SA4.0; © Richard Mortel / CC BY2.0; © Smiley.toerist / CC BY-SA4.0, via Wikimedia Commons. Glass artwork: Joan Vila-Grau. Images unchanged, UV corrections and modeled opening geometry by this reconstruction. Retain source links and attribution. Source photograph licensing does not itself waive separate artwork rights; this public edition retains that distinction. Additional east glass: © Richard Mortel / CC BY2.0 and © Ad Meskens / CC BY-SA4.0. Palegreen atlas combines unchanged decoded blocks of those two sources under CC BY-SA4.0; see derived_assets and ARTWORK_SOURCES.json. Underlying glass artwork: Joan Vila-Grau."
},
"verification": {
"texture_integrity": "36 original1K PBR PNGs verified; seven byte-identical licensed photographic JPGs plus one lossless source-pixel atlas. Texture dimensions and read integrity checked.",
"geometry": "All7 photographic banks build55 apertures each; UV source bounds, outward normals and complete12-sector roses checked. logs/glazing_v10_cpu.json records checks and layout.",
"visual_uv_qa": [
"screenshots/materials/window_bank_east_uv.png",
"screenshots/materials/window_bank_west_uv.png",
"screenshots/materials/window_bank_west_red_uv.png",
"screenshots/materials/window_bank_west_green_uv.png",
"screenshots/materials/window_bank_east_blue_mortel2016_uv.png",
"screenshots/materials/window_bank_east_yellowgreen_uv.png",
"screenshots/materials/window_bank_east_palegreen_uv.png"
],
"render_note": "CPU orthographic UV diagrams are not Cycles/runtime screenshots. V10 integration Cycles/Web review remains with root.",
"rose_sector_coverage": "2026-10-01 v4 follow-up: all four banks cover12 unique30-degree sectors. Mortel red flower explicitly ordered to correct photographic-perspective angle collision; generated mesh now rejects duplicate/missing sectors. CPU UV preview visually inspected after correction; v4 Cycles images predate the fix and need rebuild.",
"daylight_sided_glass": {
"cpu_normal_check": "logs/glazing_sidedness_cpu.json",
"banks": 34,
"faces": 77329,
"result": "All photographic and approximate pane normals outward before and after global Y reflection plus winding repair. Blender5.2.1 shader-node validation passed without render; interior Principled inputs/links preserved, external emission0, root shadow wrapper and glTF fallback preserve expected nodes.",
"render_status": "Awaiting root v7 rebuild and Cycles/Web visual verification."
},
"nativity_stone_v9": {
"materials": [
"nativity_stone",
"nativity_stone_detail"
],
"new_textures": 6,
"size_px": [
1024,
1024
],
"base_mean_srgb255": {
"nativity_stone": [
157.34,
139.36,
110.37
],
"nativity_stone_detail": [
169.72,
150.68,
120.65
]
},
"source_reference": "assets/reference/qa_nativity_2026_08_09_cc0.jpg",
"status": "Original procedural PBR maps visually inspected and PNG validation passed. No GPU/build. Exterior owner assigns only historic Nativity facade and four apostle towers."
},
"yellowgreen_red_round_detail": {
"bank": "east_yellowgreen",
"aperture": "lowest register,fourth capsule from photo-left",
"finding": "Independent artwork-reference review confirmed the same fixed round red feature in the same glass position across three photographs. Preserve exact source pixels; no removal,crop or generated repair.",
"interpretation": "Appearance is consistent with a round/crown-glass detail; the precise physical function is an inference, not independently established.",
"source_review": "docs/YELLOWGREEN_DETAIL_VALIDATION.json; assets/reference/artwork_yellowgreen_round_detail_comparison.png (reference-only). Meskens2016-05 and Mortel2016-11 viewpoints preserve the same detail relative to adjacent leadlines. Research also found compatible crown/bottle-glass explanation in a Vila-Grau interview; exact feature identification remains qualified."
},
"v10_freeze": "Materials/glazing/window_banks frozen after independent cross-photo resolution. Seven actual banks preserve exact observed source artwork; placement uncertainty and source exposure/frame limits remain documented. CPU checks passed; root owns final Cycles/Web visual validation."
},
"derived_assets": {
"glass_east_blue_mortel2016.jpg": {
"source_id": "east_2016_mortel2",
"bank": "east_blue_mortel2016",
"derivation": "assets/textures/east_blue_bank_candidate.json#east_blue_mortel2016",
"license": "CC BY2.0"
},
"glass_east_yellowgreen_meskens2016.jpg": {
"source_id": "east_barcelona10",
"bank": "east_yellowgreen",
"derivation": "assets/textures/east_bank_candidates.json#east_yellowgreen",
"license": "CC BY-SA4.0"
},
"glass_east_palegreen_mortel_meskens_atlas.png": {
"source_ids": [
"east_mortel_2016_11",
"east_barcelona11"
],
"bank": "east_palegreen",
"derivation": "assets/textures/east_bank_candidates.json#east_palegreen.derivation",
"license": "CC BY-SA4.0 for atlas derivative; source blocks retain respective CC BY2.0 and CC BY-SA4.0 attributions",
"pixel_integrity": "Exact decoded source pixel equality validated by artwork reference owner; no resizing/recolouring/generative fill or within-pane source seam."
}
},
"stone_revision": {
"deliverable_version": "V11",
"recorded_date": "2026-10-02",
"process_stage_names": {
"stone_pbr_web_v11": "Base PBR profile name used by final deliverable V11.",
"stone_finishes_v12": "Internal construction-joint development stage; also included in final deliverable V11. It does not identify a separate released V12 artifact."
},
"original_procedural_authorship": {
"base_pbr": {
"generator": "src/prepare_stone_pbr_web_v11.py",
"folder": "assets/textures/stone_pbr_web_v11",
"manifest": "assets/textures/stone_pbr_web_v11/profile.json",
"materials": 12,
"png_maps": 36,
"size_px": [
1024,
1024
],
"channels": [
"sRGB base color",
"non-color roughness",
"OpenGL tangent-space normal"
],
"method": "Deterministic periodic mineral-grain fields at fine and intermediate scales; distinct responses for sandstone, granite, basalt, porphyry, worked stone, vault, paving, concrete and older Nativity stone. No photographic sampling, purchased texture, generated repaint of a photograph or baked illumination. Original V10 maps remain preserved."
},
"construction_finish": {
"generator": "src/stone_finishes.py",
"folder": "assets/textures/stone_finishes_v12",
"manifest": "assets/textures/stone_finishes_v12/manifest.json",
"png_maps": 18,
"copied_materials": 6,
"size_px": [
1024,
1024
],
"tile_metres": 2.0,
"method": "Original deterministic narrow joint masks, small per-block/section linear-albedo steps and roughness differences composed with the original web_v11 grain. Shallow height gradients combine with existing tangent normals. Image-based Principled inputs export to glTF; no runtime procedural Brick node is required. Source materials, mesh coordinates and existing UVs are not rewritten."
}
},
"reference_only_evidence": {
"file": "assets/reference/qa_tree_vault.jpg",
"source_id": "gallery_1744193",
"source_page": "https://sagradafamilia.org/en/photo-gallery",
"image_url": "https://d2prydcqrq5962.cloudfront.net/image/journal/article?img_id=1744193&t=1788941682587",
"capture_date": null,
"capture_date_status": "Unknown; not established in available source/EXIF. This photograph is not evidence for the 2026 construction cutoff.",
"rights": "Fundació Junta Constructora del Temple Expiatori de la Sagrada Família or its licensors. All rights reserved.",
"usage": "REFERENCE ONLY. No official photograph pixels enter any procedural stone texture; original and inspection crops remain excluded from runtime/export/public distribution.",
"observations": "Left window surrounds show cut-stone horizontal courses and staggered vertical joints; lower shafts show fine horizontal construction sections. These visual features inform an approximation, not an exact block-by-block inventory."
},
"estimated_construction": {
"wall": {
"course_height_m": 0.3333333333333333,
"block_length_m": 0.6666666666666666,
"joint_width_m": 0.006,
"groove_depth_estimate_m": 0.00065,
"block_albedo_linear_variation": 0.13,
"layout": "Six courses by three blocks in the existing 2m tile, alternate rows offset by half a block.",
"joint_linear_darkness": 0.27
},
"shaft": {
"section_height_m": 1.0,
"joint_width_m": 0.004,
"groove_depth_estimate_m": 0.00045,
"section_albedo_linear_variation": 0.035,
"layout": "Thin horizontal sections only. Regular vertical masonry lines are omitted because the existing dominant-axis UV projection would create false discontinuities.",
"joint_linear_darkness": 0.18,
"appearance_note": "Restrained section modulation chosen after actual Chrome review to keep the long lower shafts from reading as alternating stripes. Wall unit contrast remains stronger."
},
"measurement_status": "All dimensions, colour variation, normal strength and roughness are visual estimates from photographs and appearance studies; none is a survey, quarry scan, profilometer/roughness measurement or measured spectral albedo."
},
"final_application": {
"report": "logs/stone_finishes_v12_apply.json",
"selected_objects": 95,
"selected_faces": 126284,
"copied_materials": 6,
"lower_column_shafts": 49,
"wall_objects": 46,
"wall_breakdown": "36 explicitly named wall/clerestory framing objects plus 10 side-bank stone-only meshes; broad window-band faces included.",
"material_object_counts": {
"wall_stone_light": 44,
"wall_stone": 2,
"shaft_sandstone": 17,
"shaft_granite": 22,
"shaft_basalt": 6,
"shaft_porphyry": 4
},
"source_allowlist": "src/stone_finishes.py WALL_NAMES, SHAFT_PATTERN and WINDOW_STONE_PATTERN. Original V=z/2 UV scale checked before assignment.",
"side_window_face_limits": "Area >=0.06m2, abs(normal.z)<0.25, abs(normal.y)>0.75; rose interior and fine ribs excluded.",
"excluded": "Branches, capitals, vaults, roofs, floor, organic carved fabric, radial apse walls, fine rose ribs, upper clerestory glazing ensembles, every glass/photo material and all sculpture photographs. Original materials retain their assignments on excluded faces.",
"preserved": "Mesh vertices, UVs, glass artwork, emission/material sidedness, sculpture images and source materials are unchanged by the stone finish operation."
},
"colour_and_age_scope": {
"no_global_aging": "No uniform brown tint, global darkening, giant plaster-like cloud layer, painted cavity shadow or scene-wide ageing wash was added. Base profile keeps the V10 mean stone colours; local joint finish introduces small block/section differences only.",
"historic_nativity": "Warm grey/ochre weathering remains limited to historic Nativity facade stone and its four older apostle towers. The new central towers and interior stone species keep their distinct material assignments.",
"microfinish": "Honed/processed structural stone and rough worked stone retain different roughness and normal responses. These response values are estimates, not material measurements.",
"mean_colour_control": "All six finish base-colour textures preserve the first candidate mean sRGB channel sums exactly; stronger local wall construction contrast does not globally darken or brown the model."
},
"preservation_and_validation": {
"cpu_maps": "logs/stone_pbr_web_v11_generation.json; logs/stone_finishes_v12_cpu.json; logs/stone_finishes_v12_window_scope.json; logs/stone_finishes_final_candidate_cpu.json",
"original_source_integrity": "121 pre-existing texture/source hashes remained unchanged during construction-finish preparation and validation.",
"built_glb_audit": "docs/STONE_WEB_V11_EVIDENCE.json",
"built_glb_result": "pass",
"built_glb_embedded_images": 69,
"preserved_embedded_photographs": 15,
"photo_integrity": "All 15 accepted embedded photographic assets match the frozen V10 SHA-256 values exactly. The other 54 embedded images are traced to original procedural PBR maps.",
"visual_status": "Final parameters incorporate actual Chrome review: stronger wall blocks, restrained shaft section modulation and thin joints. Final rebuilt browser verification remains with the integration/QA agents. CPU texture plates are not rendered views.",
"first_candidate_snapshot": "review_snapshots/stone_finish_first_candidate/: original construction-finish code, 18 PNGs, manifest and diagnostic plate preserved with FILE_HASHES.json."
},
"source_distribution": {
"include": [
"src/prepare_stone_pbr_web_v11.py",
"src/stone_finishes.py",
"assets/textures/stone_pbr_web_v11/*.png",
"assets/textures/stone_pbr_web_v11/profile.json",
"assets/textures/stone_finishes_v12/*.png",
"assets/textures/stone_finishes_v12/manifest.json"
],
"exclude_reference_photographs": [
"assets/reference/qa_tree_vault.jpg",
"tmp/references/**"
]
},
"nativity_local_variation": {
"purpose": "Restrain the uniformly sandy appearance of historic Nativity architectural stone with small neutral differences between existing modeled parts. This local revision preserves the earlier V11 PBR source images, photographed sculptures and glass.",
"source_materials": [
"nativity_stone",
"nativity_stone_detail"
],
"owned_implementation": "src/exterior.py: apply_nativity_part_variation(ctx)",
"generator": "src/prepare_nativity_part_variation.py",
"derived_image_manifest": "assets/textures/nativity_part_variation_v12/manifest.json",
"authorship": "Original procedural derivatives of original V11 stone PBR; no photographic pixels.",
"why_derived_images": "The installed Blender5.2 glTF exporter clamps baseColorFactor to0..1. Four headroom maps allow both slightly lighter and darker copy materials using valid bounded factors, while retaining the original spatial grain and weathering pattern. They must be used with their calibrated material factors, not displayed unscaled.",
"derived_processing": {
"base": "Decode sRGB, multiply linear RGB by1.08, re-encode sRGB to8-bit PNG.",
"rough": "Add0.03 to non-color roughness, clamp0..1 and encode8-bit PNG.",
"normal": "Original normal image and shader strength reused unchanged."
},
"files_sources_and_hashes": {
"nativity_stone": {
"source_key": "nativity_stone",
"source": {
"base": {
"file": "stone_pbr_web_v11/nativity_stone_base.png",
"sha256": "3f811002942d67cb1bba93a1e736328d60d1a309c2b382de62cb060aff4c9cdf"
},
"rough": {
"file": "stone_pbr_web_v11/nativity_stone_rough.png",
"sha256": "ce39afabca2d79ef237666b07af166b685e5a293b476d1cac703125e3fcd99b6"
}
},
"derived": {
"base": {
"file": "nativity_part_variation_v12/nativity_stone_anchor_base.png",
"sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"size_px": [
1024,
1024
]
},
"rough": {
"file": "nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"sha256": "65251d68af25b6782d1594d8dd2052f1c0a2a46fe02104cecbea0bbd73069c60",
"size_px": [
1024,
1024
]
}
},
"normal": {
"file": "stone_pbr_web_v11/nativity_stone_normal.png",
"sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141"
},
"normal_strength": 0.65,
"source_linear_rgb_mean": [
0.3392902315828598,
0.2601322122754882,
0.15749491913131247
],
"anchor_linear_rgb_mean": [
0.3672981720181985,
0.28086398711932065,
0.16987055869431877
],
"source_roughness_mean": 0.8591828065759997,
"anchor_roughness_mean": 0.8905553555956074
},
"nativity_stone_detail": {
"source_key": "nativity_stone_detail",
"source": {
"base": {
"file": "stone_pbr_web_v11/nativity_stone_detail_base.png",
"sha256": "958704ba28fdd8bbf7e2a994304e363253cc628b3099ed9eead34230895c2f87"
},
"rough": {
"file": "stone_pbr_web_v11/nativity_stone_detail_rough.png",
"sha256": "78b23a95793ea9336052d7d69462e35a1921253dbacdf6b41f3ef90ab250057d"
}
},
"derived": {
"base": {
"file": "nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"size_px": [
1024,
1024
]
},
"rough": {
"file": "nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"sha256": "d20944162e43f9043f022b67a637a7d36793a5a1c74bddc39c234a8311923f2a",
"size_px": [
1024,
1024
]
}
},
"normal": {
"file": "stone_pbr_web_v11/nativity_stone_detail_normal.png",
"sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9"
},
"normal_strength": 0.62,
"source_linear_rgb_mean": [
0.40104635498951346,
0.3085446868100299,
0.19049168577853798
],
"anchor_linear_rgb_mean": [
0.43308653596404934,
0.3325845756142412,
0.20516632481992841
],
"source_roughness_mean": 0.8199441348805149,
"anchor_roughness_mean": 0.8513166839001225
}
},
"scope": {
"objects": 827,
"copied_materials": 6,
"collections": [
"Exterior_Nativity_Barnabas",
"Exterior_Nativity_Jude",
"Exterior_Nativity_Matthias",
"Exterior_Nativity_Simon",
"Exterior_Nativity_portals"
],
"excluded": "All photographic relief meshes including their stone returns; glass, bronze, mosaics, Passion, new towers, interior weather backing and all shared source material users outside these five collections.",
"stone_parts": "Whole connected authored leaves/knots and existing masonry components; each tower louvre uses12 angular sectors instead of one colour around a whole horizontal ring. Smooth regional variation is sampled by stone part; no dirt texture or random polygon-colour speckle is added."
},
"appearance_estimates": {
"nominal_linear_lightness_levels": [
-0.05,
0,
0.05
],
"nominal_roughness_mean_levels": [
-0.02,
0,
0.02
],
"balancing": "Three levels are centered separately for each original stone using modeled mesh surface area. This maintains the average material linear RGB and roughness target; it is not a claim about screen-average luminance or actual measured facade reflectance.",
"applied_statistics": {
"nativity_stone": {
"part_count": 2620,
"surface_area_m2": 38519.07063801144,
"tier_areas_m2": [
12841.055726478342,
12767.059626893606,
12910.955284639494
],
"linear_lightness_deltas": [
-0.05009073370281703,
-9.07337028170305e-05,
0.04990926629718297
],
"roughness_mean_deltas": [
-0.020036293481126812,
-3.62934811268122e-05,
0.019963706518873185
],
"area_weighted_linear_mean_delta": 2.96873651524565e-18
},
"nativity_stone_detail": {
"part_count": 1006,
"surface_area_m2": 2053.1600014569703,
"tier_areas_m2": [
694.453796056725,
674.2969983380899,
684.4092070621555
],
"linear_lightness_deltas": [
-0.049755387086553374,
0.00024461291344662905,
0.05024461291344663
],
"roughness_mean_deltas": [
-0.01990215483462135,
9.784516537865162e-05,
0.02009784516537865
],
"area_weighted_linear_mean_delta": 2.2846209139631892e-18
}
},
"normal": "Original normal maps and strengths unchanged; no new geometric displacement, damage or invented cracks.",
"reference_status": "Photo-informed interpretation of material differences, not a surveyed weathering map or measured material response. Previously catalogued exterior photographs are reference only for this procedural operation; no photograph pixels enter these four maps."
},
"verification": {
"report": "logs/nativity_part_variation_cpu.json",
"result": "PASS_BLENDER_CPU",
"objects": 827,
"copied_materials": 6,
"original_material_graphs_unchanged": true,
"photographic_reliefs_excluded": true,
"glTF_material_probe": "Six small CPU-exported probe faces preserve all six bounded baseColorFactor/roughnessFactor sets and original normal strengths; all three PBR texture inputs remain present.",
"original_image_bytes": "All four source base/rough PNG SHA-256 hashes match the frozen V11 profile. Original photographic assets, glass, normals and source textures are not edited.",
"render_status": "No GPU or render run by material author. Integration and actual Chrome appearance review are owned by root/QA."
},
"distribution": {
"include": [
"src/prepare_nativity_part_variation.py",
"assets/textures/nativity_part_variation_v12/*_base.png",
"assets/textures/nativity_part_variation_v12/*_rough.png",
"assets/textures/nativity_part_variation_v12/manifest.json"
],
"new_services_purchases_or_authentication": false
}
}
}
}
{
"schema_version": 1,
"status": "pass",
"prepared_utc": "2026-10-02T01:01:16.635585+00:00",
"scope": "V11 stone revision: preserve fifteen embedded photographic assets, glazing implementation/mapping and artwork provenance. CPU only; no runtime/geometry/material mutations.",
"baseline": {
"snapshot": "review_snapshots/v10",
"snapshot_glb_sha256": "af9ba6fa4da1c3f7cfedba8bc08d16aa6a31b29130868277a699c14d360a6036",
"embedded_photo_hashes": {
"Busquets_Nativity_Holy_Family_nativity_warm_render": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"glass_east_blue_mortel2016": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"glass_east_ribeiro2014": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"glass_east_palegreen_mortel_meskens_atlas": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"glass_east_yellowgreen_meskens2016": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"glass_west_green_smiley2023": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"Sotoo_Harp_Angel_1984_nativity_warm_render": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"Sotoo_Singing_Children_1999_nativity_warm_render": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"Sotoo_Viola_and_Lute_Angels_nativity_warm_render": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"Subirachs_Crucifixion_edge_blended": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"Subirachs_Judas_Kiss_and_Magic_Square_edge_blended": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"Subirachs_Veronica_and_Soldiers_edge_blended": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"glass_west_red_alikhan2022": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"glass_west_red_rose_mortel": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"glass_west_ribeiro2014": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6"
},
"snapshot_photo_hash_mismatches": [],
"root_protected_hash_mismatches_at_prepare": [],
"snapshot_stable": true,
"protected_files_before_build": {
"assets/textures/east_bank_candidates.json": "1bb0b7eb9fac0823b666162ae7a5dc1faba4037b82c92f097def1c7fc15d795c",
"assets/textures/east_blue_bank_candidate.json": "af50e81a32b6299aedb21fe09b9a584b027e632a4e4ccc0e4be7ffb70a517509",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_blended.png": "385e4fb2d61924a569320ff9b28135ffe2e37ac362c37c749eb66688f6501184",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_transition.png": "2fca58833c91ecfe39144e4bc260323435389242398865ed54a999a1c71079b8",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png": "5f75db27a19fdc7dc78e48ca3966db2d66eef41516382b97865e9e7b0d724d2d",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_blended.png": "1c0e5416f98df75a45df6fe67dfeed679a2ca836b40e9a7715370e0a7557a775",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_transition.png": "4cc62feeb9b8a20f465bb1b1bb68a000d1bb82ecba4babddbcb1613c5f2679e7",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png": "2339ceab9e26de3ca8015e145a2e7a3ae143eecaa81ced65f21571a22802b396",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_blended.png": "8ae055162829ab1dfe7ab5936bb578dc113265f359e1d5911e501a57ca990c8e",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_transition.png": "c446a587cc8966d2f0e1e60f31e5a203b91f53aefa2cf557f17e33903de5905a",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_blended.png": "b2aae62c8538ad532483d6bbf89c5b03fe63aa98d3a3ac5996cae27ab9982c2a",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_transition.png": "802873a0425a8d324d3486d1f321ccab7b7c24b7c2c082aff0761513c26aa341",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion.png": "e8bcc03364260309155fa3f34b3d192b8aefddd26de60d7fafae4b82aa37d7f9",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_transition.png": "7a016be94345016a30a0370d3b95f87546add53669215ba7b0d6dc1a62c97c8e",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square.png": "f5b6bb71d9118edd135061b0ec682082acd231485d5e6d73cb3e66bc4ed8f1db",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_transition.png": "10a29414bf91c34f0e3626511d38a14fa36df9e3ca48e2c9d11a8ecc1b3569f3",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers.png": "29207a6bbd015141355d111202e7c996c1d2b4e8e4c29d3f988c3aae8670d663",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_transition.png": "2ca1bd719e81f80b34f813dc7737fcd1f0a7539d86b1f61a15ff645ada48a070",
"assets/textures/exterior_sculpture/grade_nativity_render.py": "fb14849c43cd707721baf372334034d67422b976309bf406aa8c48c0679e1b7a",
"assets/textures/exterior_sculpture/reliefs.json": "3b5c198a7dc93254398fc7fc81a1c648826d608cae6acf9f5071f36ed2af3ae8",
"assets/textures/glass_east_blue_mortel2016.jpg": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"assets/textures/glass_east_palegreen_meskens2016.jpg": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"assets/textures/glass_east_palegreen_mortel_meskens_atlas.png": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"assets/textures/glass_east_ribeiro2014.jpg": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"assets/textures/glass_east_yellowgreen_meskens2016.jpg": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"assets/textures/glass_west_green_smiley2023.jpg": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"assets/textures/glass_west_red_alikhan2022.jpg": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"assets/textures/glass_west_red_rose_mortel.jpg": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"assets/textures/glass_west_ribeiro2014.jpg": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"assets/textures/window_banks.json": "99c0071c8e45bffe2a02425590e73a5341a8bf7849d81c9e8c7f604052ea08b8",
"assets/textures/windows_extra_west/artwork_glass_candidate_2023_3_inspection.jpg": "150c332f967114eb4454e8359d8fe2ad416e2bac106d67b53a717578707d3986",
"assets/textures/windows_extra_west/artwork_glass_candidate_west_2022_inspection.jpg": "d6e38234187ee127f93538afa140922dfacaa2ec45250eebbe698e28d095986b",
"assets/textures/windows_extra_west/artwork_glass_west_2014_ribeiro_3_inspection.jpg": "a1530a790c9cfecd59c7a046cab74fb9bd8d77c02f1855887dcfd5ac44233d71",
"assets/textures/windows_extra_west/artwork_glass_west_2015_bracons_aisles_inspection.jpg": "e03254fd724344e6aac7401a911f718f89143e490909db4892d9a97441ed861e",
"docs/ARTWORK_SOURCES.json": "4714262276f60d19fd387742332216c6123fe6ec63a45ab0b9e8e670a0cca8c7",
"docs/EAST_GLAZING_ADDITIONS.json": "5254811dcf2343eeef0c855937b2b0e4233adc9154078d7526b16da53e00d9f4",
"docs/EXTERIOR_EVIDENCE.json": "d706ff602de43dc636aae2caf82de8e752b3a2d42b7615bfbd9c5871fed092ca",
"docs/YELLOWGREEN_DETAIL_VALIDATION.json": "997f8686f6e80be114060d9b6ec53827d0dce1acd370ba434ce3282055fe4803",
"src/glazing.py": "00a3564d96f4e58c9f384c046f1186fcbdabf8360155b161eee9cb831348fddf",
"src/prepare_blue_photo_bank.py": "b5f12fec5dce2546c67b10e20543934d7667d4be3468cfeadaf19a993708dfc9",
"src/prepare_extra_east_banks.py": "f1db878eca54ac1b72eb96b2a58e16016d61acf930d7fae9268d1de1d0f72497",
"src/prepare_extra_photo_banks.py": "ef8657231fdf0b837a2bf6a83f55570dd7c82c55dcac0c604a75bf40aa619897",
"src/prepare_photo_panels.py": "e7e6d6ab22e85af8878fdec6e42c6cbf061a072ca965630910d71e96258964de",
"src/preview_glazing_uv.py": "1edfd8bda8ca962961b7bbdd235b23f0d84be84c98b06f87dbb9de85ee6cfd04",
"assets/reference/artwork_glass_east_2014_ribeiro.jpg": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"assets/reference/artwork_glass_west_2014_ribeiro_3.jpg": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"assets/reference/artwork_glass_west_2014_ribeiro_1.jpg": "ca5aa85acf2e2b2c6a729758f94524c534e9f0579db73e3ec6719200a73050ad",
"assets/reference/artwork_glass_west_2015_alvesgaspar.jpg": "35c0cf8403edf6a6a48ee0689534423215fcacbfe7e9f37047f9fb9c1168693e",
"assets/reference/artwork_sculpture_angel_harp_2014.jpg": "d2a55a0b3eeda32b44958b8ee0fed5a53b960720f9a74c072f23b3221df95cfd",
"assets/reference/artwork_sculpture_choir_2016.jpg": "81a463f74225ebd43b3ec3248eb68e24af8ab5ca77ce17f11c7c5a0a9188582a",
"assets/reference/artwork_sculpture_judas.jpg": "5ea22bfb168f2088c55063676bc95228d8c07e1af285089bfda54a11294b9a08",
"assets/reference/artwork_sculpture_nativity_2023.jpg": "374a96494b92b42a3c0b4724eec901ebc232d8b4aa4beb63d34baee97076fcf7",
"assets/reference/artwork_sculpture_angel_mandolin_2016.jpg": "d7803da295733c9b2197cde34053f7b3b5f1a2603ca0de0bafa19ef9fca8ff2c",
"assets/reference/artwork_sculpture_nativity_2016.jpg": "eeacd7a710cae5297bff8076a21d37574de7b57d2ad5aa94da84565848a35145",
"assets/reference/artwork_sculpture_crucifixion_2014.jpg": "e74947849029a8d0d1236dabaa841f934bb6df2c2a74788040362f9c8911cc5e",
"assets/reference/artwork_sculpture_veronica_2014.jpg": "f84a07f041d5557c7f3e543f40fbcf335e09aeacbc7cef9f7255e28f1fcff8d9",
"assets/reference/artwork_glass_west_2015_bracons_aisles.jpg": "414f7ac4721fc2791d1fc0cc2beae93be8a26018384f619494725fd78efb9bd1",
"assets/reference/artwork_glass_candidate_west_mortel6.jpg": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"assets/reference/artwork_glass_candidate_west_mortel7.jpg": "9fd14fda9c694f79488878066f3f7830e746a4a4cae671d162282c59e88cfaf9",
"assets/reference/artwork_glass_candidate_west_mortel8.jpg": "cff109d56ec3666ab1d311efeba32107f76ba70d7e1daad5f87e0761f2319b48",
"assets/reference/artwork_glass_candidate_west_2022.jpg": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"assets/reference/artwork_glass_candidate_interior_ospingou.jpg": "582b161da6183c1fa5739d8a6a9232e188860e258d8a2f2d63532c16a51c4f1f",
"assets/reference/artwork_glass_candidate_2023_2.jpg": "9fc32a54f1e4290f8b10ae1e373818b7e57c5259766331165dd7df14a6362a1c",
"assets/reference/artwork_glass_candidate_2017_02.jpg": "ea2dd382464afba48970519e5866836a0420ab60d3ea56860672459b39d48b5c",
"assets/reference/artwork_glass_candidate_2017_03.jpg": "05458b93ad02bbad1d0747d2d1e6ea78adfc2b5ea2d2fec2c5d6092946cb912f",
"assets/reference/artwork_glass_candidate_2017_04.jpg": "657344e0467dd79f1963ad5098a3443cb92db51de133bda6c53d63ab16d449b7",
"assets/reference/artwork_glass_candidate_stained04.jpg": "7dc26519937db0903f42a67cf6e6cbc01df043f189c0086c1dec69c2b9706e5e",
"assets/reference/artwork_glass_candidate_2023_3.jpg": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"assets/reference/artwork_glass_candidate_2019_32.jpg": "14e05c3e44917918ea4b0bb1dc2b01746f9b6307fde0590aec56deaafb688f0f",
"assets/reference/artwork_glass_candidate_stained5.jpg": "dd87bf5645b42b3a41ed32285a19ed3eb23a2756c546cf0bfd7a1f6f5a86b8c3",
"assets/reference/artwork_glory_2022_canaan.jpg": "b1e3c1abe65316d54816eda57a5d064dc54c5f1e56d09dd6b8bbf41faf12d1a4",
"assets/reference/artwork_glory_2024_crane.jpg": "5546c35e7b4b6ca87fba1503f063cfeb29a52bd8d7a3c1fb6d5cffba12c4165d",
"assets/reference/artwork_east_painting04_high.jpg": "9f999618cff0e39213ba63a085b0e3cd59206a07cbbb37401ff7e7974f46166a",
"assets/reference/artwork_east_2016_mortel2_high.jpg": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"assets/reference/artwork_east_barcelona10_high.jpg": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"assets/reference/artwork_east_barcelona11_high.jpg": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"assets/reference/artwork_east_mortel_2016_11_high.jpg": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105"
},
"source_baseline_note": "Root-provided snapshot hashes anchor listed assets. Additional glazing/source/helper hashes are captured at preparation time before V11 build.",
"photograph_source_ledger_mismatches_at_prepare": []
},
"result": {
"glb": {
"path": "build/sagrada_familia.glb",
"sha256": "5e43cb213b398013f4cf4beca34eeaa8efe01202d0265c55026b805965873f13",
"bytes": 317225048,
"stable_during_read": true,
"images": 69,
"materials": 59
},
"embedded_photos": [
{
"name": "Busquets_Nativity_Holy_Family_nativity_warm_render",
"expected_sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"actual_sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"unchanged": true
},
{
"name": "glass_east_blue_mortel2016",
"expected_sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"actual_sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"unchanged": true
},
{
"name": "glass_east_ribeiro2014",
"expected_sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"actual_sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"unchanged": true
},
{
"name": "glass_east_palegreen_mortel_meskens_atlas",
"expected_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"actual_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"unchanged": true
},
{
"name": "glass_east_yellowgreen_meskens2016",
"expected_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"actual_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"unchanged": true
},
{
"name": "glass_west_green_smiley2023",
"expected_sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"actual_sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"unchanged": true
},
{
"name": "Sotoo_Harp_Angel_1984_nativity_warm_render",
"expected_sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"actual_sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"unchanged": true
},
{
"name": "Sotoo_Singing_Children_1999_nativity_warm_render",
"expected_sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"actual_sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"unchanged": true
},
{
"name": "Sotoo_Viola_and_Lute_Angels_nativity_warm_render",
"expected_sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"actual_sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"unchanged": true
},
{
"name": "Subirachs_Crucifixion_edge_blended",
"expected_sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"actual_sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"unchanged": true
},
{
"name": "Subirachs_Judas_Kiss_and_Magic_Square_edge_blended",
"expected_sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"actual_sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"unchanged": true
},
{
"name": "Subirachs_Veronica_and_Soldiers_edge_blended",
"expected_sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"actual_sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"unchanged": true
},
{
"name": "glass_west_red_alikhan2022",
"expected_sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"actual_sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"unchanged": true
},
{
"name": "glass_west_red_rose_mortel",
"expected_sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"actual_sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"unchanged": true
},
{
"name": "glass_west_ribeiro2014",
"expected_sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"actual_sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"unchanged": true
}
],
"protected_file_count": 86,
"protected_file_changes": [],
"other_image_ingredients": [
{
"index": 0,
"name": "sandstone_normal",
"bytes": 1448514,
"sha256": "e4f09a7e330f0415455d3d52f18a0a7068e03b8ce1ddfe4ea12b291875d88f7a",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 1,
"name": "sandstone_base",
"bytes": 455730,
"sha256": "e39ade56ff53da17805e345b0c6a2ec506aae4e8e8f5396507bb07de0b2db9fd",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 2,
"name": "sandstone_rough",
"bytes": 715880,
"sha256": "33593fc4e5e2581487a7b346bb7ba82e603e71b9fc8c37d9ee885d3e5549c61d",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 3,
"name": "shaft_sandstone_normal",
"bytes": 1449211,
"sha256": "8435750f573c9d10ab91f9b535f64e055b147cf1c859314779d9c0f0ab80ca0e",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 4,
"name": "shaft_sandstone_base",
"bytes": 517808,
"sha256": "4b17d9119d788a26cafe911292bbdf4b9a8da6d521bf7ac6742d1f2483cf4b1c",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 5,
"name": "shaft_sandstone_rough",
"bytes": 716305,
"sha256": "2409810894661f626f0e7662e017026f64330829f6f4a7dfb333408f782d3053",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 6,
"name": "vault_normal",
"bytes": 1449605,
"sha256": "5529d1897d1725c474465cffc9c314b04bd4b8255531e283dead1594c8d18d9e",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 7,
"name": "vault_base",
"bytes": 440760,
"sha256": "f50d9ee918bc1605b2b5e3faa194119be5873fedbe49626b9c06a1ae2717a9ef",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 8,
"name": "vault_rough",
"bytes": 686534,
"sha256": "795a7d7fa8fecb32cbaac5390a4ab97d99f1ac8c905276c5b871511d4ba2195c",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 9,
"name": "stone_light_normal",
"bytes": 1477122,
"sha256": "488b07c7289f080b77c7803f26177220f5ad69c351ff110996d25e6b460648dd",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 10,
"name": "stone_light_base",
"bytes": 470916,
"sha256": "2a5272aafe2678327abeb6ce280926be41a9c4114e2c04d4679cf14659794bf1",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 11,
"name": "stone_light_rough",
"bytes": 742111,
"sha256": "2c1e7ec0e9b53854bc0fbcc5e031df7cc7542db03e0f97a61fc04b4243a6a6f6",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 12,
"name": "concrete_normal",
"bytes": 1518381,
"sha256": "03774d96f0b898841f1363189e8167a385fd466a5d45b6843fb8396b8575d147",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 13,
"name": "concrete_base",
"bytes": 468452,
"sha256": "90412914a11ef4cd0301701f17a65698388b01f1ed9062894a75e265bdb1d7f9",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 14,
"name": "concrete_rough",
"bytes": 778252,
"sha256": "5026d419c841feb3490627dc2f6a0f1ae0bb7125ef905e2ee3e1a22fa9a4ec21",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 15,
"name": "stone_normal",
"bytes": 1538410,
"sha256": "393a226185a8195e91eae334a3634fb084d04d5d6a3c69d206d10ce7d5170872",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 16,
"name": "stone_base",
"bytes": 471855,
"sha256": "f5b8623ec5f6486a16ceb188e6278f8c334dc2a1cd4272a1e894f0fc5bd73541",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 17,
"name": "stone_rough",
"bytes": 765713,
"sha256": "8423668a5dec9c75585bc383d38e6ca75a1457f4d976f0ca0b80e499f042db1f",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 18,
"name": "floor_normal",
"bytes": 1311505,
"sha256": "ed8fff2ee74205a3682d4c4ec7e3b4a0189d6175a6c59c14dce5ce08c4c77079",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 19,
"name": "floor_base",
"bytes": 348221,
"sha256": "f94d26cd33fc31d8138b5cbfbf0aab3f5c6fe79b80c7673033e58835761b3ae2",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 20,
"name": "floor_rough",
"bytes": 643769,
"sha256": "7e92a4fb8418ebfdc4bb8dc15a5578dd8a1cc7a03a6531d3ddd1c3c464edc56b",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 21,
"name": "basalt_normal",
"bytes": 1365667,
"sha256": "a684839970c5f5f1be4b0a839173b6553ae856518f33c530239f2608627caf1a",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 22,
"name": "basalt_base",
"bytes": 434625,
"sha256": "7622cc0ae48310a7eeefddaf109c848574c0380c7a91f612e4e610f01203c08b",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 23,
"name": "basalt_rough",
"bytes": 714572,
"sha256": "470237a6952e69bf57d1f8c141074553f69cbda9ed70ace80a195bb8aa3327a3",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 24,
"name": "shaft_basalt_normal",
"bytes": 1366790,
"sha256": "0df061719f23f429ba3cb19ce4df6ed5983d9dea9e43958ea20bef66771f4a80",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 25,
"name": "shaft_basalt_base",
"bytes": 449298,
"sha256": "1f7918200b909e98469ce361af75c8bd807e069459c98893a8d1511a43d243ef",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 26,
"name": "shaft_basalt_rough",
"bytes": 714995,
"sha256": "1ba4ae98c332626d3a19560aa23856d64cb316d2f5491ca0e2c34a34b69eb884",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 27,
"name": "granite_normal",
"bytes": 1472858,
"sha256": "5f573144080f2712cce0928c70be004753f819a792b2b592fe63180b89d2cb03",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 28,
"name": "granite_base",
"bytes": 764924,
"sha256": "f1054bad8adff06efe9385921ce546d1c3b26f1ff730e0ab333e29eb860f56e3",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 29,
"name": "granite_rough",
"bytes": 779791,
"sha256": "45d7e0e7dda4082a1f49a99c283ad88b2080dfed3d7048f5d88c95522c290d27",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 30,
"name": "shaft_granite_normal",
"bytes": 1473538,
"sha256": "4837211c4bcd71a310b8a89cbcba58376da2311f211570e8f74a629ae89bb8bc",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 31,
"name": "shaft_granite_base",
"bytes": 784756,
"sha256": "32ec66c12bb7f1dfd97f131bbbbc1ccd616bb0fe1af0e24917bb7e286adee839",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 32,
"name": "shaft_granite_rough",
"bytes": 780305,
"sha256": "3fcdd633e1f493ed3a02ed450c706fc9b3766572180715a1919ed28b9b6d6acb",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 34,
"name": "nativity_stone_detail_normal",
"bytes": 1565043,
"sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 35,
"name": "nativity_stone_detail_base",
"bytes": 651424,
"sha256": "958704ba28fdd8bbf7e2a994304e363253cc628b3099ed9eead34230895c2f87",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 36,
"name": "nativity_stone_detail_rough",
"bytes": 805535,
"sha256": "42371b39ab4e04bf4063e03d9b13c683cbf9601b022a0c80d853f625c9fec4ce",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 37,
"name": "wall_stone_light_normal",
"bytes": 1480216,
"sha256": "c42001f848abe33a01ff1aad39b2887acd06d41752ddc6ca2869d46c55ab948c",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 38,
"name": "wall_stone_light_base",
"bytes": 607239,
"sha256": "2f2281fe80866668811b93509cccdba2168cd1b0586418c69fb74ed36e7e8d4a",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 39,
"name": "wall_stone_light_rough",
"bytes": 745404,
"sha256": "1274d7cbca4ead4e875879a885612862b55f3979031ff033a746bf0f7fc381fa",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 40,
"name": "porphyry_normal",
"bytes": 1452995,
"sha256": "b7a8ebdb8fc67fcb505de7cd918b45994542cc7ebabe7a6be4c9b6b4461fb038",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 41,
"name": "porphyry_base",
"bytes": 1126223,
"sha256": "293e8f8d16049a6a84c856be979ebb53b3c0e9679554f33afdc9879cb1cdd9d7",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 42,
"name": "porphyry_rough",
"bytes": 766086,
"sha256": "4ad2d4e2771e685f4213d0ba54a1e07d8a29e21e4e7aea1b90c860790ebb77eb",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 43,
"name": "shaft_porphyry_normal",
"bytes": 1453808,
"sha256": "7a305fb4020a9715b861e347a560f08532d32c7bf7ee532c636fa099d7433a40",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 44,
"name": "shaft_porphyry_base",
"bytes": 1164597,
"sha256": "1ff9d756f7c964e614c7cca6cee67e13b1ff0ec8d59ea076cb86e79e436fcb39",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 45,
"name": "shaft_porphyry_rough",
"bytes": 766576,
"sha256": "f6d6c1092cd44cde4eaa7fedec2247fa61d9ec685d7596929281a3a603c88132",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 46,
"name": "nativity_stone_normal",
"bytes": 1585107,
"sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 47,
"name": "nativity_stone_base",
"bytes": 564834,
"sha256": "3f811002942d67cb1bba93a1e736328d60d1a309c2b382de62cb060aff4c9cdf",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 48,
"name": "nativity_stone_rough",
"bytes": 820349,
"sha256": "0935199e60a61caf630145e08d3e5871c5ec13267995f42afbf6f2c4fd439260",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 54,
"name": "wall_stone_normal",
"bytes": 1541217,
"sha256": "678d17599ff17d5d5381a398f0d41a00e486533a9a4f73032e9dc412bb758bdd",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 55,
"name": "wall_stone_base",
"bytes": 605441,
"sha256": "dc8a605eecc2ba7c595d435a1d0f1406e0dc7f0e4a1234cfacd278876d93f422",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 56,
"name": "wall_stone_rough",
"bytes": 769155,
"sha256": "c5ea8db431631504f98f9459906054b6d6274bdd70f855a75cffceb3f8ae8e58",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 63,
"name": "stone_dark_normal",
"bytes": 1547513,
"sha256": "3da94f4fb8cad084f49055af5130a7453b5bf9c0254aad1349ca19520ad91f12",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 64,
"name": "stone_dark_base",
"bytes": 502612,
"sha256": "9fd1787b93614b41a8ac1908a91595bae51922570835600bf55d8af2a70d8ce6",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 65,
"name": "stone_dark_rough",
"bytes": 784587,
"sha256": "f025a07e3ade2df810b1e5586f89db6a3d9b914c24f9d14ddbc9260d1455f440",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
}
],
"reference_exclusion": {
"reference_only_images_checked": 85,
"matches": [],
"all_other_images_have_known_local_source": true,
"limit": "Exact file/pixel identity checks plus complete ingredient-to-source mapping; not a perceptual detector of arbitrarily transformed imagery."
},
"issues": [],
"validation_boundary": "Preserves photograph pixels and listed source/UV files. Overall rendered appearance and intentional stone/light changes require separate visual and browser review."
},
"audited_utc": "2026-10-02T01:23:19.902379+00:00"
}{
"schema_version": 1,
"status": "pass",
"prepared_utc": "2026-10-02T01:01:16.635585+00:00",
"scope": "V12 ceiling and local Nativity stone revision: original embedded photographs, glazing/source files, every image ingredient, four procedural derivative operations and six copied PBR material bindings. CPU only.",
"baseline": {
"snapshot": "review_snapshots/v10",
"snapshot_glb_sha256": "af9ba6fa4da1c3f7cfedba8bc08d16aa6a31b29130868277a699c14d360a6036",
"embedded_photo_hashes": {
"Busquets_Nativity_Holy_Family_nativity_warm_render": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"glass_east_blue_mortel2016": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"glass_east_ribeiro2014": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"glass_east_palegreen_mortel_meskens_atlas": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"glass_east_yellowgreen_meskens2016": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"glass_west_green_smiley2023": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"Sotoo_Harp_Angel_1984_nativity_warm_render": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"Sotoo_Singing_Children_1999_nativity_warm_render": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"Sotoo_Viola_and_Lute_Angels_nativity_warm_render": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"Subirachs_Crucifixion_edge_blended": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"Subirachs_Judas_Kiss_and_Magic_Square_edge_blended": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"Subirachs_Veronica_and_Soldiers_edge_blended": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"glass_west_red_alikhan2022": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"glass_west_red_rose_mortel": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"glass_west_ribeiro2014": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6"
},
"snapshot_photo_hash_mismatches": [],
"root_protected_hash_mismatches_at_prepare": [],
"snapshot_stable": true,
"protected_files_before_build": {
"assets/textures/east_bank_candidates.json": "1bb0b7eb9fac0823b666162ae7a5dc1faba4037b82c92f097def1c7fc15d795c",
"assets/textures/east_blue_bank_candidate.json": "af50e81a32b6299aedb21fe09b9a584b027e632a4e4ccc0e4be7ffb70a517509",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family.png": "c6c292e28ef551d22a76aeebf37a5e8af8b2069c071178d77e921e67238270af",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_blended.png": "385e4fb2d61924a569320ff9b28135ffe2e37ac362c37c749eb66688f6501184",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_edge_transition.png": "2fca58833c91ecfe39144e4bc260323435389242398865ed54a999a1c71079b8",
"assets/textures/exterior_sculpture/Busquets_Nativity_Holy_Family_nativity_warm_render.png": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984.png": "5f75db27a19fdc7dc78e48ca3966db2d66eef41516382b97865e9e7b0d724d2d",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_blended.png": "1c0e5416f98df75a45df6fe67dfeed679a2ca836b40e9a7715370e0a7557a775",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_edge_transition.png": "4cc62feeb9b8a20f465bb1b1bb68a000d1bb82ecba4babddbcb1613c5f2679e7",
"assets/textures/exterior_sculpture/Sotoo_Harp_Angel_1984_nativity_warm_render.png": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999.png": "2339ceab9e26de3ca8015e145a2e7a3ae143eecaa81ced65f21571a22802b396",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_blended.png": "8ae055162829ab1dfe7ab5936bb578dc113265f359e1d5911e501a57ca990c8e",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_edge_transition.png": "c446a587cc8966d2f0e1e60f31e5a203b91f53aefa2cf557f17e33903de5905a",
"assets/textures/exterior_sculpture/Sotoo_Singing_Children_1999_nativity_warm_render.png": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels.png": "0fc81346e19615d5b3a37e31402b2be9656e2658975a77f196e85b24b85af856",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_blended.png": "b2aae62c8538ad532483d6bbf89c5b03fe63aa98d3a3ac5996cae27ab9982c2a",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_edge_transition.png": "802873a0425a8d324d3486d1f321ccab7b7c24b7c2c082aff0761513c26aa341",
"assets/textures/exterior_sculpture/Sotoo_Viola_and_Lute_Angels_nativity_warm_render.png": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion.png": "e8bcc03364260309155fa3f34b3d192b8aefddd26de60d7fafae4b82aa37d7f9",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_blended.png": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"assets/textures/exterior_sculpture/Subirachs_Crucifixion_edge_transition.png": "7a016be94345016a30a0370d3b95f87546add53669215ba7b0d6dc1a62c97c8e",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square.png": "f5b6bb71d9118edd135061b0ec682082acd231485d5e6d73cb3e66bc4ed8f1db",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_blended.png": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"assets/textures/exterior_sculpture/Subirachs_Judas_Kiss_and_Magic_Square_edge_transition.png": "10a29414bf91c34f0e3626511d38a14fa36df9e3ca48e2c9d11a8ecc1b3569f3",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers.png": "29207a6bbd015141355d111202e7c996c1d2b4e8e4c29d3f988c3aae8670d663",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_blended.png": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"assets/textures/exterior_sculpture/Subirachs_Veronica_and_Soldiers_edge_transition.png": "2ca1bd719e81f80b34f813dc7737fcd1f0a7539d86b1f61a15ff645ada48a070",
"assets/textures/exterior_sculpture/grade_nativity_render.py": "fb14849c43cd707721baf372334034d67422b976309bf406aa8c48c0679e1b7a",
"assets/textures/exterior_sculpture/reliefs.json": "3b5c198a7dc93254398fc7fc81a1c648826d608cae6acf9f5071f36ed2af3ae8",
"assets/textures/glass_east_blue_mortel2016.jpg": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"assets/textures/glass_east_palegreen_meskens2016.jpg": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"assets/textures/glass_east_palegreen_mortel_meskens_atlas.png": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"assets/textures/glass_east_ribeiro2014.jpg": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"assets/textures/glass_east_yellowgreen_meskens2016.jpg": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"assets/textures/glass_west_green_smiley2023.jpg": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"assets/textures/glass_west_red_alikhan2022.jpg": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"assets/textures/glass_west_red_rose_mortel.jpg": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"assets/textures/glass_west_ribeiro2014.jpg": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"assets/textures/window_banks.json": "99c0071c8e45bffe2a02425590e73a5341a8bf7849d81c9e8c7f604052ea08b8",
"assets/textures/windows_extra_west/artwork_glass_candidate_2023_3_inspection.jpg": "150c332f967114eb4454e8359d8fe2ad416e2bac106d67b53a717578707d3986",
"assets/textures/windows_extra_west/artwork_glass_candidate_west_2022_inspection.jpg": "d6e38234187ee127f93538afa140922dfacaa2ec45250eebbe698e28d095986b",
"assets/textures/windows_extra_west/artwork_glass_west_2014_ribeiro_3_inspection.jpg": "a1530a790c9cfecd59c7a046cab74fb9bd8d77c02f1855887dcfd5ac44233d71",
"assets/textures/windows_extra_west/artwork_glass_west_2015_bracons_aisles_inspection.jpg": "e03254fd724344e6aac7401a911f718f89143e490909db4892d9a97441ed861e",
"docs/ARTWORK_SOURCES.json": "4714262276f60d19fd387742332216c6123fe6ec63a45ab0b9e8e670a0cca8c7",
"docs/EAST_GLAZING_ADDITIONS.json": "5254811dcf2343eeef0c855937b2b0e4233adc9154078d7526b16da53e00d9f4",
"docs/EXTERIOR_EVIDENCE.json": "d706ff602de43dc636aae2caf82de8e752b3a2d42b7615bfbd9c5871fed092ca",
"docs/YELLOWGREEN_DETAIL_VALIDATION.json": "997f8686f6e80be114060d9b6ec53827d0dce1acd370ba434ce3282055fe4803",
"src/glazing.py": "00a3564d96f4e58c9f384c046f1186fcbdabf8360155b161eee9cb831348fddf",
"src/prepare_blue_photo_bank.py": "b5f12fec5dce2546c67b10e20543934d7667d4be3468cfeadaf19a993708dfc9",
"src/prepare_extra_east_banks.py": "f1db878eca54ac1b72eb96b2a58e16016d61acf930d7fae9268d1de1d0f72497",
"src/prepare_extra_photo_banks.py": "ef8657231fdf0b837a2bf6a83f55570dd7c82c55dcac0c604a75bf40aa619897",
"src/prepare_photo_panels.py": "e7e6d6ab22e85af8878fdec6e42c6cbf061a072ca965630910d71e96258964de",
"src/preview_glazing_uv.py": "1edfd8bda8ca962961b7bbdd235b23f0d84be84c98b06f87dbb9de85ee6cfd04",
"assets/reference/artwork_glass_east_2014_ribeiro.jpg": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"assets/reference/artwork_glass_west_2014_ribeiro_3.jpg": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"assets/reference/artwork_glass_west_2014_ribeiro_1.jpg": "ca5aa85acf2e2b2c6a729758f94524c534e9f0579db73e3ec6719200a73050ad",
"assets/reference/artwork_glass_west_2015_alvesgaspar.jpg": "35c0cf8403edf6a6a48ee0689534423215fcacbfe7e9f37047f9fb9c1168693e",
"assets/reference/artwork_sculpture_angel_harp_2014.jpg": "d2a55a0b3eeda32b44958b8ee0fed5a53b960720f9a74c072f23b3221df95cfd",
"assets/reference/artwork_sculpture_choir_2016.jpg": "81a463f74225ebd43b3ec3248eb68e24af8ab5ca77ce17f11c7c5a0a9188582a",
"assets/reference/artwork_sculpture_judas.jpg": "5ea22bfb168f2088c55063676bc95228d8c07e1af285089bfda54a11294b9a08",
"assets/reference/artwork_sculpture_nativity_2023.jpg": "374a96494b92b42a3c0b4724eec901ebc232d8b4aa4beb63d34baee97076fcf7",
"assets/reference/artwork_sculpture_angel_mandolin_2016.jpg": "d7803da295733c9b2197cde34053f7b3b5f1a2603ca0de0bafa19ef9fca8ff2c",
"assets/reference/artwork_sculpture_nativity_2016.jpg": "eeacd7a710cae5297bff8076a21d37574de7b57d2ad5aa94da84565848a35145",
"assets/reference/artwork_sculpture_crucifixion_2014.jpg": "e74947849029a8d0d1236dabaa841f934bb6df2c2a74788040362f9c8911cc5e",
"assets/reference/artwork_sculpture_veronica_2014.jpg": "f84a07f041d5557c7f3e543f40fbcf335e09aeacbc7cef9f7255e28f1fcff8d9",
"assets/reference/artwork_glass_west_2015_bracons_aisles.jpg": "414f7ac4721fc2791d1fc0cc2beae93be8a26018384f619494725fd78efb9bd1",
"assets/reference/artwork_glass_candidate_west_mortel6.jpg": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"assets/reference/artwork_glass_candidate_west_mortel7.jpg": "9fd14fda9c694f79488878066f3f7830e746a4a4cae671d162282c59e88cfaf9",
"assets/reference/artwork_glass_candidate_west_mortel8.jpg": "cff109d56ec3666ab1d311efeba32107f76ba70d7e1daad5f87e0761f2319b48",
"assets/reference/artwork_glass_candidate_west_2022.jpg": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"assets/reference/artwork_glass_candidate_interior_ospingou.jpg": "582b161da6183c1fa5739d8a6a9232e188860e258d8a2f2d63532c16a51c4f1f",
"assets/reference/artwork_glass_candidate_2023_2.jpg": "9fc32a54f1e4290f8b10ae1e373818b7e57c5259766331165dd7df14a6362a1c",
"assets/reference/artwork_glass_candidate_2017_02.jpg": "ea2dd382464afba48970519e5866836a0420ab60d3ea56860672459b39d48b5c",
"assets/reference/artwork_glass_candidate_2017_03.jpg": "05458b93ad02bbad1d0747d2d1e6ea78adfc2b5ea2d2fec2c5d6092946cb912f",
"assets/reference/artwork_glass_candidate_2017_04.jpg": "657344e0467dd79f1963ad5098a3443cb92db51de133bda6c53d63ab16d449b7",
"assets/reference/artwork_glass_candidate_stained04.jpg": "7dc26519937db0903f42a67cf6e6cbc01df043f189c0086c1dec69c2b9706e5e",
"assets/reference/artwork_glass_candidate_2023_3.jpg": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"assets/reference/artwork_glass_candidate_2019_32.jpg": "14e05c3e44917918ea4b0bb1dc2b01746f9b6307fde0590aec56deaafb688f0f",
"assets/reference/artwork_glass_candidate_stained5.jpg": "dd87bf5645b42b3a41ed32285a19ed3eb23a2756c546cf0bfd7a1f6f5a86b8c3",
"assets/reference/artwork_glory_2022_canaan.jpg": "b1e3c1abe65316d54816eda57a5d064dc54c5f1e56d09dd6b8bbf41faf12d1a4",
"assets/reference/artwork_glory_2024_crane.jpg": "5546c35e7b4b6ca87fba1503f063cfeb29a52bd8d7a3c1fb6d5cffba12c4165d",
"assets/reference/artwork_east_painting04_high.jpg": "9f999618cff0e39213ba63a085b0e3cd59206a07cbbb37401ff7e7974f46166a",
"assets/reference/artwork_east_2016_mortel2_high.jpg": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"assets/reference/artwork_east_barcelona10_high.jpg": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"assets/reference/artwork_east_barcelona11_high.jpg": "3239ecf50be9e2964b9bfbb37f95c802c3c13237afffdf2d83763cde7dab1b83",
"assets/reference/artwork_east_mortel_2016_11_high.jpg": "c57ef5e39e4d0f6affc8bfb328b5fab97b4ba897ff69365417499524c3b3f105"
},
"source_baseline_note": "Root-provided snapshot hashes anchor listed assets. Additional glazing/source/helper hashes are captured at preparation time before V11 build.",
"photograph_source_ledger_mismatches_at_prepare": []
},
"result": {
"glb": {
"path": "build/sagrada_familia.glb",
"sha256": "5050da208701b9cb4bd5c7c4cd1f9595a364d761dbc086e27c88184a499e0710",
"bytes": 319558244,
"stable_during_read": true,
"images": 73,
"materials": 65
},
"embedded_photos": [
{
"name": "Busquets_Nativity_Holy_Family_nativity_warm_render",
"expected_sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"actual_sha256": "88a2737024decba0acf7e28ef59735fb11e1aff12c839102a6eb814d6f57385f",
"unchanged": true
},
{
"name": "glass_east_blue_mortel2016",
"expected_sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"actual_sha256": "4a5452d2d3d62e7807ed8b1c0b1a35f7ff4381799174d354b10eb5e12182cd4d",
"unchanged": true
},
{
"name": "glass_east_ribeiro2014",
"expected_sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"actual_sha256": "fe75753db6a5d2614c13b29221d824082c2345009041f93b903f2f6edc17c04d",
"unchanged": true
},
{
"name": "glass_east_palegreen_mortel_meskens_atlas",
"expected_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"actual_sha256": "bfbad84e7e532f982474ef807722a59cf811c340300607c7435d1e0e45f3216f",
"unchanged": true
},
{
"name": "glass_east_yellowgreen_meskens2016",
"expected_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"actual_sha256": "9009a9d8c63fe46a997bbf17be4925ab0e07d092a3d0e6da1a69239c8fc20e98",
"unchanged": true
},
{
"name": "glass_west_green_smiley2023",
"expected_sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"actual_sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"unchanged": true
},
{
"name": "Sotoo_Harp_Angel_1984_nativity_warm_render",
"expected_sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"actual_sha256": "3aa883f470ad951ff39107ccece908451c41761f6882ce3e77aa0f2ed9defec0",
"unchanged": true
},
{
"name": "Sotoo_Singing_Children_1999_nativity_warm_render",
"expected_sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"actual_sha256": "2cff7e2eca8e0030d65eb546d0d9c5ff6e7611f8323473f6d2470264292915be",
"unchanged": true
},
{
"name": "Sotoo_Viola_and_Lute_Angels_nativity_warm_render",
"expected_sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"actual_sha256": "51879ca8e7e544efcb03d803a194b12496b58f54b7139e41ad73b852eaa18824",
"unchanged": true
},
{
"name": "Subirachs_Crucifixion_edge_blended",
"expected_sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"actual_sha256": "1855850bdd5019f372f9c04a0518e67621ece5c0f08b05ffaaa7e2be433fe1fd",
"unchanged": true
},
{
"name": "Subirachs_Judas_Kiss_and_Magic_Square_edge_blended",
"expected_sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"actual_sha256": "3874fa1cb4a85a21badbdc16a46379aa087d611eb7e72c9ca2faa2ae81cb89e4",
"unchanged": true
},
{
"name": "Subirachs_Veronica_and_Soldiers_edge_blended",
"expected_sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"actual_sha256": "51f3a5cbf0ef94f6e53be0d843206d351816874f9821bbeb9896c85b0622196f",
"unchanged": true
},
{
"name": "glass_west_red_alikhan2022",
"expected_sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"actual_sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"unchanged": true
},
{
"name": "glass_west_red_rose_mortel",
"expected_sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"actual_sha256": "0b918447c8382b201d0d3edfea93b053a38eba55c5517ce4508d539bb74cda68",
"unchanged": true
},
{
"name": "glass_west_ribeiro2014",
"expected_sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"actual_sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"unchanged": true
}
],
"protected_file_count": 86,
"protected_file_changes": [],
"other_image_ingredients": [
{
"index": 0,
"name": "sandstone_normal",
"bytes": 1448514,
"sha256": "e4f09a7e330f0415455d3d52f18a0a7068e03b8ce1ddfe4ea12b291875d88f7a",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 1,
"name": "sandstone_base",
"bytes": 455730,
"sha256": "e39ade56ff53da17805e345b0c6a2ec506aae4e8e8f5396507bb07de0b2db9fd",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 2,
"name": "sandstone_rough",
"bytes": 715880,
"sha256": "33593fc4e5e2581487a7b346bb7ba82e603e71b9fc8c37d9ee885d3e5549c61d",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/sandstone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 3,
"name": "shaft_sandstone_normal",
"bytes": 1449211,
"sha256": "8435750f573c9d10ab91f9b535f64e055b147cf1c859314779d9c0f0ab80ca0e",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 4,
"name": "shaft_sandstone_base",
"bytes": 517808,
"sha256": "4b17d9119d788a26cafe911292bbdf4b9a8da6d521bf7ac6742d1f2483cf4b1c",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 5,
"name": "shaft_sandstone_rough",
"bytes": 716305,
"sha256": "2409810894661f626f0e7662e017026f64330829f6f4a7dfb333408f782d3053",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_sandstone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 6,
"name": "vault_normal",
"bytes": 1449605,
"sha256": "5529d1897d1725c474465cffc9c314b04bd4b8255531e283dead1594c8d18d9e",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 7,
"name": "vault_base",
"bytes": 440760,
"sha256": "f50d9ee918bc1605b2b5e3faa194119be5873fedbe49626b9c06a1ae2717a9ef",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 8,
"name": "vault_rough",
"bytes": 686534,
"sha256": "795a7d7fa8fecb32cbaac5390a4ab97d99f1ac8c905276c5b871511d4ba2195c",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/vault_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 9,
"name": "stone_light_normal",
"bytes": 1477122,
"sha256": "488b07c7289f080b77c7803f26177220f5ad69c351ff110996d25e6b460648dd",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 10,
"name": "stone_light_base",
"bytes": 470916,
"sha256": "2a5272aafe2678327abeb6ce280926be41a9c4114e2c04d4679cf14659794bf1",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 11,
"name": "stone_light_rough",
"bytes": 742111,
"sha256": "2c1e7ec0e9b53854bc0fbcc5e031df7cc7542db03e0f97a61fc04b4243a6a6f6",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_light_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 12,
"name": "concrete_normal",
"bytes": 1518381,
"sha256": "03774d96f0b898841f1363189e8167a385fd466a5d45b6843fb8396b8575d147",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 13,
"name": "concrete_base",
"bytes": 468452,
"sha256": "90412914a11ef4cd0301701f17a65698388b01f1ed9062894a75e265bdb1d7f9",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 14,
"name": "concrete_rough",
"bytes": 778252,
"sha256": "5026d419c841feb3490627dc2f6a0f1ae0bb7125ef905e2ee3e1a22fa9a4ec21",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/concrete_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 15,
"name": "stone_normal",
"bytes": 1538410,
"sha256": "393a226185a8195e91eae334a3634fb084d04d5d6a3c69d206d10ce7d5170872",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 16,
"name": "stone_base",
"bytes": 471855,
"sha256": "f5b8623ec5f6486a16ceb188e6278f8c334dc2a1cd4272a1e894f0fc5bd73541",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 17,
"name": "stone_rough",
"bytes": 765713,
"sha256": "8423668a5dec9c75585bc383d38e6ca75a1457f4d976f0ca0b80e499f042db1f",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 18,
"name": "floor_normal",
"bytes": 1311505,
"sha256": "ed8fff2ee74205a3682d4c4ec7e3b4a0189d6175a6c59c14dce5ce08c4c77079",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 19,
"name": "floor_base",
"bytes": 348221,
"sha256": "f94d26cd33fc31d8138b5cbfbf0aab3f5c6fe79b80c7673033e58835761b3ae2",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 20,
"name": "floor_rough",
"bytes": 643769,
"sha256": "7e92a4fb8418ebfdc4bb8dc15a5578dd8a1cc7a03a6531d3ddd1c3c464edc56b",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/floor_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 21,
"name": "basalt_normal",
"bytes": 1365667,
"sha256": "a684839970c5f5f1be4b0a839173b6553ae856518f33c530239f2608627caf1a",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 22,
"name": "basalt_base",
"bytes": 434625,
"sha256": "7622cc0ae48310a7eeefddaf109c848574c0380c7a91f612e4e610f01203c08b",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 23,
"name": "basalt_rough",
"bytes": 714572,
"sha256": "470237a6952e69bf57d1f8c141074553f69cbda9ed70ace80a195bb8aa3327a3",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/basalt_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 24,
"name": "shaft_basalt_normal",
"bytes": 1366790,
"sha256": "0df061719f23f429ba3cb19ce4df6ed5983d9dea9e43958ea20bef66771f4a80",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 25,
"name": "shaft_basalt_base",
"bytes": 449298,
"sha256": "1f7918200b909e98469ce361af75c8bd807e069459c98893a8d1511a43d243ef",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 26,
"name": "shaft_basalt_rough",
"bytes": 714995,
"sha256": "1ba4ae98c332626d3a19560aa23856d64cb316d2f5491ca0e2c34a34b69eb884",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_basalt_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 27,
"name": "granite_normal",
"bytes": 1472858,
"sha256": "5f573144080f2712cce0928c70be004753f819a792b2b592fe63180b89d2cb03",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 28,
"name": "granite_base",
"bytes": 764924,
"sha256": "f1054bad8adff06efe9385921ce546d1c3b26f1ff730e0ab333e29eb860f56e3",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 29,
"name": "granite_rough",
"bytes": 779791,
"sha256": "45d7e0e7dda4082a1f49a99c283ad88b2080dfed3d7048f5d88c95522c290d27",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/granite_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 30,
"name": "shaft_granite_normal",
"bytes": 1473538,
"sha256": "4837211c4bcd71a310b8a89cbcba58376da2311f211570e8f74a629ae89bb8bc",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 31,
"name": "shaft_granite_base",
"bytes": 784756,
"sha256": "32ec66c12bb7f1dfd97f131bbbbc1ccd616bb0fe1af0e24917bb7e286adee839",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 32,
"name": "shaft_granite_rough",
"bytes": 780305,
"sha256": "3fcdd633e1f493ed3a02ed450c706fc9b3766572180715a1919ed28b9b6d6acb",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_granite_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 34,
"name": "nativity_stone_detail_normal",
"bytes": 1565043,
"sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 35,
"name": "nativity_stone_detail_base",
"bytes": 651424,
"sha256": "958704ba28fdd8bbf7e2a994304e363253cc628b3099ed9eead34230895c2f87",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 36,
"name": "nativity_stone_detail_rough",
"bytes": 805535,
"sha256": "42371b39ab4e04bf4063e03d9b13c683cbf9601b022a0c80d853f625c9fec4ce",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 37,
"name": "wall_stone_light_normal",
"bytes": 1480216,
"sha256": "c42001f848abe33a01ff1aad39b2887acd06d41752ddc6ca2869d46c55ab948c",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 38,
"name": "wall_stone_light_base",
"bytes": 607239,
"sha256": "2f2281fe80866668811b93509cccdba2168cd1b0586418c69fb74ed36e7e8d4a",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 39,
"name": "wall_stone_light_rough",
"bytes": 745404,
"sha256": "1274d7cbca4ead4e875879a885612862b55f3979031ff033a746bf0f7fc381fa",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_light_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 40,
"name": "porphyry_normal",
"bytes": 1452995,
"sha256": "b7a8ebdb8fc67fcb505de7cd918b45994542cc7ebabe7a6be4c9b6b4461fb038",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 41,
"name": "porphyry_base",
"bytes": 1126223,
"sha256": "293e8f8d16049a6a84c856be979ebb53b3c0e9679554f33afdc9879cb1cdd9d7",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 42,
"name": "porphyry_rough",
"bytes": 766086,
"sha256": "4ad2d4e2771e685f4213d0ba54a1e07d8a29e21e4e7aea1b90c860790ebb77eb",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/porphyry_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 43,
"name": "shaft_porphyry_normal",
"bytes": 1453808,
"sha256": "7a305fb4020a9715b861e347a560f08532d32c7bf7ee532c636fa099d7433a40",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 44,
"name": "shaft_porphyry_base",
"bytes": 1164597,
"sha256": "1ff9d756f7c964e614c7cca6cee67e13b1ff0ec8d59ea076cb86e79e436fcb39",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 45,
"name": "shaft_porphyry_rough",
"bytes": 766576,
"sha256": "f6d6c1092cd44cde4eaa7fedec2247fa61d9ec685d7596929281a3a603c88132",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/shaft_porphyry_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 46,
"name": "nativity_stone_detail_anchor_base",
"bytes": 722075,
"sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 47,
"name": "nativity_stone_detail_anchor_rough",
"bytes": 805535,
"sha256": "ab97957366509e72aa4bd44f37d65ccef80571d56b43f8914d7c3d10b160dfbe",
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 48,
"name": "nativity_stone_normal",
"bytes": 1585107,
"sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 49,
"name": "nativity_stone_anchor_base",
"bytes": 643133,
"sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 50,
"name": "nativity_stone_anchor_rough",
"bytes": 820349,
"sha256": "87b9a052e1df2c6583e742ed97be4413e0e86b50bbf7eb0a7aca2a005637df75",
"source_matches": [
{
"path": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 51,
"name": "nativity_stone_base",
"bytes": 564834,
"sha256": "3f811002942d67cb1bba93a1e736328d60d1a309c2b382de62cb060aff4c9cdf",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 52,
"name": "nativity_stone_rough",
"bytes": 820349,
"sha256": "0935199e60a61caf630145e08d3e5871c5ec13267995f42afbf6f2c4fd439260",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/nativity_stone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 58,
"name": "wall_stone_normal",
"bytes": 1541217,
"sha256": "678d17599ff17d5d5381a398f0d41a00e486533a9a4f73032e9dc412bb758bdd",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 59,
"name": "wall_stone_base",
"bytes": 605441,
"sha256": "dc8a605eecc2ba7c595d435a1d0f1406e0dc7f0e4a1234cfacd278876d93f422",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 60,
"name": "wall_stone_rough",
"bytes": 769155,
"sha256": "c5ea8db431631504f98f9459906054b6d6274bdd70f855a75cffceb3f8ae8e58",
"source_matches": [
{
"path": "assets/textures/stone_finishes_v12/wall_stone_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
},
{
"index": 67,
"name": "stone_dark_normal",
"bytes": 1547513,
"sha256": "3da94f4fb8cad084f49055af5130a7453b5bf9c0254aad1349ca19520ad91f12",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_normal.png",
"method": "identical_bytes"
}
]
},
{
"index": 68,
"name": "stone_dark_base",
"bytes": 502612,
"sha256": "9fd1787b93614b41a8ac1908a91595bae51922570835600bf55d8af2a70d8ce6",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_base.png",
"method": "identical_bytes"
}
]
},
{
"index": 69,
"name": "stone_dark_rough",
"bytes": 784587,
"sha256": "f025a07e3ade2df810b1e5586f89db6a3d9b914c24f9d14ddbc9260d1455f440",
"source_matches": [
{
"path": "assets/textures/stone_pbr_web_v11/stone_dark_rough.png",
"method": "roughness_green_channel_exact_red_blue255"
}
]
}
],
"reference_exclusion": {
"reference_only_images_checked": 85,
"matches": [],
"all_other_images_have_known_local_source": true,
"limit": "Exact file/pixel identity checks plus complete ingredient-to-source mapping; not a perceptual detector of arbitrarily transformed imagery."
},
"issues": [],
"validation_boundary": "Preserves photograph pixels and listed source/UV files. Overall rendered appearance and intentional stone/light changes require separate visual and browser review."
},
"audited_utc": "2026-10-02T01:50:08.929688+00:00",
"revision": "V12",
"supplemental_audited_utc": "2026-10-02T01:51:45.617364+00:00",
"comparison_baseline_report": "docs/STONE_WEB_V11_EVIDENCE.json",
"nativity_local_variation_validation": {
"manifest": "assets/textures/nativity_part_variation_v12/manifest.json",
"manifest_sha256": "8b1ec0912d1b89f9f646cdb294f453ae4885e0a0452bf649efe62d85708457ad",
"material_ledger_matches_manifest": true,
"four_derived_images": [
{
"stone": "nativity_stone",
"channel": "base",
"source_path": "assets/textures/stone_pbr_web_v11/nativity_stone_base.png",
"source_sha256": "3f811002942d67cb1bba93a1e736328d60d1a309c2b382de62cb060aff4c9cdf",
"source_hash_matches_manifest": true,
"derived_path": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png",
"derived_sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"derived_hash_matches_manifest": true,
"operation_pixels_identical": true,
"max_channel_error": 0
},
{
"stone": "nativity_stone",
"channel": "rough",
"source_path": "assets/textures/stone_pbr_web_v11/nativity_stone_rough.png",
"source_sha256": "ce39afabca2d79ef237666b07af166b685e5a293b476d1cac703125e3fcd99b6",
"source_hash_matches_manifest": true,
"derived_path": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"derived_sha256": "65251d68af25b6782d1594d8dd2052f1c0a2a46fe02104cecbea0bbd73069c60",
"derived_hash_matches_manifest": true,
"operation_pixels_identical": true,
"max_channel_error": 0
},
{
"stone": "nativity_stone_detail",
"channel": "base",
"source_path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_base.png",
"source_sha256": "958704ba28fdd8bbf7e2a994304e363253cc628b3099ed9eead34230895c2f87",
"source_hash_matches_manifest": true,
"derived_path": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"derived_sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"derived_hash_matches_manifest": true,
"operation_pixels_identical": true,
"max_channel_error": 0
},
{
"stone": "nativity_stone_detail",
"channel": "rough",
"source_path": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_rough.png",
"source_sha256": "78b23a95793ea9336052d7d69462e35a1921253dbacdf6b41f3ef90ab250057d",
"source_hash_matches_manifest": true,
"derived_path": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"derived_sha256": "d20944162e43f9043f022b67a637a7d36793a5a1c74bddc39c234a8311923f2a",
"derived_hash_matches_manifest": true,
"operation_pixels_identical": true,
"max_channel_error": 0
}
],
"copied_materials": [
{
"material_index": 33,
"name": "Weathered warm Nativity arrises · historic carved detail | local part 2",
"baseColorFactor": [
0.9262455105781555,
0.9279448986053467,
0.9287015199661255,
1
],
"roughnessFactor": 0.9632631540298462,
"normal_scale": 0.6200000047683716,
"factors_within_0_1": true,
"base_factor_max_error": 2.3389083336766703e-08,
"rough_factor_error": 1.6405138358877025e-08,
"normal_strength_unchanged": true,
"textures": {
"base": {
"image_name": "nativity_stone_detail_anchor_base",
"image_sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"source_match": true
},
"rough": {
"image_name": "nativity_stone_detail_anchor_rough",
"image_sha256": "ab97957366509e72aa4bd44f37d65ccef80571d56b43f8914d7c3d10b160dfbe",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"source_match": true
},
"normal": {
"image_name": "nativity_stone_detail_normal",
"image_sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9",
"expected_file": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png",
"source_match": true
}
},
"matches_CPU_probe": true
},
{
"material_index": 34,
"name": "Weathered warm Nativity sandstone · historic fabric | local part 2",
"baseColorFactor": [
0.9236622452735901,
0.9261016845703125,
0.9270625114440918,
1
],
"roughnessFactor": 0.9647311568260193,
"normal_scale": 0.6499999761581421,
"factors_within_0_1": true,
"base_factor_max_error": 2.103848162349209e-08,
"rough_factor_error": 1.6476814690413732e-08,
"normal_strength_unchanged": true,
"textures": {
"base": {
"image_name": "nativity_stone_anchor_base",
"image_sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png",
"source_match": true
},
"rough": {
"image_name": "nativity_stone_anchor_rough",
"image_sha256": "87b9a052e1df2c6583e742ed97be4413e0e86b50bbf7eb0a7aca2a005637df75",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"source_match": true
},
"normal": {
"image_name": "nativity_stone_normal",
"image_sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141",
"expected_file": "assets/textures/stone_pbr_web_v11/nativity_stone_normal.png",
"source_match": true
}
},
"matches_CPU_probe": true
},
{
"material_index": 35,
"name": "Weathered warm Nativity sandstone · historic fabric | local part 3",
"baseColorFactor": [
0.9698495268821716,
0.9724109768867493,
0.9734198451042175,
1
],
"roughnessFactor": 0.9871890544891357,
"normal_scale": 0.6499999761581421,
"factors_within_0_1": true,
"base_factor_max_error": 1.408719252360413e-08,
"rough_factor_error": 1.5309782774863834e-08,
"normal_strength_unchanged": true,
"textures": {
"base": {
"image_name": "nativity_stone_anchor_base",
"image_sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png",
"source_match": true
},
"rough": {
"image_name": "nativity_stone_anchor_rough",
"image_sha256": "87b9a052e1df2c6583e742ed97be4413e0e86b50bbf7eb0a7aca2a005637df75",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"source_match": true
},
"normal": {
"image_name": "nativity_stone_normal",
"image_sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141",
"expected_file": "assets/textures/stone_pbr_web_v11/nativity_stone_normal.png",
"source_match": true
}
},
"matches_CPU_probe": true
},
{
"material_index": 36,
"name": "Weathered warm Nativity sandstone · historic fabric | local part 1",
"baseColorFactor": [
0.8774749040603638,
0.8797923922538757,
0.8807051777839661,
1
],
"roughnessFactor": 0.9422732591629028,
"normal_scale": 0.6499999761581421,
"factors_within_0_1": true,
"base_factor_max_error": 1.8218059505414885e-08,
"rough_factor_error": 1.764384649494133e-08,
"normal_strength_unchanged": true,
"textures": {
"base": {
"image_name": "nativity_stone_anchor_base",
"image_sha256": "e262260a1c6fb6a2b72f580549a34ef707562d5983c95412f03a354925b518a4",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_base.png",
"source_match": true
},
"rough": {
"image_name": "nativity_stone_anchor_rough",
"image_sha256": "87b9a052e1df2c6583e742ed97be4413e0e86b50bbf7eb0a7aca2a005637df75",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_anchor_rough.png",
"source_match": true
},
"normal": {
"image_name": "nativity_stone_normal",
"image_sha256": "1e649948189d7be667ee4a22a53cd70e374c7f4b924eaa999e64b2ed09dd4141",
"expected_file": "assets/textures/stone_pbr_web_v11/nativity_stone_normal.png",
"source_match": true
}
},
"matches_CPU_probe": true
},
{
"material_index": 37,
"name": "Weathered warm Nativity arrises · historic carved detail | local part 3",
"baseColorFactor": [
0.9725464582443237,
0.9743307828903198,
0.975125253200531,
1
],
"roughnessFactor": 0.9867561459541321,
"normal_scale": 0.6200000047683716,
"factors_within_0_1": true,
"base_factor_max_error": 1.5724818336337876e-08,
"rough_factor_error": 1.1810124989075632e-08,
"normal_strength_unchanged": true,
"textures": {
"base": {
"image_name": "nativity_stone_detail_anchor_base",
"image_sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"source_match": true
},
"rough": {
"image_name": "nativity_stone_detail_anchor_rough",
"image_sha256": "ab97957366509e72aa4bd44f37d65ccef80571d56b43f8914d7c3d10b160dfbe",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"source_match": true
},
"normal": {
"image_name": "nativity_stone_detail_normal",
"image_sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9",
"expected_file": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png",
"source_match": true
}
},
"matches_CPU_probe": true
},
{
"material_index": 38,
"name": "Weathered warm Nativity arrises · historic carved detail | local part 1",
"baseColorFactor": [
0.8799445629119873,
0.8815590143203735,
0.8822778463363647,
1
],
"roughnessFactor": 0.9397701025009155,
"normal_scale": 0.6200000047683716,
"factors_within_0_1": true,
"base_factor_max_error": 2.430718970547474e-08,
"rough_factor_error": 1.4984242846516338e-08,
"normal_strength_unchanged": true,
"textures": {
"base": {
"image_name": "nativity_stone_detail_anchor_base",
"image_sha256": "0f2c50c364250a7a28ce10d5e6867c0d79187d9f84123e8cb5ec5c4e16cffedf",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_base.png",
"source_match": true
},
"rough": {
"image_name": "nativity_stone_detail_anchor_rough",
"image_sha256": "ab97957366509e72aa4bd44f37d65ccef80571d56b43f8914d7c3d10b160dfbe",
"expected_file": "assets/textures/nativity_part_variation_v12/nativity_stone_detail_anchor_rough.png",
"source_match": true
},
"normal": {
"image_name": "nativity_stone_detail_normal",
"image_sha256": "ba22b521989134c49ce43f58b034aafa5782d9a2940e1d2ac5739902f64d0bc9",
"expected_file": "assets/textures/stone_pbr_web_v11/nativity_stone_detail_normal.png",
"source_match": true
}
},
"matches_CPU_probe": true
}
],
"glb_mesh_nodes_using_copies": 106,
"author_reported_Blender_objects": 827,
"object_count_note": "The author count is pre-export Blender objects; glTF mesh batching changes the node count. This audit does not equate those counts.",
"historic_v11_report_unchanged": true,
"historic_v11_report_sha256": "2afaddb74651ff9dc7a5903cb6b618bf9e0e52a7dcfc1a4f39d247d35552ef23",
"issues": []
}
}{
"task": "Focused verification of requested Bracons2015 west-aisle source against existing bank definitions",
"checked_utc_date": "2026-10-01",
"decision": "NO_ADDITIONAL_COMPLETE_BANK",
"bank_candidate": null,
"requested_source": "https://commons.wikimedia.org/wiki/File:Barcelona._Basilica_of_La_Sagrada_Fam%C3%ADlia._Stained_glass_windows_of_the_aisles._(18561136293).jpg",
"web_page_verified": {
"capture_date": "2015-06-14 18:21",
"photographer": "Catalan Art & Architecture Gallery (Josep Bracons)",
"license": "CC BY-SA2.0",
"original_size": [
4288,
2848
],
"local_source_note": "Previously downloaded Wikimedia3840px thumbnail; original image unchanged. No duplicate download was needed."
},
"matching": [
{
"bracons_region": "image-left red-dominant bank, partly column-occluded",
"existing_bank_key": "west_red",
"existing_source": "artwork_glass_candidate_west_2022.jpg",
"evidence": "Same red-dominant eighteen capsule pattern, blue lower-left capsule accents and six large oculi layout. Existing Alikhan2022 source plus Mortel rose already covers this bank."
},
{
"bracons_region": "image-centre orange/yellow bank",
"existing_bank_key": "west",
"existing_source": "artwork_glass_west_2014_ribeiro_3.jpg",
"evidence": "Same twelve-petal rose including blue lower-left accent petals, paired six-large-oculi geometry, orange/yellow upper capsules and red lower capsules with green left accents as Ribeiro2014_3."
},
{
"bracons_region": "image-right orange/green transition bank",
"existing_bank_key": "west_green",
"existing_source": "artwork_glass_candidate_2023_3.jpg",
"evidence": "Same orange/yellow left capsule group and turquoise/green right capsule group, same rose and circular text panes as Smiley2023_3."
}
],
"correction_to_current_mapping": null,
"useful_confirmation": "Left-to-right order in this inside-facing photograph is west_red, west, west_green. This is relative photographic order; no new absolute numbered architectural bay is established.",
"completeness_limits": [
"Only three existing banks are identifiable; no fourth distinct complete bank appears.",
"Image-left bank is partly behind the large column and the lower register approaches the frame boundary.",
"Image-right bank has upper rose and lowest capsule ends cut by frame boundaries.",
"Reprojection cannot recover clipped letters, missing pane geometry or unseen lower colours. No synthetic replacement is justified."
],
"crop_homography": {
"render_crop": null,
"homography": null,
"reason": "No new bank; no geometry/text resampling needed. Only uncropped reference inspection derivatives made."
},
"source_schema_reviewed": {
"per_bank_fields": [
"source",
"image_size",
"texture",
"core",
"petals",
"petal_angles",
"caps",
"circles",
"large",
"projection_basis(optional)"
],
"expected_bank_topology": "18capsules in3registers of6,18small circular panes,6large circular panes,1core and12petals; full bank55apertures",
"shared_file_modified": false
},
"inspection_assets": [
{
"source_id": "glass_west_2015_bracons_aisles",
"source_page": "https://commons.wikimedia.org/wiki/File:Barcelona._Basilica_of_La_Sagrada_Fam%C3%ADlia._Stained_glass_windows_of_the_aisles._(18561136293).jpg",
"source_file": "assets/reference/artwork_glass_west_2015_bracons_aisles.jpg",
"source_dimensions": [
3840,
2550
],
"source_sha256": "414f7ac4721fc2791d1fc0cc2beae93be8a26018384f619494725fd78efb9bd1",
"photographer": "Catalan Art & Architecture Gallery (Josep Bracons)",
"capture_date": "2015-06-14 18:21",
"photo_license": "CC BY-SA 2.0",
"license_url": "https://creativecommons.org/licenses/by-sa/2.0/",
"attribution": "Catalan Art & Architecture Gallery (Josep Bracons) / Wikimedia Commons / CC BY-SA 2.0",
"inspection_derivative": "assets/textures/windows_extra_west/artwork_glass_west_2015_bracons_aisles_inspection.jpg",
"derivative_dimensions": [
1000,
664
],
"derivative_sha256": "e03254fd724344e6aac7401a911f718f89143e490909db4892d9a97441ed861e",
"changes": "Uncropped full-frame reference image downsampled with Lanczos to fit1000x1200, JPEGquality93. No colour adjustment, letters redrawn, inpainting or homography.",
"render_use": false
},
{
"source_id": "glass_west_2014_ribeiro_3",
"source_page": "https://commons.wikimedia.org/wiki/File:Windows_in_the_aisles_-_Interior_of_the_Sagrada_Fam%C3%ADlia_-_Barcelona_2014_%283%29.JPG",
"source_file": "assets/reference/artwork_glass_west_2014_ribeiro_3.jpg",
"source_dimensions": [
2048,
3072
],
"source_sha256": "0783a0342b7a0cfa46e8375cdfbf7f639ece3c5e99e2e2b8793178313f433da6",
"photographer": "José Luiz Bernardes Ribeiro",
"capture_date": "2014-02-11 09:45:18",
"photo_license": "CC BY-SA 3.0",
"license_url": "https://creativecommons.org/licenses/by-sa/3.0/",
"attribution": "© José Luiz Bernardes Ribeiro / Wikimedia Commons / CC BY-SA 3.0",
"inspection_derivative": "assets/textures/windows_extra_west/artwork_glass_west_2014_ribeiro_3_inspection.jpg",
"derivative_dimensions": [
800,
1200
],
"derivative_sha256": "a1530a790c9cfecd59c7a046cab74fb9bd8d77c02f1855887dcfd5ac44233d71",
"changes": "Uncropped full-frame reference image downsampled with Lanczos to fit1000x1200, JPEGquality93. No colour adjustment, letters redrawn, inpainting or homography.",
"render_use": false
},
{
"source_id": "glass_candidate_west_2022",
"source_page": "https://commons.wikimedia.org/wiki/File:SagradaFamilia_Oct6_2022.jpg",
"source_file": "assets/reference/artwork_glass_candidate_west_2022.jpg",
"source_dimensions": [
1920,
2560
],
"source_sha256": "ce8e61fe5a67ef7d54f19e5ed5561248c974f6fa9d3f202fa1f8082a6174cd33",
"photographer": "Anusha Alikhan",
"capture_date": "2022-10-06 11:59:30",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"attribution": "© Anusha Alikhan / Wikimedia Commons / CC BY-SA 4.0",
"inspection_derivative": "assets/textures/windows_extra_west/artwork_glass_candidate_west_2022_inspection.jpg",
"derivative_dimensions": [
900,
1200
],
"derivative_sha256": "d6e38234187ee127f93538afa140922dfacaa2ec45250eebbe698e28d095986b",
"changes": "Uncropped full-frame reference image downsampled with Lanczos to fit1000x1200, JPEGquality93. No colour adjustment, letters redrawn, inpainting or homography.",
"render_use": false
},
{
"source_id": "glass_candidate_2023_3",
"source_page": "https://commons.wikimedia.org/wiki/File:Stained-glass_windows_of_the_Sagrada_Fam%C3%ADlia_2023_3.jpg",
"source_file": "assets/reference/artwork_glass_candidate_2023_3.jpg",
"source_dimensions": [
3840,
2560
],
"source_sha256": "4c255c030df0838cac265a027f22f2927c1a30790801c7f6b8bef6866da143d8",
"photographer": "Smiley.toerist",
"capture_date": "2023-06-04 12:23:10",
"photo_license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"attribution": "© Smiley.toerist / Wikimedia Commons / CC BY-SA 4.0",
"inspection_derivative": "assets/textures/windows_extra_west/artwork_glass_candidate_2023_3_inspection.jpg",
"derivative_dimensions": [
1000,
667
],
"derivative_sha256": "150c332f967114eb4454e8359d8fe2ad416e2bac106d67b53a717578707d3986",
"changes": "Uncropped full-frame reference image downsampled with Lanczos to fit1000x1200, JPEGquality93. No colour adjustment, letters redrawn, inpainting or homography.",
"render_use": false
}
],
"helper": "assets/textures/windows_extra_west/make_inspection.py",
"ownership_scope": "No exterior.py/materials.py/glazing.py/window_banks.json edits; no new runtime texture or bank registered.",
"copyright_note": "Photographs remain under their stated source licenses, including share-alike where required. Glass artwork attributed separately to Joan Vila-Grau in the main source ledger; this record does not imply a separate artist rights waiver."
}