Files
ai_mouse/CHANGELOG.md
2026-07-09 18:07:06 +08:00

2.2 KiB

Changelog

All notable changes to this project will be documented here. Format follows Keep a Changelog; versioning follows Semantic Versioning.

[Unreleased]

Changed

  • Mouse post-processing pipeline reworked to remove endpoint artifacts: hard forward clip → backtrack-tolerant soft monotonic with tanh overshoot compression (soften_forward); tail-drag endpoint snapping → whole-curve smoothstep residual correction (warp_endpoints); abrupt start damping → continuous smoothstep damping (damp_start); gaussian smoothing now applied to both axes.
  • tests/unit/data/golden_mouse.npz re-baselined against the new pipeline (intentional behavior change; scroll goldens unchanged).

[0.2.0] - 2026-05-12

Changed (breaking)

  • Inference no longer requires PyTorch. Runtime dependencies are now numpy + onnxruntime only.
  • Public API additions: MouseModel and ScrollModel classes wrapping a persistent ORT InferenceSession.
  • Function signatures generate() and generate_scroll() are now keyword-only past the positional start/end (or start_scroll_y/target_scroll_y).
  • New parameters: click=True (mouse), seed= (both), viewport_height= (scroll).
  • Removed config= parameter; use kwargs directly.
  • model_dir= renamed to model_path=; accepts str or pathlib.Path.
  • start_scrollY / target_scrollY renamed to start_scroll_y / target_scroll_y.
  • Training, web UI, collector, eval, and data adapter code moved to repo-level tools/; no longer packaged in the wheel.

Added

  • ONNX-format pre-trained weights bundled inside the wheel via importlib.resources (~3 MB).
  • tools/export_onnx.py script with PyTorch/ORT parity check.
  • Errors namespace ai_mouse.errors with AiMouseError, ModelLoadError, GenerationError.
  • Custom ORT providers parameter for GPU / DirectML.
  • Per-process lru_cache so generate() / generate_scroll() reuse the default model across calls.

Removed

  • Legacy JointCVAE class.
  • ai_mouse.config.GenerateConfig top-level export (parameters moved to kwargs).
  • Source dependency on scipy.stats.truncnorm (replaced by numpy rejection sampling).