RealityKit .Kinematic + collisions (visionOs)

Hi everyone, I'm new to visionOS development. I'm trying to create a physics-based scene (with gravity) where users can pick up and move objects on a workbench. I am struggling with physics interactions during the drag gesture:

  • Kinematic Mode: If I switch to .kinematic during the drag, the object moves smoothly but clips through other objects (no collisions).
  • Dynamic Mode: I tried keeping it .dynamic and applying linear velocity toward the hand position, but the movement feels laggy and unresponsive.
  • Hybrid Approach: I tried switching to .kinematic during DragGesture.onChange and back to .dynamic on collision, but this causes the entity to jitter/shake violently when touching other objects.

Has anyone found a clean way to drag objects while maintaining solid collisions. Thanks for your help!

In order to control physical entities within a physics simulation, you can explore the topic of proportional-derivative (PD) controllers.

The principle:

  • User input provides a target position
  • Each frame (use the willSimulate event), a control system applies forces or impulses to drive the body toward that target

This answer provides a sample implementation with SpriteKit. The same principles apply to RealityKit.

RealityKit .Kinematic + collisions (visionOs)
 
 
Q