Two ways to use ZeroLOD: the web demo for quick tests, and the CLI for studio pipelines.
Web demo
zerolod.gamecraft.se
Drop a mesh, get a ZIP. No install. Rate-limited to 1 job / 30 min. 5 MB max.
Studio CLI
Runs on your machine
Unlimited file size. Pipeline runs locally — no cloud wait. Requires a studio license key.
Need a studio license? alexander@gamecraft.se
The CLI runs the full 6-platform pipeline locally on your machine. Processing time depends on your hardware — no upload wait, no cloud queue.
git clone https://github.com/alxmss/LODBottleneckFactory pip install -e .
zerolod hero_character.glb --key YOUR_STUDIO_KEY
Output is written to ./zerolod_out/hero_character_lods.zip by default. Store your key in the ZEROLOD_KEY env var to keep it out of shell history.
| Flag | Default | Description |
|---|---|---|
| --key | ZEROLOD_KEY env | Studio license key |
| --preset | balanced | Decimation preset (see below) |
| --out | ./zerolod_out | Output directory |
| --api | https://zerolod-api.fly.dev | API base URL (override for staging) |
| balanced | Default. General-purpose across all 6 platforms. |
| mobile | Prioritises polygon reduction for mobile targets. |
| aggressive | Maximum decimation, looser seam tolerance. |
Platform Faces QA Iters Result ------------------------------------------------ pc 19636 0.0012 1 PASS ps5 11781 0.0031 1 PASS xbox 11781 0.0031 1 PASS switch 4909 0.0089 2 PASS ios 2945 0.0142 1 PASS android 2945 0.0142 1 PASS Bundle saved to: ./zerolod_out/hero_character_lods.zip
Both the CLI and the web demo produce the same ZIP format.
{asset_name}_lods.zip
├── lods/
│ ├── {asset_name}_pc.glb
│ ├── {asset_name}_ps5.glb
│ ├── {asset_name}_xbox.glb
│ ├── {asset_name}_switch.glb
│ ├── {asset_name}_ios.glb
│ └── {asset_name}_android.glb
├── qa_report.json
├── heatmaps/
│ ├── view_00.png … view_11.png
│ ├── contact_sheet.png
│ └── worst_view.txt
└── report.html (self-contained QA report)Use the REST API to integrate ZeroLOD into your own tooling. The web demo uses these same endpoints.
https://zerolod-api.fly.dev
Upload a mesh and start the cloud pipeline. Returns a job_id immediately. No API key required — rate limited to 1 job / 30 min per IP. 5 MB file size limit.
| Field | Required | Description |
|---|---|---|
| file | yes | Mesh file — OBJ, GLB, GLTF, PLY, STL, FBX |
| yes | Download link sent here when job completes | |
| preset | no | balanced (default) · mobile · aggressive |
| studio_profile_id | no | Pre-onboarded studio constraint profile ID |
{ "job_id": "3f2a1c...", "status": "processing", "asset_hash": "sha256:..." }| 200 | Ready — body is the ZIP file |
| 202 | Still processing — poll again in 3 s |
| 422 | Pipeline failed — body contains detail |
| 404 | Job not found |
Called automatically by the CLI before each run. You can also call it directly to verify a key or integrate license checking into your own tooling.
{
"key": "YOUR_STUDIO_KEY",
"asset_name": "hero_character",
"asset_hash": "sha256:...",
"face_count_source": 19636
}{ "ok": true, "studio_id": "acme_games", "message": "License valid." }Returns 401 if the key is unknown or revoked.
# Submit (web API, max 5 MB)
curl -X POST https://zerolod-api.fly.dev/jobs \
-F "file=@crate.glb" \
-F "email=you@studio.com"
# → { "job_id": "abc123", ... }
# Poll until ready
curl https://zerolod-api.fly.dev/jobs/abc123/download \
--output crate_lods.zipUpload a ZIP of 2–20 reference meshes (OBJ, GLB, PLY, STL) from your existing pipeline. ZeroLOD extracts your studio's topology style and constraint profile, which is applied automatically when you pass studio_profile_id to /jobs or --studio to the CLI. Requires a studio license key in the Authorization header.