Develop
Develop
Select your platform

Supporting systems in Interaction SDK

Updated: Jun 25, 2025

Overview

The Interaction SDK (IsdkFeature) includes several supporting systems that work together to provide seamless hand and controller interactions in your spatial applications. These systems handle essential tasks like processing input events, rendering visual feedback, automatically setting up interactive components, and routing user interactions to your application logic.
The following systems are included in the IsdkFeature and are enabled by default. Most can be individually configured or disabled if needed for your specific use case.

Main interaction system

IsdkSystem drives the main Interaction SDK system and forwards input events to the scene. Enables/disables the LocomotionSystem based on hovered object state.
IsdkSystem offers PointerEvent callbacks that can be used instead of SceneObjectInputListeners. This is useful for entities with dynamic scene objects that are not available at the time of scene creation, or objects whose Mesh or material is modified at runtime (since SceneObjects are re-created when mesh data is modified).
  • registerObserver(observer: (PointerEvent) -> Unit): Adds a callback that will be invoked for each pointer event.
  • registerInteractableObserver(entity: Entity, observer: (PointerEvent) -> Unit): Adds a callback that will be invoked for each pointer event for a specific entity.
To help with debugging, IsdkSystem also offers the following method:
  • enableDebugTools(bool): When set to true, renders wireframe debug meshes in the scene to help debug interaction issues.

Default cursor and reticle system

IsdkDefaultCursorSystem renders a reticle on hovered objects. Users can disable this by setting its active flag to false.
systemManager.findSystem<IsdkDefaultCursorSystem>().active = false

Automatic component creation system

IsdkComponentCreationSystem inspects the scene and creates Interaction SDK grabbable components based on the existing scene hierarchy.
This system can be disabled this by setting its active flag to false. Disabling this system will prevent the IsdkSystem from finding interactables in the scene; you will need to manually set up Isdk components for your interactables.
systemManager.findSystem<IsdkComponentCreationSystem>().active = false

Panel grab region highlight system

IsdkPanelPaddingRenderSystem renders a white outline when a panel’s grab region is hovered. This system doesn’t have any configurable properties.

Centralized input event routing system

IsdkInputListenerSystem provides a mechanism for routing input events for all panels and grabbables in the scene to a single InputListener instance.
It is preferable to use the PointerEvent callbacks provided by the IsdkSystem instead of this system.
An InputListener can be registered with the system via the setInputListener method:
systemManager.findSystem<IsdkInputListenerSystem>().setInputListener(...)
A usage example can be found in the object_3d_sample_isdk sample.
Did you find this page helpful?
Thumbs up icon
Thumbs down icon