# Agrarian Asset Pipeline Purpose: replace placeholder visuals with realistic, licensed, performant assets while keeping the project clean enough to scale across Earth-sized tiles. ## Visual Direction Agrarian should read as realistic modern post-collapse frontier survival: damaged but recoverable, practical, lived-in, and grounded. The world should not look cartoonish, old-west, or exaggerated apocalypse junkyard. ## First Asset Priorities 1. Coastal scrub trees. 2. Shrubs and bushes. 3. Grasses and ground cover. 4. Water, banks, wet edges, and shoreline dressing. 5. Rocks, terrain decals, and material detail. 6. Two to four human character bodies/outfits. 7. Old abandoned equipment starting to be overtaken by nature. ## Approved Sources - Fab free assets. Paid Fab assets are blocked unless Nathan explicitly approves the purchase in a later task. - Quixel/Megascans assets available under the current Epic/Unreal terms. - CC0/public-domain art libraries. - Assets created internally. - Assets Nathan manually adds to the staging folder with permission to use. Do not scrape random internet images or models. If an asset cannot be traced to a usable license, reject it. ## Free-Only Lockdown The asset pipeline is currently free-only. Before download or import, verify that the asset page is marked free or that the asset is project-owned/internal. Record the cost in `Docs/Art/AssetLicenses.md` as `Free`, `$0`, `0`, or `N/A`. Do not click purchase, checkout, add payment, subscription, or paid-license flows. If an asset looks useful but is not free, record it as a candidate in notes outside the import flow and wait for explicit approval. ## Staging Workflow 1. Place downloaded/manual assets in: `/home/nathan/AssetStaging/Agrarian/Incoming` 2. Save license evidence in: `/home/nathan/AssetStaging/Agrarian/LicenseEvidence` 3. Review license and visual fit. 4. Move acceptable assets to: `/home/nathan/AssetStaging/Agrarian/Approved` 5. Import into Unreal under the correct project path: `/Game/Agrarian/Environment`, `/Game/Agrarian/Characters`, `/Game/Agrarian/Props`, or `/Game/Agrarian/Effects`. 6. Rename using Agrarian naming policy. 7. Generate or verify: - materials/material instances - collision - LODs or Nanite settings - texture size limits - foliage cull distances where relevant - gameplay tags or placement metadata where relevant 8. Record the asset in `Docs/Art/AssetLicenses.md`. 9. Run visual and placeholder verifiers before packaging a demo. ## Unreal Import Notes - Foliage should use HISM/foliage-friendly meshes with cull distances and sensible material complexity. - Nanite may be used for rigid static meshes where it improves visual density, but grass and alpha-heavy foliage still need performance testing. - Characters and animals must not be imported as static showcase meshes if gameplay requires animation. They need skeletal meshes, animation targets, collision, and gameplay integration. - Water should be handled as a shader/system problem, not a generated model. ## Rejection Rules Reject or quarantine assets that: - have unclear licensing. - require attribution we cannot satisfy in-game or in shipped notices. - are visibly stylized against the realism target. - are too high-poly or texture-heavy without a practical optimization path. - include unrelated branding, logos, watermarks, or embedded marketplace demo content.