The resulting products were MIG and MIRIA.
MIG (multi input gateway) is a C# library that basically make devices available over a network. It was initially written to forward TUIO multitouch input data (UDP) to a MIRIA web application over TCP (port 4502, the only available to Silverlight hosted apps).
The last release of MIG (2011) can forward, to a Silverlight hosted web application, input data coming from the following devices:
- standard Windows multitouch (builtin in Silverlight)
- TUIO based devices (eg. big multitouch displays)
- Nintendo Wii Remote
- Microsoft Kinect via OpenNI
A new release of MIG is currently under development as a part of my other project HomeGenie. This release of MIG has been completely rewritten on a better abstraction model by introducing input device, input gateway and protocol adapter class interfaces.
This release also add support for home automation controller devices:
- z-wave aeon usb z-stick 2
- x10 marmitek serial cm11 and usb cm15pro
But the real challenge for the new release of MIG will be adding support for HTML5 WebSockets. This will make possible interacting with any HTML5 application using non-standard input devices like XBox Kinect Sensor or Nintendo Wii Remote.... imagine what HTML5 gaming experience it could be!
Stay tuned... =)[back to menu]
MIRIA project was started the same period as MIG (early 2008) and was intended for bringing NUI multitouch controls to Silverlight.
At that time Silverlight was not supporting anything of multitouch, there were no multitouch screens in the market and no multitouch standards but TUIO. The only multitouch device I had it was an amazing Apple iPod Touch, of which I was so fond of for the main reason that it was the first multitouch and close to NUI thing I had ever seen.
So, for developing MIRIA I was initially using my iPod touch that was sending TUIO multitouch data to MIG via UDP, that was forwarding it to MIRIA via TCP =)
I know that was a bit tricky, but it was working and it was useful for starting writing a few of tools and controls:
The latest release of MIRIA (2011) in addition to these features offers: Animation class library with prebuilt animation effects and utility functions; TransformHelper class for easy rotate/translate/scale operations; Multi-Device input layer supporting Kinect, Wii Remote, Windows Multitouch and TUIO Multitouch at the same time.
So every MIRIA UI control is ready for being interacted by any of these controllers/devices.
HomeGenie is an open source Home Automation Server project that I started in early 2012 when I bought some Z-Wave devices. Those devices were supporting metering report and I wanted to write some code to play with this feature.
Since I already had lot of X10 devices in my home, didn't like the idea of using different softwares for controlling z-wave and x10. Then I started to think of HomeGenie and it was almost clear that MIG was fitting well solving the problem of using different controllers (as for X10 and Z-Wave) with a common i/o programming interface.
So now HomeGenie is almost getting to its 1.0 release and these are current features in brief:
From the project homepage link below you can download Windows setup, Linux archive and a ready to use Raspberry Pi SD Card image.link to HomeGenie project on sourceforge