You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore: apply formatting fixes and add missing newlines across docs and examples
Summary: apply formatting fixes and add missing newlines across docs and examples with pnpm run format
Reviewed By: zjm-meta
Differential Revision:
D89688995
Privacy Context Container: L1334777
fbshipit-source-id: 6c1d7c67445001dc361b8a79f008dea4209f45a8
@@ -215,14 +216,14 @@ The system captures initial transform state during handle creation:
215
216
216
217
-**Magical/Fantasy**: MoveTowardsTarget for supernatural pull effects
217
218
-**Technical/Precise**: MoveFromTarget for exact positioning
218
-
-**Natural/Intuitive**: MoveAtSource for gesture-based manipulation
219
+
-**Natural/Intuitive**: MoveAtSource for gesture-based manipulation
219
220
-**Constrained/Fixed**: RotateAtSource for orientation-only controls
220
221
221
222
### User Experience Goals
222
223
223
-
-**Comfort First**: MoveTowardsTarget reduces motion sickness through predictable movement
224
+
-**Comfort First**: MoveTowardsTarget reduces motion sickness through predictable movement
224
225
-**Control First**: MoveFromTarget provides maximum manipulation precision
225
226
-**Natural First**: MoveAtSource feels most similar to direct hand movement
226
227
-**Simplicity First**: RotateAtSource eliminates position complexity
227
228
228
-
The system's flexibility allows mixing movement modes within the same application, with each object configured for its specific interaction requirements.
229
+
The system's flexibility allows mixing movement modes within the same application, with each object configured for its specific interaction requirements.
Copy file name to clipboardExpand all lines: docs/concepts/grabbing/index.md
+12-6Lines changed: 12 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ title: Grabbing Overview
7
7
Interactive object manipulation is foundational to immersive experiences. IWSDK provides a comprehensive grabbing system that enables natural, performant object interaction through three distinct manipulation patterns—each optimized for different use cases and comfort requirements.
8
8
9
9
-**One-Hand Grabbing** — Direct single input manipulation for basic interactions
10
-
-**Two-Hand Grabbing** — Dual-hand manipulation with scaling capabilities for precise control
10
+
-**Two-Hand Grabbing** — Dual-hand manipulation with scaling capabilities for precise control
11
11
-**Distance Grabbing** — Ray-based remote manipulation with telekinetic-style interactions
12
12
13
13
Under the hood, the system bridges IWSDK's ECS architecture with the `@pmndrs/handle` library, providing automatic handle lifecycle management, performance optimizations, and seamless integration with the input system.
@@ -37,7 +37,7 @@ The grabbing system operates through a unified `GrabSystem` that automatically c
37
37
Entity with Grabbable Component
38
38
↓
39
39
GrabSystem detects via queries
40
-
↓
40
+
↓
41
41
Creates HandleStore instance
42
42
↓
43
43
Configures pointer events & constraints
@@ -59,16 +59,19 @@ The system uses reactive ECS queries to manage handle creation and cleanup:
59
59
## Core Design Principles
60
60
61
61
### Automatic Integration
62
+
62
63
- The system discovers grabbable entities through ECS queries rather than manual registration
63
64
- Handle creation, updates, and cleanup happen automatically based on component presence
64
65
- Multi-pointer coordination (left/right hand sub-pointers) is enabled automatically when the system is active
65
66
66
67
### Constraint-Based Control
68
+
67
69
- All transformation types (rotate, translate, scale) support per-axis min/max constraints
68
70
- Specialized movement modes provide different manipulation semantics
0 commit comments