explaingit

boona13/glb-shrink

Analysis updated 2026-05-18

119TypeScriptAudience · vibe coderComplexity · 2/5LicenseSetup · easy

TLDR

A browser tool that shrinks 3D model files down to a fraction of their size for use in games and apps.

Mindmap

mindmap
  root((GLB Shrink))
    What it does
      Compresses 3D models
      Drag and drop UI
      Side by side preview
    Tech stack
      TypeScript
      Vite frontend
      Express backend
      Draco encoding
    Use cases
      Game asset prep
      AR and VR assets
      Web 3D optimization
    Audience
      Vibe coders
      Game developers
    Compatibility
      Three.js
      Unity
      Godot

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Shrink a large AI-generated 3D model down to a size suitable for a web or mobile game.

USE CASE 2

Compress scanned 3D assets before importing them into Three.js, Unity, or Godot.

USE CASE 3

Compare before and after quality of a compressed model in the side-by-side preview.

What is it built with?

TypeScriptViteExpressThree.jsDracoWebP

How does it compare?

boona13/glb-shrinkmoney-takers/polymarket-arbitrage-trading-botonfable/onfable
Stars119119120
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasymoderateeasy
Complexity2/53/53/5
Audiencevibe coderdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

GLB Shrink is a web application for compressing 3D model files so they are small enough to use in games, apps, websites, and augmented or virtual reality experiences. A GLB file is a common 3D model format used by game engines, web browsers, and AR platforms. AI-generated and scanned 3D models often come out of creation tools at sizes between 5 and 60 megabytes with millions of triangles, which is too large for real-time use. GLB Shrink reduces them significantly: the example in the README shows a 58-megabyte model compressed to 869 kilobytes, a 99% reduction. The tool runs in a browser. You drag and drop a GLB file, it loads a side-by-side 3D preview, you choose a quality preset (smallest file, balanced, or sharpest), click compress, and then download the smaller result. The preview lets you compare the before and after versions interactively by rotating both models. Behind the scenes, the compression pipeline removes redundant geometry, simplifies the mesh down to fewer triangles, converts textures to the WebP image format, and applies Draco encoding, a format designed for efficient transmission of 3D geometry data. The resulting files work in Three.js, Unity, Unreal Engine, Godot, and other major real-time 3D environments. Running it locally requires Node.js 18 or later. The project uses Vite for the frontend and an Express server for the backend API that handles the actual compression work. The quality presets are designed so you do not need to understand technical parameters. The slider between presets shows plain-language hints to guide your choice. The project was built as part of a Three.js game called ThreeShaders and adapted into a standalone tool. It is released under the MIT license.

Copy-paste prompts

Prompt 1
Explain what the balanced quality preset in this tool actually changes about my 3D model file.
Prompt 2
Walk me through compressing a 58 megabyte GLB file with this tool and getting it under 1 megabyte.
Prompt 3
How would I run this project locally with Node.js so I can compress models offline?
Prompt 4
Explain how Draco encoding and WebP textures work together to shrink a GLB file in this repo.

Frequently asked questions

What is glb-shrink?

A browser tool that shrinks 3D model files down to a fraction of their size for use in games and apps.

What language is glb-shrink written in?

Mainly TypeScript. The stack also includes TypeScript, Vite, Express.

What license does glb-shrink use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is glb-shrink to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is glb-shrink for?

Mainly vibe coder.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.