> For the complete documentation index, see [llms.txt](https://immersive-design.gitbook.io/immersive-design/-LVZotDI37V2-xJeHLYj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://immersive-design.gitbook.io/immersive-design/-LVZotDI37V2-xJeHLYj/interaction-techniques/it-selection-and-manipulation.md).

# IT: selection & manipulation

[**article 0: Go through this powerpoint to get a quick overview of the material below.**](https://www.slideshare.net/marknb00/comp-4010-lecture7-3d-user-interfaces-for-virtual-reality)

## Techniques for selection and manipulation

![Valve controllers](https://cdn.uploadvr.com/wp-content/uploads/2017/06/SteamVR-Knuckles-1.png)

**article 1:** [**Hands and Speech in Space**](https://www.slideshare.net/marknb00/hands-and-speech-in-space)

* Grasping: *Hand-based grasping* ([simple virtual hand](https://image.slidesharecdn.com/lecture7-3dui-novideo-160913075125/95/comp-4010-lecture7-3d-user-interfaces-for-virtual-reality-16-638.jpg?cb=1473753168) & Go-Go interaction technique) and *finger-based grasping* (rigid-body fingers, soft-body fingers, god fingers)
* Pointing: *vector-based pointing technique* ([ray-casting/ray-tracing](https://www.youtube.com/watch?v=ll4_79zKapU), fishing reel, image-plane pointing) and *volume-based pointing technique* (flashlight, aperture selection, sphere-casting) and *enhancements* (bend cast, **depth ray**, absolute & relative mapping)
* Surface: (2D)*dragging* and *rotating* and (3D) *pinching*, *void shadows*, *balloon selection*, *corkscrew widget*, *triangle cursor*
* Indirect: Indirect Control-Space: *indirect touch*, *virtual interaction surface*, *levels-of-precision cursor*, *virtual pad* and Indirect Proxy Techniques: *world in miniature*, *Voodoo Dolls* and Indirect Widget Technique: *3D widgets*, *virtual sphere*, *arcball*.
* Bimanual
* Hybrid

### Selection: specifying one of more objects from a set.

![Menu Leap Motion](http://blog.leapmotion.com/wp-content/uploads/2015/02/Hovercast-Slider.gif)

**Goals of selection:** indicate action on object, Query object, Make object active, Travel to object location, Set up manipulation

**Selection performance:** variables affecting user performance, Object distance from user, Object (visual) size, Density of objects in area, Occluders

[Example: FistPointer: Target Selection Technique using Mid-air Interaction for Mobile VR Environment](https://www.youtube.com/watch?v=BnEVbXgIfqM)\
[Example: Project Soli: Next-Gen Gesture Sensing Technology from Google](http://www.youtube.com/watch?v=GYDVR5_kGUE)

### Manipulation: modifying object properties *(position, orientation, scale, shape, color, texture, behaviour etc)*

[![soli](https://boygeniusreport.files.wordpress.com/2015/06/mtmwnje3mzgzmzq4ote0mtg2.gif?w=782)](http://www.youtube.com/watch?v=GYDVR5_kGUE)

[**article 1: 3D UI Techniques for Selection and Manipulation p1- p15.**](https://pdfs.semanticscholar.org/presentation/cfa6/ed87ebde92ac98035f9cf60c8dcb63aff842.pdf)

[**article 2: Direct versus Indirect Manipulation in VR**](https://medium.com/usable-or-not/direct-v-indirect-manipulation-in-vr-b7c5c4f09c55)

[**article 3: Pre-Touch Sensing for Mobile Interaction**](https://www.youtube.com/watch?v=YO7jy1GXkmY)

[Example: Holograph: 3D spatiotemporal interactive data visualization](https://www.youtube.com/watch?v=vOKVofs5rEg)

![Manipulation Techniques 2](https://image.slidesharecdn.com/lecture7-3dui-novideo-160913075125/95/comp-4010-lecture7-3d-user-interfaces-for-virtual-reality-27-638.jpg?cb=1473753168)

## Objects & Physics Interaction

![Cockpit](http://blog.leapmotion.com/wp-content/uploads/2015/07/STSCPanel-1024x679.jpg)

### Objects Interaction

* (Hyper)Natural & Magic Interaction
* Active & Passive Interaction

### Physics Interaction

* Physics Objects
* State Machines

[**article 4: Have a look at these Coursera-videos about Objects Interaction and Physics Interaction**](https://www.coursera.org/lecture/3d-interaction-design-virtual-reality/introduction-to-physics-interaction-qc8nz)

[Object Interaction Part 1: Common Interaction Patterns, Oculus developer blog](https://developer.oculus.com/blog/object-interaction-part-1-common-interaction-patterns/)\
[Lessons from the Frontlines: Modern VR Design Patterns, Oculus developer blog](https://developer.oculus.com/blog/lessons-from-the-frontlines-modern-vr-design-patterns/)\
[Explorations in VR: object interaction design](http://blog.leapmotion.com/designing-physical-interactions-for-objects-that-dont-exist/)\
[Design Problems for VR Tracking](http://blog.leapmotion.com/4-design-problems-vr-tracking-solve/)

##


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://immersive-design.gitbook.io/immersive-design/-LVZotDI37V2-xJeHLYj/interaction-techniques/it-selection-and-manipulation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
