Twitter in Processing: leading up to the ICM final

I am going to work with twitter for my final. This is a first attempt to deal with twitter data. I’m started by using the Twitter4j library and following the example on Jer Thorpe’s page. From there I needed to have more control of the words so I have moved the words into a class. The sketch below shows the words animating backwards in Z space. Due to complications with the processing for wordpress script, the words are not being displayed. Instead you see nulls where the words would be.

The code is below:

//Build an ArrayList to hold all of the words that we get from the imported tweets
ArrayList words = new ArrayList();

ArrayList wordsPicked = new ArrayList();

void setup() {
//Set the size of the stage, and the background to black.
size(640, 480, P3D);

ConfigurationBuilder cb = new ConfigurationBuilder();

//Make the twitter object and prepare the query
Twitter twitter = new TwitterFactory(;
Query query = new Query(“#Obama”);

//Try making the query request.
try {
QueryResult result =;
ArrayList tweets = (ArrayList) result.getTweets();

for (int i = 0; i < tweets.size(); i++) {
Tweet t = (Tweet) tweets.get(i);
String user = t.getFromUser();
String msg = t.getText();
Date d = t.getCreatedAt();
println(“Tweet by ” + user + ” at ” + d + “: ” + msg);

//Break the tweet into words
String[] input = msg.split(” “);
for (int j = 0; j < input.length; j++) {
//Put each word into the words ArrayList
catch (TwitterException te) {
println(“Couldn’t connect: ” + te);

void draw() {
//Draw background

//Draw a word from the list of words that we’ve built
int i = (frameCount % words.size());
String word = words.get(i);
wordsPicked.add(new Word(word, random(width), random(height), 100, random(10, 30)));

for (int w = 0; w < wordsPicked.size(); w++) {
Word thisWord = (Word) wordsPicked.get(w);

class Word {
String word;
float x, y, z, size;

Word (String word_, float x_, float y_, float z_, float size_) {
word = word_;
x = x_;
y = y_;
z = z_;
size = size_;

void display() {
//Put it somewhere random on the stage, with a random size and colour
fill(0, 0, 220, random(50, 150));
text(word, x, y, z);

void update() {

void kill() {

Leave a Reply