Skip to content
View untoldengine's full-sized avatar

Sponsors

@miolabs

Block or report untoldengine

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
UntoldEngine/README.md

Build Status Project license Pull Requests welcome Version Commits Last Commit


Untold Engine

Untold Engine is a 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 rendering and systems
  • Prefer working directly with Swift + Metal
  • Are building XR, 3D, or visualization applications
  • Need to handle large scenes, streaming data, or custom pipelines

If you've hit the ceiling of what existing engines allow on Apple platforms, this is for you.

untoldengine-image


Watch It in Action — Apple Vision Pro Demos

Creator & Lead Developer:
http://www.haroldserrano.com


🚀 Try the Engine Right Now

The fastest way to experience Untold Engine is to run the demo project.

Clone the repository and launch the demo:

git clone https://github.com/untoldengine/UntoldEngine.git
cd UntoldEngine
swift run untolddemo

The demo UI lets you see the engine in action right away. Using the Remote Scene drop-down menu, you can choose a scene to stream directly into the demo through the engine's Asset Remote Streaming support.

I want to try my own USDZ

Untold Engine uses its own native asset format: .untold.

To try your own USDZ file, first convert it to .untold using the Tools section in the demo UI.

After the export is complete, open the Local Scene Browse drop-down menu, choose .untold, then browse for and select your exported .untold file.


untoldengine-image-2

Get a Feel for the API

A small code sample to inspect and experiment with is available at Sources/Sandbox/GameScene.swift. Along with the Usage Example, it shows how the Untold Engine API works in practice.

The Sandbox target lets you test engine APIs — creating an entity, attaching a mesh, trying animations, and other scene setup.

To run it from the CLI:

swift run sandbox

To run it in Xcode, select the sandbox scheme and press Run.


untoldengine-image-3

Set Up an Xcode Project with Untold Engine

Use untoldengine-create to generate a ready-to-run Xcode project with Untold Engine wired in.

Install it from the repository:

git clone https://github.com/untoldengine/UntoldEngine.git
cd UntoldEngine
./scripts/install-untoldengine-create.sh

Vision Pro Example

mkdir VisionGame
cd VisionGame
untoldengine-create create VisionGame --platform visionos
open VisionGame.xcodeproj

What this creates for you

  • Xcode project + platform-specific app template files
  • GameData folder structure (Scenes, Scripts, Models, Textures, etc.)
  • Engine package dependencies configured for the selected platform
  • Starter GameScene code showing how to:
    • Load a mesh (city.usdz)
    • Enable geometry streaming
    • Enable static batching

Note: city.usdz should be placed in GameData/model (generated folder name is GameData/Models).

Platform options

# visionOS (Apple Vision Pro)
untoldengine-create create MyGame --platform visionos

# macOS (default)
untoldengine-create create MyGame --platform macos

# iOS with ARKit
untoldengine-create create MyGame --platform iosar

# iOS
untoldengine-create create MyGame --platform ios

Dependency behavior by platform:

  • visionos: UntoldEngineXR + UntoldEngineAR
  • iosar: UntoldEngineAR
  • ios and macos: UntoldEngine

Visual Editor

To make using the Untold Engine easier, you can use the Untold Engine Studio — a standalone editor for preparing assets, composing scenes, and generating scene files used inside your game. Download Untold Engine Studio

untoldeditor-image-1

Note, you still need the engine as a dependency in your project. The editor is only used for composing scenes.


🧱 Core Direction

Untold Engine is built around three focused goals:

  • Spatial Engine First — Designed for spatial computing applications. LOD, geometry streaming, and static batching exist to support large, real-world-scale environments where presence and performance both matter.

  • XR / visionOS Support — Spatial input, AR workflows, and Vision Pro support are functional today and expanding with each release.

  • Metal-First Architecture — The rendering layer stays close to Metal to maintain performance and control, without abstraction layers getting in the way.


🖼 Example Use Cases

Untold Engine is well-suited for:

  • XR applications (Vision Pro, ARKit-based apps)
  • Large-scale scene visualization (cities, archviz, datasets)
  • Custom rendering pipelines and experiments
  • Simulation tools and interactive 3D systems

Current Features

  • Apple Platform Coverage — Unified Swift + Metal codebase for macOS, iOS, and visionOS
  • Rendering Pipeline — Metal renderer with PBR/IBL workflows and post-processing across standard and XR paths
  • AR and XR Runtime Support — Built-in AR workflows plus visionOS integration and spatial interaction support
  • ECS + Scene Graph Core — Component-based architecture with hierarchical transforms and scene root transform controls
  • Async Content Loading — Asynchronous loading pipeline for scenes and assets to improve responsiveness on large worlds
  • LOD and Streaming — LOD support with geometry streaming, streaming regions, and memory budget management
  • Static Batching and Culling — Static batching, octree acceleration, and occlusion culling for large-scene performance
  • Advanced Picking — Scene, ground, and GPU ray picking with octree-backed intersection paths
  • Spatial Input Features — XR spatial input helpers including anchored pinch drag, distance tracking, and two-hand rotation
  • Scripting System (USC) — Untold Script Core with multi-script support plus camera, math, and physics APIs (Experimental)
  • Gameplay Systems — Physics, animation, camera waypoint, and input systems (keyboard, mouse, touch, and gamepad)
  • Gaussian Splat Rendering — Native Metal support for rendering and compositing 3D Gaussian content
  • Tooling Integration — Optional Untold Editor workflow and Swift Package Manager integration

Engine API


Engine Architecture


Roadmap

See open issues for planned features and known improvements.


Support

For help or questions, open a GitHub Issue.


Contributing

Contributions are welcome — whether that's fixing bugs, improving systems, writing documentation, or proposing ideas.

Before submitting a pull request, please review the Contributing Guidelines.

All contributions are licensed under MPL-2.0.


Contributor License Agreement

By submitting a pull request you agree that your contributions may be distributed under the Mozilla Public License 2.0. See CONTRIBUTOR_LICENSE_AGREEMENT.md for details.


GitHub Sponsors

A huge thanks to the people helping shape the Untold Engine.

MioLabs


License

Untold Engine is licensed under the Mozilla Public License 2.0 (MPL-2.0).

This allows developers to build commercial applications while ensuring improvements to the engine itself remain open.

Use Case Allowed Obligation
Build games Yes Game code can remain proprietary
Commercial apps Yes No royalties
Modify engine Yes Modified engine files remain MPL
Create plugins Yes Any license allowed

Full license: https://www.mozilla.org/MPL/2.0/

Need to keep engine modifications private? A commercial license is available for teams that require it. See COMMERCIAL.md for details.


Trademark

"Untold Engine" and the Untold Engine logo are trademarks of Untold Engine Studios. Forks may not use the name in a way that implies official endorsement. See TRADEMARKS.md.


Questions & Discussions

Popular repositories Loading

  1. UntoldEngine UntoldEngine Public

    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 p…

    Swift 89 3

  2. UntoldEditor UntoldEditor Public

    Swift 1 1

  3. UntoldArcade UntoldArcade Public

    Swift 1 1

  4. UntoldEngine-Assets UntoldEngine-Assets Public

    Assets for the Untold Engine