3D ToolingWebGLDeveloper Tool

ShrinkModel

Compress heavy 3D models, then walk through the result side by side with the original.

Role
Engineering & 3D pipeline design
Industry
3D & creative tooling
Timeline
10 weeks
Scope
Compression · Comparison · Viewer
Platform
Web – Pipeline · Viewer
Status
Internal tool

Overview

The story in brief

ShrinkModel is a web application for compressing 3D models – and for proving the compression held up. Upload a heavy model, tune how aggressively meshes and textures are optimized, then open the original and the compressed result in two viewers side by side and judge the difference for yourself.

Both frames support first-person mode, so you can walk through the compressed model exactly as you would the original. For environment and property creators, that walk is the real quality check: detail that survives a screenshot often falls apart at eye level.

It works just as well as a viewer alone. Plenty of sessions never compress anything – they open a model in the browser and walk it.

02

The challenge

Production 3D assets routinely run to hundreds of megabytes, and compressing them is a leap of faith: the size drops, but nobody can say what it cost until the model is back in a scene.

Naive compression destroys exactly what creators need – silhouettes, surface detail, texture fidelity. A single-frame preview hides that, because there's nothing to hold it against.

Judging a 3D environment from the outside misses the point. Creators experience their work from inside it, and quality problems only show up at walking height and walking distance.

03

The approach

We built compression as a tunable pipeline: mesh decimation and texture optimization run with adjustable presets, so the operator chooses the trade-off between size and fidelity per asset – and sees the result before committing.

Comparison is the product's other half. Original and compressed load into two synchronized frames, so the difference is visible directly rather than remembered between two separate loads.

First-person navigation puts creators inside the model. Environment and property builders walk the compressed scene at human scale, which is the only way to catch what a static preview politely hides.

Every processed asset keeps its lineage – source, settings, and output size – so teams can reproduce a result or step back to the original at any time.

04

What we built

The pipeline, the two frames, and the walkthrough that proves the compression held.

01compress

Mesh decimation

Polygon reduction with controllable intensity – shrink dramatically while preserving silhouette and form.

02texture

Texture optimization

Textures are resized and re-encoded to GPU-friendly formats, often the biggest single saving in the file.

03tune

Quality presets

Preview, review, and archive presets encode sensible trade-offs – with per-asset overrides when a model needs care.

04view_in_ar

In-browser viewer

Models open directly in the browser – no plugins, no desktop software. Use it to compress, or just to view.

05directions_walk

First-person walkthrough

Walk the model at human scale instead of orbiting it – how environment and property creators actually judge their work.

06compare

Side-by-side comparison

Original and compressed open in two frames at once, so what the optimization cost is visible rather than remembered.

07stacks

Batch processing

Queue whole asset sets through the same settings – consistent results across a project without per-file babysitting.

08share

Shareable links

Every processed model gets a link that opens straight into the viewer – reviews start in one click.

01 / 08
05

Under the hood

Hover a stack group to trace its path in the system

Next.js
React
NestJS
Docker
Viewer
Three.jsReactWebGL
Upload console
ReactVite
Pipeline API
Node.jsglTF toolchain
Processing
DracoKTX2 / Basis
Infrastructure
DockerObject storageCI/CD

Architecture

  • conversion_pathCompression runs as queued pipeline jobs, so heavy processing never blocks uploads and batches scale horizontally.
  • conversion_pathThe viewer streams compressed glTF with Draco and KTX2 payloads, keeping first render fast even on modest connections.
  • conversion_pathEvery output stores its source and settings lineage, making results reproducible and originals always recoverable.
06

The outcome

75%

Typical size reduction

10 wks

Build timeline

2 frames

Original · Compressed, side by side

0

Installs needed to view

Compression stopped being a leap of faith: original and compressed sit side by side, so the cost of every setting is visible before anything ships.

Environment and property creators walk the compressed model in first person and judge it the way their audience will experience it.

Heavy 3D assets open in a browser – to compress, or simply to view and explore, with originals always one step away.