Thursday, December 10, 2009

Pictures of Lily, Lily of Lily

Just found out about Lily, a Firefox add-on that enables users to create rich, complex applications within the browser. You create Lily applications by connecting functional modules that they call "externals" inside a document (program) called a "patch". Each object serves a single purpose, such as adding two numbers together, displaying an image or providing interactivity like a button. By connecting the output of one external to the input of another, it becomes possible to quickly build complex programs that do what you want. External objects are written in JavaScript (like Lily itself) and it's simple to write your own external to do whatever you want.

The Lily team have already built in over 180 externals objects:
- web service modules for APIs like Twitter, Amazon, Flickr, Wikipedia, Yahoo;
- UI modules that wrap web components from YUI, JQuery and Google Maps as well as the browser's built-in UI elements;
- modules that offer access to the network, SQLite storage, TCP sockets or the file system; modules to interact with the browser;
- modules to send and receive Open Sound Control messages or talk to the Arduino physical computing board;
- and, graphics modules that encapsulate the browser's SVG functionality and multimedia modules for playing sound and video.

Hello World from Bill Orcutt on Vimeo.

Now it's possible to use a browser-based program to make web or desktop mashups, allowing people with basic skills to visualize and animate data, modify webpages, play music, or connect to world outside the computer.

Another neat aspect is that your programs can be shared with other Lily users as text files or they can be run by anyone as Firefox add-ons or standalone XULrunner applications.

Math from Bill Orcutt on Vimeo.

Lily is free and open source, released under the MIT license. Lily runs on Mac, Windows or Linux, just like Firefox.

Find out more or get started at the Lily site -

The project is now available on Google code (recent change) -

1 comment:

Pietro Polsinelli said...

Really cool, thanks for the pointers.

We're building a different approach, still we started by thinking about mashups:

Why not do more, much more, with mashups?

I'd like to hear your impression.