Skip to main content

GLB Export Optimizer for Mascot Models

Project description

GLB Export Optimizer for Mascot Models

Cleans up Blender files and exports optimized GLB for web delivery.

uvx notso-glb [OPTIONS] FILE

Screenshot with cli options

PyPI Downloads License Python 3.11

Install

uv tool install notso-glb
# Or install directly from GitHub:
uv tool install -p3.11 git+https://github.com/kjanat/notso-glb

then just run notso-glb from the command line.

Upgrade

uv tool upgrade notso-glb

Features

Optimizations:

  • Detects bloated props (high-vert non-skinned meshes, repetitive geometry)
  • Detects skinned meshes with non-root parents (glTF spec issue)
  • Detects unused UV maps (TEXCOORD bloat)
  • Detects duplicate names and sanitization collisions
  • Removes unused vertex groups (bone weight bloat)
  • Marks static bones as non-deform (animation bloat)
  • Removes bone shape objects (Icosphere artifacts)
  • Resizes textures to max 1024px (optional POT enforcement)
  • Exports with Draco mesh compression
  • Exports with WebP textures

Bloat Detection:

  • CRITICAL: Props >2000 verts, repetitive detail (many islands with high verts)
  • WARNING: Props >1000 verts, scene total >15000 verts, non-root skinned meshes

Experimental Auto-fix (--autofix):

  • BMesh cleanup (remove doubles, degenerate geometry, loose verts)
  • Decimate bloated props to ~1600 verts
  • Auto-rename duplicate objects/meshes/materials/actions (using pointer ID)
  • Remove unused UV maps

Usage

See CLI.md

Requirements

  • Blender 5.0+
  • Python 3.11 (same as bundled with Blender)
  • uv (optional, for easy install/upgrade)
  • gltfpack (optional, for extra compression - WASM fallback included)

Development Setup

For local development, download the gltfpack WASM binary:

# Download latest WASM from npm
uv run scripts/update_wasm.py

# Or check current version
uv run scripts/update_wasm.py --show-version

# Download specific version
uv run scripts/update_wasm.py --version 1.0.0

The WASM binary (src/notso_glb/wasm/gltfpack.wasm) is not committed to git and must be downloaded locally. CI/CD pipelines handle this automatically.

Useful Links

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

This project uses Blender as a Python module (bpy), which is also GPL-3.0 licensed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notso_glb-0.1.0.tar.gz (150.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notso_glb-0.1.0-py3-none-any.whl (161.2 kB view details)

Uploaded Python 3

File details

Details for the file notso_glb-0.1.0.tar.gz.

File metadata

  • Download URL: notso_glb-0.1.0.tar.gz
  • Upload date:
  • Size: 150.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for notso_glb-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d79d06667d87a8af63856b1434bf1be28f2e3a5f833d11276904ff1b748b6aed
MD5 8c4d56623ddc2e4c26be5cc6123027df
BLAKE2b-256 b5ae36660389bda9396a06fb55a08ba963b0519b6fb9a50e8947f9f34cb6209a

See more details on using hashes here.

File details

Details for the file notso_glb-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: notso_glb-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 161.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for notso_glb-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d849f89d484615f07ad47de5f4061102bfb44c8dddafecc19118c4256f64f7c7
MD5 498dada3d111c8fc22b9db88decf768b
BLAKE2b-256 442ee34ea6e7f05ed5396d5859631893f3eedfa824de0714ae45c2e54bfc2218

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page