# Free in-browser GLB compressor with a Babylon.js before/after viewer (meshoptimizer, Draco, WebP)

**URL:** <https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421>\
**Category:** Demos and projects\
**Created:** [October 26, 2026, 11:44am UTC](https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421 "2026-10-26T11:44:20Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![almighty3d](https://avatars.discourse-cdn.com/v4/letter/a/b9bd4f/32.png) [@almighty3d](https://forum.babylonjs.com/u/almighty3d)\
**Post date:** [October 26, 2026, 11:44am UTC](https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421/1 "2026-10-26T11:44:20Z")

</div>

Hi all! In the Almighty thread people kept asking for lighter files, so we turned that export pipeline into a free tool anyone can use on their own GLBs:

> **[GLB Compressor: Reduce GLB File Size Online | Almighty](https://almighty.you/glb-compressor?utm_source=babylonjs-forum&utm_medium=community&utm_campaign=glb-compressor)**
>
> Compress a GLB file in your browser: reduce triangles with meshoptimizer, resize textures and convert them to WebP, add Draco geometry, then compare both in 3D before you download. Keeps rigs and animations. Free, no upload, up to 150 MB.

Drop a .glb and it shows a model report, lets you pick a budget, and compresses it in a Web Worker on your own machine (nothing is uploaded). Then you flip between Original and Compressed on a Babylon.js 9 stage, shaded or in wireframe, before you download.

 ![compress-example](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/5/d/5d7aeac3f462b3754236ee163e40e051702066ae.jpeg)

**What it does**

- **Report** , read from the GLB’s JSON chunk and the image headers without decoding anything: triangles as drawn, draw calls, every texture’s format, resolution and bytes, animations, joints, dimensions, extensions, and where the bytes go.
- **Triangles** : gltf-transform’s simplify() with meshoptimizer’s simplifier, one ratio for the whole model. Seams collapse only along the seam, so textures stay where they were painted, and skin weights ride along, so rigged models keep their skeleton and clips. It is decimation, not retopology: no clean edge loops (Pryme8 made exactly that point in the other thread).
- **Textures** : OffscreenCanvas inside the worker resizes and re-encodes them to WebP, or to PNG/JPEG for the “opens everywhere” preset. Safari can’t encode WebP, so there it writes JPEG/PNG and says so. KTX2 is left untouched.
- **Geometry** : Draco with Babylon’s own encoder build (draco\_encoder\_wasm\_wrapper.js + .wasm), served same-origin and loaded with importScripts, so the CSP stays tight. Draco and meshopt input is decoded with Babylon’s Draco decoder and meshoptimizer’s decoder.

**Presets** : Compact (about 100K triangles, 1K WebP, Draco: for Babylon.js, three.js with DRACOLoader, PlayCanvas) and Opens everywhere (about 200K triangles, PNG/JPEG up to 2K, no extensions, for Blender, Unity, Godot). Or set your own.

**Measured** : the statue in the image went from 57.2 MB and 1,916,376 triangles to 753 KB and 99,998 triangles in 1.3 s (Chrome on a Mac). On the live site today, a 6.5 MB Draco model with 1.86M triangles came down to 548 KB in 4.6 s.

It’s free and needs no account. I’d love to hear which outputs would actually help your pipelines (KTX2? EXT\_meshopt\_compression output? a particular triangle budget?), and where it breaks on your files.

---

<div class="post-metadata">

**Author:** ![AncientA](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/ancienta/32/46615_2.png) [@AncientA](https://forum.babylonjs.com/u/AncientA)\
**Post date:** [October 26, 2026, 1:47pm UTC](https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421/2 "2026-10-26T13:47:00Z")

</div>

Amazing 🤩

Just when I bought a low-poly hat pack on Unity Asset store, and thinking how to add to CosmoKick while keeping my bundle size small, you post this 😃

I’ll be using this for sure, thanks for making it free and available to everyone!

---

<div class="post-metadata">

**Author:** ![sundflux](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/sundflux/32/52272_2.png) [@sundflux](https://forum.babylonjs.com/u/sundflux)\
**Post date:** [October 26, 2026, 10:43pm UTC](https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421/3 "2026-10-26T22:43:05Z")

</div>

Man, this was great!

I didn’t notice anything breaking with animations either, and although triangle drop wasn’t dramatic, at this point I take any optimizations! 😃 Textures optimization was the winner here, download size went to 10% of the original!

 ![image](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/2/3/23d10971f4c6af3658b7b23a8ddb27f7afd7d4c4.png)

Used for Washoi’s player model:

> [@Washiki Washoi! a browser arena FPS](https://forum.babylonjs.com/t/washiki-washoi-a-browser-arena-fps/64408):
>
> Hey everyone! I wanted to share Washiki Washoi!, or Washoi for short: a free multiplayer arena FPS I’m building with TypeScript and Babylon.js. Currently in somewhere between alpha/beta, but mostly everything works. I grew up playing Quake and spent years contributing to Warsow, so fast movement and colourful arenas have been occupying my brain for quite a while. Washoi brings that background into the browser: open a link, join a match, and start playing. You get bunny hopping and air control…

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/2X/6/65968d62f456031dabf0693d50ca930df25bf2ef.png) [@system](https://forum.babylonjs.com/u/system)\
**Post date:** [November 1, 2026, 1:41am UTC](https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421/4 "2026-11-01T01:41:04Z")

</div>

Unlisted on November 1, 2026, 1:41am UTC



---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/2X/6/65968d62f456031dabf0693d50ca930df25bf2ef.png) [@system](https://forum.babylonjs.com/u/system)\
**Post date:** [November 2, 2026, 10:29am UTC](https://forum.babylonjs.com/t/free-in-browser-glb-compressor-with-a-babylon-js-before-after-viewer-meshoptimizer-draco-webp/64421/5 "2026-11-02T10:29:32Z")

</div>

Listed on November 2, 2026, 10:29am UTC


