MouseTrainer Same seed. Same score. Every time.
Deterministic mouse dexterity trainer with fixed-timestep simulation, composable blueprint mutators, and replay verification. Built on .NET MAUI.
Install
dotnet add package MouseTrainer.Domain
Simulate
dotnet add package MouseTrainer.Simulation
Audio
dotnet add package MouseTrainer.Audio
Core Features
Determinism is constitutional. No DateTime.Now, no System.Random, no platform-dependent floats.
Deterministic to the Bit
xorshift32 RNG, FNV-1a 64-bit hashing, fixed 60 Hz timestep with accumulator catch-up. Same seed = same level = same score.
Composable Mutators
Six blueprint mutators reshape levels before play. Stack them, tune parameters, and the combination is frozen into the RunId hash.
Replay Verification
Binary .mtr format with quantized input, run-length encoding, and tick-by-tick re-simulation. Event hash + score + combo verified.
Protocol-Grade Identity
RunId is an FNV-1a 64-bit hash over mode + seed + difficulty + mutator specs. Once created, frozen forever.
Modular Monolith
Four assemblies with enforced one-way dependencies. Domain is the leaf with zero deps; MauiHost is the only composition root.
Event-Driven Audio
AudioDirector maps simulation events to sound cues with deterministic volume/pitch jitter. Rate-limited, asset-verified at startup.
Quick Start
Install packages
# Core primitives (RNG, hashing, run identity)
dotnet add package MouseTrainer.Domain
# Simulation engine (game loop, modes, mutators)
dotnet add package MouseTrainer.Simulation
# Audio cue system
dotnet add package MouseTrainer.Audio Create a deterministic run
var run = RunDescriptor.Create(
mode: new ModeId("ReflexGates"),
seed: 42,
difficulty: DifficultyTier.Standard);
var generator = new ReflexGateGenerator(config);
var blueprint = generator.Generate(run.Seed);
var loop = new DeterministicLoop(sim,
new DeterministicConfig { FixedHz = 60 }); Blueprint Mutators
NuGet Packages
Replay System
Architecture
Four-module modular monolith. No cycles, no platform leakage into libraries.
Domain (Leaf)
Shared primitives, RNG, hashing, run identity. Zero dependencies — the constitutional foundation.
Simulation
Deterministic loop, modes, mutators, levels, replay. Depends only on Domain.
Audio
Event-driven cue system, asset verification. Depends only on Domain. Never references Simulation.