Skip to content

Last updated:

Changelog ​

v2.1.3 Latest ​

Buying a license, done in one place

  • One-click purchase inside the app: click "Open Purchase Page" on the Account page — your Device ID is attached automatically, pay by scanning the WeChat QR code, and your key is issued instantly. No ID copying, no waiting for a human — the whole flow takes under a minute
  • Key recovery made simple: after a reinstall, open the purchase page from the app and enter your Device ID to get your key back
  • The official purchase page only opens from inside the app — never pay through "purchase links" sent in private messages

v2.1.2 ​

Faster

  • Compression up to 8× faster — a 12 MB model that took nearly 6 seconds now finishes in under 1 second
  • Texture optimization 5× faster — multi-texture models drop from 6+ seconds to about 1 second
  • KTX2 conversion 13× faster — per-texture encoding falls from 6.6s to 0.5s, so batches no longer keep you waiting
  • Batch compression now uses all your CPU cores — over 2× faster on a 16-core machine

New: Announcements

  • New releases and important updates pop up right in the app
  • Click "Got it" and it never pops up again

Polished

  • Numbers and file names render crisply — no more inconsistent fonts
  • Unified colors and rounding across the app
  • Keyboard focus is easy to spot; honors your system "reduce motion" setting

Fixed

  • The "Learn more" link in the engine fallback notification no longer 404s

v2.1.1 ​

  • Fixed: the JSON editor area on the Data Tagging page rendered broken in the installed build (no height, no scrolling)
  • Fixed: some OBJ models failed to convert
  • Fixed: missing Start-menu and desktop icons after installation

v2.1.0 ​

Free mode: free forever, no time limit

  • The 6-hour trial is gone — the free tier is available forever: up to 20 MB per file (5 MB textures), batches of 5
  • 3D Viewer, screenshots, screen recording and operation history are free and unlimited for everyone
  • Licensed: 500 MB per file and unlimited batch size

New: Data Tagging

  • Attach business info to model nodes (equipment IDs, floors, SKUs, sensor IDs…) — readable by your frontend out of the box
  • Pick nodes from the tree or click them in the 3D viewport — you never lose track
  • One-click JSON export / import so your team can reuse the same tags
  • Stale tags left behind by deleted nodes are cleaned up automatically

3D Viewer enhancements

  • Section clipping: cut a model open to inspect its internals, with three axes and direction invert
  • Animation preview: play animations embedded in the model at 0.1x–3x speed
  • Dark and metallic materials stay readable without extra lights; floor and lighting are fully adjustable
  • Time-of-day lighting: simulate 24 hours of light for showcase recordings

Linux and macOS support

  • New Linux (deb / rpm) and macOS (dmg / drag-to-install) builds
  • In-app notification when a new version ships — never miss an update
  • Fixed inconsistent oversized-texture warnings and import dialogs

v2.0.1 ​

Full speed, even offline

  • Compression and transcoding no longer depend on any external website — faster and more reliable loads on intranets and offline machines

v2.0.0 ​

New: one-click scenario presets

  • Four built-in presets — Web showcase, mobile, industrial visualization, e-commerce — pick a scenario and get optimal settings
  • After import, Zipoly automatically recommends the best engine for your model

Two engines, one click apart

  • Draco for broad compatibility, Meshopt for higher compression; if Meshopt is unavailable Zipoly falls back to Draco automatically — your work never stops

Meshopt engine enhancements

  • Mesh simplification: further reduce polygons so low-end devices stay smooth
  • GPU instancing and node merging: even smaller files for repeated objects
  • Staged progress display so you always know where the compression is

KTX2 texture enhancements

  • New UASTC high-quality mode: near-lossless for detail textures like normals
  • Ten quality levels to balance size against fidelity yourself

Other

  • Installer size reduced by ~60% — faster to download and install
  • Fixed batch parameters not applying after switching engines

v1.0.2 Stable ​

New: Meshopt compression engine

  • A second engine with better compression ratio than Draco — one click to switch, automatic fallback when unavailable

New: KTX2 texture compression

  • GPU-native texture format — smaller files, faster loading
  • Optional Mipmap chain toggle saves another ~33%

New: Texture Optimization tab

  • Compress and resize loose PNG / JPG / WebP files, with KTX2 conversion

New: model health check

  • Automatic scan on import flags duplicate vertices, oversized textures, missing normals and more

v1.0.1 ​

  • New 24-hour time-of-day lighting and custom lights for richer showcases
  • New screenshot (PNG) and video recording (WebM) export
  • Batch compression now supports pause / resume / cancel
  • New advanced quantization panel (Draco only) for fine-grained control
  • Better handling of Chinese and special-character paths
  • Fixed errors when re-compressing an already compressed file

v1.0.0 ​

  • First release
  • Draco compression for glTF/GLB (levels 1–10)
  • Single-file and batch modes
  • Format conversion (OBJ / FBX / STL / DAE / PLY → GLB / glTF)
  • Texture optimization (auto downsampling + JPEG recompression)
  • Operation history (with parameter reuse)
  • Compression result comparison dialog
  • Built-in Three.js 3D viewer
  • Offline licensing (hardware-ID bound)

Zipoly Server ​

The server edition (private deployment for enterprises) versions independently from the desktop app. Release history below.

v2.1.0 (Server) ​

Conversion engine rebuilt (assimp 5.4.3)

  • assimp replaces the previous implementation; input: glb / gltf / fbx / obj / stl / dae / ply / vrm; output: glb / gltf / obj / stl(stlb) / ply(plyb) / dae
  • Fixed GLB→OBJ white-model issue and GLB degenerate faces

Texture optimization & KTX2

  • New texture optimization (single-image PNG / JPG / WebP processing)
  • KTX2 encoding (basisu 1.16): ETC1S / UASTC modes (both the compression path and single-image texture optimization), encode performance improved 45s → 15s
  • Meshopt UASTC mode supports texture quality levels (1–10 mapped to basisu -q)

Batch tasks deeply optimized

  • Batch ZIP downloads now built in memory with Stored compression, eliminating temp-file races — 25s → 2s
  • Download loading feedback, auto-completed compression params, download button appears when done

SSE real-time push

  • Task / batch status pushed in real time, replacing polling; automatic fallback to polling on disconnect
  • Backend supports direct CORS connections, fixing long-lived connection truncation through the Vite proxy

Configuration system

  • Config page truly reads/writes config.yaml (with BOM compatibility)
  • Data retention extended from 24h to 168h (7 days)
  • Completed system settings / service restart endpoints

Admin UI

  • Dashboard visual redesign, data fixes, hour-aligned chart axes, adaptive card heights
  • Task management adds GLB model preview (Three.js + Draco WASM local decoding)
  • Batch task / task list UI deep optimizations

Licensing

  • Verification switched to Ed25519 asymmetric signatures (same public key as license-server); activation state AES-256-GCM encrypted
  • Server-side license tiers: Free / Pro / Enterprise (reported via capabilities endpoint)

Docker delivery

  • Image tag: zipoly-server:2.1.0 (latest synced); release bundle = image tar + docker-compose.yml + Dockerfile + docker/ (config.yaml, entrypoint.sh, nginx.conf)
  • Dockerfile uses BuildKit build cache (npm / cargo registry / target mounts) for incremental rebuilds
  • Fixed cache mounts dropping binaries from the image layer (artifacts copied across stages via /out)
  • Data directory unified to /app/zipoly-data inside the container (uploads / results / SQLite); compose volume mounts aligned
  • Fixed API Key missing causing the container to keep Restarting (compose injects dev-api-key-123 by default; production must replace it with a strong key)

Fixes

  • Task list query missing owner_key_id field returned empty arrays
  • Task filenames lost after restart; task file residue cleanup
  • SSE global watch duplicate registration, fallback polling false triggers, useEventSource init timing
  • updateLicense request body field aligned with the backend (license_key)

v1.0.0 (Server) ​

  • Server edition first release
  • Desktop compression capabilities wrapped as a RESTful HTTP API (Draco / Meshopt compression, format conversion, texture optimization, model repair, health check, batch processing)
  • Single-container Docker deployment (Rust/Axum backend + nginx reverse proxy) with a built-in web admin console
  • API Key auth, rate limiting, input validation and other security measures
  • Trial mode + License Key activation

Built for Web3D developers