A Windows Shell Extension that shows thumbnail previews of 3D model files directly in File Explorer. Supports glTF/GLB, Wavefront OBJ, Blockbench, Minecraft Java/Bedrock, and Vintage Story formats.
| Format | Extensions | Description |
|---|---|---|
| glTF / GLB | .gltf, .glb |
Industry-standard 3D transmission format |
| Wavefront OBJ | .obj |
Widely supported 3D model format with .mtl material support |
| Blockbench | .bbmodel |
Blockbench model format used for Minecraft modding and more |
| Minecraft Bedrock | .json |
Bedrock Edition geometry format (minecraft:geometry) |
| Minecraft Java | .json |
Java Edition block/item model format |
| Vintage Story | .json |
JSON-based model format used by Vintage Story |
Multiple formats share the .json extension. glimpse identifies them by unique content markers:
| Format | Detection Key |
|---|---|
| Blockbench | .bbmodel extension, or "meta" + "format_version" in content |
| Minecraft Bedrock | "minecraft:geometry" key |
| Minecraft Java | "parent" field (e.g. "block/block") with "elements" |
| Vintage Story | "elements" with cube faces and "from"/"to" (fallback) |
- Native Explorer Integration — Thumbnails appear just like images, videos, and other supported formats
- Texture Support — Renders embedded textures (glTF, Blockbench), companion .mtl textures (OBJ), and asset tree textures (Vintage Story)
- Vertex Colors — Displays models with vertex color attributes (glTF)
- Material Colors — Reads diffuse colors from .mtl materials (OBJ)
- Asset Tree Resolution — Vintage Story models resolve textures from the
assets/*/textures/directory hierarchy - Multiple Formats — 7 format variants across 4 file extensions
- Software Rendering — No GPU required, works in VMs and remote desktop
- Lenient Parsing — Gracefully handles files with missing textures by rendering geometry with solid color
Models shown are from FrenchKrab/mc-blockbench-models.
glimpse is a COM DLL implementing Windows' IThumbnailProvider interface. When Explorer encounters a supported model file:
- Windows loads our DLL and passes the file data
- We auto-detect the format (by extension and content analysis) and parse the model
- A software rasterizer renders the scene with:
- Automatic camera framing based on bounding sphere
- Flat shading with ambient + diffuse + specular lighting
- Z-buffer depth testing
- Per-pixel texture sampling with barycentric UV interpolation
- The resulting bitmap is returned to Explorer
- glTF/GLB — Parsed via the
gltfcrate. Supports embedded textures, vertex colors, and scene graph traversal. - Wavefront OBJ — Parsed via
obj-rs. Loads companion.mtlfiles for diffuse colors (Kd) and textures (map_Kd). Handles N-gon faces via fan triangulation. - Blockbench — Parsed via
serde_json. Supports embedded base64 textures, element hierarchy, and both Java Block and Free/Bedrock rotation orders. - Minecraft Bedrock — Bone-based hierarchy with pivot rotations. Cubes use
origin/sizewith per-face UV objects supportinguv_sizemirroring anduv_rotation. - Minecraft Java — Elements with
from/tobounds and single-axis rotation. UV space defined bytexture_size(default 16x16). - Vintage Story — JSON5 with comments. When loaded from a VS asset tree, resolves textures from
assets/*/textures/directories, preferring the same domain. SupportstextureSizesfor per-texture UV normalization.
Download glimpse-setup.exe from the releases page and run it. See INSTALLER.md for details.
Prerequisites: Rust with stable-x86_64-pc-windows-msvc toolchain.
cargo build --releaseThis produces target/release/glimpse.dll.
A command-line tool is included for testing format support without installing the shell extension:
cargo build --release
target/release/glimpse-cli.exe model.gltf 256This renders a 256x256 thumbnail and saves it as a PNG next to the input file.
| Limitation | Description |
|---|---|
| Triangles Only | Line, point, and strip primitives are skipped |
| No Animation | Static pose only (no skinning, morphs, or animation) |
| External Resources | glTF files referencing external .bin render geometry only |
| CPU Rendering | Fast for thumbnails but not real-time |
gltf— glTF 2.0 parsingobj-rs— Wavefront OBJ/MTL parsingserde/serde_json— JSON parsing for Blockbench and Minecraft formatsjson5— Vintage Story JSON5 parsingglam— Math library for matrix/vector operationsbase64— Data URI decodingimage— PNG/JPEG texture decodingwindows— Windows API bindings
Contributions welcome! Please open an issue or PR.
MIT License — see LICENSE for details.
