Working with 3D Files

Preview and catalog your 3D models with automatic texture loading

Supported Formats

FormatTexture Handling
GLTF / GLBTextures embedded or auto-resolved from relative paths
FBXAuto-loads textures via embedded references
OBJ + MTLLoads textures defined in the MTL file
OBJ (no MTL)Auto-detects textures by name matching
DAE (Collada)Resolves textures from relative paths
STLNo texture support (geometry only)
ABC (Alembic)Limited support: basic mesh preview only, no animation

Coming Soon: Blender Files

Native .blend file support is on our roadmap, but it's a challenging format to support. Blender files use a custom compressed binary format that isn't publicly documented, which makes reliable parsing difficult. We're actively working on it, but it's taking time to get right.

In the meantime, we recommend exporting your Blender models to glTF/GLB for the best experience in AssetHoard.

Texture Structures

AssetHoard automatically searches for textures when loading 3D models. The search behaviour depends on the file format.

OBJ Files with MTL (Recommended)

Place the MTL file in the same directory as the OBJ with the same base name. The MTL file tells the viewer exactly which texture goes with which material.

my-model/
├── chair.obj
├── chair.mtl ← Same name as OBJ
└── wood_diffuse.png

OBJ Files without MTL (Auto-Detection)

If no MTL file is present, AssetHoard searches for textures in these locations (in order):

  • Same directory as the OBJ file
  • ./textures/ subdirectory
  • ../textures/ sibling folder (common in asset packs)
asset-pack/
├── source/
│ └── model.obj
└── textures/ ← Found via ../textures/
├── diffuse.png
└── normal.png

Name Matching

When auto-detecting textures, they're matched to materials by name. For best results, name your textures to match material names in the model. Common suffixes are automatically stripped: _colour, _color, _diffuse, _albedo, _d.

Example: A material named wood will match wood_colour.jpg or wood_diffuse.png.

If only one texture is found and no name matches, it will be applied to all materials as a fallback.

Troubleshooting

Model appears gray or untextured:

  • Check that textures are in the same folder or a ./textures/ subfolder
  • Verify texture filenames roughly match material names
  • For OBJ files, ensure the MTL file exists and references correct texture paths

Textures on wrong parts:

  • The auto-detection couldn't match names correctly
  • Create an MTL file that explicitly maps materials to textures