yashsingh1/xdaforums huggingface dataset:
[Windows Mobile Software Development] Dishe:
This is incredible news- I remember hearing that detection of more than one point is POSSIBLE on a resistive screen, but no one had ever implemented it before.

In fact, if I recall, HTC was trying to file some sort of patent on a multi-touch capable resistive screen... the idea being stylus-capable and multi-touch gesture ready. I thought it required specific HARDWARE modifications, though! I didn't know it could be done with just software!

Is the calculation complex? Does it noticeably slow down the touch performance? CAN ANYONE WHO HAS TESTED IT OUT POST SOME BASIC PROOF-OF-CONCEPT APPS?! This needs to be seen!!

Outstanding news...

EDIT: Thank you to JVH3 for explaining how it works. That actually sounds rather complicated to perform correctly. You can't really "pinch" to zoom, but rather keep a finger in place with the other zooms.
[Windows Mobile Software Development] matejdro:
I would love to see functional apps for that :)

BTW where is the center point calculated? In phone's hardware or software? If second, maybe someone can write special driver for touchscreen that won't calculate center point but rather send both points to the system.
[Windows Mobile Software Development] anaadoul:
No timing limit, try it :)

thanks
[Windows Mobile Software Development] anaadoul:
developers, i need to hear from you after implementing it in your applications. any bugs? suggestions?
[Windows Mobile Software Development] ro-mann:
Sorry, I didn't read the whole thread, is there a documentation for how to install this and will it work on my HTC Diamond?

Regards,

Roman
[Windows Mobile Software Development] matejdro:
I just quickly made pinch demo application in VB. Multitouch seems to run very well. Just tap with one finger on the screen and then slide with another. Tap on any of the buttons to exit. Source included.

Sorry for lag while moving, i guess i would need to implement hardware acceleration (and i don't know how. Gonna check those links on first page). But i think is still OK for demonstration.

@ro-mann it will work on any WM device except HD2 and HD mini.
[Windows Mobile Software Development] Dishe:
Interesting, great proof of concept!

But, as was suspected, moving point 1 seems to totally fubar the calculation of point 2.

So, in practical terms, the "pinch to zoom" effect that Apple made famous won't work properly, since both fingers move inward or outward from a center point.

This may, however, make some virtual keypads/gamepads more usable. Not how how far this can go outside of proof of concept.
[Windows Mobile Software Development] whiplash000:
Just to clarify to you all... this isn't true multi-touch. A cool trick, that may have some practical uses, but this isn't independently mapping each finger.

I'm fairly sure this psuedo multi-touch works by first detecting if more than one touch is detected on the digitizer (not sure how but it does). Then, it records the first touch's position. Once you lay down the second touch, the location returned by the digitizer is actually the midpoint between the two touches (try moving your first finger, the illusion is broken):

o (second touch, calculated using the first and midpoint)
/
/
o (the midpoint, the second point the phone reads)
/
/
o (first touch, the first point read by the phone)

I remember seeing a similar demo for the Nintendo DS many years back... that brings back memories... :)

EDIT: Dammit, beaten to the punch by 10 minutes! :P

The real secret sauce in this whole sdk is how they detect multiple touches, as opposed to just one.
[Windows Mobile Software Development] matejdro:
As far as i see, there is no secret sauce. It's working just like you explained it.
[Windows Mobile Software Development] whiplash000:
Actually there is something special going on. Try tapping with one finger in the demo posted earlier. It doesn't work unless two touches are detected. Remember that at any point in time the touchscreen will report only one set of coordinates.

Also, dishe mentioned gamepads using this technique. I'm looking into that now. As long as the points are fixed, you can just map the midpoints of two buttons being pressed as, well, both buttons being pressed. And with this magical multi-touch detection, this may just be practical. I gotta do some experimenting!
[Windows Mobile Software Development] baltazar007:
Here is another demo (including source) with pinch to zoom support. You have to move only one finger and another one shouldn't be moved.

Because of that I think that this is useless. It's easier to zoom only with one finger moving it up or down.
[Windows Mobile Software Development] matejdro:
Good demo, but i can't seem to get picture zoomed out. Everything i do, zooms picture in.

EDIT: Occasionally i can get picture to zoom out, but it will zoom back in when i move finger away from the screen.
[Windows Mobile Software Development] baltazar007:
Yes, I also have this problem, but I think that result depends on which finger you release first.
[Windows Mobile Software Development] JazzyStahh:
im guessing i wont be able to use this on a android phone, but is there any other method that i coukd use for my google g1?
[Windows Mobile Software Development] Dishe:
I believe the G1 is a capacitive display that already registers multi-touch. You just need to be running something that is looking for the additional input (nothing in the G1's stock OS uses it).
[Windows Mobile Software Development] Raudi1:
The whole thing works on software. It doesn't get any special info from the hardware and does nothing with drivers etc. I'll try to explain it simple.

((X))[2][3][4][5][6][7] You press with one finger [X] on point 1. The system gets the coordinate ((1)).

[X][2][3]((4))[5][6][Y] Now you press with another finger [Y] on point 7. Now the system gets the middle of X and Y: ((4))

The movement from ((1)) to ((4)) was instantaneous and left out 2 and 3. When you normally move your finger over the screen you wouldn't do that because you are much slower. So when there is a jump in the coordinates, the SDK knows you have pressed with two fingers. It also remembered the position of the first finger and can now calculate the position of the second finger.

I hope it is easy enough to understand.
[Windows Mobile Software Development] Georgeous2008:
Well, people might not realize the use of this just yet. It first needs to be implemented properly. The idea of dual-touch is great and might be used in interesting ways with apps, ways we cannot imagine right now but only in a few weeks. IMHO, dual touch creates far more creative ways of communicating with your device than single touch, so it's definitely worth investigating.

Apps which already support multitouch right now are using some API as well, aren't they ? I wonder then if it were theoretically possible to hook this Dual-Touch SDK to the API natively used by the app, thus making multitouch compatible apps sort of dualtouch capable ? Now THAT would be something to start investigating cause that would give us some app base to start with.
[Windows Mobile Software Development] whiplash000:
Oh man... guess I was having delusions of grandeur about how this thing detected multi-touch. Rapidly moving my finger triggered multi-touch detection... well anyway I found this patent which would be the secret sauce I was describing: http://www.faqs.org/patents/app/20090146963

Seems like, with the proper device-specific driver, you could detect multi-touches this way, but as far as this SDK goes, it's just software trickery :(
[Windows Mobile Software Development] Georgeous2008:
Patent as you say, thus available for public information but not for public use.
[Windows Mobile Software Development] JVH3:
Using this demo, I am able to press both fingers on at nearly the identical time and then seperate them. In that case, it does not detect it as 2 points being pressed.

The first point must be pressed first.

As far as timing. I have thought about that. As long as it is registering a point, and the next point jumps without ever registering a mouse up event, it would be pretty safe to presume that it is now a dual touch scenerio.

The same could be expanded to include 3 press, and n-press, but the math becomes more complex, and all require that the positions all be in order. I press 1 point, add a 2nd. the 2nd can move, but the 1st must stay still. I add a 3rd, now the points 1 and 2 must stay still, while I can move hte 3rd. Not sure if there would be an practical use of that. Maybe a left press and hold, then right press and hold, then slide in the middle for a volume control or brightness or something. Or an unlock screen.

Hand Twister for the phone. If any makes a million dollars on that idea, remember where it came from.
[Windows Mobile Software Development] JVH3:
Swipe gestures register as multi point presses.
[Windows Mobile Software Development] JazzyStahh:
Might ya know what ROM I should use? Like which one is the best out there? And might you have a guide on how to put it on? =D It would help me a lot.
[Windows Mobile Software Development] Ombre1:
Can you explane what is diferent between this two thinks :).
[Windows Mobile Software Development] JVH3:
multi = more than 1, which could include 3 or 4, etc.

dual = 2, meaning 2 at the very most.

multi is truly sending the points of each finger.

With this implementation of dual the midpoint between the 2 position is what is sent from the touch screen, and software interprets it as a dual touch since the 2nd point appeared a distance away from the first without being lifted. It knows the first point, so it can calculate the second point.

Wth different hardware, dual could be implmented to actually send 2 points, but not with the current resistive touch screens we see in today's phones.
[Windows Mobile Software Development] JVH3:
Really thinking that a dual touch slide to unlock would be pretty cool.

Envisioning a point you must press and hold while sliding to unlock.

The likely hood of an accidental unlock would go down even more.

Or entering a pin, but needing to keep your fingers on the numbers at certain times so, you may press and hold 2, while pressing 3 and then releasing both. Pressing and holding 9, and pressing 6 and releasing both.

This implementation has weeknesses, but as long as your not needing to do swipe action on the same screen that you want to do dual touch, then it has a lot of potential.
[Windows Mobile Software Development] Ombre1:
Thanks,i will wait for aplications :)
[Windows Mobile Software Development] herpez:
Although i really like this SDK potencial, is looks a bit strange because when we are trying a pinch to zoom app, if you do it with just one touch , for example, slide the finger, it works similar as espected with 2 finger. And i know this is perfectly normal. However, my suggestion is to this "apps" work only when 2 points are pressed.

Just an idea
[Windows Mobile Software Development] Fin9ers:
Demo works well :)

Still cant beleive this works on a resistive.

This would work with a drum pad really well... 'hint hint' :P

Keep up the good work devs *Thumbs Up*
[Windows Mobile Software Development] anaadoul:
Now supports Rotation :)

i Want to use Rotate To Unlock applications soon, by soon i hope today :D

Enjoy
[Windows Mobile Software Development] tiger2z:
Greet job!
[Windows Mobile Software Development] anaadoul:
The SDK is edited a bit after the alpha, i found a bug and solved it please redownload
[Windows Mobile Software Development] whiplash000:
I looked into applications using this technique, and I came up with a way to detect two gamepad buttons being pressed at the same time. Well, kinda.

See, when you tap two points on the screen, the midpoint between the two touches is what the screen reports. If you map each midpoint of two button presses, you know that if the touchscreen reports that location, then only two buttons may be pressed. Maybe an example will help:

The yellow dots on the left and right are the dpad and four buttons of a SNES controller, and the pink dots are the midpoints of every two button presses. Map those, and only register them as two presses if you know it was a multi-touch, and you have yourself a fairly nice gamepad. The only downside to this is that some midpoints are a little too close together. Some experimentation with shapes of the abxy buttons should keep the midpoints seperate.

Anyway, I was posting this to ask one of you coders to whip up a demo for me. Here's a gamepad:

and the coordinates are:

(62,134) Up

(19,175) Left

(63,218) Down

(105,176) Right

(256,192) A

(351,160) B

I kept out the X/Y buttons for simplicity. Using my technique, could someone make a quick demo that will say something like: "No buttons are pressed/A is pressed/Down+B is pressed"?

Note: this dpad was made for WQVGA screens, but you can just place it at (0,0) and fill the rest with white for any other screen size.
[Windows Mobile Software Development] Fin9ers:
Game Pad is a great idea. I have so many unused WinMo emulators that need multi touch to be played.

Someone mentioned implementing this SDK into Opera. Which is another fantastic idea.

If only i could write programs, ide make some apps :(

Edit: Just tried the 'Rotate to Close' demo and had a thought. Could this be used as a replacement for the volume control? I'll quickly make a basic sketch on paint depicting what I'm thinking and post it soon

A thought, in PNG formate :P
[Windows Mobile Software Development] Agaas:
Does this implementation calculate the relative or the actual position of the 2nd touch?
[Windows Mobile Software Development] smcjf:
Greater job！
[Windows Mobile Software Development] lesscro:
If any developper need graphics, i m enjoy ot help with my PhotoShop dude...

Send me request, if you are interested... :D
[Windows Mobile Software Development] aqualo:
Great job! hoping the future development goes smoothly
[Windows Mobile Software Development] Raudi1:
I just updated my little app and added instructions/credits.
[Windows Mobile Software Development] parnunu:
Oh! if can cook it in opera9.7 be great ^^
[Windows Mobile Software Development] scilor:
To bad, I tried to use it on my HTC Kaiser and the Rotation demo does not work :(
[Windows Mobile Software Development] zinconnu:
Works perfectly on my acer x960! :D

Amazing!
[Windows Mobile Software Development] gogodu5sU:
okelydokely
[Windows Mobile Software Development] anaadoul:
hmmm, strange!

do you have .net cf 3.5 installed?

please make sure that the dll is next to the exe, not the old one but the new one.

the rotation operation is based on the relative position of the 2nd finger first touch location.

if you want it to use an absolute position, use the mousemove method right after the mousedown method call and specify the parameters which includes the x,y coordinates of the origin point you want.

the angle is actually a triangle between the 1st finger, 2nd finger original point and 2nd finger final point. the angle is calculated as triangle so the max you will get is 179 or 180 gegrees depending on your rounding.
[Windows Mobile Software Development] cris_rowlands:
Ive just gone over to Windows Phone Middle East to grab a download, it asked me to log in (which I couldnt because I wasnt registered)

I tried clicking on "Register" but it simply takes me to a log in screen but it hides the text boxes which is pretty useless.

Im very interested in your work :)
[Windows Mobile Software Development] sentinel79:
Keep up the good work!
[Windows Mobile Software Development] redlake:
thank you very much.
[Windows Mobile Software Development] ServError:
You're being quite misleading, people are assuming they can actually get proper readings from more than one part of the screen, while you're measuring the jitter in input and using the movement of the middle point as a means of emulating pinching and stuff.

So no people, this is not going to lead to better touch screen emulators, sorry.
[Windows Mobile Software Development] scilor:
The App ran, but it wasn't able to detect my fingers, it only sometimes jumped to 100 Degree.

I did it the same ways as in the video, strange :(
[Windows Mobile Software Development] corepda:
Great work..highly appreciated...bridging the gap in many ways among haves & haven't. I will be keeping an eye on this & see if I can be of any help..keep it up. :)
[Windows Mobile Software Development] ebsbow:
The concept still offer some interesting applications.
[Windows Mobile Software Development] lesscro:
Volume controller with rotate feature...

Who are interested... i can make graphics...

A locker screen with animation...

like a ball in circle to unlock...

i have idea and graphics but no developper to help me... contact me if you are interested...

Other keep it up... very good work !
[Windows Mobile Software Development] charly_mx:
rock band guitar hero!

Well i think the obvious evolution for this is to mix some fun to this great achivement. :) Like some games with multitouch experience!!
[Windows Mobile Software Development] LeeU:
First of all, many thanks to anaadoul for this SDK.

I'm thinking about this so much.

I wonder whether we are getting everything hard?

To zoom in, zoom out a picture, no need to dual-touch.

Lock screen? Dual-touch takes much time to unlock. Just "slide to unlock" is enough.

I actually think the gamepad is the most suitable app.

Hope someone implement it.
[Windows Mobile Software Development] anaadoul:
Wow, these are really cool designs!

let's see if we can convert them to an application.

i would like to start with the Volume Controller, can you split everything as an image (including every step between full rotator and emty one).

let's see how to buld this right :D

Thanks all for your support,

I know that this is not about the easy of use, dual touch gestures are a bit more complex to perform. Think about it as a Luxery that you might use for fun or to showoff :)
[Windows Mobile Software Development] lesscro:
graphics comes from Hellbender's Omnia UI...

But Fully abandoned...

I can make graphics with same style but with another color...

Like Blue/Black/white with neon effect...

i trying to send a sample in few days... with complete graphics suite...
[Windows Mobile Software Development] backlashsid:
any implemented application yet ?
[Windows Mobile Software Development] lesscro:
Ok ! this morning i made some test color about Volume controller...

basically i have made a background with all integration and now i need cut all step from Volume circle stage...

EDIT :

Attached graphics base !
[Windows Mobile Software Development] zinconnu:
Waw, good work lesscro! :D
[Windows Mobile Software Development] lNOFXl:
just try to be positive about it, i mean I'm sure it would be possible with more work... although most likely a lot more work
[Windows Mobile Software Development] paperaossuta:
Is possible to create a cab application with the function "pinch to zoom" to view images or photo???? I'm asking if is possible to modify a simple images viewer with the sdk dual touch... I'm not a developper....
[Windows Mobile Software Development] Yagami_ex:
Wow this lockscreen and volume control is very cool, i can't wait for these apps
[Windows Mobile Software Development] lesscro:
I m waiting too conversion...
[Windows Mobile Software Development] anaadoul:
No one ever said it is a true multi-touch, that's why i call it DualTouch and 1 finger is used as an anchor. It Will not (at least not as i can think of now, maybe in the future? no promises though) have true Multi-Touch.

I made this so we can build apps on top of it with a bit more input methods, that's it.

Thanks for the support, i hope so, maybe one day we will have a true Multi-Touch on resistive screens :D

I'm sorry for being absent all this time, i am having final exams also trying to find a job + some other stuff which put me in a bad state of mind.

Today is a great day, it is my last final and this morning i got a call about a job which if clicked (i hope it does) i will continue to work on applications we talked about before :D

Wish me luck :D

Notice that these are luxary apps, not practical so after installing you MIGHT one day regret it :P (you will have to use both hands, remember that).
[Windows Mobile Software Development] lesscro:
Good luck bro'...

I hope all work for U...

have fun... and lucky...
[Windows Mobile Software Development] TKETZ196:
I was wondering if anyone had any apps (like a picture viewer) that utilizes this Dual Touch SDK. I don't know how to write apps, and i was curious if anyone has created an app for us in the community that would like to test these apps out on our devices.
[Windows Mobile Software Development] shishir95:
um the algorithm used to calculate the second point doesn't seem like its accurate enough (according to the demo app posted before)

the best way i can think of is record the first point and when the location changes within an instant record the second point, calculate the angle between the two points-- relative to a perfectly horizontal line through the origin and assuming the first point is the origin and calculate the distance (just simple trig equations. nothing complicated) and just double the distance and the point that is located on the line from point a to point b (contact points) is point c and is the second point. that is the best way if you're already not using that.

what is happening is the app is accurate within a certain distance. through my understanding, most resistive screens are highly accurate, some even beyond the pixel density of the LCD screen, but after a certain distance, the second point registered is consistently approximately 7/8ths of the distance to the ACTUAL second point. maybe there is a leak in the application? I know it is a beta application, but the math behind it should be totally solid.

ALSO, on another note, has anyone noticed that the resistive screen on our phones CAN detect more than one point? the hardware can obviously support it (thanks to some resistive multitouch demonstrations on the web-- true infinite contact point multitouch) it seems like the drivers behind our touch screens is basically taking all the points recorded (which should be atleast a 100 even with a stylus because how sensitive a resistive screen by theory is) and calculating the average point in the center and reporting that to WM. Maybe some how we could change that to report all the points? By editing drivers? it'd break most applications but we all know windows mobile supports multi touch (HTC leo) maybe someone could (improbable) design a UI that supports this TRUE multitouch - similar to the company Stantum who designed a true resistive multitouch screen a few months ago.

and also there are ways to find more than two points with a resistive screen. we are humans. we can't touch a screen with-- lets say, four fingers-- all at the exact same time, can we?? there WILL be some variation so if we do this fast enough and repeatably it would (reduce performance alot i'd guess with intense FLOPS required) but it'd be "true" resistive multitouch. This is what most touch screens would do to compensate for a normal touch screen that 'can't' support multitouch because it reports the mean point between two as opposed to two. with some smart programming you could design a program that detects upto lets say 10 points -- as that is the maximum our devices support i suppose. you'd have to do it about 18 times a second-- ATLEAST for it to look smooth. so again we'd need a FPU if we need more than 10 points.. and that means we'd need a snapdragon.

just thinking outloud ;)
[Windows Mobile Software Development] xcen_xda:
This SDK have been around for quite some time now. I'm quite surprised that this is not incorporated in more apps!