Skip to main content

Path Generator

Tests Coverage

A Python library for generating human-like mouse paths using PD (Proportional-Derivative) control.

Installation

Core Library

Install the core library (only requires numpy):

pip install pathgenerator

With Windows Emulator

Install with pywin32 for high-performance cursor emulation (Windows only):

pip install pathgenerator[windows]

With Server

Install with the optional FastAPI server:

pip install pathgenerator[server]

Usage

Human Motion Parameters

  • mouse_velocity: Base movement velocity (unitless, 0.1-1.0).
  • kp_start / kp_end: Correction strength at start vs. end.
  • stabilization: Damping factor to smooth out jitters (0.0-1.0).
  • noise: Amount of random hand tremor (0.0-10.0+).
  • overshoot_prob: Probability of overshooting the target and correcting (0.0-1.0).
  • arc_strength: Tendency to move in a curved arc (0.0-0.5).
  • keep_prob_start / keep_prob_end: Point density (drop probability) at start/end.
  • offset_x / offset_y: Global offset added to all points.

Generating Paths

from pathgenerator import PDPathGenerator

gen = PDPathGenerator()
path, progress, steps, params = gen.generate_path(
    start_x=100.0, start_y=100.0,
    end_x=1800.0, end_y=900.0,
    mouse_velocity=0.65,
    noise=2.6,
    offset_x=0, offset_y=0  # Optional viewport offset
)

Tuning Workflow (Server + JSON)

The easiest way to find realistic parameters is to use the interactive playground. (Requires: pip install pathgenerator[server])

  1. Launch the server:
    python -m pathgenerator.server
    
  2. Tune settings at http://127.0.0.1:8001.
  3. Download JSON: Click "Export Preset" to save your settings as human_relaxed.json.
  4. Load in Python:
    # Initialize generator with your custom preset
    gen = PDPathGenerator("human_relaxed.json")
    
    # All generated paths will now use those settings by default
    path, *_ = gen.generate_path(100, 100, 500, 500)
    

Executing Paths (Windows Only)

The PathEmulator class includes a helper get_position() to simplify generating paths from your current mouse location.

from pathgenerator import PDPathGenerator, PathEmulator

# Requires: pip install pathgenerator[windows]
emulator = PathEmulator()
gen = PDPathGenerator()

# 1. Get current mouse position
start_x, start_y = emulator.get_position()

# 2. Generate path to target (e.g., 500, 500)
# calculate offset if you are targeting a window relative to screen 0,0
path, *_ = gen.generate_path(start_x, start_y, 500, 500)

# 3. Move the mouse (optional delay to control playback speed)
emulator.execute_path(path, delay_between_points=0.001)

Release files for pathgenerator 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pathgenerator 0.1.2
File Size Uploaded
pathgenerator-0.1.2.tar.gz 2.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pathgenerator 0.1.2
File Interpreter ABI Platform
pathgenerator-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 2.1 MB

Release files / pathgenerator-0.1.2.tar.gz

Download URL pathgenerator-0.1.2.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
2c10e4637c679b0de104290dc57723a72a338ec79977b8b41af5348a37986475
BLAKE2b-256 checksum
How to use checksums
7a4fe87a9b470eebdeb404b447b4ec2dd1731b1af270280b41aef2861c888d29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / pathgenerator-0.1.2-py3-none-any.whl

Download URL pathgenerator-0.1.2-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca1393aa7067365da626080b8f30139393b3da89939db2bae8c9000167ed37c1
BLAKE2b-256 checksum
How to use checksums
ecf014b57ec458c13d8bc9fd8dca39d1a782d7a96e49ab815aaeaf1fe34d5aa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page