Joseph Simpson
banner
vrhermit.com
Joseph Simpson
@vrhermit.com
Learning, sharing, and teaching visionOS development at Step Into Vision
https://stepinto.vision
Nine years ago I took my first step into VR development. I started with HTC Vive. My journey to visionOS went through Unreal, Unity, Swift, and WebXR. I learned concepts that formed the foundation that I'm building on with native visionOS development using SwiftUI and RealityKit.
January 17, 2026 at 1:19 PM
We can use volumeWorldAlignment to specify if volumes should stay aligned with the ground or if users can tilt them.
stepinto.vision/example-code...
January 16, 2026 at 3:56 PM
When Apple released Stage Manager on macOS and iPadOS, I thought it would play a part in their Spatial Computing platform. When visionOS 1.0 arrived, I was surprised that it was nowhere to be seen.

#visionOS #SwiftUI

stepinto.vision/labs/stage-m...
January 12, 2026 at 10:39 PM
I don’t know why I find these preview/WIP images so hilarious
January 11, 2026 at 5:17 PM
Revisit Lab 005 - Pseudo 3D layouts

We can use SwiftUI rotations and offset to add a bit of 3D to our windows and interfaces.

#SwiftUI #visionOS #AppleVisionPro

stepinto.vision/labs/pseudo-...
January 11, 2026 at 2:16 PM
Revisit Lab 004 - Cover Flow Demo

One of these days I would like to update this using the new Spatial Layout features in visionOS 26. There is a lot of room for improvement here.

#visionOS #SwiftUI #AppleVisionPro

stepinto.vision/labs/lab-004...
January 10, 2026 at 12:56 PM
We already covered how to open a new volume by ID and how to open a window with a value. Opening a volume with an ID is no different than with a window.

#visionOS #SwiftUI #AppleVisionPro

stepinto.vision/example-code...
January 7, 2026 at 5:15 PM
Check out the 2025 Yearbook from Step Into Vision. We snapped a few screenshots throughout the month of December. See anyone you know?
January 6, 2026 at 4:29 PM
Today marks 2 years since I started working on Project Graveyard for visionOS. I shipped a basic v1 on launch day with Apple Vision Pro less than a month later. Since then I've been improving it as time allows.
January 4, 2026 at 1:28 PM
🫡 I decommissioned my M1 Mac mini today. Five years of continuous use as a database server and development resource is a pretty good run for an M1 with 8GB of RAM.
January 3, 2026 at 9:52 PM
Starting the first book of the year: The Stuff of Bits by Paul Dourish
January 1, 2026 at 5:07 PM
A year ago I set an ambitious goal: Publish on Step Into Vision every day of 2025. Today I reached that goal! It has been an enormous amount of work, but it has been worth every second. I'm proud of what I've accomplished, but I know there is a lot of work ahead. 2026 is going to be awesome!
December 31, 2025 at 7:40 PM
I finally installed macOS Tahoe. One of the first things I did was turn on "Increase contrast" (Settings > Accessibility > Display). Not only is it more usable for me, I genuinely think it looks better than the default design.
December 29, 2025 at 8:12 PM
"Most Likely to Rage‑Quit RealityKit" I don't know, that seems like a crowded category to me
December 29, 2025 at 2:24 PM
We can use Scene Phase keep track of open Windows. Using this at the app-level can be a bit confusing. When used inside scenes this becomes a simple and powerful way to know if a window, volume, or space is open/active.

#SwiftUI #visionOS #AppleVisionPro

stepinto.vision/example-code...
December 29, 2025 at 1:58 PM
A cat is in charge of the weather control system over Ohio. That’s the only reasonable explanation for this
December 27, 2025 at 1:52 PM
Lab 087 documents a workaround for using SwiftUI Spatial Layouts in Immersive Spaces.

The short version is that we can't be inside a SwiftUI view. My hack was to raise the view above me, the offset the content to hang from the view.

stepinto.vision/labs/lab-087...
December 24, 2025 at 2:05 PM
pushWindow allows us to temporarily replace one window with another. Useful for splash screens, complex pickers, or when we need to show a content that requires a different window style (Photos app vs. single photo view)

stepinto.vision/example-code...
December 23, 2025 at 4:54 PM
Join us for Step Into Vision Office Hours every Friday at 2:00 PM (Eastern US)

Learn more and find out how to join

stepinto.vision/about-office...
December 18, 2025 at 9:15 PM
444 posts covering visionOS is an arbitrary milestone that I’ll happily celebrate
December 18, 2025 at 12:51 AM
I still have a few more posts to add to the RealityKit Basics series that I started in January.

Some topics covered: ModelEntity, Entity, Components, Materials, RealityView, Attachments, Interactions, Events, Animations, and Entity Actions.

stepinto.vision/learn-vision...
December 17, 2025 at 7:48 PM
We can open value-scoped windows in visionOS, in much the same way as macOS and iPadOS. Each combination of id and value results in a unique window.

#SwiftUI #visionOS #AppleVisionPro

stepinto.vision/example-code...
December 15, 2025 at 4:19 PM
When opening new windows, we can specify a default placement.
Relative to an existing window: leading, trailing, above, and below.

Relative to the user: utility

#visionOS #SwiftUI #AppleVisionPro

stepinto.vision/example-code...
December 13, 2025 at 9:01 PM
Take a look at some methods to size windows in visionOS. We cover defaultSize, contentSize with windowResizability and frame, and fixed size.

#visionOS #SwiftUI #AppleVisionPro

stepinto.vision/example-code...
December 12, 2025 at 4:17 PM
The first article on Step Into Vision was posted weeks before the site went live. I kicked things off with a series of examples covering Windows, Volumes, and Spaces. This one was about openWindow and dismissWindow

#visionOS #SwiftUI #AppleVisionPro

stepinto.vision/example-code...
December 11, 2025 at 12:43 PM