Trackpad Studio
GitHub

macOS 13+ · Swift · AppKit · MIT

Your trackpad has been a drawing surface this whole time.

macOS knows where every finger is, how hard it presses, how wide it lands — it just never shows you. Trackpad Studio reads that stream and turns the pad into a canvas: ink lands exactly where your finger touches.

macOS 13+
Swift · AppKit
MIT free
0 dependencies
The Trackpad Studio board: a near-black canvas with a sun, two waves, an arrow and a labelled box, all sketched with fingers. A tool column sits on the left; the status strip reads ZEN, pen, 100%.
Every stroke here was drawn with a finger Corner brackets mark the physical pad Stroke width follows Force Touch

The web only gets a mouse

Drag inside the box.

This is the whole of what a browser receives from your trackpad: one point, no pressure, relative motion. Put a second finger down — the counter stays at 1.

The real data goes only to native code: absolute per-finger coordinates, contact ellipses, Force Touch pressure. That gap is why this app exists.

drag here
Points
0
Force
X
0.00
Y
0.00
Mode
relative

mouse events · 1 contact max

Guided tour · 8 capabilities

What your trackpad can secretly do

One card per capability. Each stays dashed until you actually perform the gesture — nothing unlocks by reading.

Multi-touch tracking

Rest 1–5 fingers anywhere on the pad

Absolute position

Slide one finger to a corner; the dot mirrors it

Per-finger size + ellipse

Press flat with your thumb; watch the ellipse grow

Force Touch pressure

Click and keep pressing; the bar fills past stage 1

Pinch

Two fingers, in and out; the scale multiplies

Rotate

Two fingers, turn; degrees accumulate

Scroll

Two fingers, any direction; dx and dy stream in

Resting touch

Park a thumb and leave it; it is counted, not obeyed

Weight estimate experimental

Contact size grows with pressure, so the pad can be talked into being a very rough scale: tare, set something down, calibrate against a known weight. A party trick with a plausible number — not a kitchen scale.

Per-finger data needs Input Monitoring permission. Without it the app drops the size-based features and everything else keeps working.

0.0 g net size 0.000

On the board

Fingers on the pad, cursor out of the way

ZEN

Zen mode freezes the pointer

A finger lands: the cursor freezes and hides. It's back the instant the last finger lifts, focus moves, or you press Esc.

Force sets the width

A light touch is just a cursor; press, and pressure thickens the stroke under your finger.

Zoom and pan, one gesture

Two fingers zoom and pan at once, computed from raw touches — no gesture exclusivity, no picking one or the other.

Three-finger drag draws

Three fingers down and the current tool draws at full force. The leftmost finger is the pen.

Resting fingers stay out of it

Parked thumbs and palms show as ghost rings and are filtered out of every gesture — leaning on the pad breaks nothing.

⌘G hands it to AI

One keystroke sends the board to codex + imagegen, which swap in a polished transparent repaint. One ⌘Z brings every stroke back.

Keys 1–5 pick pen, line, rectangle, ellipse and arrow. T drops a text label that holds the same on-screen size however far you zoom in.

The tutorial panel: a live redraw of the trackpad surface on the left, readouts for touches, force, pinch, rotate and scroll along the bottom, and a capability checklist reading 0 of 8 discovered on the right.

Live surface

The tour is an instrument, not a slideshow

  • The left panel is your trackpad, redrawn live — every contact, its ellipse, its coordinates.
  • The strip underneath reads touch count, force, pinch scale, rotation and scroll delta as you move.
  • The right column keeps score: 0 of 8 discovered until you start touching things.
  • The weight card sits on top with its own tare button and grams-per-unit slider.

Install

Download the DMG, or build it in a minute

Download the app, drag it to Applications, then run one command in Terminal. The app is open source but not notarized with a paid Apple Developer ID, so macOS quarantines the download until you clear the flag:

$ xattr -cr /Applications/TrackpadStudio.app

Prefer to compile it yourself? Xcode command line tools with Swift 5.9 or newer:

$ git clone https://github.com/ZaynJarvis/trackpad-studio
$ cd trackpad-studio
$ swift run TrackpadStudio

Optional: the per-finger size, contact ellipse and weight card read from a private macOS framework, which needs Input Monitoring under System Settings → Privacy & Security. Skip it and the app still runs — those three cards simply report themselves unavailable.

Questions

Reasonable doubts

Why does this have to be native?

A browser sees your trackpad as a mouse: one relative cursor, no matter how many fingers are down. Pinch shows up as a ctrl-wheel event, pressure only appears in Safari during a click, and per-finger position never appears at all. Absolute coordinates come from AppKit's NSTouch and contact size comes from a private macOS framework. There is no web equivalent to port.

Does it work with an external Magic Trackpad?

Yes. Anything macOS reports as a multi-touch device works the same way — built-in or connected over Bluetooth.

Is the weight estimate real?

It measures something real — capacitive contact size, which grows with pressure — but it is not a scale. With a tare and a calibration against a known weight you can get a believable number out of a light object. Enjoy it as a party trick and do not weigh your coffee beans with it.

Can I draw with something other than a finger?

Anything capacitive the pad registers will do — a knuckle, a touchscreen stylus tip. A wooden pencil is invisible to it.

Will it leave my cursor stuck?

No. The pointer is re-enabled when the last finger lifts, when the window stops being key, and when the view goes away. Never leaving a frozen cursor behind is a hard rule in the code.

What does it cost?

Nothing. MIT licensed, source on GitHub, no account, no telemetry. If it made your afternoon better there is a coffee button below.