Semantic search
Find assets by meaning, not just by filename
Overview
Semantic search lets you find assets by describing what they are or what they look like,
rather than remembering their exact filename. Searching for "dark cave" can surface a
tileset you saved as env_03_b.png with no tags at all.
Two AI models run directly on your machine via ONNX Runtime. A text model, Nomic Embed Text v1.5, understands the meaning of filenames, tags, and other metadata, and a vision model, Nomic Embed Vision v1.5, understands what your thumbnails look like. Nothing leaves your machine, and no account or API key is required.
Semantic search is an experimental feature. It runs alongside standard text search rather than replacing it, so your existing workflow keeps working.
Enabling semantic search
- Open Settings then Search.
- Toggle Semantic search on.
- Wait for the one-time model download of roughly 450 MB. After this completes, everything runs offline.
- Let the initial indexing finish. AssetHoard processes your existing library in the background and shows a progress notification.
Once indexing is done, your search bar automatically uses hybrid mode, combining standard text results with semantic results. There is nothing else to configure.
What gets indexed
Every asset is indexed from two angles: what it is called and what it looks like.
Text metadata
The text model builds a description from all available metadata:
- Filename and category
- Tags and notes
- Audio ID3 tags (title, artist, album, genre)
- 3D model mesh, material, and scene names
- Material texture filenames
- Unity package directory structures
Visual content
For every asset that has a thumbnail, the vision model embeds the actual image:
- Textures and sprites
- 3D model preview renders
- Material previews
- Any asset with a generated thumbnail
Visual indexing is what makes cross-modal search possible. Typing "lava" can match a
texture that looks like lava even if the file is named mat_017_diffuse.png.
Assets without a thumbnail, such as audio files and scripts, are indexed by their text
metadata only.
Searching
Type into the same search bar you already use. Results from text metadata and from thumbnails are merged using Reciprocal Rank Fusion, which surfaces the best matches regardless of whether they came from a name or from visual appearance.
These kinds of queries work well because they search meaning rather than exact keywords:
wooden cratefinds crate textures by appearance plus models with "crate" in their mesh namessci-fi corridormatches environment thumbnails plus any notes or tags mentioning sci-fiepic orchestralmatches audio files by their ID3 genre or titledark cave tilesetfinds cave-like tilesets by appearance, even with no tags- An artist or composer name matches audio files, because ID3 artist tags are indexed
Settings
These options live in the same Search settings panel:
- Similarity threshold (0.10 to 0.80, default 0.30). Lower values return more results, higher values are stricter.
- Show similarity scores. Displays a percentage badge on each result showing how closely it matched your query.
- Show indexing notifications. Toggles the notification that appears when new imports are being indexed.
To turn the feature off, toggle Semantic search off and search reverts to standard text-only mode. The downloaded models stay on disk, so you do not need to re-download if you turn it back on later.
Performance
Initial indexing
A one-time pass over your existing library, processed in batches. Speed depends on library size and whether a compatible GPU is available. A progress notification keeps you informed.
Search queries
The vector lookup uses an in-memory HNSW approximate nearest-neighbour index and takes sub-millisecond time. The only added overhead is embedding your query text, which takes a few milliseconds on top of regular search.
New imports
Newly imported assets are indexed automatically in the background. Search keeps working with text-only results while indexing completes, and a notification lets you know when it is done. If a model is busy indexing, search silently falls back to text-only rather than making you wait.
Requirements
- Disk space. Roughly 450 MB for the two models: about 350 MB for the text model and about 93 MB for the vision model.
- Internet. Needed only for the initial model download. After that, semantic search works fully offline.
- GPU (optional). DirectML on Windows, CoreML on Apple Silicon, and CUDA on NVIDIA GPUs on Linux. If no compatible GPU is detected, it falls back to CPU automatically. Indexing is slower on CPU, but search queries stay fast.
No data is sent anywhere. Both models run locally via ONNX Runtime, with no API calls, telemetry, or cloud processing.
Troubleshooting
Results seem too broad or too narrow
Adjust the Similarity threshold in Settings then Search. Raise it to filter out loose matches, or lower it to surface more results.
A recent import is not appearing
New imports are indexed in the background. Give the indexing notification time to complete, then search again. Until then, the asset still appears in standard text search.
Indexing is slow
This usually means no compatible GPU was detected and indexing is running on CPU. Initial indexing is a one-time cost, and search queries remain fast regardless.