Importing
Drag files onto the viewport, or use the import button in the toolbar.
Meshes
| Format | How it's handled |
|---|---|
.glb | Loaded directly |
.obj | Converted to GLB on import |
.fbx | Converted to GLB on import |
Everything downstream of import — storage, thumbnails, name handling — speaks GLB only, so foreign formats are converted once at the door rather than teaching every part of the viewer a second language.
Size caps
| Cap | |
|---|---|
| Mesh | 50 MB |
| Texture | 20 MB |
The mesh ceiling matches the figure most people already know from Sketchfab. Textures cap lower because decoded GPU size scales with pixel count, and 20 MB is already the 4K–8K range. Above 20 MB, an OBJ or FBX takes long enough to convert that you get a warning before it starts.
What conversion preserves
- Material slots survive. Names and per-face assignments are kept along with their UVs, so
M_BodystaysM_Bodyand stays separately texturable. - Material look is translated — color, scalar values, and any texture that actually decoded, which for FBX means embedded images.
- Node transforms are baked into the vertices, so FBX centimeter units cost you nothing.
- Geometry is optimized: attributes trimmed to position, normal and UV; duplicate vertices welded; everything sharing a material merged into one mesh. That means one draw call per material slot.
What conversion drops
- Externally referenced textures. Only the file you dropped crosses into the browser, so an OBJ pointing at
body_diffuse.pngon disk arrives without it. Load those maps yourself in the texture panel — that's what it's for. - Lights, cameras, and empty nodes. The viewer supplies its own lighting and camera.
- Vertex colors, skinning, and morph targets, which are baggage for a static preview.
Textures
.png, .jpg, .jpeg, and .webp, into any of ten channels:
| Channel | Suffix | Color space |
|---|---|---|
| Base Color | BC | sRGB |
| Metalness | M | Linear |
| Roughness | R | Linear |
| Specular Map | S | sRGB |
| Normal Map | N | Linear |
| AO Map | AO | Linear |
| Opacity Map | O | Linear |
| Emission Map | E | sRGB |
| Clear Coat | CC | Linear |
| Clear Coat Roughness | CCR | Linear |
Every material is upgraded to a physical material on load, so the clear coat and specular slots always exist even if the source file never had them.
Dropping a folder of maps
Drop many files at once and they sort themselves onto the right materials by filename. The convention is that a material's textures share its stem and carry a channel suffix — so material M_Body takes T_Body_BC as base color, T_Body_R as roughness, and so on.
The matching is deliberately forgiving:
- Prefixes are optional.
M_,T_,Tex_,Material_are all treated as kind markers and dropped. - Separators and case don't matter.
body-bc.png,T_Body_BC.png, andT Body BC.pngall land in the same place. - A leading mesh name is ignored.
T_Hellcat_Body_BCstill resolves toM_Body, because that prefix is organizational rather than addressing. - Trailing tags are ignored. Suffixes are scanned from the right, so
T_Car_Body_BC_2K.pngmatches onBCand_2Kis harmless.
The upshot is that maps exported from any DCC with any house naming style will usually sort without renaming a thing.
Where your files live
Nothing is uploaded. Meshes, background images, and channel textures are held in your browser's local database, so what you were looking at is still there when you come back — and it never leaves your machine.
Next: render modes.