Pointer Lab

@rebind / pointer-labv0.1.5Public

Invert, rotate, and tune each pointer axis with adjustable movement curves. Requires Rebind Link.

Files

Older release. Installs get 0.1.5.

README.md3.4 KB

# Pointer Lab

Invert either mouse axis, rotate movement, and adjust horizontal and vertical
sensitivity independently. An optional speed curve changes gain between slow
and fast movement. All controls share one settings panel.

## Setup

Requires Rebind Engine 3.5.0 or newer on Windows or macOS, with an authenticated
Rebind Link and the mouse forwarded through hardware capture. Software mode
and Linux are not supported. See [platform setup](https://docs.rebind.gg/concepts/platforms).

Open `main.luau` in Rebind and use its **Options** panel. Start the script from
the editor toolbar, or run `rebind run library/pointer-lab` from the repository
root. Defaults preserve movement direction and use 1x sensitivity with the
curve off. Settings save automatically and apply while running, without a
restart.

Press **F8** to bypass or re-enable the transforms. The **Apply transforms (F8)**
switch shows the same state. F8 is reserved while this script runs; other keys,
mouse buttons, and scrolling are not changed by Pointer Lab.

## Tune movement

1. Set **Invert horizontal input** or **Invert vertical input** if needed.
2. Adjust **Rotation (clockwise)**. With inversion off, +90° turns right into
   down; -90° turns right into up. Inversion happens before rotation.
3. Set **Horizontal sensitivity** and **Vertical sensitivity** from 0.1x to 4x.
   These scale the output axes after rotation, so horizontal always means the
   final left/right movement.
4. Turn on **Use a movement curve** to reveal its controls. Choose **Linear**
   for an even ramp, **Smooth** for eased ends, or **Quadratic** for a slower
   initial change.
   **Slow movement gain** and **Fast movement gain** multiply both sensitivities.
   Set fast gain above slow gain for acceleration, or below it for deceleration.
   Equal gains give constant scaling.

**Transition speed** is where the curve reaches fast gain and stops increasing
or decreasing. It is measured in raw mouse counts per millisecond, not screen
pixels. A higher-DPI mouse reaches it with less physical movement. Start with
the curve off, tune the two sensitivities, then enable and adjust the curve.

Use the panel's **Reset to defaults** to restore the original settings.

## Stop and recovery

Turn **Apply transforms (F8)** off to pass original movement through. Stop the
script in the editor, or press Ctrl+C in its `rebind run` terminal. To stop all
scripts and release held input, press **Left Ctrl + Left Alt + K**.

Pointer Lab discards pending movement when bypassed or stopped. It never holds
keys or buttons. Run only one movement-transform script at a time: a blocked
movement event does not reach lower-priority scripts.

## Timing and verification

Movement is combined until the next script tick, requested at 1,000 ticks per
second. Curves use net displacement divided by actual elapsed tick time. This
adds tick scheduling delay and is not a USB polling-rate or latency guarantee.
Direction reversals inside one tick can cancel. Fractional output is retained
between ticks so sensitivity below 1x does not discard small movements.
Operating-system pointer settings still affect the emitted HID movement.

Source is prepared for hardware testing. Physical capture, cursor feel, and
Link output have not been verified on Windows or macOS. Listing artwork is an
original illustration, not a screenshot or evidence of execution.

4 files, 8.8 KB. 1 has no text preview.