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.
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
- Issues: GitHub Issues
Random Move Demo
https://github.com/user-attachments/assets/fa5b900b-01c3-4312-819c-1f558005b54e
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bce237e8f50657643e7ba73b1ab54e4ec19aca25edca977172f90cddb8d7a46
|
|
| MD5 |
c824f920df307670e0fd2dc0f9c17a89
|
|
| BLAKE2b-256 |
3d9c62304e068299ca9d4d682e714c721f9f5eae0ba7eed5f5ca34bcaf641f99
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15dd1a460567dd7260e2da5bda38d5b67f7c63fa37dfe6d7f60c14be886825c2
|
|
| MD5 |
9755678538437ba2c442e85c6fc367e5
|
|
| BLAKE2b-256 |
46040ffbd7d1f15c74a4176924d8d625a18eb23474ec2aec9b897b9661403da6
|