The Untold Editor is a Scene Composition tool for the Untold Engine.
It is designed to help you prepare assets, compose scenes, and generate scene files that are later used inside your game.
⚠️ The Editor is not a full game development environment.
It is a visual companion tool to the Untold Engine.
If you want to build a game with the Untold Engine, you will use both:
- Untold Engine (required) → for actual game development
- Untold Editor Studio (optional but recommended) → for scene composition. Download Untold Engine Studio**
- Converting
.usdz→.untoldruntime assets - Visually composing scenes
- Saving scenes as
.untoldscenefiles - Previewing assets before using them in code
- Writing gameplay logic
- Binding animations or scripts
- Configuring physics or runtime systems
- Replacing the engine
👉 You still need to clone the engine to build your game:
If you just want to explore or preview assets, you can download the standalone app:
👉 Download Untold Engine Studio
This lets you:
- Import assets
- Compose scenes
- Preview rendering
But:
⚠️ You cannot build a full game using only the Editor.
This repository is for developers who want to contribute to the editor itself.
- Scene Composition Workflow – Place and organize entities
- Asset Conversion Pipeline – Convert
.usdz→.untold - Scene Files – Save/load
.untoldscene - Asset Browser – Browse runtime assets
- Stream Models – Work with tiled streaming scenes
- Gizmo Tools – Transform entities in viewport
- Quick Preview – Inspect assets visually
- Read-Only Rendering Inspection – Debug rendering state
The Untold Editor is intentionally limited to:
- Scene layout
- Asset placement
- Transform editing
- Lighting & environment setup
- Scene serialization
- Animation binding
- Script attachment
- Physics configuration
- Gameplay logic
- Material authoring
These systems are handled in engine code, not the editor.
- macOS 14+
- Xcode 15+ (or Swift 5.10+)
- Metal-capable Mac
If your goal is game development, clone the engine first.
Clone the editor:
git clone https://github.com/untoldengine/UntoldEditor.git
cd UntoldEditorThe Editor is a Swift Package with an executable target named UntoldEditor. It declares a dependency on the Untold Engine package; Xcode/SwiftPM will resolve it automatically.
swift build
swift run UntoldEditorswift run and Xcode start the editor as a bare executable. View ▸ Preview on Apple Vision Pro (macOS 26, a Vision Pro on visionOS 26 nearby, both on the same Apple Account) needs the editor to run as an app that LaunchServices knows, because the system's device picker asks LaunchServices for the app behind the request. This makes a development app bundle around the build in seconds and starts it:
scripts/dev-app.sh --run # the debug build; add `release` for the release buildIt builds, wraps the result in Untold Engine Studio.app inside the build folder (the executable copied, the resources and the build products linked), registers the bundle, and starts it with its output in the terminal; make run-app does the same. Run it again after a build. The packaged app from create_app_bundle.sh works as well.
- Open Xcode → File ▸ Open → select the Package.swift in this repo
- Xcode will create a workspace view for the package
- Choose the UntoldEditor scheme → Run
By default, this repo pins Untold Engine to a released version. If you want the latest engine changes:
- In the project navigator: Package Dependencies → UntoldEngine
- Set Dependency Rule to Branch and type develop
.dependencies = [
.package(url: "https://github.com/untoldengine/UntoldEngine.git", branch: "develop")
]Then reload packages:
xcodebuild -resolvePackageDependencies
# or in Xcode: File ▸ Packages ▸ Resolve Package Versions- Create / Open a Project – Use the start screen or File menu
- Set Asset Folder – Choose an external directory for your project’s assets
- Import Assets – Use the Asset Browser to import
.untold, stream-model manifests, HDRs, materials, animations, and Gaussian assets - Convert USD Assets When Needed – If you pick a USD asset, export it to
.untoldfirst through the importer flow - Compose the Scene – Select root entities, place them with gizmos, and adjust scene-visible properties in the Inspector
- Save / Load Scenes – Save scenes as
.untoldscene; reopen later to continue
💡 Why an external asset folder?
It enables runtime importing and iteration without copying everything into the app bundle.
We welcome PRs!
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push the branch and open a Pull Request
All contributions are expected to follow our Engineering Principles.
See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
Licensed under Mozilla Public License 2.0.
See LICENSE for details.
