whatisgithub

What is abcurves?

optima-manent/abcurves — explained in plain English

Analysis updated 2026-05-18

43PythonAudience · developerComplexity · 4/5LicenseSetup · moderate

In one sentence

A Python tool that watches the start of a real mouse movement and generates a realistic, human-like finish for it in real time.

Mindmap

mindmap
  root((ABCurves))
    What it does
      Continues real movement
      Generates human-like motion
    Tech stack
      Python
      PyTorch
      NumPy
    Use cases
      Testing tools
      Motion research
    Audience
      Developers
      Researchers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Generate realistic human-like mouse movement data for testing or research

USE CASE 2

Continue a real user's mouse movement toward a target in real time

USE CASE 3

Study or benchmark synthetic mouse movement against real recorded human data

What is it built with?

PythonPyTorchNumPy

How does it compare?

optima-manent/abcurvesalibaba/omnidoc-tokenbencharccalc/dwmfix
Stars434343
LanguagePythonPythonPython
Setup difficultymoderatemoderateeasy
Complexity4/53/52/5
Audiencedeveloperresearchergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires installing PyTorch and NumPy and cloning the repository before running the example scripts.

Free to use, modify, and share, including commercially, as long as you keep the copyright notice (MIT license).

So what is it?

ABCurves is a Python project that generates realistic human mouse movements. Instead of drawing a full path from a starting point to a target on its own, it watches a real person start moving the mouse, cuts that motion partway through, and then predicts how the rest of the movement would look and feel if that same person had kept going. The problem the creator focused on is subtle. A mouse reports its position roughly a thousand times per second, so a single movement, like a quick flick toward a button or a slow careful drag, is really a long list of tiny numbers describing how far the cursor moved each moment. Many earlier tools that try to fake mouse movement generate the whole path from nothing, which means they have to guess everything about a person's style: how fast they move, which mouse they use, how steady their hand is. ABCurves instead uses the first part of a real movement as a clue, then continues in a way that matches that same style, speed, and small mechanical quirks of that person's hardware. To do this, the project uses two small models working together. One, called the Planner, looks at the beginning of the movement and the target location, then sketches a smooth path for how the rest of the movement should go. The other, called the Renderer, takes that smooth sketch and turns it into the raw, jittery, second by second numbers a real mouse would actually produce, quantization and all. Both models are small enough to run quickly, so the whole process happens in real time rather than being computed ahead of time. The results are tested against thousands of real human mouse movements using statistical comparisons, and the project reports that its output is difficult to distinguish from an actual person's movement. The repository includes the trained models, the code used to train them, example scripts to try it yourself, and a written explanation of how the approach was built. It is released under the MIT license, meaning it can be used, modified, and shared freely, and the project has an active Discord community for anyone who wants to discuss it further.

Copy-paste prompts

Prompt 1
Help me install ABCurves and run its quickstart example to generate a mouse movement
Prompt 2
Explain how the Planner and Renderer models in ABCurves work together
Prompt 3
Show me how to use ABCurves' Pipeline class to generate a B to C mouse movement from a real A to B prefix
Prompt 4
Help me run ABCurves' real-time benchmark script on my own CPU

Frequently asked questions

What is abcurves?

A Python tool that watches the start of a real mouse movement and generates a realistic, human-like finish for it in real time.

What language is abcurves written in?

Mainly Python. The stack also includes Python, PyTorch, NumPy.

What license does abcurves use?

Free to use, modify, and share, including commercially, as long as you keep the copyright notice (MIT license).

How hard is abcurves to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is abcurves for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.