Assistive cursor control, deterministic by design.
DSP-grounded tremor compensation, adaptive deadzones, and target magnetism — every frame is hash-verified and reproducible. Plus MouseTrainer for building dexterity over time.
Install
dotnet add package CursorAssist.Engine
Pipeline
var pipeline = new TransformPipeline()
.Add(new SoftDeadzoneTransform())
.Add(new SmoothingTransform())
.Add(new PhaseCompensationTransform());
Run
var result = engine.FixedStep(in raw, ctx);
// result.DeterminismHash → FNV-1a
Features
DSP-grounded accessibility, not toy filters.
Tremor compensation
Velocity-adaptive EMA smoothing with closed-form cutoff from tremor frequency, optional dual-pole, and phase compensation.
Fully deterministic
Same input always produces the same output. No DateTime.Now, no Random, no platform-dependent floats. FNV-1a hash verification on every tick.
Modular NuGet packages
Canon (schemas), Trace (recording), Policy (profile mapping), Engine (pipeline). Use only what you need — no forced coupling.
Usage
Map a motor profile
using CursorAssist.Canon.Schemas;
using CursorAssist.Policy;
var profile = new MotorProfile {
TremorFrequencyHz = 6f,
TremorAmplitudeVpx = 4.5f,
PathEfficiency = 0.72f,
};
var config = ProfileToConfigMapper.Map(profile);
// SmoothingMinAlpha → ~0.31
// DeadzoneRadiusVpx → ~2.7 Build the pipeline
using CursorAssist.Engine.Core;
using CursorAssist.Engine.Transforms;
var pipeline = new TransformPipeline()
.Add(new SoftDeadzoneTransform())
.Add(new SmoothingTransform())
.Add(new PhaseCompensationTransform())
.Add(new TargetMagnetismTransform());
var engine = new DeterministicPipeline(
pipeline, fixedHz: 60); NuGet Packages
Four independent packages, one-way dependencies.
Two Products, One Engine
Real-time assistance and dexterity training.
CursorAssist Pilot
System tray app that intercepts and transforms raw pointer input in real time — tremor compensation, deadzones, edge resistance, target magnetism.
MouseTrainer
.NET MAUI desktop game with fixed-timestep simulation, composable blueprint mutators, and drag-and-drop gauntlet mode for building dexterity.
214+ tests
Every transform, every policy rule, every edge case. Platform-stable run identity via xorshift32 RNG and FNV-1a hashing.