Skip to main content

A package that simulates realistic human-like mouse movements

Project description

Human Mouse 🖱️

🎯 Human-like mouse movements powered by bezier curves and spline interpolation. Ultra-realistic cursor automation.

PyPI version Python 3.10+ License: MIT

Overview

Human Mouse is a sophisticated Python package that generates ultra-realistic mouse movements by implementing advanced mathematical algorithms. It uses a combination of bezier curves and spline interpolation to create smooth, natural-looking cursor trajectories that closely mimic human behavior.

Installation

pip install human-mouse

Core Functions & Examples

Basic Movement

Move cursor to specific coordinates with natural trajectory

mouse = MouseController()
mouse.move(500, 300)  # Move to coordinates
mouse.move(800, 600, speed_factor=0.5)  # Move faster

Random Movement

Move to a random screen position using human-like patterns

mouse.move_random()  # Move to random position
mouse.move_random(speed_factor=2.0)  # Slower random movement

Click Operations

Execute a single click

mouse.perform_click(500, 300)  # Move and click

Natural double click

mouse.perform_double_click(500, 300)  # Move and double click

Right-click action

mouse.perform_context_click(500, 300)  # Move and right click

Movement Patterns

Enable zigzag movements for more natural patterns

zigzag_mouse = MouseController(always_zigzag=True)
zigzag_mouse.move(500, 300)

Virtual Display Support

Linux virtual display support

virtual_mouse = MouseController(is_virtual=True)
virtual_mouse.move(500, 300)

Advanced Features

Movement Patterns

  • Bezier curve interpolation for smooth trajectories
  • Spline-based path generation
  • Randomized movement variance
  • Natural acceleration/deceleration
  • Configurable zigzag patterns

Platform Support

  • Windows: Full native support
  • macOS: Full native support
  • Linux: Supports both native and virtual displays

Complete Example

from human_mouse import MouseController
import time

# Initialize controller
mouse = MouseController(always_zigzag=True)

# Perform series of actions
mouse.move(500, 300)  # Move to position
time.sleep(0.5)  # Wait briefly
mouse.perform_click()  # Click
time.sleep(0.5)  # Wait briefly
mouse.move_random()  # Move to random position
mouse.perform_double_click()  # Double click

Technical Requirements

  • Python 3.10+
  • Dependencies:
    • numpy
    • pyautogui
    • scipy
    • python-xlib (optional, for Linux virtual display)

Contributing

We welcome contributions! Please feel free to submit pull requests.

License

MIT License - see the LICENSE file for details.

Support

Random Move Demo

https://github.com/user-attachments/assets/fa5b900b-01c3-4312-819c-1f558005b54e

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

human_mouse-0.1.2.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

human_mouse-0.1.2-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file human_mouse-0.1.2.tar.gz.

File metadata

  • Download URL: human_mouse-0.1.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.11

File hashes

Hashes for human_mouse-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2bce237e8f50657643e7ba73b1ab54e4ec19aca25edca977172f90cddb8d7a46
MD5 c824f920df307670e0fd2dc0f9c17a89
BLAKE2b-256 3d9c62304e068299ca9d4d682e714c721f9f5eae0ba7eed5f5ca34bcaf641f99

See more details on using hashes here.

File details

Details for the file human_mouse-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: human_mouse-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.11

File hashes

Hashes for human_mouse-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 15dd1a460567dd7260e2da5bda38d5b67f7c63fa37dfe6d7f60c14be886825c2
MD5 9755678538437ba2c442e85c6fc367e5
BLAKE2b-256 46040ffbd7d1f15c74a4176924d8d625a18eb23474ec2aec9b897b9661403da6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page