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
Metadata
Release files for human-mouse 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| human_mouse-0.1.2.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| human_mouse-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.3 kB
Release files / human_mouse-0.1.2.tar.gz
| Download URL | human_mouse-0.1.2.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2bce237e8f50657643e7ba73b1ab54e4ec19aca25edca977172f90cddb8d7a46
|
|
BLAKE2b-256 checksum How to use checksums |
3d9c62304e068299ca9d4d682e714c721f9f5eae0ba7eed5f5ca34bcaf641f99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.11
|
Release files / human_mouse-0.1.2-py3-none-any.whl
| Download URL | human_mouse-0.1.2-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
15dd1a460567dd7260e2da5bda38d5b67f7c63fa37dfe6d7f60c14be886825c2
|
|
BLAKE2b-256 checksum How to use checksums |
46040ffbd7d1f15c74a4176924d8d625a18eb23474ec2aec9b897b9661403da6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.11
|