Skip to main content

📐 Cursory

Cursory Version Pypi Downloads

Cursory - Mouse Trajectory Factory. Generate 100% human-realistic Mouse Trajectories with Timings.


Install it from PyPI

pip install cursory

Basic Usage

from cursory import generate_trajectory

trajectory: list[tuple[float, float]]
timings: list[int]
trajectory, timings = generate_trajectory(target_start=..., target_end=...)

Example Trajectories

Random Points Same Points Points / Velocity
Random Points Same Points Points / Velocity

Methodology

Cursory generates Mouse Trajectories following these steps:

  1. Find a close matching human Trajectory: Cursory has a database of thousands of Trajectories recorded from real humans. It finds the closest matching Trajectory to the target Points with some amount of randomization.
  2. Morph the Trajectory: The Trajectory is morphed to fit the target Points exactly, while keeping the overall shape as close to the original as possible.
  3. Add Noise: The Trajectory is jittered and knotted, to alter positions slightly to avoid fingerprinting by hash-fingerprinting.
  4. Regenerating with Timings: The Trajectory is regenerated using the Trajectory Frequency, with some noise added to the timings to avoid.
  5. Re-Add Noise: The Trajectory is jittered and knotted, to alter positions slightly to avoid fingerprinting by hash-fingerprinting.
  6. Morph the Trajectory: The Trajectory is morphed to fit the target Points exactly, while keeping the overall shape to the original as possible.

© Vinyzu
GNU LGPL

All Cursory versions are retroactively dual-licensed under LGPLv3-or-later and GPLv3-or-later.

(Commercial Usage is allowed, but source, license and copyright has to made available. Cursory does not provide and Liability or Warranty)


Thanks to

Pointergeist (For helping me understand Mouse Trajectories better).
sameelarif (For his awesome work on Scribe)
Margit Antal, Norbert Fejer, Krisztian Buza (For their work on SapiMouse)
MIMIC-LOGICS (For their Mouse-Synthesizer)


Disclaimer

This repository is provided for educational purposes only.
No warranties are provided regarding accuracy, completeness, or suitability for any purpose. Use at your own risk—the authors and maintainers assume no liability for any damages, legal issues, or warranty breaches resulting from use, modification, or distribution of this code.
Any misuse or legal violations are the sole responsibility of the user.

Metadata

Release files for cursory 2.0.1

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

Source distribution (sdist)

Source distribution for cursory 2.0.1
File Size Uploaded
cursory-2.0.1.tar.gz 657.7 kB Details

Built distribution (wheel)

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

Total release size: 1.3 MB

Release files / cursory-2.0.1.tar.gz

Download URL cursory-2.0.1.tar.gz
Size 657.7 kB
Tags Source
SHA-256 checksum
How to use checksums
273010ad732c5c8d6be9633ba3b708dd080414ebb453d88a193d4a6e1e85703d
BLAKE2b-256 checksum
How to use checksums
08c67ab3020c91e2a3be3d4199444fecaba1c25ba7ef35cb2222907df789eeec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cursory-2.0.1-py3-none-any.whl

Download URL cursory-2.0.1-py3-none-any.whl
Size 651.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88e5bb2d6e5054365b211d9d224fc10754583555acb104eb159c888d5a6a9b50
BLAKE2b-256 checksum
How to use checksums
f61f09b82d097a9d9e32c05c260095a3aa023f0c52519a81ca11396517d41fc0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.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