I began to work on Wordalizer for InDesign in September 2008! Jonathan Feinberg had just launched its brilliant Wordle Java applet and I was highly impressed by the typographical perfection that Wordle could reach in word clouding. I was naively dreaming to operate the same way from the InDesign DOM! Too much confident in my scripting abilities, I still hadn't realized how powerful the Feinberg's core algorithm was, until I found this post on “Kelso’s Corner” blog. Feinberg says: “It’s not quite ‘simple bounding box,’ which wouldn’t permit words inside words, or nestling up to ascenders and descenders. It’s full glyph intersection testing, but with a sprinkle of CS applied to make it work at interactive speeds.”

Wordalizer is a “word cloud” generator script for InDesign CS4.

Yes indeed! The hardest part of the whole challenge is in speeding up hit-tests, and you can't imagine how this Java performance problem looks like when translated into the InDesign JS context! After remaining at a standstill for a long time, I decided to start my script from the beginning again. In spite of the fact that the Wordle's code partly belongs to IBM, Feinberg has left a few clues about the algorithm. The most important one is outlined here: “Algorithm to implement something like Wordle”. I also found an enlightening paper on IBM Research: “Participatory Visualization with Wordle” (PDF) —by Fernanda B. Viégas, Martin Wattenberg, and Jonathan Feinberg.

While using similar techniques (quadtree spatial indexing and hierarchical bounding boxes), Wordalizer for InDesign cannot compete with Wordle in terms of performance. Well, it's just a script, but I hope you'll enjoy the TRY version.

The Wordalizer dialog box (Windows).

The screenshot above illustrates the main interface dialog. (Note that the TRY version disables the “Edit weighted list” checkbox and doesn't allow the user to keep the previous lexicon extraction and settings.)

Here is the “Weighted Word List” edition window (when enabled):

“Weighted Word List” edition window.

And now the resulting word cloud (based on Márquez' “One Hundred Years of Solitude”):

Lexicon extraction and word cloud performed by Wordalizer on “One Hundred Years of Solitude”.

Another one with other parameters:

Another sample word cloud.

[Update] The current version of Wordalizer supports 6 languages. Extract the WordalizerTry.js file and install it in your InDesign Scripts folder.

Update: version 1.25 available now!