Skip to main content

VeltoKit SDK

VeltoKit maps BLE motion bytes → GameInput each frame. No UI, no CoreBluetooth in the core target.

Names (do not confuse)
NameWhat it is
VeltoKitSwift SDK in VeltoKit/ — link this in your app
gametrikiSample iOS app in app/ — not a second framework
TrikiInformal name for the BLE cap + app UI layer (TrikiInputAdapter, TrikiUI)

API source of truth: VeltoKit/GameInput.swift and VeltoKit/MotionSDK.swift — not marketing text on the website. If docs and code disagree, trust the Swift files.

Docs search & AI skills

Use Search (⌘K / Ctrl+K). Assistants: Context for AI · repo root AGENTS.md. Use Search in the top navbar (⌘K / Ctrl+K) to find any topic.
Download Cursor / Claude prompt files on For Cursor Claude (footer: AI skills (download)).

Integrate (MotionSDK)

Simple path — BLE scan + read each frame:

import VeltoKit

let motion = MotionSDK()
motion.setMode(.paddle)
motion.connect()

let input = motion.pollInput(deltaTime: dt)

Manual path — your own CBCentralManager:

motion.enqueueBLE(bytes)
motion.updateFrame(deltaTime: dt)
let input = motion.input

Optional: TrikiInputAdapter in the sample app adds calibration UI on top of MotionSDK — see BLE integration. For cap calibration + a motion-driven menu (Quiz-style), see Triki UI — calibration & simple menu.

Modes

ModeSample games
.paddlePong, Quiz
.pointerDart
.gestureBowling
motion.config = MotionConfig.preset(for: .paddle) // optional tuning

Docs

Quick start