1 of 6
1
MIRIA now supporting Windows 7 / Silverlight 3 multitouch
Posted: 05 August 2009 09:00 PM   [ Ignore ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

MIRIA now supports multitouch devices through standard SL3/W7 multitouch API.
By using MIRIA for developing your multitouch Silverlight 3 applications you can:
- control your applications by multiple input devices at the same time (standard Windows 7 multitouch, mouse, TUIO mt)
- design your application to handle multitouch events and still make it capable to be controlled by mouse with no extra event handling / coding
- accurate gestures recognition engine (hold, tap, rotate, translate, slide up/east/west/north/nw/ne/sw/se, scale)
- easily track fingers its coordinates, angle, length and acceleration

For a complete list of features and explaination of how it work you can check MIRIA homepage at http://www.generoso.info/miria . The homepage is still to be updated so no infos about new features ia available yet.

All online examples from MIRIA home page have been rebuilt with the new release and now work both with TUIO devices and/or any Windows 7 PC with multitouch display (i.e. HP TouchSmart IQ 500 and IQ 800 series).

You can download MIRIA 0.9.1 beta from : http://miria.codeplex.com

Brief examples of MIRIA usage:

using MIRIA.MultiTouch;
    
using MIRIA.Gestures;
 
   
[...]

    
private TouchListener _touchlistener;
    private 
Interpreter _gestureinterpreter;
    
[...]
    
public MainPage()
    
{
        InitializeComponent
();
        
[...]
        _touchlistener 
= new TouchListener(LayoutRoot);
        
_touchlistener.CursorAdd += new TouchListener.CursorAddHandler(_touchlistener_CursorAdd);
        
_touchlistener.CursorRemove += new TouchListener.CursorRemoveHandler(_touchlistener_CursorRemove);
        
_touchlistener.CursorUpdate += new TouchListener.CursorUpdateHandler(_touchlistener_CursorUpdate);
        
_gestureinterpreter = new Interpreter(LayoutRoot);
        
_gestureinterpreter.Hold += new Interpreter.GestureHold(_gestureinterpreter_Hold);
        
_gestureinterpreter.Release += new Interpreter.GestureRelease(_gestureinterpreter_Release);
        
_gestureinterpreter.Rotate += new Interpreter.GestureRotateHandler(_gestureinterpreter_Rotate);
        
_gestureinterpreter.Translate += new Interpreter.GestureTranslateHandler(_gestureinterpreter_Translate);
        
_gestureinterpreter.Tap += new Interpreter.GestureTapHandler(_gestureinterpreter_Tap);
        
_gestureinterpreter.Scale += new Interpreter.GestureScaleHandler(_gestureinterpreter_Scale);
        
_gestureinterpreter.GestureDetected += new Interpreter.GestureDetectedHandler(_gestureinterpreter_GestureDetected);
    
}
    [
...]
    void _gestureinterpreter_Scale
(double scale)
    
{
        
// scale > 1 => zoom in
        // scale < 1 => zoom out
        
[...]
    }
    void _gestureinterpreter_Tap
(Point p)
    
{
        
// p => coordinates where tapped
    
}
    void _gestureinterpreter_GestureDetected
(Interpreter.Gestures gestureobject parameter)
    
{
        
switch (gesture)
        
{
            
case Interpreter.Gestures.SLIDE_WEST:
                
[...]
                
break;
            case 
Interpreter.Gestures.SLIDE_EAST:
                
[...]
                
break;
            case 
Interpreter.Gestures.SLIDE_NORTH:
                
[...]
                
break;
            case 
Interpreter.Gestures.SLIDE_SOUTH:
                
[...]
                
break;
            
[...]
        }
    }
    [
...]

Enjoy,
Gene.

Profile
 
 
Posted: 05 August 2009 09:11 PM   [ Ignore ]   [ # 1 ]
Avatar
RankRankRankRank
Joined  2007-09-18
Total Posts:  882
Moderator

huge thxs,Gene,
i will test that asap

 Signature 

How many touches can you simultaneously perform ? 
Coming soon : EveryWall MT / Multi LaserPointers / MT SMS Wall
le WIKI en Fran├žais

Profile
 
 
Posted: 05 August 2009 09:18 PM   [ Ignore ]   [ # 2 ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

=) since the documentation is not complete yet, if you need more information, just ask.

Gene.

jimihertz - 05 August 2009 09:11 PM

huge thxs,Gene,
i will test that asap

Profile
 
 
Posted: 06 August 2009 09:27 AM   [ Ignore ]   [ # 3 ]
RankRank
Joined  2009-03-26
Total Posts:  144
Member

Hi, Gene

I am not sure and understand well, windows 7 already have MS touch SDK, what is the difference between your framework and win 7 touch SDK.

thanks in advance

Profile
 
 
Posted: 06 August 2009 09:47 AM   [ Ignore ]   [ # 4 ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

1) Silverlight 3 don’t support Gesture recognition.
2) Silverlight 3 / Win7 Touch API don’t let you easily track fingers (acceleration, angle, etc..), everything is handled by the TouchFrame_Reported event
3) Windows 7 touch API don’t support any OSC/TUIO devices

All the above missing things are available within MIRIA.

uncledj - 06 August 2009 09:27 AM

Hi, Gene

I am not sure and understand well, windows 7 already have MS touch SDK, what is the difference between your framework and win 7 touch SDK.




thanks in advance

Profile
 
 
Posted: 06 August 2009 10:26 AM   [ Ignore ]   [ # 5 ]
Avatar
Rank
Joined  2008-08-05
Total Posts:  83
New Member

Hi Gene,

Thank you, that’s great! I use MIRIA everyday since I know it wink

How can I try the new version with the .dll present in the .zip? What do I need to do?

Thanks

 Signature 

Florian / CTO at So touch
http://www.so-touch.com

Profile
 
 
Posted: 06 August 2009 10:37 AM   [ Ignore ]   [ # 6 ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

I’m publishing dll and examples on codeplex… I’ll let you know in less than an hour wink

Gene.

Flo - 06 August 2009 10:26 AM

Hi Gene,

Thank you, that’s great! I use MIRIA everyday since I know it wink

How can I try the new version with the .dll present in the .zip? What do I need to do?

Thanks

Profile
 
 
Posted: 06 August 2009 11:03 AM   [ Ignore ]   [ # 7 ]
Avatar
Rank
Joined  2008-08-05
Total Posts:  83
New Member

Great wink
Thanks again!

 Signature 

Florian / CTO at So touch
http://www.so-touch.com

Profile
 
 
Posted: 06 August 2009 11:06 AM   [ Ignore ]   [ # 8 ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

http://miria.codeplex.com

enjoy!

Flo - 06 August 2009 11:03 AM

Great wink
Thanks again!

Profile
 
 
Posted: 06 August 2009 11:08 AM   [ Ignore ]   [ # 9 ]
Avatar
Rank
Joined  2008-08-05
Total Posts:  83
New Member

First to download it! :p

 Signature 

Florian / CTO at So touch
http://www.so-touch.com

Profile
 
 
Posted: 06 August 2009 12:21 PM   [ Ignore ]   [ # 10 ]
RankRank
Joined  2009-03-26
Total Posts:  144
Member

Thanks, Gene

Light me up the power of your framework, for me, (1) I am looking sth more in gesture recognition than tap tap event.  Is it easy to customize the gesture recognition in your framework, for example, like detect clockwise, anti-clockwise, trangle.. etc

(2) what is the tradeoff or pro and con between wpf 4.0 and Silverlight 3? It will help me to decide which kind of app for difference platform?

You did a great work, thanks for millions again

Profile
 
 
Posted: 06 August 2009 12:39 PM   [ Ignore ]   [ # 11 ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

Hi uncledj,

MIRIA Gesture Interpreter recognize the following gestures:
- Hold (hold one finger down for a little)
- Tap (quickly put and lift you finger)
- Translate (move your fingers)
- Rotate (rotate gesture with two fingers)
- Scale (pinch in/out the screen with two fingers)
- Slide North/East/South/West/Nw/Ne/Sw/Se (slide two fingers in the desired direction)

I am currently trying to find an easy way to let user implement custom gestures.
In this moment Gestures.Interpreter gives you the ability of tracking fingers through the GetFingers() method that gives you a collection of “Fingers” (call them cursors if you prefer).
For each Finger in the collection you can perform:

finger.GetStartPoint() to obtain the start Point of the finger
finger.GetPoint() to obtain the current finger coordinates
finger.GetAngle() to obtain the current angle in degrees of the finger considering the line between its start point and the current point
finger.GetLength() to obtain the length of the line formed by the finger startpoint and current point
finger.GetId() to obtain the finger ID

Those methods will be changed into properties in the future release (i.e. finger.StartPoint, finger.ID, finger.Point, etc...)
If these are not enough to help you implementing custom gestures, please let me know, I will be glad to implement whatever it needs to make custom gestures recog easier.

WPF 4 or Silverlight 3 it is just a matter of application portability and framework power I guess. I mean. If you develop Silverlight 3 you get a cross-platform application that don’t need to install and that runs on a web page. WPF 4 has lot of “power” more than Silverlight 3 (3ds, better animation behaviour, etc..). SL 3 it is a subset of WPF… that’s why SL3 it is called WPF/E… where E stands for Everywhere, because it is supposed to be a lighter version of WPF that can run cross-platform and on smart devices as well.
But Silverlight 3 itself lacks the gesture recognition feature. So you have to implement your own code for gestures or just use MIRIA =)

G.

uncledj - 06 August 2009 12:21 PM

Thanks, Gene

Light me up the power of your framework, for me, (1) I am looking sth more in gesture recognition than tap tap event.  Is it easy to customize the gesture recognition in your framework, for example, like detect clockwise, anti-clockwise, trangle.. etc

(2) what is the tradeoff or pro and con between wpf 4.0 and Silverlight 3? It will help me to decide which kind of app for difference platform?

You did a great work, thanks for millions again

Profile
 
 
Posted: 07 August 2009 04:55 PM   [ Ignore ]   [ # 12 ]
Rank
Joined  2009-05-13
Total Posts:  5
New Member

Is is possible to use MIRIA for commercial SL3 applications?

I know that the license of MIRIA is GPL v2.

Therefore, their source code must be opened though MIRIA assembly files are used without any modification.

Profile
 
 
Posted: 07 August 2009 05:49 PM   [ Ignore ]   [ # 13 ]
Avatar
Rank
Joined  2008-06-05
Total Posts:  92
New Member

I am a bit confused with all those licences =)
I switched it to LGPL pheraps it applies better.
Either way you can use MIRIA in a commercial application.

Gene.

darkman - 07 August 2009 04:55 PM

Is is possible to use MIRIA for commercial SL3 applications?

I know that the license of MIRIA is GPL v2.

Therefore, their source code must be opened though MIRIA assembly files are used without any modification.

Profile
 
 
Posted: 07 August 2009 08:53 PM   [ Ignore ]   [ # 14 ]
Rank
Joined  2009-05-13
Total Posts:  5
New Member

Thank you very much.

I’ll try it with my apps.

Profile
 
 
Posted: 07 August 2009 10:08 PM   [ Ignore ]   [ # 15 ]
RankRank
Joined  2009-03-26
Total Posts:  144
Member

Hi, Gene

I tried to install MIG085b_setup to windows 7, I get this sockets err, do I need to set sth up in my IIS?

System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at MIG.PolicyServer..ctor(String policyFile, Int32 port)
at MIG.Service.Service_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at ComponentFactory.Krypton.Toolkit.KryptonForm.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at ComponentFactory.Krypton.Toolkit.VisualForm.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

THanks

Profile
 
 
   
1 of 6
1