T99_Translation_AssetGen.md

assets/T99_Translation_AssetGen.md

T99 Translation Doc — Local 3D Asset Generation [2026-07-15]

Status: ACTIVE v1.0 (flipped 2026-07-15 through the proper gate this time — critic verdict PASS-WITH-FIXES with all fixes landed, then the contracts-corrections pass: the §0 flip condition). First authored pass (relabeled DRAFT mid-review 2026-07-15 — an earlier self-label of

"ACTIVE v1.0" predated the fresh-context critic gate every Translation Doc passes before a

DRAFT→ACTIVE flip; the 2026-07-15 critic pass returned PASS-WITH-FIXES, and the flip rides the

corrections pass like its siblings). Authority, per Contracts §0 and identical to every sibling:

subordinate to the CVD on world canon; subordinate to T1_Build_Pipeline_Contracts §2 on FK

mapping, required columns, and state-machine behavior; subordinate to T1_Region_Page_Template

on the page-side inputs it consumes (§6's T8 Section 3/4/5 reads); owns the platform-specific

inference layer where §2 is silent. This is the runtime translation

layer for the pipeline slot T1_Build_Pipeline_Contracts [ACTIVE v1.0].md §2.12 names

"T99\_Translation\_Meshy." Meshy is retired as the generation backend; this doc replaces it. Every

schema commitment §2 makes to consumers — the 7-category taxonomy, mesh_tags, the state machine,

the §2.8 cultural discipline — carries forward unchanged; what changes is the *how*: a local,

mostly-open-weight model stack on the 5090 workstation, split by task rather than routed to one SaaS

vendor. Derivation-only from the sources below; no web research performed writing this doc. Out of

scope: voice (Slot 6), terrain/world-model (Slots 1-2), the editor/runtime/OCR slots (4/5/7) — each

gets its own Translation Doc.

Sources, cited inline as [SRC: shortname §n]:

out of scope) · ADVERSARIAL_ADJUDICATION = docs/pipeline_review/ADVERSARIAL_ADJUDICATION.md

Meshy Pipeline Contract) — the contract layer this doc translates, not itself edited here.

---

1. Scope and ruled constraints

Where §2 says "Meshy" or "the Meshy build agent," read "the local generation backend named per

category in §2 below" and "the local orchestration agent." The read-canon / write-mesh_id_ref

contract is unchanged — generated assets still never flow into Drive canon as content, they live in a

build asset store and T0 registries carry a pointer [SRC: T1_BPC §2.1]. mesh_id_ref re-keys from

"the Meshy-side asset identifier plus build-store file path" [SRC: T1_BPC §2.6] to a local-only

build-asset-store path — no vendor-side identifier exists anymore.

Four constraints are ruled, not open, and every section below inherits them:

never constrains where the game ships or who owns it, so the pipeline *defaults* to

commercially-unrestricted (MIT-class) components — no tool's terms have any claim on the game

anywhere [SRC: RESEARCHED_STACK "JOSH-RULED"; ALTERNATIVES_MATRIX "Fixed constraints"]. A

component carrying a MAU cap, territory exclusion, revenue ceiling, or non-commercial clause is

disqualified from the *shipped* path by construction, independent of quality.

never load-bearing in the shipped path unless terms clear `[SRC: RESEARCHED_STACK "JOSH-RULED";

ALTERNATIVES_MATRIX "Fixed constraints"]`. Instances routed accordingly: Hunyuan3D-2.1 (1M-MAU cap,

EU/UK/South-Korea-excluded) [SRC: LOCAL_3D_ASSET_GEN §1.2]; CHORD (Research-Only Copyleft)

[SRC: Q3_REFRESH §1.2]; the NeoStack Meshy/Tripo passthrough (closed SaaS)

[SRC: Q3_REFRESH §2.3].

object-scale data with no urban/structural grounding and no accuracy guarantee — a hallucinated

guess at a real temple's structure risks getting living cultural heritage wrong in a way

hand-modeled or photogrammetry-referenced work would not `[SRC: LOCAL_3D_ASSET_GEN §3.4;

ALTERNATIVES_MATRIX "Fixed constraints"]`. Quality argument and care argument together; the routing

below (§2, §6) is the recommended operationalization, not a canon ruling in itself.

MetaHuman is fully rigged, blend-shaped, animation-ready [SRC: LOCAL_3D_ASSET_GEN §3.3]. This

supersedes T1_BPC §2.2's NPC text, which had Meshy generating named-NPC meshes directly plus

background-population archetype meshes for UE5's procedural-variation system — both roles now move

to MetaHuman (§2). Epic sunsets the browser MetaHuman Creator on a staged 2026 timeline (UE 4.27-5.1

dropped April 5; UE 5.2-5.4 drops June 5; full shutdown November 5, 90-day retrieval window after) —

route all MetaHuman work through the in-engine creator, native since UE 5.6

[SRC: LOCAL_3D_ASSET_GEN §3.3].

---

2. Category routing table

T1_BPC §2.2 names seven categories. Ruled local backend per category, per the correction pass's Slot

3 analysis:

Category (T1_BPC §2.2)Ruled geometry backendTexture / finishing note
Weapons (72 canonical + regional/legendary variants)TRELLIS.2 (MIT); Hi3DGen (MIT) fallback for blade/mechanical silhouettesTexture leg → §3. Best fit of any category — object-scale, single-item input these models trained on; hand-finish every asset regardless of source, 72 is small enough to afford it [SRC: LOCAL_3D_ASSET_GEN §3.1].
Creatures (T0_Creature_Roster)TRELLIS.2 (MIT); Hi3DGen (MIT) fallbackTexture leg → §3. Rigging is unsolved by any in-scope generator — route through Tripo's universal rig via the owned NeoStack Cloud allowance, the one sanctioned paid gap-filler [SRC: LOCAL_3D_ASSET_GEN §3.2; Q3_REFRESH §2.3; ALTERNATIVES_MATRIX Slot 3].
Familiars (33 species / 22 player slots / 12 Father-bonded) [SRC: T1_BPC §2.2]Inherits Creatures tooling, smaller/more stylized scaleSame as Creatures — a Creature-pipeline subset, not separately researched [SRC: LOCAL_3D_ASSET_GEN §3.7].
NPCs (named + background)MetaHuman-first: in-engine creator (named), MetaHuman Crowd (background, Experimental / UE5.8 cycle)No texture leg — MetaHuman's own pipeline. Generation reserved for the MetaHuman-non-fitting residual: stylized non-photoreal NPCs, creature-morphology companions; carried gear/props route through Weapons [SRC: LOCAL_3D_ASSET_GEN §3.3].
Vril Sites (pyramids, obelisks, tombs, orbs)TRELLIS.2 + Hunyuan3D-2.1 (previz-only, constraint 2)Texture leg → §3. Best-case category alongside Weapons — no real-world-accuracy constraint, hallucination-tendency is a feature [SRC: LOCAL_3D_ASSET_GEN §3.5]. Waterfalls stay excluded — terrain, via Cesium-Gaea-SRTM [SRC: T1_BPC §2.2].
Architectural Features (real per-region per-era)Reference-built / photogrammetry-grounded / licensed-kit by defaultNo automated texture leg for shipped assets. Generation only for blockout/massing on real structures (never the shipped asset) or for fantastical structures with no real-world attribution [SRC: LOCAL_3D_ASSET_GEN §3.4] — second case is this doc's synthesis; Vril Sites is the primary fantastical-structure home.
Special Asset Class (Vimana, Architect constructs, Cassius Ch76 phases, Boss_Encounter)Case-by-case: inherits its closest analog (Weapons/props or Creatures)Texture leg → §3 where geometry-generated. Too undefined for one rule — resolve per-asset at build time [SRC: LOCAL_3D_ASSET_GEN §3.7].

The materialized-argument boss class — asset look. ✅ RULED (D-MATARG-LOOK, Josh 2026-07-21):

the Special Asset Class materialized-argument bosses (for example the Polo's-theft construct, the

Tombo-Holes proverb-constructs, the Certification-Shadow) share one visual grammar —

inscription-made-flesh: arguments built from script, ledger, and mark made physical. Over that

shared grammar each boss wears a per-boss regional condemned-register skin, and all of them carry

the shared hollow-core tell. Per-boss looks stay creative freedom within the grammar. The §6 / CVD

§17.1 bound holds: a construct never wears a culture's sacred beings — the condemned-register skin

draws on judgment, ledger, and mark imagery, never a tradition's revered figures. Feeds

mesh_tags prompt composition (§4.1) at Special Asset Class scope; per-boss asset_concept slots

resolve at build time per §2's case-by-case rule.

The NeoStack interim. NeoStack's Studio tab routes 3D generation to Meshy and Tripo — both

closed SaaS, neither NeoStack-owned [SRC: Q3_REFRESH §2.1]. It is the sanctioned interim for every

row above while the local stack stands up and benchmarks (§5), staying previz/reference-tier under

constraint 1 — no overlap with TRELLIS.2/Hunyuan3D-2.1/Hi3DGen in vendor, license, or output path

[SRC: Q3_REFRESH §2.3]. One capability is promoted past interim-only: Tripo's rigging

(humanoid-to-creature range) is the one sanctioned *paid* gap-filler for Creatures/Familiars rigging,

reached via the already-owned NeoStack Cloud allowance rather than a separate subscription

[SRC: LOCAL_3D_ASSET_GEN §3.2; Q3_REFRESH §2.3, §2.6; ALTERNATIVES_MATRIX Slot 3]. License tail,

carried per this doc's own discipline: a shipped creature keeps its rig, so this ruled exception

places a closed-SaaS output in the shipped path whose commercial terms the source corpus never

independently verified (Q3_REFRESH §2.6: NeoStack gen "inherits Meshy's and Tripo's own commercial

terms") — read Tripo's shipped-output license at first use, same class of settle-item as the AIVA

API terms (§5).

---

3. The PBR-texture hole, stated honestly

No automated, commercially-clean, open text/image-to-textured-PBR path exists today. Every

"texture leg → §3" pointer in §2 resolves to an unsolved problem — this is the single most important

operational fact in this document `[SRC: ADVERSARIAL_ADJUDICATION Docket 4(i); RESEARCHED_STACK

"ADJUDICATED + MATRIXED"]`. Why each candidate is disqualified:

for third parties ("may be used or intended for use non-commercially," quoted directly from the

dependency license); GitHub issue #22 against the maintainers remains open, no response. Pixal3D

(SIGGRAPH 2026) looked like an escape — its own LICENSE is clean MIT — but its install chain

requires TRELLIS.2 as a hard prerequisite and pulls in the same nvdiffrast/nvdiffrec dependency;

assume its textured output inherits the same trap until re-verified at benchmark time

[SRC: Q3_REFRESH §1.2 (Pixal3D); LOCAL_3D_ASSET_GEN §1.1 (the TRELLIS.2/nvdiffrast base facts)].

the EU/UK/South Korea [SRC: LOCAL_3D_ASSET_GEN §1.2] — disqualified by constraint 2 regardless of

quality. CHORD (Ubisoft La Forge, shipped Dec 2025, real code+weights) carries the "Ubisoft

Machine Learning License (Research-Only — Copyleft)," explicitly non-commercial

[SRC: Q3_REFRESH §1.2].

proven possible by a community fork (kg-git-dev/trellis-refactored), but that fork is

archived/inactive since November 2025, a course-project artifact with no forward maintenance

[SRC: LOCAL_3D_ASSET_GEN §1.1].

Three paths forward, none automated-and-clean today: (a) the renderer-swap engineering spike —

properly maintain a PyTorch3D-swapped fork rather than the archived proof-of-concept; the recommended

bet, mechanically straightforward, stays inside the local/automated shape

[SRC: LOCAL_3D_ASSET_GEN §1.1; ALTERNATIVES_MATRIX Slot 3]. (b) manual/ArmorLab texturing —

open-source, local, permissive, part of Armory3D [SRC: LOCAL_3D_ASSET_GEN §3.6] — clean by

construction but silently converts an assumed-automated stage into a manual one

[SRC: ADVERSARIAL_ADJUDICATION Docket 4(i)]. (c) the passthrough interim — NeoStack or

Hunyuan3D-2.1 direct, for previz/reference only, never promoted into the shipped path

[SRC: Q3_REFRESH §2.3].

The choice among (a)/(b)/(c), and how much engineering time (a) is worth before falling back to (b),

is Josh's trade to rule, not a default this doc sets `[SRC: RESEARCHED_STACK "ADJUDICATED +

MATRIXED"]`. STACK_FACTS_QUESTIONS.md Q3's landed ruling frames the call: licensing never constrains

shipping, the pipeline defaults to unrestricted components, territory-capped tools land in the

shipped path "only if their terms someday clear" [SRC: STACK_FACTS_QUESTIONS Q3]. §5 is what

resolves it empirically.

---

4. Pipeline mechanics

4.1 mesh_tags and mesh_id_ref — unchanged, vendor-agnostic

mesh_tags is the orchestration agent's primary prompt-composition input; the backend switch doesn't

change its shape [SRC: T1_BPC §2.5]. Five sub-fields, unchanged: morphology (shape descriptor —

bipedal/quadrupedal/serpentine/chimeric for creatures, blade/polearm/ranged/ritual for weapons, etc.),

region (T0_Region_Index region_id), style (realistic-ethnographic / mythologically-stylized /

weathered-ancient / ceremonial — ties to §6), material (bronze/iron/obsidian/ceremonial-gold/stone/

hardwood/linen/ochre etc.), era (T0_Chapter_Index era field) [SRC: T1_BPC §2.5]. The six required

Meshy-source columns (mesh_id_ref, mesh_tags, generation_status, generation_prompt_hash,

last_generated_timestamp, regeneration_trigger) carry forward unchanged in count and meaning

[SRC: T1_BPC §2.6]; only mesh_id_ref's pointer target re-keys per §1.

Generation sequencing stays two parallel tracks: a canonical-entity track (72 weapon base meshes, 33

familiar species, the nine Component 11 vril-site anchors) generating once at canon scope, and a

region-driven track batching per-region assets when a T8 region page reaches Build-Ready status

[SRC: T1_BPC §2.4] — now doubling as VRAM-contention scheduling (§4.2): batching by region bounds

concurrent local-model load instead of flooding the workstation with full canon scope at once.

4.2 Generation state machine — re-keyed for local inference

The five-state enum locks unchanged: pending, in_progress, complete, rejected,

regeneration_required, as do the five regeneration triggers (canon change, mesh_tags change,

manual request, quality-rejection cascade, schema migration) and hash-based detection via

generation_prompt_hash [SRC: T1_BPC §2.7]. What changes: §2.4's "service account credentials live

in build pipeline configuration" clause no longer applies to the shipped-asset leg at all

[SRC: T1_BPC §2.4] — the local backend authenticates to nothing, it loads weights into workstation

VRAM. (The NeoStack passthrough interim still carries its own credential surface, but that path is

previz-only, never this state machine's shipped-asset leg.)

Three local-inference failure modes now populate the in_progress transition, re-keying "no API

credential; failure modes = OOM/quality-reject/retry":

[SRC: LOCAL_3D_ASSET_GEN §1.1-1.2]. The 5090's 32GB clears both floors but headroom shrinks fast

under concurrent load (a ComfyUI queue, a texture pass, an orchestrating agent sharing the card)

[SRC: LOCAL_3D_ASSET_GEN §1.1]. Not terminal — an automatic requeue at reduced resolution/batch or

resequenced behind other VRAM-holding work, returning to pending unless a bounded retry budget is

exhausted.

unacceptable; no auto-regeneration, manual intervention or a refined prompt required.

genuine quality rejection — retried automatically up to a bounded attempt count before falling to

rejected, mirroring the existing quality-rejection cascade.

4.3 Generation to game-ready — the finishing pipeline

No released, open AI system automates retopology + UV unwrapping + LODs + collision end-to-end today.

The clearest field statement is a 2025 research paper ("Hunyuan3D Studio") whose own proposed pipeline

— geometry gen, part decomposition, PolyGen retopology, SeamGPT UV seams, PBR synthesis, rigging — has

no released code or weights [SRC: LOCAL_3D_ASSET_GEN §2.1]. Two SIGGRAPH-2026 candidates touch

pieces of it — SimArt does part-decomposition but targets robotics URDF, not UE rigging; SATO does

artist-style retopology+UV natively but its own repo says the code is "being prepared for public

release" — both worth a later bench-day look, neither actionable today [SRC: Q3_REFRESH §1.2, §1.4].

The finishing stage stays Blender-headless-scripted with human QC [SRC: LOCAL_3D_ASSET_GEN §2.2]:

blender.exe --background --python <script> drives retopology (Decimate/remesh), UV unwrapping,

texture baking, export; LOD chains export via Decimate at stepped ratios under UE's auto-detected

_LOD0/_LOD1/... suffix convention; collision hulls generate via Blender's convex-hull tooling.

The Decimate target now reads the steam_deck_minimum column of the T1_BPC §1.7 per-category-by-

spec-class budget table — the ship-viability floor authored by D-POLY-BUDGETS: the skinned

non-Nanite classes (Creatures, Familiars) decimate to that column's LOD0 triangle budget; the static

Nanite classes (Weapons, Vril Sites, Architectural Features) carry no triangle cap and are

memory-governed; collision stays simple convex/capsule/box regardless. Every §1.7 number is

ILLUSTRATIVE-until-5090-benchmark, so the target re-reads §1.7 when a benchmarked value supersedes

the illustrative one [SRC: T1_BPC §1.7].

MeshAnything (MIT, ~1600-face cap) is worth prototyping as an automated pre-pass on props/hero

objects; Quadify (Blender add-on + a UE5 mesh-conditioning plugin) and the Blender MCP server are the

concrete candidates for wiring this into an agent-callable sequence. **Seam ownership (added at the

2026-07-15 critic pass):** THIS doc owns the final FBX→UE import leg — the mesh analog of the Audio

doc's SoundFactory step — via the documented batch path unreal.AssetImportTask +

unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([...]) (filename /

destination_path / replace_existing / automated / save), populating mesh_id_ref back onto

the owning registry row on success [SRC: UE_BUILD_AUTOMATION §4.2 asset-import class roster];

UE5_Build continues to treat mesh_id_ref as an opaque FK from its side. UE 5.8 Nanite reduces, not

eliminates, manual-LOD work for static geometry (props, architecture, vril sites) but does not help

UV/collision/retopology on skinned or gameplay-interactive meshes (creatures, NPCs, familiars)

[SRC: LOCAL_3D_ASSET_GEN §2.2].

4.4 Collision and LOD budgets per category

Numeric target_polycount/LOD-count budgets are an explicit open item, not locked here: T1_BPC §2.11

defers them to the UE5 Pipeline Contract's performance budget (§1.7), which now carries an

ILLUSTRATIVE-until-5090-benchmark per-category-by-spec-class structure — the steam_deck_minimum

floor the §4.3 Decimate target reads — with the benchmarked numbers still deferred to the 5090

benchmark day and Phase 6 region-page surfacing [SRC: T1_BPC §2.11, §1.7]. This doc invents no

numbers ahead of that benchmarked lock —

fixed today is the mechanism (§4.3) and the qualitative shape per category: Weapons — small

hand-held props, simple convex collision, short LOD chain, hand-finished regardless

[SRC: LOCAL_3D_ASSET_GEN §3.1]. Creatures/Familiars — skinned, deforming, gameplay-interactive;

full manual LOD chain plus capsule/convex collision matched to the skeleton, Nanite doesn't apply

[SRC: LOCAL_3D_ASSET_GEN §2.2, §3.2]. NPCs — MetaHuman-native LOD/collision, not this pipeline's

concern in the MetaHuman-first case [SRC: LOCAL_3D_ASSET_GEN §3.3]. **Vril Sites/Architectural

Features** — predominantly static; Nanite-candidate geometry, simpler convex/box collision per

structural component [SRC: LOCAL_3D_ASSET_GEN §2.2]. Special Asset Class — inherits whichever

bucket its closest analog falls into, per §2 [SRC: LOCAL_3D_ASSET_GEN §3.7].

---

5. The benchmark protocol — the 5090-day gate

§2's routing table and §3's texture-leg options are a desk-research default to start benchmarking

from, not a final answer — licenses and releases can shift before hardware arrives

[SRC: LOCAL_3D_ASSET_GEN §5.1]. This is the concrete gate to run the day the 5090 lands, expanded

once by the Q3 refresh.

Pre-flight (before any GPU time): re-check licenses/releases first, cheap and GPU-free — re-fetch

microsoft/TRELLIS.2 issue #22, Tencent-Hunyuan/Hunyuan3D-2.1 issue #111, and check whether

Hunyuan3D 2.5/3.x, a maintained TRELLIS.2-PyTorch3D fork, or a new clean release has shipped open

weights since 2026-07-15 [SRC: LOCAL_3D_ASSET_GEN §5.2 step 1].

Fixed test set (minimum 2 assets/class): 2 hero weapons (organic-curve + hard-surface/mechanical),

2 creatures (quadruped + non-standard anatomy), 1 vril-site structure, 1 real-world architecture test

— specifically to confirm the never-raw-generate-real-architecture call, not to greenlight it —

and 2 texture-only tests (material-from-photo + text-to-material) `[SRC: LOCAL_3D_ASSET_GEN §5.2

step 2]`.

Model roster: TRELLIS.2, Hunyuan3D-2.1, Hi3DGen at minimum, TripoSG as the no-asterisks license

baseline, SF3D/SPAR3D if sub-second blockout speed matters [SRC: LOCAL_3D_ASSET_GEN §5.2 step 3].

The Q3 refresh adds Pixal3D (instrument, don't just read the NOTICE file, whether output routes

through nvdiffrec at runtime) and Direct3D-S2 (a possible nvdiffrast-free geometry-stage

alternative) [SRC: Q3_REFRESH §1.4]. Keep CHORD off the roster — Research-Only Copyleft

disqualifies it regardless of result, previz/reference tool only. SimArt and SATO are not folded

in — they answer the game-readiness/retopology gap (§4.3), a different sub-problem, with their own

later evaluation [SRC: Q3_REFRESH §1.4].

Metrics: wall-clock generation time on the actual 5090 (not this doc's H100/4090 numbers); peak

VRAM observed; raw topology quality (1-5, plus minutes of manual retopology to game-ready); UV quality

out of the box; PBR channel accuracy against reference; and — decisive — whether the license actually

clears for the specific asset's commercial use, re-running the MAU/revenue math projected forward, not

just at day one [SRC: LOCAL_3D_ASSET_GEN §5.2 step 4].

The decision rule: output is a per-category default (may land on §2's table or not — that's the

point of gating empirically) plus a measured "time to game-ready" number that feeds real production

scheduling [SRC: LOCAL_3D_ASSET_GEN §5.2 step 5]. For the texture leg (§3) specifically: a

maintained PyTorch3D-swap fork clearing at measured quality collapses the recommendation to

"TRELLIS.2 end-to-end"; Microsoft patching nvdiffrast/nvdiffrec, or Tencent opening Hunyuan3D-2.5

under an unrestricted license, does the same from the other direction; a benchmark showing

Blender-headless-plus-ArmorLab is fast enough at 72-weapon/132-creature volume makes the renderer-swap

spike unnecessary and (b) becomes the standing answer `[SRC: ALTERNATIVES_MATRIX Slot 3 "WHAT FLIPS

IT"]`.

---

6. Cultural discipline

T1_BPC §2.8 binds all generation involving culturally-substantiated content to CVD §6's cultural

depiction standard. Every hard rule carries forward verbatim in spirit — vendor-agnostic, same

substrate sources, same enforcement point (mesh_tags.style records the selected style for downstream

audit) [SRC: T1_BPC §2.8]: folklore creatures depict per-region tradition substrate, never a generic

fantasy archetype (pulled from T8 region page Section 5 spiritual traditions + Section 3 fauna

folklore-attribution); NPC appearance depicts ethnographic substrate per T8 Section 4 — no

stereotype shortcuts, whether from MetaHuman or (the non-fitting residual in §2) a generative model;

dress/adornment depicts per-region/era/role substrate; sacred architecture depicts per-region/era

form, no compositing across unrelated traditions; weapons depicting non-fictional historical forms

stay accurate per CVD §17 hard lines; style-parameter selection respects substrate

(realistic-ethnographic for historical, mythologically-stylized where tradition supports it); the

pre-build cultural authenticity audit still runs on high-care batches before mesh_id_ref locks to

complete.

The photogrammetry-costume rule strengthens directly out of this correction pass and binds the

Architecture row's reference-built discipline (§2): a real capture of a real place (Josh's own travel

photography, licensed stock, tourist photos, drone footage) is the care-safe input to

photogrammetry/reference-modeling — but running *AI-generated* video or imagery of a real

sacred/cultural site through a reconstruction pipeline produces an asset "wearing photogrammetry's

credibility as a costume," carrying every visual trust signal of a survey and none of the ground

truth. Generated input never substitutes for a genuine capture on real-cultural architecture, full

stop [SRC: ADVERSARIAL_ADJUDICATION Docket 3].

The capture-rights gate is a second addition this pass opens and the underlying research left

unclosed: "real capture" is necessary for the architecture discipline above, not sufficient.

Photogrammetry built from someone else's photos carries image-copyright and site-access/consent

questions independent of factual accuracy — some heritage sites and museums prohibit commercial 3D

capture outright, and crowd-sourced tourist photos are third-party copyrighted material. Before any

reference-photogrammetry input reaches modeling, it needs a per-site capture-rights check —

provenance and permission, not just realness — parallel to the use_class discipline already

governing the book-processing substrate lane `[SRC: ADVERSARIAL_ADJUDICATION Docket 3;

RESEARCHED_STACK "ADJUDICATED + MATRIXED"]`.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root