UX Framework

The Magic Slingshot

Interaction Pattern

Overview

The Magic Slingshot is an input abstraction module that replaces complex, bimanual gross-motor mechanics (such as drawing a bow or pulling a physical slingshot) with a single-controller, micro-motor alternative. By mapping the tension and release phases to the hardware thumbstick and decoupling the aiming matrix to utilise gaze kinematics, this pattern allows users with severe arm mobility restrictions to execute projectile-firing mechanics without requiring arm extension, wrist rotation, or two-handed coordination.


Implementation Specification

Aiming (x/y axis) is controlled by utilising one of, or a combination of, 'gaze' (or eye-tracking where available) and sideways shift thumbstick movements.

Power is controlled by thumbstick pull-back (z-axis).

Release is automatic upon letting go of the stick. The thumbstick's in-built spring mechanism allows for a natural 'snap back' to the neutral position, which is used to trigger the release of the projectile without requiring an additional button press.

To successfully execute The Magic Slingshot, the application architecture must decouple spatial hand tracking from the projectile logic, relying instead on thumbstick telemetry and gaze vectors.

  1. Single-Controller Abstraction: The module must function entirely on a single controller. It must not require a secondary controller to anchor the base of the slingshot or draw the projectile.
  2. Kinematic Targeting (Aiming): The spatial targeting (X/Y axis) must be decoupled from the physical position or rotation of the user's wrist. Aiming must be driven by a primary gaze vector (head-tracking or eye-tracking), with optional horizontal micro-adjustments driven by the thumbstick's X-axis.
  3. Tension Mapping (Power): The potential energy or velocity of the projectile must be mathematically mapped to the vertical backward pull (local Z-axis or Y-axis) of the thumbstick. As the user pulls the stick downwards/backwards, the system must render corresponding visual and haptic feedback to communicate building tension.
  4. Hardware-Driven Release: The system must not require a secondary button press to fire. Instead, it must utilise the thumbstick's physical hardware spring. When the user releases the stick, allowing it to rapidly snap back to its neutral origin (the deadzone), the system must intercept this rapid delta-to-zero as the explicit trigger to execute the release event.
The Magic Slingshot Mechanic


Reference Pattern

// Pseudo-code for The Magic Slingshot Implementation
// Tone: Technical Implementation Guide

Class MagicSlingshotManager : MonoBehaviour {

    // Configuration
    Float maxLaunchVelocity = 25.0f;
    Float thumbstickDeadzone = 0.1f;
    Transform gazeOrigin; // Head or Eye tracking source
    
    // State Management
    Boolean isDrawing = false;
    Float currentTension = 0.0f;
    Vector3 currentAimVector;

    // References
    GameObject projectilePrefab;
    Transform spawnPoint;

    // Main Execution Loop
    Function Update() {
        ProcessAiming();
        ProcessTensionAndRelease();
    }

    // Phase 1: Kinematic Targeting
    Function ProcessAiming() {
        // Primary aim driven by gaze
        currentAimVector = gazeOrigin.forward;
        
        // Optional: Read thumbstick X-axis for horizontal micro-adjustments
        Float xAxisInput = Input.GetAxis("Thumbstick_X");
        If (Mathf.Abs(xAxisInput) > thumbstickDeadzone) {
            currentAimVector = ApplyHorizontalOffset(currentAimVector, xAxisInput);
        }
        
        // Update the visual targeting reticle
        RenderTargetingReticle(currentAimVector);
    }

    // Phase 2: Tension & Hardware Release
    Function ProcessTensionAndRelease() {
        // Read the backward pull (Y-axis or Z-axis depending on API)
        Float yAxisInput = Input.GetAxis("Thumbstick_Y");

        If (yAxisInput < -thumbstickDeadzone) {
            // User is pulling back: Build tension
            isDrawing = true;
            
            // Map input (-0.1 to -1.0) to a positive tension scalar (0.0 to 1.0)
            currentTension = Mathf.Abs(yAxisInput); 
            
            // Render multimodal tension feedback
            UpdateBowstringVisuals(currentTension);
            PlayHapticFeedback("TensionRumble", intensity: currentTension);
            
        } Else If (isDrawing AND Mathf.Abs(yAxisInput) <= thumbstickDeadzone) {
            // User released the stick: It snapped back to the neutral deadzone
            ExecuteLaunch();
        }
    }

    // Phase 3: Execution
    Function ExecuteLaunch() {
        // Instantiate the projectile
        GameObject projectile = Instantiate(projectilePrefab, spawnPoint.position, Quaternion.LookRotation(currentAimVector));
        
        // Calculate final velocity based on the tension state prior to release
        Float appliedVelocity = maxLaunchVelocity * currentTension;
        projectile.GetComponent<Physics>().velocity = currentAimVector * appliedVelocity;

        // Reset state
        isDrawing = false;
        currentTension = 0.0f;
        UpdateBowstringVisuals(0.0f);
        
        PlayAudioFeedback("SnapAndLaunch");
    }
}

Dependencies

Input Mirroring Behaviour: The Magic Slingshot relies on the Input Mirroring behaviour to allow users to control aiming with either hand, regardless of which hand is holding the controller. This ensures that the aiming direction corresponds intuitively to the user's dominant hand, enhancing accessibility and ease of use.

Gesture Abstraction Behaviour: The Magic Slingshot is an example of a specific implementation of the broader Gesture Abstraction behaviour, which encompasses any mechanism that abstracts complex gestures into simpler input methods, allowing for more accessible interactions.

Enhancements

Assisted Dexterity (smoothing) can be used in conjunction with the Magic Slingshot to allow users with fine motor control difficulties to more easily aim and release projectiles, by smoothing out input.

Multimodal Consistency should be implemented to ensure that visual, auditory, and haptic feedback are perfectly synchronised when users interact with the Magic Slingshot, reducing sensory confusion and enhancing the overall user experience.

Previous
The Linear Flow System