AppsJuly 15, 202610 min read

How to Export from Blender for the Web (glTF Settings That Work)

S

sourcecodestack Team

Tools, guides & how-tos

On this page
ShareCopied!

You’ve finished a model in Blender. It looks perfect in the viewport. You export it, open it somewhere else — a website, an AR viewer, a client’s inbox — and it arrives too big, missing textures, lying on its side, or an unhelpful shade of grey. Almost every one of those failures comes from a handful of export settings, and once you know them, clean web-ready exports become a thirty-second habit. This is the practical checklist, in the order you actually do it.

First, the format decision (it’s already made)

For the web, export glTF 2.0, and specifically the .glb variant. glTF is the web’s native 3D format — it stores physically-based materials that render consistently in browsers, supports animation, and compresses beautifully. GLB packs your geometry and textures into a single self-contained file, which means it can’t arrive with its textures missing the way a loose .gltf or an OBJ can. If you’re weighing it against FBX for some reason, our glTF vs FBX comparison settles it: for anything web-bound, glTF wins on size and material consistency. So in Blender it’s File → Export → glTF 2.0 (.glb/.gltf), and you choose glTF Binary (.glb) in the format dropdown.

Everything else is about the options in that export panel — and the prep you do before you open it.

Before you export: three prep steps that prevent 90% of problems

1. Apply your transforms. This is the single biggest cause of “my model is tiny” or “it’s rotated 90 degrees” or “it scales weirdly.” In Object Mode, select everything and press Ctrl+A → All Transforms (or at minimum Rotation & Scale). Blender’s viewport happily shows an object that’s been scaled to 0.01 or rotated on its object axis, but other programs read the baked transform, so what looked fine in Blender arrives wrong everywhere else. Apply transforms and the model exports upright and correctly sized.

2. Check your scale and orientation. Blender treats Z as up; glTF (and most of the web) treats Y as up. Blender’s glTF exporter converts this automatically with its “+Y Up” option (on by default — leave it on), but you still want your model built at a sensible real-world scale. glTF units are metres by convention, so a chair should be roughly 1 unit tall, not 100. Getting scale right in Blender means it arrives right in the viewer without fiddling.

3. Pack or organise your textures. If your materials use image textures, either pack them into the .blend (File → External Data → Pack Resources) or make sure they’re saved somewhere findable. When you export GLB, Blender embeds the textures into the single file — but only if it can locate them. Missing image links are the classic reason a model exports grey.

Do those three things and you’ve eliminated the majority of export failures before touching a single option.

The export panel, setting by setting

Now the glTF 2.0 export dialog. Here’s what actually matters, grouped the way Blender presents it.

Format: glTF Binary (.glb). Self-contained, one file, textures embedded. Choose this unless you specifically need loose textures you’ll edit separately.

Include → Limit to: Selected Objects. If you only want part of your scene, select those objects first and tick this. Otherwise you’ll export the entire scene, including that reference cube you forgot to delete. A quick habit: select exactly what you want, tick Selected Objects, done.

Include → Data: Custom Properties can stay off unless you’re passing metadata to a specific engine. Cameras and Punctual Lights — include them only if the destination should use your lighting; most web viewers apply their own environment lighting (ours does), so leaving lights out is usually cleaner.

Transform → +Y Up: on. As noted, this handles the Z-up to Y-up conversion. Leave it on for anything web-bound.

Geometry → Apply Modifiers: on. This bakes your subdivision surface, mirror, array and other modifiers into the exported mesh. Forget this and your beautifully subdivided model exports as the low-poly cage. Almost always leave it on.

Geometry → UVs, Normals, Tangents, Vertex Colors: on (as applicable). Normals and UVs you want; tangents matter if you use normal maps; vertex colours only if your model uses them.

Geometry → Compression (Draco): this is the big one for the web. Tick it. Draco compression can shrink your geometry by 80–90% with no visible quality loss, which is the difference between a model that loads instantly and one that makes visitors wait. The default compression level is fine; higher levels squeeze a little more at the cost of export time. Any modern web viewer decodes Draco automatically — our 3D viewer includes the Draco decoder, so you can drop the compressed GLB straight in to check it. More on squeezing size in our reduce 3D file size guide.

Material → Materials: Export. Leave on so your PBR materials travel. Blender’s Principled BSDF maps cleanly to glTF’s metallic-roughness model, which is exactly why materials authored with Principled BSDF survive the trip intact. If your materials use nodes glTF can’t represent (complex procedural setups, certain shader tricks), bake them to textures first — glTF wants image textures, not arbitrary node graphs.

Animation (if your model is animated): tick Animation, and if you have multiple actions, look at the Animation Mode — “Actions” exports each as a separate clip you can select in a viewer, which is usually what you want. Check that your animations are on the correct frame range. You can scrub the exported clips in the viewer to confirm they survived.

Then: verify before you ship

This is the step people skip and regret. Never send an export you haven’t opened somewhere other than Blender. Blender’s viewport is forgiving; it shows things a real viewer won’t. The fastest check is to drag your exported GLB into a browser 3D viewer — it uses the same WebGL pipeline your website or app will, so if the model shows up correctly there (right scale, right orientation, materials intact, animations playing), it’ll show up correctly for your users. Look specifically for: correct size and the model sitting on the ground, textures present and mapped right, no flipped or black faces (switch to normals shading to catch these), and animations playing at the right speed. Two minutes of verification saves the embarrassment of a client opening a grey, sideways model.

Common failures and their one-line fixes

  • Model is tiny or huge → you didn’t apply scale (Ctrl+A → Scale), or you built at the wrong unit scale.
  • Model is on its side → apply rotation, and confirm +Y Up is ticked.
  • Everything is grey → textures weren’t packed/found; pack resources and re-export, and make sure materials use Principled BSDF.
  • File is enormous → Draco compression is off; tick it. Also downsize oversized textures.
  • Subdivided model looks low-poly → Apply Modifiers was off.
  • Some faces are invisible or black → flipped normals; recalculate normals in Blender (Edit Mode → Shift+N) before exporting.
  • Animation didn’t come through → the Animation checkbox was off, or the action wasn’t pushed to the NLA / assigned; verify the clip plays in a viewer.

A repeatable export recipe

Once you’ve done it a few times, web export from Blender collapses to a short ritual you can run without thinking: select your objects → Ctrl+A → All Transforms → recalculate normals if you’ve been editing geometry → pack textures → File → Export → glTF 2.0glb, Selected Objects, Apply Modifiers on, Draco on, +Y Up on, Animation on if needed → export → drag the result into a viewer to confirm. That’s the whole thing. The first time it takes ten careful minutes; by the fifth export it’s thirty seconds and it just works.

Exporting animation and rigged models cleanly

Animated exports have their own small set of gotchas worth spelling out, because “the animation didn’t come through” is one of the most common Blender-to-web complaints. First, make sure your animation actually exists as an Action that’s assigned to the object — a common trap is animating an object, then having the action get unlinked so Blender still previews it but the exporter finds nothing. In the glTF panel, tick Animation, and if you have several actions, set the export to include all of them so a viewer can offer a clip selector. Keep the frame range sensible: the exporter uses your scene’s start and end frames, so a stray keyframe at frame 2000 will pad your animation with a long empty tail.

For rigged characters, glTF exports the armature and skinning weights, and it handles typical skeletal animation well for playback. What it deliberately doesn’t preserve is Blender-specific rig machinery — drivers, complex constraints, IK setups — because glTF bakes animation down to efficient sampled keyframes for delivery rather than keeping the authoring rig live. That’s the right trade for the web (you want the result, not the rig), but it means glTF is a delivery format, not a rig-exchange format. If another artist needs your working rig, that’s an FBX or .blend job, as our format comparison explains. Whatever you export, scrub the clip in a viewer’s timeline to confirm it plays at the right speed and doesn’t snap or drift — animation problems are obvious in motion and invisible in a static frame.

Batch and multi-object exports

When you’re exporting several objects — a product in multiple colourways, a set of props, an environment kit — a little discipline prevents a mess. Decide up front whether each piece should be its own GLB (best when they’re used independently on different pages) or one combined GLB with a clean object hierarchy (best when they belong together in one scene). For separate files, select one object at a time with Selected Objects ticked and export each; for a combined file, name your objects meaningfully in the Outliner first, because those names become the scene tree a viewer shows — “Cube.003” tells nobody anything, while “Handle” and “Base” make the model navigable. Open the combined export in a viewer’s scene tree and you’ll immediately see whether your hierarchy and naming survived, and whether any stray object tagged along.

Test on the devices that matter

One last habit worth building: check your export not just in a desktop viewer but at the scale and on the kind of device your audience uses. A model that loads instantly on your workstation may crawl on a mid-range phone over mobile data, and a texture that looks crisp on a 27-inch monitor is wasted detail on a 6-inch screen. Open the GLB in a browser 3D viewer on your phone as well as your desktop; if it loads quickly and looks right on both, you’ve genuinely shipped a web-ready asset. When it’s sluggish, the fix is almost always size — head to reducing 3D file size and the Draco checkbox you may have skipped. Matching the export to the real viewing device, not just your own screen, is the difference between a model that impresses and one that frustrates.

Why this matters beyond Blender

The habit this builds — export deliberately, then verify in a neutral viewer — pays off no matter which tool you model in. Maya, Cinema 4D, SketchUp and CAD packages all have their own export quirks, but the principle is identical: apply transforms, choose glTF for the web, compress, and check the result somewhere that isn’t the program that made it. For the wider picture of which format to reach for and why native project files like .blend can’t simply be opened elsewhere, see the complete 3D file formats guide. Get the export right at the source and every downstream step — the website, the AR view, the client review — just works.

#export blender for web#blender gltf export#blender glb#blender to web#3d model export settings#blender webgl
S

sourcecodestack Team

We build free, privacy-first browser tools and write practical guides on how to use them. Everything runs on your device — no uploads, no sign-ups.

Keep reading