[lively-kernel] New Release coming - Alpha testers welcome
danhhingalls at gmail.com
Mon Jul 11 21:44:18 CEST 2011
Last fall we made the decision to refactor the graphics kernel,
rewrite our serialization scheme, and make things better for
end-users as well. In the process, we took our communications pretty
much off line so, to look at the mail list, one might assume we just
stopped working. Nothing could be farther from the truth, as you
will see from this summary of features in the upcoming release of
Lively Kernel 2.0...
New Rendering Architecture
We have refactored the rendering architecture so that it can equally
easily support not only SVG and Canvas, but also standard HTML and
CSS. There were several reasons: improved graphic performance,
easier incorporation of existing web content, and the flexibility to
interoperate with other widget sets, visualization software and the
like. By separating the rendering state from the morphic state, it
also allowed us to serialize objects in a rendering-independent
manner. The importance of this will emerge when we talk about Parts
Bins. Here is an examples enabled by the new architecture
One advantage of the new system is access to native widgets in the
browser, most notably text frames that can edit multi-megabyte
string. We also look forward to such native support in mobile
devices where there are high expectations of both appearance and
We have rewritten the entire serialization module in LK2 removing its
dependence on the browser DOM. Serialization now uses JSON
exclusively, and it now handles all morphic structure, including
We have made a step in ease-of-use for many simple creations.
Beginning with the Lively Fabrik project, we had gained experience
with a simple drag-and-drop palette of components. It became obvious
that this is a generally more convenient and more concrete access to
a lively library than menu commands, plus it offers the potential of
storing as well, and is thus a true user repository. Around the same
time, we were experimenting with Node.JS, and this, together with a
general desire to slim down our kernel, suggested that our parts bin
should be cloud-resident (and thus sharable), replicable, and
generally scalable as well.
We soon discovered that storing objects in this manner was more
convenient than saving code and files. Originally used only for
simple shapes, we now store all sorts of active content from widgets
to full-blown applications, styles such as fancy borders, behaviors
such as throbbing, spinning, etc, and services such as map views and
In addition to drag-and-drop access from the parts bins, it is
necessary to be able to connect objects together in a live way. For
this we have developed a dataflow connection similar to the bind
operation found in many GUI frameworks. Connections can be made
simply by drawing out a line from one component to another and
selecting from a menu which property of the source should be
connected to which property of the target.
With the move to a less class-oriented style of development, we have
developed a simplified browser that also offers control scripts and
connect functions. The script browser itself is built in this
manner, and is something much more accessible to casual understanding
than our more heavyweight programming tools.
The change to direct scripting of objects and iconic storage in the
cloud is a true paradigm shift for the Lively Kernel. The experience
is one of living in a vast and shared cloud of active content that is
easy to grab and play with, and equally easy to publish back to.
A wonderful side-effect of the new serialization is the ability to
create a full-system archive of any Lively Kernel world. A lively
archive is a web page that includes the entire code base, and that
can thus be run without access to the Internet. It can be stored as
a clickable app on one's desktop and, being self-contained, it should
remain a stable artifact for years to come.
Using the lively archive technology it is now possible to store
Lively Kernel worlds to your Dropbox account, thus letting you keep
them and share them as long as you want. We plan to extend this
facility to parts bins as well, so that you can build and share your
own personal gallery of weird and wonderful lively content.
The punch list for Lively Kernel 2.0
We are now operating at maximum warp to assemble a stable release so
that people can play with it and we can take this environment to the
next level of creative productivity. We are intentionally refraining
from perfection in favor of early release, knowing that we will want
to change it the minute we are done.
Here are the major stepping stones remaining to get us to 2.0:
Archive the old version with many demos
Check operation in all major browsers
Code cleanup of the new version - remove deprecated code, etc
Address a few usability issues
Basic documentation and web site organization
Anticipation of future extensions such as canvas
rendering and touch support
In addition to our normal practice of making the up-to-the-minute
alphas accessible, with 2.0 we plan to begin a practice of providing
links to a reasonably documented stable release as well as the
up-to-the-minute development version.
Check out the alpha pages
To get a sneak peak at Lively 2.0 visit
A FAQ has been started at
You can help to make the 2.0 release a success by testing these
pages, and any other features you discover. Please send us your
comments and suggestions.
At this writing, LK2 runs best on recent releases of Safari, Webkit
and Chrome. It is our intention also to support IE (9+), Firefox and
Opera. Help us to test these and send us your comments.
Lively up your web!
Dan Ingalls (as scribe) - SAP Research, Pal Alto
Robert Krahn - Hasso Plattner Institute, Potsdam
Jens Lincke - Hasso Plattner Institute, Potsdam
Marko Roeder - Hasso Plattner Institute, interning at SAP
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the lively-kernel