Godot XR Kit is a set of addons providing various features for XR development in Godot 4.
Physics-based XR movement. Player hands collide with environment and can grab or push physics object in realistic manner. Player body can collide with physics objects and be moved around in space.
- Physics hand follows controller and can be blocked by world objects
- Player can grab and move objects
- Heavy objects are harder to move
- Grabbing heavy objects with two hands makes them easier to move
- Fingers curl around grabbed objects geometry
- Player can move themselves by pushing away from objects
- Heavier objects allow for stronger push
- Player can move in space with thrusters
- Player can brake in space with thruster brake
- Player can hit objects with their head and push themselves away
- Ghost hand appears when controller hand gets far from physics one
- Physics hand is reset to controller position if it gets too far from it (ex. hand got stuck)
- Joystick snap rotation
- Smooth 6 degrees of freedom rotation around grabbed static object (trigger activated)
- Fingers wiggle a little when hand is moving
Real-time recognition of hand poses based on predefined templates.
- open
- rest
- fist
- thumb_up
- one
- two
- three
- four
- five
- middle_finger
Applies smoothing to XR hand movement using 1€ filter. Supports hand and controller tracking. See 1€ filter demo. Can be used to reduce microstutter or simulate fake weight by increasing hand movement lag.
- Supports smoothing movement for hand tracking Skeleton3D and Node3D (ex. XRController3D)
- Reduces jitter while keeping lag to minimum
Smooth VR preview for recording in native monitor resolution.
Raw preview (left) vs Cinematic View
- Full screen VR preview in monitor native resolution
- Smooth preview can be rendered to another screen
- Smoothing parameters can be tuned
- Full range of Godot's camera settings is available
Repository contains Godot 4.2 project with XR and main scene preconfigured. Releases are reduced to addon files only.
Latest release is available in Godot's Asset Library under the name XR Kit or on releases page.
To get most recent version of the whole project, download from master branch.
/addons/xr-kit/examples/playground.tscn
implements Physics Movement, Hand Gesture Recognition and Cinematic View. Branch new_playground
contains much better playground scene with more features and is more interesting in general, but it crashes on standalone. After I fix this, new_playground
will be merged to master.
/addons/xr-kit/examples/smooth_input_filter.tscn
implements Smooth Input Filter.
If you are on Quest, make sure your hardware is configured properly:
- Enable "Developer Runtime Features" in Oculus PCVR app (Settings -> Beta)
- Enable Developer Mode in Meta Quest app on your phone
XR Kit has been tested with SteamVR and Oculus (PC and standalone) using Meta Quest 3.
If you'd like to improve the plugin, there are few options:
Source code contains multiple TODO
comments with known issues and missing features. You can also take a look at existing Issues.
Build something with the plugin and share an example scene or recorded video here.
If you have some ideas how to improve the plugin, don't hesitate to create new discussion or message me directly at patryk@patrykkalinowski.com.