Goal
Real objects into the engine from a phone, with no desktop tools in the loop. The user walks around an object with a LiDAR iPhone, Object Capture reconstructs it, and the app cooks the result into a native .untold model on the device through the engine's public asset-format API, validated by the engine's own reader, then shows it in an engine viewport with live styles: PBR, toon, comic, pixel art and pencil sketch, each a render-extension pass so the engine's look and tone-map chain still runs. A companion macOS server takes the photos and the phone's pose checkpoints over the local network, reconstructs at full detail, cooks with larger textures and sends the bundle back, with jobs that survive the app being killed and re-cook on either side.
It demonstrates three things at once: the asset format as a target for content made outside Blender, render extensions for stylised looks, and the engine on iPhone with touch input. It is also the shortest path from a thing on a desk to a prop in a level.
Status
| Step |
Plan |
Status |
| Style plugin |
Render extension: toon model-surface pipeline, comic/pixel/sketch/edge compute passes before the look chain |
Ready, PR pending |
| On-device cooker |
USDZ → .untold with ModelIO, recovered normals and tangents, PNG textures, validated by UntoldReader, round-trip tests |
Ready, PR pending |
| iPhone app |
Object Capture scan flow, scan library with re-cook, touch-orbit viewer, style picker, headless hooks for the simulator |
Ready, PR pending |
| Mac server |
MIOServerKit + SwiftNIO, Bonjour, photos and pose checkpoints uploaded, Full/Medium/Custom detail, jobs survive the app being killed, server-side re-cook, stub mode with a smoke script |
Ready, PR pending |
| Hardware check |
On-device scan on a LiDAR iPhone and the Mac round trip |
To confirm |
Next steps
- Confirm the hardware run, then one PR here.
Note: the simulator library targets Metal 4 and needs an iOS 26 runtime; the device libraries must be built for the package's minimum OS (#25).
Goal
Real objects into the engine from a phone, with no desktop tools in the loop. The user walks around an object with a LiDAR iPhone, Object Capture reconstructs it, and the app cooks the result into a native
.untoldmodel on the device through the engine's public asset-format API, validated by the engine's own reader, then shows it in an engine viewport with live styles: PBR, toon, comic, pixel art and pencil sketch, each a render-extension pass so the engine's look and tone-map chain still runs. A companion macOS server takes the photos and the phone's pose checkpoints over the local network, reconstructs at full detail, cooks with larger textures and sends the bundle back, with jobs that survive the app being killed and re-cook on either side.It demonstrates three things at once: the asset format as a target for content made outside Blender, render extensions for stylised looks, and the engine on iPhone with touch input. It is also the shortest path from a thing on a desk to a prop in a level.
Status
.untoldwith ModelIO, recovered normals and tangents, PNG textures, validated byUntoldReader, round-trip testsNext steps
Note: the simulator library targets Metal 4 and needs an iOS 26 runtime; the device libraries must be built for the package's minimum OS (#25).