Mark McCorkle - 2012-02-07

I was discussing the ZUI with some friends last week, and something occurred to me that I wanted to share. 

Imagine that you start with the xine player plugin playing "movie.avi" in this ugly whiteboard mockup:

When you zoomed out of the movie.avi xine plugin, you already have connectors to three other plugins, Gimp, Facetime, and Facebook Wall. 

Zooming down to the Gimp plugin takes the last frame (paused when you zoomed out of movie.avi) and opens gimp (or a very simplified version of gimp that works as a native plugin in eagleMode) with that same frame.

The Facetime plugin (which likely is impossibly since its a proprietary video call format for Mac only, but in here for example), would have a "always refreshing" indicator in its connector, meaning that as movie.avi is being outputted to the display, it is also copied direct to the input of the facetime plugin, and the facetime plugin is sending that buffer over the network to listening facetime clients (basically broadcasting what I'm watching in movie.avi to anyone I've called over facetime).

The last is a plugin would likely be the simplest to built,  as zooming down on it would take the same last frame as the gimp plugin above, allow the user to annotate the image with some text, and then post it directly to the user's wall (or to tweet to twitter, or post to circles on google plus). 

All of the configuration, logging in, management of sessions and endpoints of various plugins could be easily managed by the same zoomable menu as you use to edit the settings of the eagleMode itself. 

To do all this, I think there are 3 main pieces:
1) a simple STDOUT and STDIN (perhaps even STDERR) like redirection engine for video and audio in eaglemode (think unix pipes and redirectors, like `cat filename.txt | grep foo > output.txt`)
2) a way to drag plugins around, create instances of them easily, and easily attach them by the multiple types of connectors (only on zoom, only on zoom with annotation, or in real time as the source is updated, send to the target).  I think the UI method of of dragging child bubbles to attach to parent bubbles makes a lot of UI sense and could work well there.
3) a framework where existing X11 apps could work  as eagleMode plugins.  I would have NO idea how to even begin this step.

Anyways, I wanted to share the idea before it drifted back into the ether.  If you want clarification, I'll be happy to discuss.