Introducing Untold Engine — A 3D renderer written in Swift using Metal

Hi everyone,

I wanted to share a project I’ve been working on called Untold Engine—a 3D renderer written entirely in Swift using Metal.

I started it as a way to better understand modern graphics systems, and over time it’s grown into a more complete renderer. Along the way, I transitioned the engine from C++ to Swift—not just as a learning exercise, but also to explore what a Swift–Metal rendering framework could look like when it gives developers more direct control and fewer constraints over how things are structured and rendered.

The current focus is on efficiently rendering XR scenes, with early visionOS support already in place. Some of the systems currently implemented:

  • 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
  • Spatial Input Features: XR spatial input helpers including anchored pinch drag, distance tracking, and two-hand rotation

One of my motivations for building this was to explore how far Swift can be pushed in the rendering/graphics space, especially for systems that are traditionally written in C++.

If that’s something you’re interested in, feel free to take a look at the repository:
https://github.com/untoldengine/UntoldEngine

Here are some videos showcasing the Untold Engine + Vision Pro. It is still a work in progress:

Game Dungeon
Room
Cartoon City

Happy to discuss implementation details or design decisions if anyone is curious.

I’d also like to thank a few collaborators who have supported the project along the way. Building a 3D renderer is not an easy task, and their support has been truly invaluable.

Collaborators:

17 Likes

Really appreciate the mention—thanks!

I remember finding your tutorials early on and being genuinely impressed. I was looking for something in Swift to break into the 3D space, and your work just clicked—it felt like real potential from the start, so I jumped in to support however I could.

Untold Engine is seriously exciting. Having a renderer you can drop into a normal Swift app—with LOD, Gaussian rendering, and more flexibility than RealityKit—is a big deal.

The Results Builder support is something we added, mainly to make it easier for utility apps to get started with 3D without a heavy setup. Felt like a very natural fit for Swift.

And now seeing it evolve into something capable of powering real products is awesome—we’re already working on three comercial projects with it (one app + two Vision Pro games).

Can’t wait to see what’s next :rocket:

1 Like

Hot take (from a builder perspective): Vision Pro breaks the “app vs game engine” split.

RealityKit is great to get started—simple, clean, very Apple-native. But as soon as you need more control (LOD, custom rendering, larger scenes), you start hitting limits pretty quickly.

Unreal and Unity solve those problems—but they come with a different cost. They’re game-first engines, and integrating them into a Swift-based app workflow isn’t always natural. You end up adapting your app to the engine, instead of the other way around.

As builders, that tradeoff matters.

So we started looking for something else:

  • Swift-first
  • Metal-first
  • Designed for Apple platforms from day one

That’s where Untold Engine fits for us.

It’s not as mature yet—graphics quality, tooling, ecosystem—but we’re okay with that. Because we’re not just looking for a tool, we’re looking for a foundation we can build on and evolve with.

We want:

  • One stack for apps and games
  • Tight integration with native Apple frameworks
  • Full control over rendering when needed

Untold gives us that direction.

And with Vision Pro pushing everything toward spatial, 3D-first experiences, having that kind of control inside a native Swift environment feels like the right long-term bet.

4 Likes