tapwithus/tap-ios-sdk/tapkit-motion

Claude Code and agent skill by tapwithus/tap-ios-sdk

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use TAP hand motion from moused velocities and tapDidChangeOrientation roll, pitch, and yaw to move a cursor, tilt, or rotate. Use for air mouse, pointer, cursor, AssistiveTouch, or orientation.

Install

npx vskill@latest install tapwithus/tap-ios-sdk/tapkit-motion

SKILL.md

Motion and air mouse

Start from tapkit-getting-started. Motion and taps can be on together.

Enable

swift
TAPKit.sharedKit.setTAPInputMode(.controller(), forIdentifiers: nil)
TAPKit.sharedKit.setTAPXRState(.airMouse(), forIdentifiers: nil) // TapXR and TapBand

If TAPXRState is not set, turn the stream on:

swift
TAPKit.sharedKit.setFeature(.imuMotionData, enabled: true, forIdentifiers: [identifier])

Turn it off with setFeature(.imuMotionData, enabled: false, ...) when the screen does not need motion, to save battery. A later setTAPInputMode(.controller()) turns it back on.

TAPInputMode.controllerWithMouseHID() also drives the iOS AssistiveTouch cursor (iOS 13+, Accessibility settings). The app still receives moused.

Pointer deltas

swift
func moused(identifier: String, velocityX: Int16, velocityY: Int16, isMouse: Bool) {
guard isMouse else { return } // false is an idle / zero packet
cursor.x += CGFloat(velocityX) * gain
cursor.y += CGFloat(velocityY) * gain
}
  • velocityX and velocityY are signed deltas since the last packet. Scale them in the app.
  • isMouse == false means "not a pointer move". Skip it or you will fight idle packets.
  • There is no fixed packet rate. If timing matters, measure it.

Orientation

swift
func tapDidChangeOrientation(roll: Int, pitch: Int, yaw: Int) {
// degrees
}

This callback does not include a device identifier. With two Taps connected, the app cannot tell which hand moved. Track one device, or keep the last moused identifier only as a hint (it is not guaranteed to match).

  • roll, pitch, yaw are signed degrees.
  • Do not treat absolute roll as a dial. Store the roll when the gesture starts (a DragIndex grab, see tapkit-knob) and use the delta. Roll wraps at ±180.
  • Tap Strap mouse packets may omit useful euler angles. Use raw IMU (tapkit-raw-sensors) when you need orientation from a Tap Strap.

Patterns

Clamp a cursor inside the view bounds. Add a dead zone so a still hand does not drift: ignore the sample when abs(velocityX) + abs(velocityY) < 2.

Smooth a noisy angle with an exponential average:

swift
smooth = alpha * value + (1 - alpha) * smooth // alpha around 0.3

System cursor: controllerWithMouseHID() plus AssistiveTouch. The app does not draw that cursor.

If a direction is mirrored on the user's device, flip the sign and ask them to try again.

Docs

  • moused and tapDidChangeOrientation: README.md in the SDK repository
  • Combining motion with pinch-hold: tapkit-knob, tapkit-dpad

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
32
Repository forks
7
7-day trend score
0

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/tapwithus/tap-ios-sdk/tapkit-motion/badge)](https://verified-skill.com/skills/tapwithus/tap-ios-sdk/tapkit-motion)

Something wrong with this skill or its page? Tell us.