digital overload
(=     yet another programmer's site     =)

content, gfx, animations fx and ui design (c) 2012 by Generoso Martello

multi input gateway

This project was started in early 2008 when Rear DI technology was becoming popular.
Fashinated by Multitouch and by the new possibilities of human-to-machine interaction,

I started playing with the TUIO protocol and Silverlight that at the time (and today with SL5 as well) was giving a very promising 2d graphic engine and a nice framework (WPF/E).

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!


link to MIG project on sourceforge

Stay tuned... =)

[back to menu]


miria for silverlight

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:

  • gesture interpreter (move, silde, tap, double tap, pinch in, pinch out, rotate)
  • canvas control supporting pan, tap and pinch zooming
  • multiscale image control supporting pan, tap and pinch zooming
  • button control supporting tap, double tap, drag and drop
  • scrollview panel supporting pan, zoom and automatic element hooking via gestures


(2009-2010)

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.


link to MIRIA project on codeplex

Since MIRIA is already there, I think there won't be any future releases of it. Indeed I suppose that I may start to write some sort of SVG-based reinterpretation of it... some day... pheraps =)


[back to menu]


homegenie

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:

  • X10 driver for Marmitek ActiveHome CM11 and CM15 Pro interfaces
  • Z-Wave driver for Aeon Labs Z-Stick
  • Integrated Web Server frontend based on jQuery Mobile UI
  • Control remotely from any PC, Tablet and Smartphone
  • Consumption/usage statistics and realtime kW counter
  • Simulated Meter report for devices not supporting it (even for X10 ones!)
  • Programmable Events and Macros
  • Installs and runs everywhere: Windows, Linux, Mac
  • Suitable for running on embedded systems such as Raspberry Pi (soft float debian wheezy)

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

[back to menu]