Skip to content

Stable 1.0.0

Latest

Choose a tag to compare

@AsfhtgkDavid AsfhtgkDavid released this 16 Dec 17:14
28427ca

Here’s a clean GitHub Release description for the first version (v1.0.0) you can paste directly into the release page:


🎉 WindMouse v1.0.0 — Initial Release

This is the first stable release of WindMouse, a Python library for generating human-like mouse movements using a physics-based WindMouse algorithm.

WindMouse is designed for automation scenarios where realistic cursor behavior matters, helping avoid detection by producing non-linear paths, variable speed, and natural deceleration.


✨ Key Features

  • Physics-based WindMouse algorithm

    • Gravity-driven target attraction
    • Randomized wind force for natural curvature
    • Smooth acceleration and deceleration near the target
  • Human-like mouse movement

    • Curved, non-deterministic trajectories
    • Variable speed instead of constant linear motion
  • Multiple backends

    • PyAutoGUI (cross-platform: Windows, macOS, Linux)
    • AutoHotkey (Windows-only, native integration)
  • Fine-grained control

    • Configurable gravity, wind, speed, and damping parameters
    • Adjustable movement timing (tick_delay, step_duration)
  • Advanced interaction support

    • Drag & drop via mouse button holding
    • Dynamic destination changes during movement
    • Manual step-by-step control with tick()
  • Type-safe API

    • Strong typing with NewType (Coordinate)
    • Fully compatible with mypy
  • Well-tested & documented

    • Comprehensive unit and integration tests
    • Detailed documentation covering algorithm theory, API, and usage examples

📦 What’s Included

  • Core WindMouse path generator
  • Abstract controller interface
  • PyAutoGUI and AutoHotkey controllers
  • Sphinx-based documentation
  • CI pipelines for testing, linting, and publishing

🚀 Getting Started

pip install windmouse[pyautogui]
from windmouse.pyautogui_controller import PyautoguiMouseController
from windmouse import Coordinate

mouse = PyautoguiMouseController()
mouse.dest_position = (Coordinate(800), Coordinate(600))
mouse.move_to_target()

🔖 Versioning

This release marks v1.0.0, establishing a stable public API.
Future releases may introduce new movement models, optimizations, and additional backends while maintaining backward compatibility when possible.


Feedback, bug reports, and contributions are welcome! 🚀