Skip to content

spikelab/vapourword

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Tag clouds (or word clouds) are generally associated with web 2.0 and made popular by blogs, but a word cloud is a powerful way to represent any generic list of items to which is possible to associate a weight. Tag clouds are generally very simple cases where the weight is represented by the frequency of a word, but far more complicated functions can be applied to represent relationships and importance of different words/items in a cloud.

wordle is both an example of how word clouds can be used to get a different perspective on several subjects and a great visual improvement over the classic tag cloud. Unfortunately, altho you can create your own cloud through the website, the project is not open source with obvious implication.

What is vapourword

Vapourword aims at being a completely FLOSS replacement for wordle and more. The project is structured around two modules:

  • vw-wordlist , core generating the list of weighted words
  • vw-draw , graphical engine to render the list of weighted words

Vapourword design

vw-wordlist

This is a python application in charge of generating a list of weighted words. It is designed with a modular approach and a plugin interface is provided so that user can create their on functions to create the list and calculate weights depending on the meaning of the input. For language processing vw-worldlist is relying on the nltk library and the default plugin will support basic lists word:weight comparable to wordle.net. Multiple languages and different weighting criteria will be added

vw-draw

Currently an implementation in C++ is scheduled, but it might eventually move to python with pyglet and maybe bits done with ctype. Ideally a library will be created supporting algorithms for 2D bin packing since there doesn't seem to be an existing one freely available.

VW-Draw will target first creating clouds from simple pairs of word:weight then move on to more complex scenarios with several weights and animated weight changes. It will create simple images to start with, though a GUI is on the cards for some point in the future.

Roadmap

vw-worldlist

  1. Implement a skeleton with support for python plugins to calculate weights and helper functions to deal with input/output
  2. Write a plugin to generate list of weighted words based on word frequency
  3. Add spell checking support (English only)
  4. Add stemming support

vw-draw

  1. Implement a test framework, OpenGL, word:weight file input and pictorial output
  2. Font renderer
  3. Bounding box based cloud creation onto pixel collision field
  4. Gaussian graphical techniques to create a pleasant layout and improve collision layer
  5. Mapping and config for colours, extra weights and element relationships
  6. Animated weight and relationship changes

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Authors

Spike & Gabriel ;)

About

fancy world cloud ala wordle.net

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published