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-datainside the container (uploads / results / SQLite); compose volume mounts aligned - Fixed API Key missing causing the container to keep Restarting (compose injects
dev-api-key-123by 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