XR Kit

An asset by patrykkalinowski
The page banner background of a mountain and forest
XR Kit thumbnail image
XR Kit thumbnail image
XR Kit thumbnail image
XR Kit hero image

Quick Information

0 ratings
XR Kit icon image
patrykkalinowski
XR Kit

XR Kit is a set of addons providing various features for XR development in Godot 4.Complete description available at: https://github.com/patrykkalinowski/godot-xr-kitPhysics Movement: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.Hand Gesture Recognition:Real-time recognition of hand poses based on predefined templates.Smooth Input Filter: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.Cinematic View:Smooth VR preview for recording in native monitor resolution."xr-kit/examples/playground.tscn" implements Physics Movement and Hand Gesture Recognition. "xr-kit/examples/smooth_input_filter.tscn" implements Smooth Input Filter.Compatibility:Plugin should work with every OpenXR runtime supporting Vulkan and using OpenXR hand tracking extension. It works best with SteamVR, as it simulates hand skeleton even when using controllers. In other runtimes, when using controllers, hands will not receive skeleton data and they will not work.For plugin to be fully compatible with all OpenXR runtimes, it needs hand models with animations - which is planned, but not yet implemented.

Supported Engine Version
4.0
Version String
0.1.1
License Version
MIT
Support Level
community
Modified Date
1 year ago
Git URL
Issue URL

Godot XR Kit

Godot XR Kit is a set of addons providing various features for XR development in Godot 4.

Physics Movement

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.

README Godot XR Kit - Physics Movement

Features

  • Physics hand follows controller and can be blocked by world objects
  • Players 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
  • Players can move themselves by pushing away from objects
    • Heavier objects allow for stronger push
  • Players can move in space with thrusters (button activated)
  • Players can hit objects with their head and push themselves away
  • Ghost hand appears when controller hand gets far from physics one
  • Body snap rotation
  • Body XYZ rotation around static object using hands (trigger activated)

Read more

Hand Gesture Recognition

Real-time recognition of hand poses based on predefined templates.

README Godot XR Kit - Hand Gesture Recognition

Currently tracked hand poses:

  • open
  • rest
  • half_grip
  • full_grip
  • point
  • thumb_up

Read more

Smooth Input Filter

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.

README Godot XR Kit - Smooth Input Filter

Features:

  • Supports smoothing movement for hand tracking Skeleton3D and Node3D (ex. XRController3D)
  • Reduces jitter while keeping lag to minimum

Read more

Cinematic View

Smooth VR preview for recording in native monitor resolution.

README Godot XR Kit - Cinematic View

Raw preview (left) vs Cinematic View

Features:

  • 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

Read more

Getting started

Repository contains Godot 4.0.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.

/addons/xr-kit/examples/smooth_input_filter.tscn implements Smooth Input Filter.

Compatibility

Plugin should work with every OpenXR runtime supporting Vulkan and using OpenXR hand tracking extension. It works best with SteamVR, as it simulates hand skeleton even when using controllers. In other runtimes, when using controllers, hands will not receive skeleton data and they will not work.

For plugin to be fully compatible with all OpenXR runtimes, it needs hand models with animations - which is planned, but not yet implemented.

Headset Runtime Compatible
HP Reverb G2 SteamVR Yes
Pico 4 Standalone No hand tracking
Meta Quest 2 Standalone Hand tracking only (no controllers)
Other ? ?

Contributing

If you'd like to improve the plugin, there are few options:

Test compatibility with other headsets and runtimes

I don't have access to other headset than mine (HP Reverb G2). Compatibility checks with other headsets are more than welcome.

Code improvements

Source code contains multiple TODO comments with known issues and missing features. You can also take a look at existing Issues.

Showcase

Build something with the plugin and share an example scene or recorded video here.

Ideas

If you have some ideas how to improve the plugin, don't hesitate to create new discussion or message me directly at [email protected].

XR Kit is a set of addons providing various features for XR development in Godot 4.

Complete description available at: https://github.com/patrykkalinowski/godot-xr-kit

Physics Movement:
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.

Hand Gesture Recognition:
Real-time recognition of hand poses based on predefined templates.

Smooth Input Filter:
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.

Cinematic View:
Smooth VR preview for recording in native monitor resolution.

"xr-kit/examples/playground.tscn" implements Physics Movement and Hand Gesture Recognition. "xr-kit/examples/smooth_input_filter.tscn" implements Smooth Input Filter.

Compatibility:
Plugin should work with every OpenXR runtime supporting Vulkan and using OpenXR hand tracking extension. It works best with SteamVR, as it simulates hand skeleton even when using controllers. In other runtimes, when using controllers, hands will not receive skeleton data and they will not work.

For plugin to be fully compatible with all OpenXR runtimes, it needs hand models with animations - which is planned, but not yet implemented.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
XR Kit icon image
patrykkalinowski
XR Kit

XR Kit is a set of addons providing various features for XR development in Godot 4.Complete description available at: https://github.com/patrykkalinowski/godot-xr-kitPhysics Movement: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.Hand Gesture Recognition:Real-time recognition of hand poses based on predefined templates.Smooth Input Filter: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.Cinematic View:Smooth VR preview for recording in native monitor resolution."xr-kit/examples/playground.tscn" implements Physics Movement and Hand Gesture Recognition. "xr-kit/examples/smooth_input_filter.tscn" implements Smooth Input Filter.Compatibility:Plugin should work with every OpenXR runtime supporting Vulkan and using OpenXR hand tracking extension. It works best with SteamVR, as it simulates hand skeleton even when using controllers. In other runtimes, when using controllers, hands will not receive skeleton data and they will not work.For plugin to be fully compatible with all OpenXR runtimes, it needs hand models with animations - which is planned, but not yet implemented.

Supported Engine Version
4.0
Version String
0.1.1
License Version
MIT
Support Level
community
Modified Date
1 year ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers