Search Results for

    Show / Hide Table of Contents

    Repulse Select: Direct Manipulation in Dense VR Environments

    CS 5678: 3D User Interfaces - Spring 2024 - XR Collaboratory, Cornell Tech

    Students: Yifan Zhou, Sissel Sun

    Video | Report | APK

    Overview

    This package is an implementation of the Repulse Select interaction technique, an innovative selection technique that repulses distractors in dense virtual environments with occlusion. The package includes four components and a sample, as described below.

    Components

    RepulseSelect

    This component implements the logic for the Repulse Select interaction technique.

    Property Description
    Interactor The Interactor responsible for selecting the object of interest.
    Start Threshold The threshold that determines when should the object start to move away.
    Scaling Factor The scaling factor applied to the offset. The smaller this value, the faster an object is moved away.
    Repulse Distance The maximum distance an object can be moved away.

    RepulseSelectInput

    This component handles user input and updates the RepulseSelect component accordingly.

    Property Description
    Toggle Input action to toggle whether the Repulse Select technique is enabled or not.

    RepulseSelectFeedback

    This component is responsible for providing visual, audio and haptic feedback for the RepulseSelect interaction technique.

    Property Description
    Controller The controller used for haptic feedback.
    Background Sound The background sound that is looped if any object is being repulsed.
    Start Sound The sound effect that is played if the user starts to repulse any object.
    End Sound The sound effect that is played if the user stops to repulse all objects.
    Line Material The line material that visualizes the forward vector.

    RepulseMotion

    This component controls the repulsing behavior of the interactables and saves their original position. It is automatically added to all interactables in the scene by RepulseSelect at the start of the scene.

    Installation instructions

    To install this package, follow these steps:

    1. In the Unity Editor, click on Window > Package Manager
    2. Click the + button and choose Add package from git URL option
    3. Paste the URL to the package repository: (https://github.com/cs5678-2024sp/p-project-g-06.git) in the prompt and click on Add (make sure your URL ends with ".git")
    4. If the repository is private, you will be asked to authenticate via your GitHub account. If you haven't been granted access to the repository you will not be able to install the package.
    5. The package should be installed into your project
    6. You can download the package samples from under the Samples tab in the Package Manager

    Note: Even though the package documentation is public, several XRC packages are private and accessible only to XRC staff and students.

    Requirements

    This package was developed and tested using the following Unity Editor version:

    <2022.3.7f1 LTS>

    Dependencies:

    • XRC Core
    • XR Interaction Toolkit
    • Input System

    Workflow

    See example below for setting up scene hierarchy and the inspector for game object containing package components.

    Samples

    Sample: RepulseSelect

    This is a sample showcasing the Repulse Select implementation in a Unity scene with dense objects. It integrates the Go-Go technique for interacting with further objects.

    Controls:

    • Right Primary Button: Enable/Disable Go-Go
    • Right Secondary Button: Enable/Disable RepulseSelect
    • Right Grip: Select Object
    In This Article
    Back to top XR Collaboratory