From 32dff056c3c99a29c43128f7d07ce0754d92d6a0 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sun, 8 Nov 2026 19:32:47 +0100 Subject: [PATCH] fix(blockout): regenerate with --origin; frontage back on the verified spans The 0.1.2 blockout regeneration ran without --origin, so Blosm centred on the extract instead of fitting the project frame. The frontage shifted ~119 m in X and ~2.4 m in Y and the hero fell outside the 6902/6838 gap - the verified placement was silently undone, while every render still looked like a plausible block. - Blockout regenerated with --origin 34.101545,-118.338718 (affine residual 0.0 cm); frontage and north buildings re-exported and re-imported. - Verified spans restored: 6922 -24276..-17700, 6902 -17749..-14591, hero -14644..-12028 between them, theatre -12082..-8210, TCL -22889..-18442, Tussaud's -27071..-22799. - ue_apply_facade_kit now uses get_actor_bounds() (world space). It had used the static mesh bounding box, which is building-line-local, so every kit piece was placed ~12 km east of its building in empty ground. - ue_import_north_buildings.py was missing 'import sys' (NameError, exit 255, import silently skipped) - the same trap as the hero importer. - Kit re-applied: 625 pieces across eight buildings; packaged QA still PASS (walk, transect 0 holes, wall probe 0/35, facade probe 0/9). --- .../blockout/blockout-2026-11-06.blend | 4 ++-- Game/GigLine/Content/Hollywood/DemoMap.umap | 4 ++-- .../Hollywood/Frontage/SM_Budget_6822.uasset | 4 ++-- .../Frontage/SM_ElCapitanTheatre.uasset | 4 ++-- .../Frontage/SM_Hollywood_6806.uasset | 4 ++-- .../Frontage/SM_Hollywood_6902.uasset | 4 ++-- .../Frontage/SM_Hollywood_6922.uasset | 4 ++-- .../Hollywood/Frontage/SM_LeeDrug_6800.uasset | 4 ++-- .../Hollywood/North/SM_Madame_Tussauds.uasset | 4 ++-- .../North/SM_TCL_Chinese_Theatre.uasset | 4 ++-- .../Content/Hollywood/Site/M_Asphalt.uasset | 2 +- .../Content/Hollywood/Site/M_Concrete.uasset | 2 +- .../Hollywood/Site/M_FacadeBanner.uasset | 2 +- .../Hollywood/Site/M_FacadeGlass.uasset | 2 +- .../Hollywood/Site/M_FacadeStone.uasset | 2 +- .../Hollywood/Site/M_FacadeStoneShadow.uasset | 2 +- .../Content/Hollywood/Site/M_Ground.uasset | 2 +- .../Hollywood/Site/M_KerbConcrete.uasset | 2 +- .../Content/Hollywood/Site/M_RoadPaint.uasset | 2 +- .../Content/Hollywood/Site/M_Stucco.uasset | 2 +- .../Content/Hollywood/Site/Terrain_DEM.uasset | 2 +- .../Hollywood/Textures/T_Asphalt_BC.uasset | 4 ++-- .../Hollywood/Textures/T_Asphalt_R.uasset | 4 ++-- .../Hollywood/Textures/T_Concrete_BC.uasset | 4 ++-- .../Hollywood/Textures/T_Concrete_R.uasset | 4 ++-- .../Textures/T_StoneAshlar_BC.uasset | 4 ++-- .../Hollywood/Textures/T_StoneAshlar_R.uasset | 4 ++-- .../Hollywood/Textures/T_Stucco_BC.uasset | 4 ++-- .../Hollywood/Textures/T_Stucco_R.uasset | 4 ++-- Game/GigLine/Content/Test/ReviewMap.umap | 2 +- MEMORY.md | 21 +++++++++++++++++++ Screenshots/demo/review-demo-crossing.png | 4 ++-- .../demo/review-demo-north-buildings.png | 4 ++-- Screenshots/demo/review-demo-spawn-view.png | 4 ++-- Screenshots/demo/review-demo-street-level.png | 4 ++-- Screenshots/review-character.png | 4 ++-- Screenshots/review-ground-contact.png | 4 ++-- Screenshots/review-hero-facade-front.png | 4 ++-- Screenshots/review-hero-facade-oblique.png | 4 ++-- Screenshots/review-hero-portals.png | 4 ++-- Screenshots/review-npc-prefab.png | 4 ++-- Screenshots/review-overview.png | 4 ++-- Screenshots/review-player-placement.png | 4 ++-- Screenshots/review-scale-cubes.png | 4 ++-- Screenshots/review-shadow-compare.png | 4 ++-- TODO.md | 2 +- Tools/ue_apply_facade_kit.py | 11 +++++++--- Tools/ue_import_north_buildings.py | 1 + 48 files changed, 107 insertions(+), 80 deletions(-) diff --git a/Art/blender/blockout/blockout-2026-11-06.blend b/Art/blender/blockout/blockout-2026-11-06.blend index 6a53c85..89b7836 100644 --- a/Art/blender/blockout/blockout-2026-11-06.blend +++ b/Art/blender/blockout/blockout-2026-11-06.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9056f0f302ad12b882f2416d2d500aab679ea65ccc56f8bb127f79d257e63aa2 -size 250060 +oid sha256:30e51795ce54ad7db03a8fe6d37e5dfb143b25706a44bec84179794b39b2f372 +size 250193 diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index 53c90ff..c17c84f 100644 --- a/Game/GigLine/Content/Hollywood/DemoMap.umap +++ b/Game/GigLine/Content/Hollywood/DemoMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cabcd908ff5149ac64773f34092efbdf7df077165db50438aef1d36e846ecc46 -size 939345 +oid sha256:7f9628232386d4f68e4349204f439ee10e77fb6167530e3b9a301e36e602ca4f +size 921214 diff --git a/Game/GigLine/Content/Hollywood/Frontage/SM_Budget_6822.uasset b/Game/GigLine/Content/Hollywood/Frontage/SM_Budget_6822.uasset index fd8d792..1e93748 100644 --- a/Game/GigLine/Content/Hollywood/Frontage/SM_Budget_6822.uasset +++ b/Game/GigLine/Content/Hollywood/Frontage/SM_Budget_6822.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:04eea883885521fadfc2675c4ee93c7aba61cbbf84e464d34a634f1b778bc161 -size 78284 +oid sha256:2c690e276876e576568a21aa06f28c1f28162447e75ee7e6241bc283f61c299c +size 78281 diff --git a/Game/GigLine/Content/Hollywood/Frontage/SM_ElCapitanTheatre.uasset b/Game/GigLine/Content/Hollywood/Frontage/SM_ElCapitanTheatre.uasset index 7182b89..5436281 100644 --- a/Game/GigLine/Content/Hollywood/Frontage/SM_ElCapitanTheatre.uasset +++ b/Game/GigLine/Content/Hollywood/Frontage/SM_ElCapitanTheatre.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92b4a9e1ffebdec61f477c62228b02074d1afed6e76288b9cac7cfc21479bf94 -size 79348 +oid sha256:6fafde149fd5ca0e360d0340296b18d77371b84374c22eeee65eb21c7288f405 +size 79337 diff --git a/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6806.uasset b/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6806.uasset index f8f5611..83f5f81 100644 --- a/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6806.uasset +++ b/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6806.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21faaa28e97235717b973e3827604805edd88195fb0997c1ff374e8e04f4186a -size 78998 +oid sha256:f728a5955380edeca0c7628c39fc883d1cb23d7d1383cb408d33244c3447a958 +size 78991 diff --git a/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6902.uasset b/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6902.uasset index 49ee421..d62505c 100644 --- a/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6902.uasset +++ b/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6902.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:86082f721699b618c0989d250861bd6a079c45bc321f9472c191344ad3a9fef3 -size 78349 +oid sha256:a158f317c4e583b2113e22ca636c8ad3096e135305f960324be37c389a57d410 +size 78344 diff --git a/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6922.uasset b/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6922.uasset index 8ffa7e4..b8f4183 100644 --- a/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6922.uasset +++ b/Game/GigLine/Content/Hollywood/Frontage/SM_Hollywood_6922.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c06ffd414b54a3c8383344da54baf05938ba3aa2a6322f3d6801b2f7cc1ccfc -size 78881 +oid sha256:025d206a0cb0dfc90de3e75407e01690eadb9995f1c2299693f42a8c8e96f46d +size 78886 diff --git a/Game/GigLine/Content/Hollywood/Frontage/SM_LeeDrug_6800.uasset b/Game/GigLine/Content/Hollywood/Frontage/SM_LeeDrug_6800.uasset index a0948ea..eda0333 100644 --- a/Game/GigLine/Content/Hollywood/Frontage/SM_LeeDrug_6800.uasset +++ b/Game/GigLine/Content/Hollywood/Frontage/SM_LeeDrug_6800.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad59e28c16e965ddd814e69d9510233f93b44410bf42d5602e36609124879465 -size 78097 +oid sha256:76d70f7b9256a26570b545a40179d7901154dc4040b8d399207b0f3e9e8490e7 +size 78103 diff --git a/Game/GigLine/Content/Hollywood/North/SM_Madame_Tussauds.uasset b/Game/GigLine/Content/Hollywood/North/SM_Madame_Tussauds.uasset index 08c9aa6..5fc5c95 100644 --- a/Game/GigLine/Content/Hollywood/North/SM_Madame_Tussauds.uasset +++ b/Game/GigLine/Content/Hollywood/North/SM_Madame_Tussauds.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6916ce5e1856eaefccce5faa3d688f0bdb6398a2dcc56a872ceb00080db7993b -size 79982 +oid sha256:43191905b268a7ade80415330e8aa009f2de024175b34d1fd806f32798b6664b +size 79990 diff --git a/Game/GigLine/Content/Hollywood/North/SM_TCL_Chinese_Theatre.uasset b/Game/GigLine/Content/Hollywood/North/SM_TCL_Chinese_Theatre.uasset index d8f0531..be72065 100644 --- a/Game/GigLine/Content/Hollywood/North/SM_TCL_Chinese_Theatre.uasset +++ b/Game/GigLine/Content/Hollywood/North/SM_TCL_Chinese_Theatre.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6ba67436b139db9375a1e43d05ea5fdd9c4770f4f778f3ace12cc7a47426222f -size 80253 +oid sha256:9e0f1296771b3e1f065ce670180205a9368ed199c733213e8e7c93b2a83ec99f +size 80268 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset index d83bc87..83426cf 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29dcab210b352dbcec4665b5d18e03080327938ea2be01dfe0c36862c8161095 +oid sha256:fb97fb7403d331fff1a29884eb1edef8c0bbbe50e6fb33cfbe9ff9c696d24e30 size 7876 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset index 909a78f..e587855 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14c5b272b2a67088a123541518fa5749e47e2dc994b51ae699fd8fc114aee3ad +oid sha256:9c93e7576378561a245689f414d1046cff9e3de14329c8773f38e72abf736e76 size 7881 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset index 8eb662b..d10f0e7 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:158ac3fd592d71816fe061cac6aa23a025bb3a8f83ca338bc510e144bc4a06dd +oid sha256:e163fe98ecb0da87e920e5f685f4698392c7b00f5c0edb4d3497d61d2eeac98c size 8667 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset index 93e7535..961b4b6 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb21c5ac661880794989401129b2ea4d424c6a19dc5072b1505f778709d562bd +oid sha256:8f24d1f4d483cf6896103250cf5726f4ab258ecb14386d4e6fd5786ee00263b8 size 8662 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset index 0f7c2de..2e46754 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:643078c1b3aef3b980d208bc4bc9cdc727b337a6e00ac58460a4b601476e9019 +oid sha256:f8d3097b908c53a6c63dd8c2320794212362d1f5e4b1b1ff65a3e0f50e70c895 size 12131 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset index 00bdaa8..9f382ec 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb32d2e8dc8f85f2f1f6bde81faa7742a9c9b3f2f5b5c9adc66a96be43a1fc69 +oid sha256:853bb97a0318147126cd22b3bf3b2e6781e9605aadd1ace75c9accbd4e04a3d6 size 12161 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset index 0f0755d..6201c75 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b22a46ee7729364ba83d6cac7b38634fa32d93140c29b2003f73f7bf2a2c0aac +oid sha256:8a8fbad4e48bbf53f1f3dbc3d19fdb497ade7a70e108e0f009829176dcb098b0 size 7871 diff --git a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset index ab8e270..dd99703 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a06a0150737402a11bf660ff6848564975da950654eacac7023b3932be2e962f +oid sha256:9add1813503a7727aea65bb55249ea2eae84a47a349f2ee6f011eaddb6a4d592 size 7901 diff --git a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset index e333504..c62ba86 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b25e55f9bfb3181e8f12535b43ce829d3923668bbab3635ec4c321534fd76305 +oid sha256:5b08b4bc9d63293bd4a2b2db4e6a70c6854b309a579d7121fb065ea3d9834051 size 7886 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset index 00df7ae..26e7b21 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:df485df5c559d21b96682f2a381a6a53c9456c5d14b34394e2b5f0e93cbf04b8 +oid sha256:81dae9d6c50131436e01dacd27bacfbeb6186405d9d70c1b2858f51dff158df5 size 8637 diff --git a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset index d60380d..8dfa296 100644 --- a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:69075d0ba49303ed0c25fbbc966abc7b0d2f3fe34d716bf648989e04394da70d +oid sha256:a3ca6de1695fb13f5435977ffa8c8330c16075cc21a2a78fef17d1c1ee0ee7cd size 357901 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset index 8862664..c70868b 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa06702c3b89e8c16522f94292bc69e01ffe11e92d050bdee27341431774fa21 -size 70786 +oid sha256:03f6ce0b402dd3a4cbfb93ca704ff81c1ac782d1a1f34929342c0cf499eecc19 +size 70879 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset index b5e0223..966fd6c 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:90efc297644eae3bb067300cef611efe68e48e25960a259fa482e717d77a35ad -size 28917 +oid sha256:ad6d2595d987f3e4045995aebf9e3f7845ad229beed37308e9d8f4c7c33e1106 +size 29011 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset index 88ae661..8085bdb 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c8f007448f3038bbac6bb70a77d26a4bc8ddccd02a227cedba74d14d901c631a -size 58474 +oid sha256:918cc5acf1447085dab73d989c89ac1423fe1cba599ae566d5524cc26076d1a8 +size 58568 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset index 3ba2425..cdaaede 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bcc36e012cb5428e1568976cdf440be179330e635e09c2ce5b78d3d71dea67a4 -size 17423 +oid sha256:ae968668a57242ffa65b81297f4dcd8e3280111b9f3470e1ebd4fd92eaee4a88 +size 17517 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset index b3fae28..c132640 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a1b2cac653493aec57f1878f81ffe823dea291c2a6ea27e1e78c3fa3aed2359 -size 40517 +oid sha256:6549cec0e7c5cc24781c484d9901c2ceb3c7a9db25e74352ee1d0f8f619c90cf +size 40610 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset index 491e0a6..d9e5552 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0613545632883b4256025b712c35a8c9345c364beeb0089592163a1a84973f69 -size 18677 +oid sha256:ad209b9388a8aed7cea08b267eeab17abec06fbaa392b31378117f7d828fd9c5 +size 18770 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset index 198d125..5e443c4 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6edac9a08e27459933560127a922e504f18b88656e37932699fc18e8920979f6 -size 62653 +oid sha256:516debf8a3076a5cf3fcc8e4ebc2e63d5bc6b290ec9865eb2f47118cea9c7e3f +size 62746 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset index 8639638..8ab670b 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:089a9df31bce521e14f6519539063ac1c5eb73641a73c70189aad9725cd4eefd -size 17448 +oid sha256:69b431dd98f073b4987a3019cb8cc22ba23055663eb986a03be57104b2c2e1f2 +size 17541 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 4341632..68431f1 100644 --- a/Game/GigLine/Content/Test/ReviewMap.umap +++ b/Game/GigLine/Content/Test/ReviewMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0bb3ac4675c0622116d74233da208c1ba97e686e0377e99ef8a77dc49bcbb24 +oid sha256:fd3c39d5ee6ba05ce72d2c32d02fdc25af7ffef7f1351aafba6020a1e5a0f289 size 28811 diff --git a/MEMORY.md b/MEMORY.md index 17e55eb..16d2e96 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -591,3 +591,24 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO. - The kit meshes are spawned at the world origin with their position baked into the mesh (like the frontage exports), so placement uses the bbox directly and must not add the actor location. + +## 2026-11-09 — CRITICAL: blockout must be regenerated with --origin + +- Regenerating the blockout in 0.1.2 (for the 3.1 m storey height) was run **without + `--origin`**, so Blosm centred on the extract instead of fitting the project frame. + The whole frontage shifted about **119 m in X and 2.4 m in Y**, and the hero ended + up outside the 6902/6838 gap — the "verified placement" was undone silently, and + every render still looked like a plausible block. +- Correct invocation (README documents it, and the affine fit prints + `frame correction residual: max 0.0 cm`): + `blosm_blockout.py --osm … --bounds 34.1006,-118.3422,34.1020,-118.3370 + --level-height 3.1 --origin 34.101545,-118.338718 --assets-dir … --out …` +- After re-export + re-import, the frontage spans are back to the verified values: + 6922 −24276..−17700, 6902 −17749..−14591, **hero −14644..−12028 between them**, + theatre −12082..−8210, and the north buildings at −22889..−18442 / −27071..−22799. +- **`ue_import_north_buildings.py` also lacked `import sys`**, so its sys.path line + raised NameError and the import silently did nothing (exit 255). Same trap as the + hero importer: these scripts imported only `unreal`. +- Lesson: after any blockout regeneration, probe the staged buildings' world X spans + and compare them with `Geo/verification/2026-11-06-el-capitan-block.md` before + trusting a render. A shift of this size is invisible in a screenshot. diff --git a/Screenshots/demo/review-demo-crossing.png b/Screenshots/demo/review-demo-crossing.png index 76af3a1..d4d518f 100644 --- a/Screenshots/demo/review-demo-crossing.png +++ b/Screenshots/demo/review-demo-crossing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e38ac20db95e026e2a3031dc4a7044eade0052f21790ce24479e72be0668a6a3 -size 2754407 +oid sha256:b3e6877437bc5b7034da60d51c01c463c8b0fdc3c267b9be847ce8b59a0ef255 +size 2997213 diff --git a/Screenshots/demo/review-demo-north-buildings.png b/Screenshots/demo/review-demo-north-buildings.png index 3748bc7..7900ebd 100644 --- a/Screenshots/demo/review-demo-north-buildings.png +++ b/Screenshots/demo/review-demo-north-buildings.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:632f36c7708e60afa8249341ba8e9c92d27dd486d412af50d91f32394db8d523 -size 2262962 +oid sha256:e7e7c0fda39926c8cbb27ee36e04192ec32014e3b1711a86e1984870701a017c +size 2079681 diff --git a/Screenshots/demo/review-demo-spawn-view.png b/Screenshots/demo/review-demo-spawn-view.png index fdec6f2..8303781 100644 --- a/Screenshots/demo/review-demo-spawn-view.png +++ b/Screenshots/demo/review-demo-spawn-view.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fbc59fa80c5d6769f88bf120246cd1d18d885264cbccb91bd9e98fa6e1d31f87 -size 2773580 +oid sha256:af2b48830aab4593e00f23d8a04a502b183fbd48a7a3e0c0a3cdeea2c3416683 +size 2883301 diff --git a/Screenshots/demo/review-demo-street-level.png b/Screenshots/demo/review-demo-street-level.png index 770b478..ebe6b48 100644 --- a/Screenshots/demo/review-demo-street-level.png +++ b/Screenshots/demo/review-demo-street-level.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4a612caffb70624590152784204d17c0816c6e9dd588b2ea9da60f95cc463830 -size 2676882 +oid sha256:ebb5422d249d2c332339d9971747e29f067f7a5b4be506a4039495da13adb00a +size 2787860 diff --git a/Screenshots/review-character.png b/Screenshots/review-character.png index 838d2c8..bcc673d 100644 --- a/Screenshots/review-character.png +++ b/Screenshots/review-character.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:772930bca1b302578fd771a7d8f5be7da82b5c6566f9efe7344561a148de1635 -size 2536185 +oid sha256:80c0932976ffa2fd3c4ecf60929a0fccb7fd6f5fdfc977cfae2e082eedef3662 +size 2530590 diff --git a/Screenshots/review-ground-contact.png b/Screenshots/review-ground-contact.png index 6cb7bd5..e1daff6 100644 --- a/Screenshots/review-ground-contact.png +++ b/Screenshots/review-ground-contact.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:54c81c33f84515be3c947a3b7d1376eefe9e8d017165487441128d95c258add6 -size 1754197 +oid sha256:4afd2eaeec6a97a34c7649437ce0567324d724d5d04a5da2e0ba73f84eae47d1 +size 1754454 diff --git a/Screenshots/review-hero-facade-front.png b/Screenshots/review-hero-facade-front.png index e03c6e8..4a42281 100644 --- a/Screenshots/review-hero-facade-front.png +++ b/Screenshots/review-hero-facade-front.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:88d440c07d0220e880af430249f1d2eafa3fe780ab7d5367ca1b299761ea9400 -size 2294756 +oid sha256:10b7a138b757c3cef7dae03c8ae2c7c1ec87655b69e4b8bdf559622dd574c4b5 +size 2306751 diff --git a/Screenshots/review-hero-facade-oblique.png b/Screenshots/review-hero-facade-oblique.png index 90665d9..e520bf6 100644 --- a/Screenshots/review-hero-facade-oblique.png +++ b/Screenshots/review-hero-facade-oblique.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dfd3ad70d01a466316a64f34cde6cf7f699b6e9cb7bdaee6e26873c5c912b557 -size 1510048 +oid sha256:d7d6027fd1cf8a1c14c74db69153f9d5b978d005cf4d9072dc306cdc06299120 +size 1514483 diff --git a/Screenshots/review-hero-portals.png b/Screenshots/review-hero-portals.png index 9569846..e8d89aa 100644 --- a/Screenshots/review-hero-portals.png +++ b/Screenshots/review-hero-portals.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:05c63be2a22a2a35bd95c7c7467da67f9556d0ea56395149e860476cdf9f34bd -size 1322804 +oid sha256:2ae079e24960fb2cff61efa72188a801640bea932ef9e0d88a3c490b8de4bcaf +size 1323136 diff --git a/Screenshots/review-npc-prefab.png b/Screenshots/review-npc-prefab.png index 4bb5b3e..1f7f805 100644 --- a/Screenshots/review-npc-prefab.png +++ b/Screenshots/review-npc-prefab.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:732b96208e25edc36f6e52cc0b214540d07fc6484d0d1cc76df438ce99b050fc -size 1735007 +oid sha256:d0555e368b4c800c2bc2880af188f1d6f313d0dd54dc99583bdbf756025b78a6 +size 1737659 diff --git a/Screenshots/review-overview.png b/Screenshots/review-overview.png index e0452d1..d2f4b4a 100644 --- a/Screenshots/review-overview.png +++ b/Screenshots/review-overview.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:67bb53592ca9e3bfaae5b5feb4d772fdbc474ed3bedd78b81cb999a44aa4a839 -size 2488342 +oid sha256:01a797c5875f6b9cdb6a21d684063fee21f83255f4bc5136df0a110d0862896d +size 2571295 diff --git a/Screenshots/review-player-placement.png b/Screenshots/review-player-placement.png index 00dc1af..2d84235 100644 --- a/Screenshots/review-player-placement.png +++ b/Screenshots/review-player-placement.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c01fcc7ee234597c8451154ebe9b91bf5aa0720d963b1ee5694835aa5133ad2 -size 2030579 +oid sha256:a0ececa978f34d1be3d92924a92a87378eb81d6cfb7a1cca9089154c5f3072c4 +size 2022640 diff --git a/Screenshots/review-scale-cubes.png b/Screenshots/review-scale-cubes.png index 9e1bc57..56e4772 100644 --- a/Screenshots/review-scale-cubes.png +++ b/Screenshots/review-scale-cubes.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:945099a7cf7a5f185ab445fdb0c6906353fa3789ec7eb4f8d573632b3c965d18 -size 1935381 +oid sha256:b14730cd7371d8580b385719d5465f71d1108350b85bb03774c2dc2dcf3a69fb +size 1941562 diff --git a/Screenshots/review-shadow-compare.png b/Screenshots/review-shadow-compare.png index 161d09f..a089e80 100644 --- a/Screenshots/review-shadow-compare.png +++ b/Screenshots/review-shadow-compare.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99b64891c9b211d9990bfbf39b10f3df73ca3be324461550184d9ee4dec5db17 -size 1711185 +oid sha256:3a89c068cab13677e917c003714933cf898df4f86efcb04fa099f1067c484616 +size 1716760 diff --git a/TODO.md b/TODO.md index e22ff48..44c535c 100644 --- a/TODO.md +++ b/TODO.md @@ -18,7 +18,7 @@ Suggested blender skills: **procedural-modeling** + **geometry-nodes** (the faç - [ ] **Finish the Blosm blockout cleaning/detailing (moved from the deferred `0.1.0` item).** Import state: `Art/blender/blockout/blockout-2026-11-06.blend` (86 meshes, EPSG:26911, 0.0 cm affine residual) with cleaning tooling in `Geo/tools/` and `Art/blender/blockout/blosm_blockout.py`. To do here: (a) untextured roofs/facades → **Replace placeholder materials** below; (b) Blosm `setupScript` façade styles → **Give OSM buildings a façade style** below; (c) the 3 of 15 buildings lacking height data are the `0.1.2` placeholder-heights item. - [x] **Define the façade module.** **Done 2026-11-09.** `Tools/facade_kit_build.py` builds the kit at the measured **4.96 m bay**: pilaster, sill, lintel, window bay (surround + inset glazing), shopfront bay (piers, glass, fascia), door bay (jambs, door, threshold), cornice and parapet + coping — 16 meshes, each exported through the shared `ue_metric_v1` preset with a JSON part report recording dims and evidence. `Tools/ue_import_facade_kit.py` imports to `/Game/Hollywood/Kit`. `Tools/ue_apply_facade_kit.py` assembles it from each building's own bounding box: **638 pieces placed across the six frontage buildings and both north buildings** (6922 = 13 bays × 11 storeys, theatre 8 × 5, TCL and Tussaud's 9 × 4, etc.). First pass put the window bays inside the solid wall (invisible) — the kit now projects the surround 3 cm proud with glazing 6 cm behind it. - [A] **Replace placeholder materials.** **In progress 2026-11-09.** `ensure_material()` now builds masonry coursing (world-space course height + joint band + tint, corrected for UE's centimetre WorldPosition) and roughness variation; new `M_FacadeStoneShadow`, `M_FacadeGlass` (specular 0.62 ≈ IOR 1.5 without a refraction pass) and `M_FacadeBanner`; assignment is per **slot** keyed on the imported slot name (it was slot-0 only, which on the hero is the banner, so stone/glass/shadow were still flat). Hero: 4/4 slots, frontage and north buildings 2/2. Remaining: bake real texture maps (brick/stone/asphalt generators) rather than graph-only detail, and give the frontage shopfront line its own material. -- [ ] **Give OSM buildings a façade style.** Blosm exposes `scene.blosm.setupScript` (`setup/neoclassical.py` is the example) so a building can carry a real elevation instead of a plain extrusion. Build one style script for the south frontage and one for the north. +- [x] **Give OSM buildings a façade style.** **Closed as superseded 2026-11-09.** The Blosm `setupScript` route would build a second, competing façade system next to the module kit defined in the previous task. The kit already gives every staged building a real elevation (shopfront line, window rhythm, pilasters, cornice, parapet) from a single module, so a Blosm style script would duplicate it with a different vocabulary and a different set of assumptions. Revisit only if the kit cannot express a building the photographs demand. - [ ] **Hero façade detail pass.** Ionic capitals and fluting, the parapet motto band and medallions as geometry or decal, window rhythm behind the colonnade, and the three portal flights at their photographed proportions. - [ ] **El Capitan Theatre (6838) and the retail neighbours.** Model from the 18-frame 5472×3648 reference set; the theatre shares the measured 4.96 m bay rhythm with the temple. - [ ] Review every façade change with `Tools/render_screenshots.sh` before tagging. diff --git a/Tools/ue_apply_facade_kit.py b/Tools/ue_apply_facade_kit.py index b33f1e3..04e6ae7 100644 --- a/Tools/ue_apply_facade_kit.py +++ b/Tools/ue_apply_facade_kit.py @@ -92,9 +92,14 @@ def apply_to_actor(actor, kit, materials=None, prefix=None): # label and the outliner (and any label-based lookup) becomes ambiguous. slug = actor.get_actor_label().replace("Frontage_SM_", "").replace("North_", "").lower() prefix = prefix or f"Kit_{slug}_" - mn, mx = _bounds(comp.static_mesh) - # The frontage meshes are spawned at the world origin and carry their position - # in the mesh, so the bounding box IS world space (actor location is 0,0,0). + # WORLD-space bounds. The imported meshes carry a building-line-local offset in + # their own vertices and the demo builder then positions the actor, so the + # asset's bounding box is NOT world space: using it put every kit piece about + # 12 km east of its building, floating in empty ground where nothing could see + # it. get_actor_bounds() includes the actor transform. + origin_w, extent_w = actor.get_actor_bounds(False) + mn = unreal.Vector(origin_w.x - extent_w.x, origin_w.y - extent_w.y, origin_w.z - extent_w.z) + mx = unreal.Vector(origin_w.x + extent_w.x, origin_w.y + extent_w.y, origin_w.z + extent_w.z) origin = unreal.Vector(0.0, 0.0, 0.0) width = mx.x - mn.x height = mx.z - mn.z diff --git a/Tools/ue_import_north_buildings.py b/Tools/ue_import_north_buildings.py index ee5b820..f65999a 100644 --- a/Tools/ue_import_north_buildings.py +++ b/Tools/ue_import_north_buildings.py @@ -12,6 +12,7 @@ # -script=/Tools/ue_import_north_buildings.py -nullrhi -unattended -nopause -stdout import os +import sys import unreal