https://github.com/sarperavci/human_mouse
🎯 Ultra-realistic human mouse movements using bezier curves and spline interpolation. Natural cursor automation.
https://github.com/sarperavci/human_mouse
automation bezier-curves human-mouse mouse mousemove web-automation
Last synced: 11 months ago
JSON representation
🎯 Ultra-realistic human mouse movements using bezier curves and spline interpolation. Natural cursor automation.
- Host: GitHub
- URL: https://github.com/sarperavci/human_mouse
- Owner: sarperavci
- Created: 2025-01-10T18:56:40.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-01T01:20:18.000Z (12 months ago)
- Last Synced: 2025-06-04T02:58:05.214Z (11 months ago)
- Topics: automation, bezier-curves, human-mouse, mouse, mousemove, web-automation
- Language: Python
- Homepage:
- Size: 11.7 KB
- Stars: 30
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Human Mouse 🖱️
🎯 Human-like mouse movements powered by bezier curves and spline interpolation. Ultra-realistic cursor automation.
[](https://badge.fury.io/py/human-mouse)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/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
```bash
pip install human-mouse
```
## Core Functions & Examples
### Basic Movement
Move cursor to specific coordinates with natural trajectory
```python
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
```python
mouse.move_random() # Move to random position
mouse.move_random(speed_factor=2.0) # Slower random movement
```
### Click Operations
Execute a single click
```python
mouse.perform_click(500, 300) # Move and click
```
Natural double click
```python
mouse.perform_double_click(500, 300) # Move and double click
```
Right-click action
```python
mouse.perform_context_click(500, 300) # Move and right click
```
### Movement Patterns
Enable zigzag movements for more natural patterns
```python
zigzag_mouse = MouseController(always_zigzag=True)
zigzag_mouse.move(500, 300)
```
### Virtual Display Support
Linux virtual display support
```python
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
```python
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](https://github.com/sarperavci/human_mouse/issues)
## Random Move Demo
https://github.com/user-attachments/assets/fa5b900b-01c3-4312-819c-1f558005b54e