Problem
In the Asset Browser, exported models show up as confusing duplicate-looking entries. For example, in a Models/ folder:
bl/ (source folder: .blend, HDR, Textures, per-submesh .untold payloads)
bl.untoldpack <- this is the thing the user should actually click
gloves/
gloves.untoldpack
soocer_player/
soocer_player.untold
Each asset produces two top-level entries with matching names: a source/working folder (containing the .blend, HDR/, Textures/, and nested per-submesh .untold payload files referenced by the pack manifest) and the actual loadable asset (.untoldpack manifest or standalone .untold). A new user has no way to tell which of the pair is the one to open.
Root cause
This is a browser display issue, not a data layout issue. The cook pipeline's convention (RuntimeExportLocation.swift:28) is intentional: a source Models/bl/bl.blend cooks to a sibling Models/bl.untoldpack, and the folder name matches the pack's stem so re-cooking can find the source again later.
The Asset Browser's folderContentsView (AssetBrowserView+Contents.swift:178) lists every directory entry unconditionally, with no concept that a folder is the source satellite of a sibling pack file. So both show up as flat peers.
Proposed fix
UI-only change, no cook pipeline or export-location changes, no migration needed for existing projects:
- In
folderContentsView, suppress a folder from the listing when its name matches the stem of a sibling .untold/.untoldpack file in the same directory.
- Surface the hidden source folder via a "Reveal Source Folder" context-menu item on the asset's row, alongside the existing "Cook to .untold…" action.
Files involved
AssetBrowserView+Contents.swift:178 (listing logic)
RuntimeExportLocation.swift:28 (naming convention reference, read-only)
Problem
In the Asset Browser, exported models show up as confusing duplicate-looking entries. For example, in a
Models/folder:Each asset produces two top-level entries with matching names: a source/working folder (containing the
.blend,HDR/,Textures/, and nested per-submesh.untoldpayload files referenced by the pack manifest) and the actual loadable asset (.untoldpackmanifest or standalone.untold). A new user has no way to tell which of the pair is the one to open.Root cause
This is a browser display issue, not a data layout issue. The cook pipeline's convention (
RuntimeExportLocation.swift:28) is intentional: a sourceModels/bl/bl.blendcooks to a siblingModels/bl.untoldpack, and the folder name matches the pack's stem so re-cooking can find the source again later.The Asset Browser's
folderContentsView(AssetBrowserView+Contents.swift:178) lists every directory entry unconditionally, with no concept that a folder is the source satellite of a sibling pack file. So both show up as flat peers.Proposed fix
UI-only change, no cook pipeline or export-location changes, no migration needed for existing projects:
folderContentsView, suppress a folder from the listing when its name matches the stem of a sibling.untold/.untoldpackfile in the same directory.Files involved
AssetBrowserView+Contents.swift:178(listing logic)RuntimeExportLocation.swift:28(naming convention reference, read-only)