RESEARCHED_STACK.md

pipelines/RESEARCHED_STACK.md

The researched stack — five briefs consolidated [2026-07-15]

The web-research fan-out's synthesis (five cited briefs in tech_research/; every version claim

live-verified, VERIFIED-vs-INFERRED tagged in each brief). This is the ground truth Phase D

writes the Translation Docs against, and it answers the mission's three acceptance chains as far

as research reaches. The residual set is triaged at the bottom: JOSH-RULES / BENCHMARK-DAY /

ENGINEERING-SPIKE.

Chain 2 answered · the world chain (geodata → alter → generate/populate → assets)

1. Download: Copernicus GLO-30 DEM (primary; NASADEM fallback, ALOS cross-check) per region

bounding box via ONE OpenTopography REST endpoint → GeoTIFF. Free, commercial-clean,

worldwide (USGS 3DEP is US-only — irrelevant to our 69 regions). Landcover: ESA WorldCover

10m (11 classes).

2. Preprocess/ALTER (the scriptable leg): GDAL/rasterio — reproject, resample to the

region's meters-per-vertex (the ONE scale-compression parameter, per-region design decision),

carve/composite our fantasy sites into the real terrain, emit 16-bit heightmaps sized to UE's

8,129-vertex-per-actor cap (World Partition tiles beyond it). 30m source detail does NOT

upscale — fine detail is synthesized, not resampled.

3. Detail synthesis: Gaea (Indie $99) is the real value in the middle — erosion/river detail

a 30m DEM can't carry. Open: Gaea CLI-automation tier + 3.0 status; UE 5.8's NEW native Mesh

Terrain system is the emerging alternative in this slot. Cesium = reference/preview only

(tile→editable-Landscape baking is explicitly unsupported); it is NOT an authoring leg.

4. Import: UE Python landscape_import_heightmap_from_render_target + weightmaps — with ONE

caveat: stock Python has NO direct Landscape-import path at full fidelity; a small C++ shim

wrapping ALandscape::Import() is the documented workaround (budget as real engineering).

5. Populate: ESA WorldCover classes → landscape material-layer weightmaps → **PCG Biome

Core** (official, engine-bundled) reads layer weights and spawns biomes; encounters/props

spawn from our registries via PCG's first-class DataTable ingestion.

6. Assets/art/architecture: split-by-task local gen — TRELLIS.2 (MIT) geometry;

the PBR texture leg needs a commercially-clean route (TRELLIS's bake path runs through

NVIDIA non-commercial components; Hunyuan3D-2.1 is production-grade but 1M-MAU-capped and

EU/UK/KR-excluded — Josh rules the territory question); Hi3DGen (MIT) geometry fallback;

NPCs stay MetaHuman-first; real cultural architecture is never raw-generated (§17.1);

retopo/LOD/UV = headless Blender scripting + human QC (no mature open AI solution).

"The NVIDIA open-world generator" does not exist as a product: NVIDIA's shipped local piece

is TRELLIS-based OBJECT generation; the world-gen-shaped products are non-NVIDIA (Overworld,

demoed GTC 2026 — evaluate when public).

Chain 3 answered · the UE 5.8 chain (schema/canon → engine, step by step)

UE 5.8 CONFIRMED current and terminal for UE5 (shipped 2026-06-17; UE6 EA ~late 2027). The

deterministic spine is real: embedded Python 3.11.8, headless commandlets, RunUAT BuildCookRun,

Horde CI — a no-clicks pipeline exists end to end. The full step-by-step chain (artifact → format

→ API per step) is tech_research/UE_BUILD_AUTOMATION.md §9; the load-bearing points:

per Epic bug UE-152346), then fully CSV/JSON-scriptable, zero GUI. Our CSVs land natively.

mechanism for registry rows becoming populated zones. Epic's first-party MCP plugin

(Experimental, names Claude directly) includes a PCG toolset — the assistive seam.

work, with UE-native Python/Remote-Control for bulk/repeatable steps and Epic's first-party

MCP as it matures. 5.8 support UNVERIFIED from public sources (the Discord quote named the

Steam/EOS kit, not NeoStack — adjudicated 2026-07-15); Josh's own hands-on stands as the

operative datapoint and the first-use install spike settles it. The bundled gen = a

Meshy+Tripo cloud passthrough + ElevenLabs voice (complements local gen).

THE RULED PRINCIPLE: Claude Code drives NeoStack with every action (code, Blueprints, PCG,

LLM-placed generation) matched to OUR SCHEMA — the v3 graph + region pages + registries are

the input contract, never freehand. Fallback: chongdashu/unreal-mcp (OSS).

auto-rig/texture round-trips Epic's CLOUD per character; hundreds-of-NPCs throughput is

undocumented (spike it).

documented CLI — our §13 scene rows drive it.

save reference) — the ws.* subsystem is an ORIGINAL engineering build (designed in the brief,

needs a validation spike). Likewise boss phase→beat maps → real fight AI = original build.

no longer UE-only. The EULA's generative-AI clause restricts Epic content as TRAINING data,

not AI-driven authoring — get the legal read before locking architecture.

Chain 1 status · the noise gate (book → relevant chunks only)

Answered at the design level in GAP_MAP (staging curation → per-source triage → the hard

canon/substrate separation → real retrieval filters, now enforced); the remaining build items are

Phase E execution: OCR install, the local-7B/3B relevance triage for the 438 journal dumps, the

per-chunk use_class carry, dedupe. No research unknowns remain on this chain.

The residual set, triaged

defaults to unrestricted (MIT-class) components so no tool's terms touch the game anywhere;

territory-restricted tools are never load-bearing in the shipped-asset path. NeoStack owned;

the schema-bound Claude-Code-drives-NeoStack principle ruled.

region_id format (Q6/Q7 — recommendations standing); the book-processing gate definition

(Q8); the per-region scale-compression ratios (design).

(LOCAL_3D_ASSET_GEN.md §5); Hunyuan-vs-TRELLIS texture quality on our test set.

ws.* save-subsystem validation spike; the MetaHuman batch-throughput test; NeoStack-on-5.8

verify; the Epic-MCP tool-roster verify; the EULA legal read; Gaea CLI-tier confirm.

each item pre-triaged into the three classes above by the Phase-D pass as it writes each

Translation Doc.

With this, the Ch 2-5 vertical slice starts as VALIDATION of a specified chain — the spikes and

the benchmark are the only discovery left in it.

ADJUDICATED + MATRIXED (v2, 2026-07-15 — the deep-dive/adversarial/alternatives round Josh ordered)

Rulings (ADVERSARIAL_ADJUDICATION.md, primary-source-fetched): **Lyra 2.0 weights are NVIDIA

non-commercial research-only** (code Apache) — previz-only, never a shipped path (the bridges

brief's contrary read is overruled). Cosmos 3 = Nano 16B / Super 64B, ~32GB BF16 —

borderline 5090-local; outputs remain video/action-class (previz/reference lane). ACE SDK:

the code license does NOT cover bundled model weights (and MIT-vs-Apache is itself unsettled) —

the weights-license read is a pre-adoption spike. **The one real hole in the

unrestricted-by-default ruling: the automated textured-PBR leg is an EMPTY SET today** —

TRELLIS.2's bake is non-commercial (nvdiffrast), Hunyuan territory-capped, CHORD research-only;

clean routes are manual-only until the PyTorch3D renderer-swap engineering or a clean release

closes it (Josh's trade to rule). Unmodelled cost axes to price before the slice is called

validated: 69-region GDAL/import throughput; MetaHuman per-character CLOUD round-trips at

hundreds-of-NPCs scale. Care addition: the real-capture reconstruction path gains a

capture-RIGHTS/CONSENT gate (photogrammetry of real sacred sites needs permissioned sources,

not just real ones).

The seven-slot decisions (ALTERNATIVES_MATRIX.md, protocol-shape): terrain = DEM backbone +

Gaea detail leg (classic Landscape target; Mesh Terrain watched); world models = Family-A out /

Marble+HY-World gated previz / design-around-UE6 as the standing forward bet; assets = the

ruled split + the expanded 5090 benchmark (Tripo rigging the one sanctioned paid gap-filler);

editor = the THREE-SEAM ROUTING RULE (NeoStack = judgment · native Python/Remote-Control =

bulk/CI · Epic MCP = PCG; unreal-mcp the fallback); runtime = HYBRID (ACE substrate + our

strategy-token/canon-graph guardrails) pending the weights spike; voice = Kokoro bulk +

ElevenLabs heroes behind the clone gate; OCR = ocrmypdf+tesseract NOW + a VLM-OCR

(PaddleOCR-VL/DeepSeek-OCR class) on the 5090 for the hard remainder.

Missing lanes opened (research to schedule): LOCALIZATION first (the ship-everywhere ruling's

biggest unfunded mandate — design string tables in from the start), animation/motion-gen (132

creatures, non-humanoid rigs), water/ocean (the drowned chapters), weather/sky, crowds,

foliage source-assets, Chaos/destruction.

AUDIO LANE CLOSED (2026-07-15 — tech_research/AUDIO_STACK.md, live-verified per tool)

The music/SFX halves of the audio family are now researched to the same bar as the seven earlier

slots (voice was already ruled: Kokoro bulk + ElevenLabs heroes behind the clone gate — the brief

re-verified, no overturn). The standing recommendations, license classes bolded per the ruling:

SUPERSEDED 2026-07-29 (the AIVA sweep, ledger 28ai): AIVA is CLOSED-AS-SKIP (Josh, 2026-07-27 — the enterprise-contact path is dead; nobody emails anyone). Bulk music = ACE-Step/YuE local, benchmark-gated; the hero/canonical theme is composer-in-loop; ACE-Step 1.5 ships native stem separation, retiring the only-AIVA-exports-stems premise below. Current stack: docs/pipeline_review/tech_research/PIPE_AUDIO_MUSIC_2026-07-29.md. The text below is preserved as the pre-ruling research record.

copyright-owned-by-you; Free/Standard do NOT) and is the only vendor with native per-instrument

stems export, which is what MetaSounds/Quartz adaptive layering actually consumes. Contract

impact: AIVA has NO self-serve public API — §3.4's orchestration-agent REST assumption needs a

negotiated licensing agreement (pre-adoption settle item).

Apache 2.0) — the first commercially-clean local music models found; both 5090-benchmark-gated

(no independent orchestral-quality evidence yet; stems require a Demucs bridge, pop-tuned).

license); Suno = reverse-indemnification + active UMG/Sony litigation; Meta MusicGen/AudioCraft

weights CC-BY-NC (NON-COMMERCIAL) — none load-bearing, ever.

(ROYALTY-FREE-OWNED); open gen fill MOSS-SoundEffect v2.0 (UNRESTRICTED, Apache);

Stable Audio Open/3.0 is revenue-capped (TERRITORY-OR-USE-CAPPED) → previz-class only;

creature vocalization (132 creatures) is NOT a gen-AI task — Krotos Dehumaniser/Reformer

(ROYALTY-FREE-OWNED, perpetual) in the contract's own sound-designer-in-loop track;

UI = UE MetaSounds procedural (UNRESTRICTED, engine-native).

any T0 registry though adaptive audio requires them — flagged into the contracts-correction

scope, Josh's schema call.

Q4 in STACK_FACTS_QUESTIONS is refreshed to this evidence; the audio Translation Doc + the

§3/§4/§10 contract corrections write to it.

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