untoldengine/UntoldEngine
Swift + Metal 3D engine for macOS, iOS, and visionOS — with native Apple Vision Pro support and a growing focus on spatial computing. Built for developers who want full control over the rendering pipeline.
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Add vision light probes (b2d1ff9…)
- [Patch] Added xr light probe contribution factor (708c22d…)
- [Patch] Add virtual light (c1cf311…)
- [Patch] Updated Engine API v2 (d9c6e57…)
- [Patch] processAnchoredPinchDragLifecycle now supports dragPlane (be493f2…)
- [Patch] Implemented the recursive material opacicty fix (adea187…)
- [Patch] Added support for drag-snapping (f4f4647…)
- [Patch] Route XR lighting through rendering settings (9bfe031…)
- + 5 more
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Added tile preview overlay for blender (4a31132…)
- [Patch] Add Blender tiled-scene metadata and LOD preview tools (2c1878a…)
- [Patch] Fix lod/hlod distances (1a77470…)
- [Patch] Improved lod overlay for uniform grid (e56c488…)
- [Patch] Fix LOD/HLOD gen for spanning tiles and add force_local override (0d3d544…)
- [Patch] Use manifest cell_bounds for tile debug overlay (31a9340…)
- [Patch] Updated the default values in the overlay (5097b7f…)
- [Patch] Tile Floor Fill visibility toggle (9092aea…)
- + 28 more
📝 📚 Docs
- [Docs] Updated add-on script documentation (fa46413…)
- [Docs] Updated docs with example (b4db01e…)
- [Docs] Updated documentation (5ada000…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Implemented MSAA (ec63a6c…)
- [Patch] Fixed no entity found error messages (c07c3bc…)
- [Patch] Fixed streaming swap warning messages (60676fe…)
- [Patch] Implemented splats TBDR (ecec3b9…)
- [Patch] Removed legacy gaussian splat architecture (29c74b7…)
- [Patch] Added pick participation channel (5ca25d5…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Derive batch cell size from actual tile extents in quadtree/KD-tree manifests (86c00bf…)
- [Patch] Fix shadows for non-streaming models (777f203…)
- [Patch] Implemented depth-only SSAO (531b573…)
- [Patch] Updated tests for TBDR (9958ca2…)
- [Patch] Add ghost mode channel (f73c5df…)
- [Patch] plane detection for XR (1411624…)
- [Patch] fixed render debug targets (4ea1251…)
📝 📚 Docs
- [Docs] Updated documentation (c382a09…)
✨ 🚀 Features
- [Feature] Implemented TBDR into the engine. (ad52436…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Added occlusion debug viewer (36160da…)
- [Patch] Hierarchy-aware tile culling (5a47bb2…)
- [Patch] Added ancestor walk to hierarchy occlusion (49fd65b…)
- [Patch] Use a closest-point to parent AABB (43a84b6…)
- [Patch] Implemented kd-tree partitioning (06fcc75…)
- [Patch] Improved per-cascade shadow distance (0645690…)
- [Patch] [Patch] Fix hierarchy culling ID format and replace hard-skip with penalty (dcd21ba…)
📝 📚 Docs
- [Docs] Updated the docs (07c55ed…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Fixed stream profiler (abd8e4b…)
- [Patch] Fixe active count in profiler (bd52558…)
- [Patch] Spread tile stub registration across frames to eliminate stall (9ff304f…)
- [Patch] Skip transform recomp for static entities using a dirty flag (6bb82f4…)
- [Patch] Skip traverseSceneGraph entirely when no transforms are dirty (a5b4d5b…)
- [Patch] Updated scene channel funcion api (0b2abbf…)
📝 📚 Docs
- [Docs] Update profiler documentation (087575c…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Fix tile streaming fallback coverage for LOD/HLOD scenes (275ee1d…)
- [Patch] Added dedicated log categories (1cc3ffb…)
- [Patch] Fix shadow caster selection (5c0abad…)
- [Patch] Added a static batching logger (e141c63…)
- [Patch] Improve XR static batching performance and diagnostics (7dde7e0…)
- [Patch] Implemented wireframe render mode (5094934…)
- [Patch] Apply platform-appropriate batching tuning preset automatically at engine init (04b3b49…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Add scene channels for selectable and context geometry visibility (2c9217d…)
📝 📚 Docs
- [Docs] Updated documentation (cbade44…)
📋 Changes
- File > Export > Untold (.untold)
- File > Export > Untold Animation (.untold)
- File > Export > Untold Tiled Scene
🐛 🐞 Fixes
- [Patch] Fix transparency bug (6a51e40…)
- [Patch] Exposed mesh properties as public (f9dc13e…)
- [Patch] LOD Throttle Fix (b9d35ba…)
- [Patch] Add camera-distance culling for shadow casters (80ea02c…)
- [Patch] Move Metal buffer creation outside world mutation gate in loadMeshAsync (da82f34…)
- [Patch] Skip redundant batch removal and dirty for unbatched LOD entities (b133eea…)
- [Patch] initial plugin export (ea700d3…)
- [Patch] Added animation blender pluging (20d1b15…)
- + 2 more
📝 📚 Docs
- [Docs] Added blender plugin documenation (828c932…)
🐛 🐞 Fixes
- [Patch] Added AA parameters to serializer (3d81b55…)
- [Patch] Set ambient default value to 0.4 (c5a72a2…)
- [Patch] Use recursive traversal for derived asset node ids in serialization (41acc07…)
- [Patch] Route native OCC stubs through child entities (e1b2935…)
- [Patch] Reimplented setEntityMesh (6250f0a…)
- [Patch] Added radii to structured content to stream system (5392935…)
- [Patch] Stabilize tiled streaming world mutations (e3436fd…)
- [Patch] Guard floor-proximity gate on interior tiles only (ec4a36c…)
- + 12 more
📝 📚 Docs
- [Docs] Updated streaming docs (ed14520…)
🐛 🐞 Fixes
- [Patch] Replace FXAA toggle with anti-aliasing mode selector (0111454…)
- [Patch] Added a FXAA debug texture view (00dd9f5…)
- [Patch] Added MSAA anti-aliasing - WIP (50d4733…)
- [Patch] Improve SMAA diagonal and corner handling (552884b…)
- [Patch] Exposed setSceneScale API (37fed13…)
- [Patch] Refresh scene-root transform in rendering loop (cc87a41…)
- [Patch] added function to force unload all parsed tiles (43e27fa…)
- [Patch] Fixed horizontal plane detection (5e2c088…)
📝 📚 Docs
- [Docs] Updated streaming system docs (cbc9648…)
- [Docs] Updated rendering docs (a521557…)
- [Docs] Updated exported documentation (ccc4dc4…)
🐛 🐞 Fixes
- [Patch] Fix SSAO floating in XR (9a0fba5…)
- [Patch] Fix DoF depth linearization for reverse-Z (Vision Pro) (79512a3…)
- [Patch] Bloom threshold samples full HDR scene, not emissive-only (0652749…)
- [Patch] Fix DoF bokeh aspect ratio — radius now in pixel space (ebd36b0…)
- [Patch] Replace DoF ring sampling with Vogel disc pattern (16 samples) (947fe23…)
- [Patch] Fix chromatic aberration aspect ratio and redundant samples (e9f35bb…)
- [Patch] Fix vignette shape — circular not elliptical on wide screens (1559ede…)
- [Patch] Wider bloom blur — 9-tap Gaussian kernel, 4 passes, radius 6 (6af62db…)
- + 23 more
📝 📚 Docs
- [Docs] Updated static batching docs (4471b07…)
- [Docs] Updated readme (476056e…)
- [Docs] Updated licenses (9dc3f6d…)
- [Docs] Updated documents (136d8a1…)
- [Docs] Updated readme (434274c…)
- [Docs] Moved documentation to use mkdocs (811d032…)
- [Docs] point to stable release (89c56b7…)
- [Docs] Added load scene docs (cd0a8eb…)
- + 1 more
🐛 🐞 Fixes
- [Patch] Made fxaa pass public (736ec7b…)
🐛 🐞 Fixes
- [Patch] Add pre-upload tile size/budget diagnostic, device mem profile (81b78dc…)
- [Patch] Dump memory budget snapshot on OS memory pressure warning (55995c3…)
- [Patch] implemented FXAA (39d81f8…)
- [Patch] Improved FXAA (ef04700…)
🐛 🐞 Fixes
- [Patch] Fix FrameMetricsCollector data race; expand signpost coverage (e59e1b1…)
- [Patch] Add screen-space importance sort to GeometryStreamingSystem (b543024…)
- [Patch] Guard LOD array bounds & component registration tile LOD loading (4622256…)
- [Patch] Eliminate race window on pendingPressureRelief throttle bypass (3ff04dc…)
- [Patch] Initialize TextureStreamingSystem Metal resources at startup (7db5b7f…)
- [Patch] Distinguish cold rehydration failure modes with separate err msg (0b00ce2…)
- [Patch] Guard TileLODTagComponent registration in H/LOD load completion (6ef2523…)
- [Patch] Route streaming error logs through ErrorHandlingSystem. (91aa8ad…)
- + 1 more
📝 📚 Docs
- [Docs] Updated read me with editor links (37d3b01…)
- [Docs] Added new xr video to readme (ac49e2f…)
- [Docs] Updated architecture and API docs (4e35fe6…)
🐛 🐞 Fixes
- [Patch] Improved ECS query (7d79114…)
- [Patch] Fixed per mesh uniform buffer (31bdcf3…)
- [Patch] Enabled optimized frustum (ce44b86…)
- [Patch] Fix fps profiler (7a46cce…)
- [Patch] Added load scene func in Build System (fee5a6a…)
- [Patch] Added Post FX helper functions (fc00d10…)
- [Patch] Fix transform for armature in exporter (b5051aa…)
- [Patch] Added function to get asset url (7ef9e4f…)
📝 📚 Docs
- [Docs] Added documentation for the Logger system (45be832…)
Untold Engine v0.12.6 is now available. -------------------------------------------------- Getting Started -------------------------------------------------- Clone the repository and run the demo project: git clone https://github.com/untoldengine/UntoldEngine.git cd UntoldEngine swift run untoldsandbox This will build the engine and launch the demo using Swift Package Manager. -------------------------------------------------- Using Untold Engine in Your Project -------------------------------------------------- Untold Engine can be added to your own projects as a Swift Package dependency: https://github.com/untoldengine/UntoldEngine Refer to the README for setup instructions and examples. -------------------------------------------------- Documentation & Resources -------------------------------------------------- Repository: https://github.com/untoldengine/UntoldEngine README: https://github.com/untoldengine/UntoldEngine/blob/develop/README.md GitHub Discussions: https://github.com/untoldengine/UntoldEngine/discussions -------------------------------------------------- Changes in this Release --------------------------------------------------
Untold Engine v0.12.5 is now available. -------------------------------------------------- Getting Started -------------------------------------------------- Clone the repository and run the demo project: git clone https://github.com/untoldengine/UntoldEngine.git cd UntoldEngine swift run untoldsandbox This will build the engine and launch the demo using Swift Package Manager. -------------------------------------------------- Using Untold Engine in Your Project -------------------------------------------------- Untold Engine can be added to your own projects as a Swift Package dependency: https://github.com/untoldengine/UntoldEngine Refer to the README for setup instructions and examples. -------------------------------------------------- Documentation & Resources -------------------------------------------------- Repository: https://github.com/untoldengine/UntoldEngine README: https://github.com/untoldengine/UntoldEngine/blob/develop/README.md GitHub Discussions: https://github.com/untoldengine/UntoldEngine/discussions -------------------------------------------------- Changes in this Release --------------------------------------------------
🐛 🐞 Fixes
- [Patch] Updated build templates to use recent api for streaming (7221b11…)
- [Patch] Added additional profiles to TextureStreamingSystem (58a4b07…)
- [Patch] Multi-node scene no longer hijacks caller entityId (b9f5f5b…)
- [Patch] Updated the build system template (c744685…)
- [Patch] Fixed serializer to use new asset format (6041fbd…)
- [Patch] fixed project cli script (97ee35d…)
- [Patch] Fix project script create (b58690b…)
📝 📚 Docs
- [Docs] Updated docs API and Architecture (b2295fe…)
- [Docs] Updated exporter docs to include new flags (47b6aa8…)
🐛 🐞 Fixes
- [Patch] added entity to loadTileScene (ef8ecb3…)
- [Patch] Renamed loadTileScene as setEntityStreamScene (c88cbe3…)
🐛 🐞 Fixes
- [Patch] Fix path traversal in remote texture disk cache (e4773fb…)
- [Patch] Enforce HTTPS for remote manifest and tile downloads (091560e…)
- [Patch] Fixed animation to use new asset format (47d14c8…)
- [Patch] Fixed unconditional bisect partition (1e5ca18…)
- [Patch] Fixed mip-map selection for small models (b094b45…)
- [Patch] Added options to partition and export fractions of a scene (9d69282…)
- [Patch] Fixed frustum culling count report for XR (9052ddd…)
- [Patch] Fixed HZB occlusion in XR (736e7f7…)
- + 8 more
🐛 🐞 Fixes
- [Patch] Fixed exporter UV issues (4e5da7f…)
- [Patch] Fixed texture encoding in exporter (5313ee7…)
- [Patch] Improved the exporting speed. (7f14373…)
- [Patch] Fixed grayscale textures rendering red in engine (a0c0f00…)
- [Patch] Fixed 16-bit sRGB textures saving with wrong view transform (fe33c36…)
- [Patch] Ignore exr textures during export (e9981ac…)
- [Patch] Implemented LZ4 compression (7095b8d…)
- [Patch] Added ASTC texture pipeline to engine. (6cd4dda…)
📝 📚 Docs
- [Docs] Updated logo image (d4a5faf…)
- [Docs] Added LZ4 documentation (bf231ab…)
🐛 🐞 Fixes
- [Patch] improved the tile-streaming system (c09bb2c…)
- [Patch] Cluster-level frustum culling and tile-local batch promotion (5495691…)
- [Patch] Add HZB occlusion culling for batch groups (9df345f…)
- [Patch] Implemented HLOD support (937647b…)
- [Patch] Resolve render-loop freeze from hung ModelIO loadTextures() call (232b3c2…)
- [Patch] Implemented per tile LOD (c61e4de…)
- [Patch] Force-release AssetLoadingGate when HLOD/LOD entity is torn down (4abd9a8…)
- [Patch] Cap concurrent LOD loads and prevent render stall on LOD assets (3c9db7d…)
- + 15 more
📝 📚 Docs
- [Docs] Updated docs related to streaming (ced07ab…)
✨ 🚀 Features
- [Feature] Implement v1 remote asset streaming over HTTP (799b803…)
🐛 🐞 Fixes
- [Patch] Modify build system with new functions (2ef3bf6…)
- [Patch] Fixed concurrency swift 6 issue (f431f47…)
- [Patch] Added guard to avoid creation of zero dim texture (972c139…)
- [Patch] Consolidate loadScene as the primary scene entry point (8befb7b…)
- [Patch] fixed xr ooc crash issues with large models. (a3e42a3…)
- [Patch]Added xrCamera logging message (832c72f…)
📝 📚 Docs
- [Docs] Updated documents (446dcd9…)
- [Docs] Updated readme (291c8f6…)
- [Docs] added link to showcase (5791988…)
🐛 🐞 Fixes
- [Patch] Request world sensing authorization before starting ARKit session (31eac96…)
- [Patch] fix camera orbit function (0099534…)
- [Patch] Fixed issues with texture streaming and batch system (ff3856b…)
- [Patch] Added stream texture debugger (1a0638e…)
- [Patch] Implemented progressive asset loader (123f5ac…)
- [Patch] Modified the min and max for texture streaming (a36344e…)
- [Patch] Fixed issue with progressive loading in XR (45ba06c…)
- [Patch] First implementation of out-of-core (2e5e01e…)
- + 17 more
📝 📚 Docs
- [Docs] Added system architecture docs (e52dc7a…)
- [Docs] Update progressive asset loading docs (85428b7…)
- [Docs] Updated documentation (5ef25bb…)
- [Docs] Updated Out of core docs (e225123…)
🐛 🐞 Fixes
- [Patch] fixed texture streaming (f676f75…)
🐛 🐞 Fixes
- [Patch] initial cell-based static batch system (7574378…)
- [Patch] Cell-based static batch visualizer (2159ff1…)
- [Patch] Implemented cell based static batching (6fee69a…)
- [Patch] Fixed end submission warning visionpro (575d382…)
- [Patch] Reduced render target memory (4cc7e42…)
- [Patch] Implemented mip-map texture streamming (9e77006…)
- [Patch] set lower resolution mip-map for visionpro (dfeb928…)
- [Patch] Fix aabb-world calcuation (12f51f4…)
- + 3 more
🐛 🐞 Fixes
- [Patch] Fix easy Sendable/static-value issues (4b3e497…)
- [Patch] Initial migration to swift 6.0 (8f1e6e9…)
- [Patch] Phase 2 for migration to swift 6.0 (e32e826…)
- [Patch] Phase 3 for migration to swift 6.0 (344cae3…)
📝 📚 Docs
- [docs] Updated readme (3ea1d09…)
✨ 🚀 Features
- [Feature] Migrated engine to swift 6.0 (d7c6fb9…)
🐛 🐞 Fixes
- [Patch] Added support to load lods from usd file (2410d67…)
- [Patch] Added rotate functions to scene root transform (47c2518…)
- [Patch] use anchorFromExtentTransform for accurate plane bounds check (3ef400f…)
- [Patch] Expose picked entity world hit position (90a3d26…)
🐛 🐞 Fixes
- [Patch] Added two-hands spatial rotate (d46bbea…)
