Sean Crist's Homepage: Personal Home > Personal > Pages > Visual Pipes Contact

Visual Pipes

I originally posted this back around 1998 or so. I'm constantly thinking of stuff like this.

I wouldn't take the time to build this particular idea now. I've had way too many other ideas that I'd rather build at this point, if I had the time and resources.

Here's one of those things I'd write if I had a lot more time. I don't have time, so feel free to implement the idea if you like.

Picture of visual pipes concept

Many people have observed that Linux is difficult for casual users to learn, and that Linux would have a better chance of general acceptance as a desktop platform if it were made easier to use. Pipes are at the root of the great flexibility of Unix, and representing them graphically makes this functionality better accessible to the casual user.

Part of the reason why I know I'd better not take on this project is that I wouldn't be satisfied just writing the graphical equivalent of the Unix shell. I'd have to write applications (e.g. a word processor, a graphics editor, etc.) which are designed around the idea of graphical pipes. For example, the user could create new menu commands within the word processor by dragging the appropriate filters together in a graphical pipe workspace window (perhaps a new command sorts the lines in the currently selected range and replaces the selection text, and also pipes the newly sorted text to some other program as well for further action). Similarly, graphical pipes could be used to set up specific communication pathways from one application to another.

Dragging the items together need not be the only way of creating a more complex task. One might have a photo editing program where each user action (cropping, scaling, adding text, etc.) results in an icon being added to the pipes window. The user can go back and open the icon for an action several steps back, change some parameters, and click a button to recompute the picture (presently, you'd have to do a bunch of Undos and then redo all the subsequent actions). Further, once an action list has been created this way, the pipe list can be saved and applied to other images as well, batch mode.

Filters could be created for text (sort, grep, etc.), for graphics (crop, invert colors, etc.), sound (add reverb, reverse sound, etc.), etc.

After I thought up this idea, I learned that something of the same sort had already been written for the Macintosh some time back, but it never took off. I suspect that this was partly because there was no convenient way to integrate the visually created pipe sets with existing Mac software. In Mac programming culture, file formats tends to be opaque and proprietary, unlike Unix where files tend to be stored as simple text which the user could potentially edit with a simple text editor. I think the idea of graphical pipes might do a lot better in Unix/Linux/GNU, where there is a long tradition of doing things with pipes.

Last updated 31 May 2010