Multitouch on Unibody MacBooks

A little known fact about the unibody touchpad is that it can distinguish between up to eleven touch points - i.e., fingers.

Another little known fact is that the sensor knows about the contact surface area (in terms of ellipsoids).

Another yet less known fact is that Johan Nordberg didn't sleep much last night, and wrote a neat OS X application which simply plots what the trackpad (or Magic Mouse!) is saying about touches.

Download blä.se/FingerMgmtUB.zip to try it out.

Update: Apparently works on older MacBooks as well! Give it a shot, it might be your lucky day.


Comments
Posted by: David R

Fantastic!

Any ideas about why ELEVEN? Probably an accidental artifact but what if it were on purpose? An accessibility enhancement for those differently-abled folks with an extra finger? planning ahead for those games you play with two-hands-plus-tip-of-nose?

2009-11-06 @ 16:38:03
Posted by: John McKerrell

Nice app, I just used it to confirm that there's nothing wrong with my multi-touch trackpad even though the three finger and four finger swiping has stopped working! (Yes I've checked the preferences)

2009-11-06 @ 19:08:13
URL: http://johnmckerrell.com/
Posted by: Benjamin

Was this compiled for 10.6 only? Any chance a 32-bit version might be forthcoming?

2009-11-06 @ 20:25:02
Posted by:

Benjamin: Yes it was, I'll see if I can't get the source released.

2009-11-06 @ 20:34:48
Posted by: Johan

Here you go: 10.5 compatible universal binary

2009-11-07 @ 16:44:18
URL: http://blä.se/FingerMgmtUB.zip
Posted by: Richard Earney

11 a Spinal Tap homage?`

2009-11-09 @ 18:17:16
URL: http://methodphoto.com
Posted by: Sergio Salvatore

Fortunately, the new Unibody MacBook Pros aren't required as this works with mine which is the generation before... Really cool...

2009-11-09 @ 18:25:36
Posted by: Alden

Spiffy! Very nice.

Is it technically feasible (since you know the API) to hack this into something that allows mouse button mapping (third button->three touch, etc)?

Thanks.

2009-11-09 @ 18:31:11
Posted by: elldove

Yea. With everyone crowing about how Windows 7 is multitouch, OS X has been multitouch for years. The great utility Multiclutch does some great things with mapping the baseline multitouch actions to keyboard shortcuts.

http://tr.im/ECkz

2009-11-09 @ 18:36:35
Posted by: elldove

It would be great if FingerMgmt let you export a view as a vector format... pdf, svg, or ai

2009-11-09 @ 18:37:35
Posted by: Johan B

Cool, reminds me of how children play to create objects with a rubberband using their hands.

2009-11-09 @ 18:46:11
Posted by: Russell Borogove

Any chance of getting the source to this? Would love to turn it into a noisemaker of some sort.

2009-11-09 @ 18:48:59
Posted by: Adrien

Alden, you shoud check out MiddleClick :
http://clement.beffa.org/labs/projects/middleclick/

2009-11-09 @ 19:07:20
Posted by: uhuznaa

This is interesting... The amount of information the trackpad can process is impressing. This should be enough to allow for some tapping rhythm of several fingers to replace a login password or such.

Even laying your hand flat on the trackpad with the fingers close together should give a unique pattern for a given hand. Just laying your hand on the trackpad to unlock the Macbook would make a great feature. Not as secure as a good password maybe, but good enough for home use.

2009-11-09 @ 19:16:43
Posted by: hl2run

A-MAZING !! Thanks

2009-11-09 @ 19:38:05
Posted by: Hunter

I second the request for see the source code. This looks really interesting... Thank you very much Johan. =)

2009-11-09 @ 19:50:18
Posted by: leon grant bussinger

Works on my early 2008 macbook pro, awesome app.
Thanks for the visualization!

2009-11-09 @ 20:09:23
URL: http://www.originallgb.com
Posted by: Sounch

Very nice. Does anybody know whether the iPhone sensor also knows the contact surface areas of each finger?

2009-11-09 @ 20:17:54
Posted by: peter

if you like that, you might want to check out this: http://www.apple.com/downloads/macosx/icons_screensavers/aurorascreensaver.html

2009-11-09 @ 20:22:43
Posted by: Ted Brown

When it detects 11 points, does it say "You killed my father! Prepare to die!"?

2009-11-09 @ 20:29:33
Posted by: Peter

amazing! & works on my march '08 MBP. had no idea the trackpad was that capable.

2009-11-09 @ 20:48:15
URL: http://twitter.com/steinber
Posted by: will

Saunch, no. On the iphone you only get points.

2009-11-09 @ 21:06:36
Posted by: Dan Villiom Podlaski Christiansen

Nice little application! There's a bug, though:

Exception Type: EXCBADACCESS (SIGSEGV)
Exception Codes: KERNINVALIDADDRESS at 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.CoreFoundation 0x00007fff88a15fb2 _CFArrayCheckAndGetValueAtIndex + 66
1 com.apple.Foundation 0x00007fff87c67c2b -[NSCFArray objectAtIndex:] + 41
2 com.yourcompany.FingerMgmt 0x00000001000012e3 -[TouchView drawRect:] + 516
3 com.apple.AppKit 0x00007fff805d538a -[NSView _drawRect:clip:] + 3390
4 com.apple.AppKit 0x00007fff805d3ffd -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1325
5 com.apple.AppKit 0x00007fff805d4367 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2199
6 com.apple.AppKit 0x00007fff805d26cf -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 767
7 com.apple.AppKit 0x00007fff805d359b -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 4555
8 com.apple.AppKit 0x00007fff805d21f3 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 254
9 com.apple.AppKit 0x00007fff805cea97 -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 2683
10 com.apple.AppKit 0x00007fff80548237 -[NSView displayIfNeeded] + 969
11 com.apple.AppKit 0x00007fff805430e3 _handleWindowNeedsDisplay + 678
12 com.apple.Foundation 0x00007fff87cc7aa9 __NSFireTimer + 114
13 com.apple.CoreFoundation 0x00007fff88a0da78 __CFRunLoopRun + 5480
14 com.apple.CoreFoundation 0x00007fff88a0c03f CFRunLoopRunSpecific + 575
15 com.apple.HIToolbox 0x00007fff822cdc4e RunCurrentEventLoopInMode + 333
16 com.apple.HIToolbox 0x00007fff822cda53 ReceiveNextEventCommon + 310
17 com.apple.HIToolbox 0x00007fff822cd90c BlockUntilNextEventMatchingListInMode + 59
18 com.apple.AppKit 0x00007fff80518520 _DPSNextEvent + 718
19 com.apple.AppKit 0x00007fff80517e89 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
20 com.apple.AppKit 0x00007fff804dda7d -[NSApplication run] + 395
21 com.apple.AppKit 0x00007fff804d6798 NSApplicationMain + 364
22 com.yourcompany.FingerMgmt 0x0000000100000dae main + 76
23 com.yourcompany.FingerMgmt 0x0000000100000d40 start + 52

2009-11-09 @ 21:59:07
URL: http://blog.villiom.dk
Posted by: Amir Levy

It's working on my Magic Mouse as well! (only three points through)

2009-11-09 @ 21:59:24
Posted by: Hezi Cohen

i wonder if theres a way to detect if the touches come from a magic mouse, i would love to have a 3 finger expose gesture

2009-11-09 @ 22:05:02
URL: http://hezicohen.com
Posted by: maradatscha

As expected: doesnt work on a first generation macbook.
It doesnt even show one or two touches.

2009-11-09 @ 22:05:21
Posted by: Davey

Source code would be awesome! :-)

2009-11-09 @ 22:16:36
Posted by: Joseph Hinvest

This is fantastic! It works on my iMac, with new Magic Mouse.
It appears my Magic Mouse can detect 5!! independent fingers. Hopefully a Magic Mouse pinch and reverse pinch update is in the pipeline, that would be much much more useful than the crazy screen zoom.

Cheers,
Joseph.

2009-11-09 @ 22:29:12
Posted by: Jonathan Holbert

Magic Mouse owner here…

I got five points of contact to register, but I couldn’t get more that that. It’s a bit tricky — but possible. Just play around a bit.

Thanks for this concept demo!

2009-11-09 @ 22:32:31
URL: http://infodriveway.net
Posted by: sean

It works on the MBA (mac book air) too!
All 10?? Im not really sure how to test 11 :)

See, if i put my nose on the touch pad.... Then i cant see the screen...
And beyond my nose... I'm not a contortionist... or a pervert :)

But anyway... I wish that apple would add gesture management... like hotkey recognition...
If I could even do swipe in 4 directions with 1-4 fingers, and pinch in 2 directions with 1-2 fingers; that would be really useful for customization.

2009-11-09 @ 23:01:23
Posted by: Justin

It also works with the new Magic Mouse!

2009-11-09 @ 23:24:14
Posted by: MJMJ

Works on late '08 MB Air

2009-11-09 @ 23:26:06
Posted by: George Johnson

I'd love to see the source code for this. It would be extremely useful for an experimental interface project I'd like to do for school. Please?

2009-11-10 @ 00:17:39
URL: http://www.geojohn.net
Posted by: Ludvig Ericson

In response to all those who requested the source-code, I'm going to have to disappoint you -- I don't have it, so you'd be better off asking the author about it.

I can tip you off though, an image: http://bsg.lericson.se/jing/b1ce8c2f9b.png

2009-11-10 @ 00:58:11
URL: http://lericson.blogg.se/code/
Posted by: Dannyz

It's awesome!
But what would be really great is a drawing application where you could draw using absolute positioning rather than relative.
In other words, drawing like how a pen tablet works rather than a mouse. This tech demo shows it's very possible, and even to have pressure sensitivity based on how large the pad of your finger is.
OMG i would love a drawing app.

2009-11-10 @ 05:52:59
Posted by:

This app proves to me that the Magic Mouse could be capable of understanding a right click even when both fingers are touching the surface of the mouse. Clearly software can figure out which finger is pressing due to the change in size and shape.

Any chance this app can morph into a supped up Magic Mouse driver with more features?

2009-11-10 @ 07:58:20
Posted by: micah

Wow, this really is a magic mouse! It can sense my finger hovering very close to the surface without touching it (it's interesting that it doesn't register that gesture for scrolling though)

2009-11-10 @ 12:37:51
Posted by: Miguel

How can we contact with the author?

2009-11-10 @ 13:09:00
Posted by: lkern

I can get only 5 to map on the Magic Mouse, but still.

2009-11-10 @ 14:41:04
Posted by: marc hoffman

@av: my guess is the mouse can't distinguish where you CLICK, because it (i assume) only has a single physical button. iow, if it sees a touch on the left AND the right, and registers a click, it can't be sure which of the touches did the clicking.

only if ONLY the right side registers a touch, can it be sure that it as CLICKED on the right side...

2009-11-10 @ 16:17:28
URL: http://twitter.com/dwarfland
Posted by: Antonio

got Magic Mouse today, less than 24 hours since ordered, now I'm teaching it to play Cat's Cradle... anybody up for a tournament? :D
BTW, too bad, but FingerMgmt crashed when I tried to do Cat's Cradle with one hand on the Magic Mouse and the other on my new MacBookPro :(

2009-11-10 @ 17:10:03
Posted by: natevw

For those waiting for source, check out this guy's sample code: http://steike.com/code/multitouch/

I'm guessing this demo uses the same private API.

2009-11-10 @ 21:07:57
URL: http://extinguishedscholar.com/wpglob/
Posted by: numist

crashed for me after a little bit of strenuous use as well :/

2009-11-11 @ 01:59:42
Posted by: pzich

This application does use the same Multitouch Support framework that http://steike.com/code/multitouch/ uses. The code from the link even offers dimensions and rotations for an ellipse.

The magic mouse has a lower touch sensor resolution than the MBP trackpads so they support fewer touch points.

It would be possible to have the magic mouse right click with both fingers are down like the previous mouse, but Apple decided that was a bad idea. The reason they can't use different size touches to differentiate left and right click is because fingers are different sizes and the forces on each register differently.

2009-11-12 @ 07:19:45
Posted by: Steve Mokris

We just published a Quartz Composer patch using this Multitouch API: http://kineme.net/release/MultitouchPatch/1.0

2009-11-16 @ 18:29:57
URL: http://kineme.net
Posted by: James

Any chance the trackpad could be used as a low weight scale using pressure sensitivity?

2009-11-23 @ 04:52:08
Posted by: Matt

Doesn't work on my Aug. '08 MacBook. Doesn't even register one point, for some reason.

2009-11-27 @ 03:08:41
Posted by: Levi Starks

That really is great. I've owned my new MacBook for less than a week and I'm really impressed. I was linked to you site by someone on DPReview where I was involved in a discussion defending my use of the tracpad for image editing in photoshop vs. a "real' graphics tablet.

2009-12-02 @ 17:29:40
URL: http://photolt evi.zenfolio.com
Posted by: Z

Just like to say that this thing is fantastic, and I'm taking it in to a genius bar tomorrow to prove my trackpad is broken (you can see the duff signals on FingerMgmt).

As an idle aside, it'd be cool to see the patterns in something other than the window - would probably make a nice desktop background, like moving constellations...

2009-12-27 @ 03:53:12
Posted by: Sebastian

I would love to see some source code too!
Why didn't the author answered the requests?

2009-12-29 @ 20:34:34
URL: http://daver.at
Posted by: Ludvig Ericson

Sebastian, I've rewritten his code in Python and given the code out: http://lericson.blogg.se/code/2009/november/macbook-multitouch-in-python.html

2009-12-30 @ 10:51:36
URL: http://lericson.blogg.se/code/
Posted by: Jared Kanter

You guys should really check out: http://blog.boastr.net/

He even implemented this tool(w/ permission of developer) into his app. AMAZING and is exactly what EVERYONE here is looking for.

Enjoy!

2009-12-30 @ 18:44:31
URL: http://nymag.com
Posted by: Greg

11 touch points 'eh? Sounds like they intended this thing for some yet unseen touch porn applications.

2010-01-04 @ 19:52:33
Posted by: Simon

Nice app.
Have a look at this App:
http://www.apple.com/downloads/macosx/imaging_3d/inklet.html
You can use the trackpad to draw in photoshop!

2010-01-19 @ 16:03:01
Posted by: Chris

Holy cow that app was amazing.

2010-03-09 @ 14:13:49
URL: http://noodlescape.com

Comment the entry:

Name: (required, possibly pseudonym)
Remember me (cookie)

E-mail: (not required, never published, solely for me to reply to you in person)

URL:

Comment:

RSS 2.0