visionOS Simulator Rotate and Scale gestures difficult to register (capture)

We were having an issue wrb the system rotate and scale gestures (two-handed gestures / RotateGesture3D and MagnifyGesture) were extremely difficult to register (make work) in the visionOS simulator.

The solution we found was to:

  1. Launch your app in the simulator
  2. Move the pointer on top of the 3D object for which you are testing rotation and scaling gestures.
  3. Press and hold the Option key to display touch points (ie: the two-handed gesture points).
  4. While maintaining the option key pressed, release the pointer and re-enable it again. I am using a track pad with tap-to-click enabled and three-finger to drag enabled in accessibility, so "release the pointer and re-enable it again" translates simply to removing the three finger and placing them again on the trackpad.
  5. If you have maintained the option key pressed, then you should now be able to rotate and scale the 3D object.

Context if you are interested:

Our issue was also occurring in Apple's own sample project relating to gestures "Transforming RealityKit entities using gestures", at below link.

On Apple's article "Interacting with your app in the visionOS simulator" at the below link, for two-handed gestures it states "Press and hold the Option key to display touch points. Move the pointer while pressing the Option key to change the distance between the touch points. Move the pointer and hold the Shift and Option keys to reposition the touch points." This simply did not work anymore for rotation and scaling gestures.

These gestures used to be a lot more responsive in Sonoma. Either the article should be updated to what I described above, or there is an issue. Our colleague who is using macOS Sonoma 14.6.1 with the latest release of Xcode is not having these issues.

Here is the list of configurations (troubleshooting we tried!) where it is difficult to achieve rotation and scaling gestures in the visionOS simulator:

  • macOS Sequoia 16.1 Beta, Xcode 16.1 RC w visionOS 2.1
  • macOS Sequoia 16.1 Beta, Xcode 16.1 RC w visionOS 2.0
  • macOS Sequoia 16.1 Beta, Xcode 16.2 Beta 1 w visionOS 2.1
  • macOS Sequoia 16.1 Beta, Xcode 16.2 Beta 1 w visionOS 2.0
  • macOS Sequoia 16.1 Beta, remove all Xcodes and installed the build from AppStore (Xcode 16.1)
  • macOS Sequoia 16.1 Beta, Xcode 16.0 w visionOS 2.0
  • completely wiped out, and reset entire development machine, re-installed latest releases of sequoia (15.1) and xcode (15.1))

Throughout these troubleshooting I often:

  • restarted both xcode and sim
  • erased all derived data
  • erased all contents and settings from sims
  • performed fresh git clones

None of the above worked, only the workaround described above works atm. As you can maybe deduce, it was very time consuming to find the workaround, we also wasted some development effort thinking our gesture development was no-good.

Hopefully this will help other devs.

Article Link: https://developer.apple.com/documentation/xcode/interacting-with-your-app-in-the-visionos-simulator

Gesture sample project link: https://developer.apple.com/documentation/realitykit/transforming-realitykit-entities-with-gestures

Hello @VaiStardom , thank you so much for your detailed write up! I'm sure it will help other developers. I am also able to reproduce the issue you're describing: in order to rotate/scale the objects in the sample provided in the simulator, I must hold down the left mouse button over the object, then hold option, then release and press the left mouse button again to begin rotating and scaling the object.

If you haven't already, could you please submit your findings using Feedback Assistant? That will help us get it tracked on our end.

Thank you!

visionOS Simulator Rotate and Scale gestures difficult to register (capture)
 
 
Q