Today, i’m happy to officially announce project Amber. In works over the last few weeks, it shows how to use Trident to add animations to an online interactive application that analyzes media trends. While previous demo videos showed some of Amber’s capabilities on test data sets, this high-definition video (watch in full-screen mode) shows Amber tracking the Digg tech news trends in real time.

To see Amber in action, click the WebStart button below and select one of the available Digg topics (last column):

Here are a few screenshots of Amber. The login screen (fades out on pressing the “Start” button):

The grid of story thumbnails (slide in and up):

Infotip showing story title and description (slides and fades in):

Another infotip, this time above the story thumbnail to fit in the frame:

Frequency chart of keywords in the shown entries – allows to analyze the popular topics:

The full code for Amber 1.0dev (code-named Ashberry) is available in the SVN repository, and Rémy Rakic (@lqd on Twitter) has already created a Twitter provider that allows analyzing public timelines:

To create a custom provider, take a look at the org.pushingpixels.amber.digg.DiggProvider class. One of the next blog entries will show another provider that uses the NY Times online APIs.

Trident progress

March 12th, 2009

The work on Trident animation library continues, and over the last couple of weeks the following functionality has been added to the SVN repository:

  • Interpolating float properties on objects other than the main timeline object
  • Interpolating fields of Point and Rectangle classes
  • Respecting RunOnUIThread annotation on internally chained timeline callbacks
  • Proper cancelling of scheduled timelines
  • Looping timeline scenarios

The following three videos previously posted on my Twitter stream use most of the new functionality:

Better implementation of infotips. Initial delay prevents infotip flickering on fast mouse move. Sliding and resizing the infotip to the new location creates visual continuity:

A new demo (in the test.CropCircles class) showing multiple looping timelines and one looping rendezvous timeline scenario running in parallel:

and the same demo with slightly different parameter settings for the crop circles demo to illustrate the capabilities and performance:

It is always exciting to see an elegant and polished desktop application, and it is doubly so when Swing is the UI toolkit of choice. Željko Ziriković is the mastermind behind Revolucion, a new Swing-based media player. And while Mikael Grev‘s initial work on his own media player has shown great promise, it hasn’t progressed to handling the real media. Željko‘s work appears to be much more complete and functional, and i’m eagerly looking forward to see the code when it is released in the next few weeks.

In the meantime, enjoy the video walkthrough (switch to full screen and HD), and click on the screenshots below.

More Trident demos

February 28th, 2009

The work on Trident project announced in the previous post continues, and here are a few demos that my Twitter followers might have seen during this week:

Simple demo recreating the fireworks from this JavaFX implementation. The source is available in the SVN test/Firework.java class and shows the usage of parallel scenarios. Each volley explosion is a separate Trident timeline, and there are 270 of those running at the same time. The CPU usage is about 8-10% as compared to the 25-30% usage of the JavaFX example (on my machine).

Another simple demo recreating the Groovy GraphicsBuilder snake. The source is available in the SVN test/Snake.java class and shows the new Timeline.replay() method.

The last two videos show the work in progress on a larger demo. The full source code will be available in the next few weeks, but in the meantime you can see some of the animations. The first one shows sliding images, with usage of timeline scenarios, each comprising multiple sequenced and branching timelines, swing workers and runnables with futures:

And the second one shows the usage frequency of specific words, using the new interpolator capabilities of the Timeline class: