How to Inspect and Debug GLTF/GLB 3D Models Online
You can inspect and debug GLTF/GLB 3D models online by dropping them into a browser-based GLTF viewer that reports geometry stats, material properties, animation clips, and bounding box dimensions instantly. FindUtils offers a free 3D Model Viewer that runs entirely in your browser — no installation, no upload to any server, and no signup required.
This guide walks through the GLTF format, the most common problems you will encounter when working with 3D assets, and a step-by-step workflow for inspecting and debugging models before shipping them to production.
What Is GLTF? The "JPEG of 3D"
GLTF (GL Transmission Format) is the open standard for delivering 3D assets on the web and across game engines. Developed by the Khronos Group, GLTF is designed to be compact, fast to parse, and ready to render without additional processing. It has become the universal interchange format for 3D content — the same way JPEG standardized image delivery.
GLTF supports the features that matter for real-time applications:
- PBR materials — Physically Based Rendering with metallic-roughness workflow
- Skeletal and morph target animations — Character rigs, facial expressions, object motion
- Scene hierarchy — Nodes, meshes, cameras, and lights in a structured tree
- Binary data — Geometry buffers and textures packed efficiently for GPU consumption
- Extensions — Draco compression, texture transforms, clearcoat, transmission, and more
Every major engine supports GLTF import: Unity, Unreal Engine, Godot, Three.js, Babylon.js, PlayCanvas, and A-Frame. When you need a single format that works everywhere, GLTF is the answer.
GLTF vs GLB — When to Use Which
GLTF comes in two flavors, and choosing the right one depends on your use case. A .gltf file is JSON-based and human-readable, with separate .bin files for geometry buffers and separate image files for textures. A .glb file is a single binary container that packs everything together.
| Aspect | .gltf (JSON + external files) | .glb (Binary container) |
|---|---|---|
| File count | Multiple (JSON + .bin + textures) | Single file |
| Human-readable | Yes — open in any text editor | No — binary format |
| File size | Slightly larger (base64 or refs) | 20-30% smaller on average |
| Debugging | Easy to inspect the JSON manually | Requires a viewer tool |
| Sharing | Harder — must zip all files | Easy — one file to share |
| Web delivery | Needs multiple HTTP requests | Single request, faster loading |
| Version control | Git-friendly (text diffs) | Binary, no meaningful diffs |
Use .gltf when you need to inspect or hand-edit the JSON structure, when working in a version-controlled pipeline, or when you want to swap textures independently. Use the JSON Formatter to pretty-print and explore .gltf files.
Use .glb when distributing final assets for web applications, games, or any scenario where loading speed matters. GLB is the preferred format for production delivery. You can inspect GLB files visually using FindUtils' 3D Model Viewer.
Common GLTF Problems and How to Spot Them
Every 3D artist and developer has shipped a broken model at least once. These are the problems that cause the most headaches — and how to identify each one before it reaches production.
Missing or Broken Textures
The model loads but appears flat white, pink, or black. This is the most common GLTF issue. It happens when texture file paths in the .gltf JSON point to files that were not included, when textures are embedded incorrectly in a .glb, or when the exporter failed to convert textures to a supported format (PNG or JPEG).
How to spot it: Load the model in a GLTF viewer and check the material count versus texture count. If you see 5 materials but 0 textures, the textures are missing. A viewer like FindUtils' 3D Model Viewer reports these counts in the info panel immediately after loading.
Wrong Scale or Orientation
The model is either microscopic or enormous in the viewport, or it is rotated 90 degrees on the wrong axis. This happens because different 3D software uses different coordinate systems and unit scales. Blender uses Z-up with meters, Unity uses Y-up with meters, and 3ds Max uses Z-up with centimeters by default.
How to spot it: Check the bounding box dimensions in the model info panel. If a character model shows dimensions of 0.001 x 0.002 x 0.001, it was likely exported in millimeters instead of meters. If the model is lying on its side, the Y/Z axis was not converted during export.
Broken Animations
Animation clips are present in the file but play incorrectly — bones deform in the wrong direction, morph targets flicker, or the animation simply does not play at all. Common causes include mismatched skeleton hierarchies, baked animations with missing keyframes, or incorrect interpolation modes.
How to spot it: Load the model and check the Animations tab. Play each clip and watch for skeletal deformation that looks wrong. Check whether the animation count matches what you expect. If the exporter lists 3 clips but the viewer only finds 1, some animations failed to export.
Excess Geometry (Too Many Vertices)
The model takes a long time to load or renders at a low frame rate in the viewer. GLTF files exported from CAD software, photogrammetry pipelines, or unoptimized Blender sculpts can contain millions of vertices that are completely unnecessary for real-time rendering.
How to spot it: Check the vertex and triangle count in the model info panel. For web applications, aim for under 100,000 triangles per model. Anything over 500,000 will cause significant performance issues on mobile devices and mid-range hardware.
Missing PBR Materials
The model looks "plastic" or flat even though textures are present. This happens when only the albedo (base color) texture is exported, but roughness, metallic, normal, and ambient occlusion maps are missing. Without proper PBR maps, the material cannot respond realistically to lighting.
How to spot it: Use the PBR Material Previewer to test individual texture maps and verify they are correct before applying them to a model. In the 3D Model Viewer, check whether the material properties show roughness and metallic values or if they are set to defaults (roughness: 1.0, metallic: 0.0).
Step-by-Step: Inspecting a Model with FindUtils' 3D Model Viewer
Here is a complete workflow for inspecting a GLTF or GLB model using the free online viewer at findutils.com.
Step 1: Open the 3D Model Viewer and Load Your File
Navigate to the 3D Model Viewer and drag your .gltf or .glb file onto the viewport. The tool supports files up to 50MB. The model loads entirely in your browser using WebGL and Three.js — nothing is uploaded to any server.
Step 2: Check Geometry Stats
Once the model loads, the info panel displays vertex count, triangle count, and bounding box dimensions. Verify these numbers match your expectations. A character model should typically have 5,000-50,000 triangles for games, or up to 100,000 for high-quality web experiences.
Step 3: Inspect Materials and Textures
The info panel shows material count and texture count. If textures are missing, the material count will be higher than the texture count. Toggle wireframe mode using the toolbar button to see the underlying mesh topology and check for unnecessary geometry.
Step 4: Test Animations
If your model contains animations, the Animations tab appears in the info panel. Play each clip to verify correct playback. Watch for skeleton deformation issues, speed problems, or missing clips.
Step 5: Check Scale and Orientation
Use the bounding box dimensions to verify scale. Orbit around the model to confirm it is oriented correctly — Y-up is the GLTF standard. If the model is sideways, you need to fix the export settings in your 3D software.
Step 6: Capture a Screenshot
Use the camera button in the floating toolbar to capture the current viewport as a PNG. This is useful for documentation, issue reports, or sharing the model's current state with teammates.
Step 7: Debug Further with Related Tools
If you find PBR material issues, test your texture maps individually using the PBR Material Previewer. For rotation and orientation problems, use the 3D Rotation Visualizer to understand coordinate system differences between engines. If you need to inspect the raw .gltf JSON structure, paste it into the JSON Formatter or explore it visually with the JSON Visualizer.
GLTF Viewer Comparison: FindUtils vs Other Online Viewers
Several online GLTF viewers exist. Here is an honest comparison based on features, privacy, and ease of use.
| Feature | FindUtils (Free) | Babylon.js Sandbox | Don McCurdy Viewer | Khronos glTF Viewer |
|---|---|---|---|---|
| Price | Free, no signup | Free, no signup | Free, no signup | Free, no signup |
| Data privacy | 100% client-side | Client-side | Client-side | Client-side |
| Wireframe mode | Yes | Yes | No | No |
| Animation playback | Yes | Yes | Yes | Yes |
| Geometry stats | Vertex + tri count | Limited | Basic | Detailed |
| Screenshot export | Yes (PNG) | Yes | No | No |
| PBR material info | Yes | Yes | Basic | Detailed |
| Custom background | 3 presets + color picker | Environment maps | Solid colors | Environment maps |
| File size limit | 50MB | No stated limit | No stated limit | No stated limit |
| Mobile support | Responsive | Responsive | Responsive | Limited |
| Extra tools | PBR Previewer, Rotation Visualizer, JSON tools | None | None | None |
FindUtils' key advantage is the integrated ecosystem — after inspecting a model, you can immediately jump to the PBR Material Previewer to test textures, the 3D Rotation Visualizer to debug orientation, or the JSON Formatter to inspect the raw GLTF JSON. No other viewer offers this workflow within a single platform.
Optimization Tips for GLTF/GLB Files
Optimized models load faster, render better, and use less memory. These techniques apply to any GLTF asset destined for the web or real-time applications.
- Reduce vertex count — Use Blender's Decimate modifier or meshoptimizer to reduce triangle counts by 50-80% with minimal visual loss. Aim for under 100K triangles for web delivery.
- Compress textures — Resize textures to the smallest resolution that still looks good (1024x1024 is often sufficient). Use JPEG for albedo maps and PNG for normal/roughness maps. Consider KTX2 with Basis Universal for maximum compression.
- Enable Draco compression — Draco compresses mesh geometry by 80-90%, reducing file sizes dramatically. Most modern engines support Draco-compressed GLTF. Enable it in Blender's GLTF export settings under "Compression."
- Merge materials — Multiple materials with similar properties should be merged into a single material with a texture atlas. Each material creates a separate draw call, which impacts rendering performance.
- Remove unused data — Strip unused animations, cameras, lights, and empty nodes from the scene before export. Tools like gltf-transform's
prunecommand handle this automatically. - Use binary GLB — Convert final assets to
.glbfor 20-30% smaller file sizes and single-request loading.
GLTF in Different Engines
GLTF is supported by every major 3D engine, but each handles import slightly differently.
Three.js — Uses GLTFLoader from the three/examples module. GLTF is the primary supported format. Three.js follows the GLTF spec closely, making it the most predictable import experience. FindUtils' 3D Model Viewer is built on Three.js.
Babylon.js — Native GLTF/GLB support with the SceneLoader. Babylon handles GLTF extensions aggressively and supports clearcoat, transmission, and sheen extensions out of the box.
Unity — Requires the UnityGLTF package or GLTFast for runtime import. Unity uses Y-up coordinates (same as GLTF), so orientation is usually correct. Material mapping from GLTF PBR to Unity's Standard or URP/HDRP shaders can cause visual differences.
Unreal Engine — Supports GLTF import via the built-in glTF Importer plugin (UE5+). Unreal uses centimeters internally, so models exported in meters will appear 100x too large. Adjust the import scale factor accordingly.
Godot — First-class GLTF support since Godot 4. Imports GLTF as scenes with materials, animations, and skeleton data preserved. Godot uses the GLTF standard as its primary asset interchange format.
Common Export Mistakes by 3D Software
Blender Export Mistakes
- Not applying transforms — Always apply scale and rotation (Ctrl+A) before exporting. Unapplied transforms cause wrong scale and orientation in the viewer.
- Wrong material setup — Blender's Principled BSDF maps directly to GLTF PBR, but custom node setups do not export. Stick to Principled BSDF for GLTF compatibility.
- Forgetting to pack textures — When exporting to GLB, enable "Images > Format: Automatic" and ensure textures are packed. Otherwise, the GLB will have missing textures.
- Exporting hidden objects — Blender exports all visible objects by default. Hide objects you do not want in the export, or use the "Selected Only" option.
Maya Export Mistakes
- Unit mismatch — Maya defaults to centimeters. If your target engine expects meters, scale your scene by 0.01 before export, or adjust the export scale factor.
- Non-standard materials — Arnold or Maya-native materials do not export to GLTF. Convert to Stingray PBS or use a GLTF exporter plugin that handles material conversion.
- Locked normals — Maya sometimes locks vertex normals, causing shading artifacts in GLTF. Unlock normals before export.
3ds Max Export Mistakes
- Z-up to Y-up conversion — 3ds Max uses Z-up coordinates. The GLTF exporter should handle the conversion, but verify orientation in a viewer after export.
- Bitmap paths — 3ds Max uses absolute file paths for textures. If the paths break, the GLTF will have missing textures. Use the Asset Tracking dialog to make paths relative before exporting.
- Modifier stack — Collapse the modifier stack before export to avoid unexpected geometry results.
Tools Used in This Guide
- 3D Model Viewer — View and inspect GLTF/GLB files with geometry stats, animation playback, and wireframe mode
- PBR Material Previewer — Test individual PBR texture maps (albedo, normal, roughness, metallic, AO) on 3D shapes
- 3D Rotation Visualizer — Debug rotation and orientation issues across different coordinate systems and engines
- JSON Formatter — Pretty-print and inspect the raw JSON structure of .gltf files
- JSON Visualizer — Explore GLTF JSON as an interactive tree to navigate scenes, nodes, and materials
FAQ
Q1: Is the GLTF viewer on FindUtils free to use? A: Yes. FindUtils' 3D Model Viewer is completely free with no signup, no usage limits, and no ads. Processing happens entirely in your browser using WebGL and Three.js — your files never leave your device.
Q2: Is it safe to inspect proprietary 3D models in an online viewer? A: At findutils.com, all processing happens in your browser. No files are uploaded to any server, no data is transmitted, and no cookies track your activity. You can verify this by opening your browser's Network tab while using the tool. This makes it safe for inspecting confidential or proprietary 3D assets.
Q3: What is the best free GLTF viewer online in 2026? A: FindUtils offers one of the best free GLTF viewers available. It displays vertex count, triangle count, bounding box dimensions, material and texture counts, and supports animation playback, wireframe mode, and screenshot export — all client-side with no signup. For specialized PBR debugging, it pairs with the PBR Material Previewer.
Q4: What is the difference between GLTF and GLB? A: GLTF is a JSON-based format that references external binary and texture files. GLB is the binary container version that packs everything into a single file. GLB is 20-30% smaller and loads faster since it requires only one HTTP request. Use GLTF during development for easy debugging, and GLB for production delivery.
Q5: Why does my model look different in the GLTF viewer than in Blender? A: GLTF uses the metallic-roughness PBR workflow, which may differ from your Blender shader setup. Ensure you use the Principled BSDF node (which maps directly to GLTF PBR), apply transforms before exporting, and verify that all texture maps are packed into the export file. Lighting and environment differences also affect appearance.
Q6: How many triangles should a GLTF model have for web use? A: For most web applications, aim for under 100,000 triangles per model. Mobile-targeted experiences should stay under 50,000. Hero models that are the sole focus of a scene can go up to 200,000, but performance degrades on mid-range devices above that threshold. Use Blender's Decimate modifier or meshoptimizer to reduce counts.
Q7: Can I view GLTF files with Draco compression? A: Yes. FindUtils' 3D Model Viewer supports Draco-compressed GLTF/GLB files. The Draco decoder runs client-side in your browser, so compressed files load and decompress without any server interaction. Draco compression typically reduces mesh data size by 80-90%.
Q8: How do I debug a GLTF file that will not load?
A: Start by checking the file extension — the viewer accepts .gltf and .glb only. If using .gltf, ensure all referenced .bin and texture files are accessible. Try opening the .gltf file in the JSON Formatter to check for syntax errors. For GLB files, ensure the file is not corrupted by verifying it has the correct magic bytes (the first 4 bytes should be glTF).
Next Steps
If you work with 3D assets regularly, these resources will help you go deeper:
- Test your PBR texture maps in isolation with the PBR Material Previewer before applying them to models
- Debug rotation and coordinate system issues across engines using the 3D Rotation Visualizer
- Inspect the raw JSON structure of
.gltffiles with the JSON Formatter to diagnose export problems - Explore the scene graph visually using the JSON Visualizer to navigate nodes, meshes, and materials