Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ryanj/twitter-stream-globe

A real-time 3D visualization of Tweets from around the world.
https://github.com/ryanj/twitter-stream-globe

Last synced: 13 days ago
JSON representation

A real-time 3D visualization of Tweets from around the world.

Awesome Lists containing this project

README

        

tweet-stream-globe
==========

A real-time 3D visualization of Tweets from around the world.

This web app attaches to the Twitter API stream/filter and runs rudimentry sentiment analysis on Tweets with geo data. Tweets are published via PubNub websockets and plotted to a 3D globe.

Inspired by the [Web GL Globe Chrome Experiment](http://www.chromeexperiments.com/globe) and the [PubNub Real-Time WebGL Visualization](http://www.pubnub.com/blog/creating-real-time-webgl-visualizations/).

![Screenshot](screenshot.png?raw=true =858x "Screenshot")
[Video Capture](https://vimeo.com/104759844) | [Running Demo](http://twitter-stream-globe.herokuapp.com/) (Availability of this server may fluctuate)

Installing and Running
----

Install [Node.js](http://nodejs.org/).

Clone GitHub repo:

```
https://github.com/twitterdev/twitter-stream-globe.git
```

Create a Twitter app and PubNub account:

- Create a [Twitter application](https://apps.twitter.com).
- Create a [PubNub account](https://admin.pubnub.com/#signup) (it's free).

Create a config.json file using config.sample.json as a template. Fill in your Twitter App API and PubNub keys.

Install node module dependencies:

```
npm install
```

Run application:

```
npm start
```

Go to [http://localhost:3000](http://localhost:3000) in your browser.

Deploying
---
This application is ready to run on a free OpenShift or Heroku account, and can be [deployed with Git](https://devcenter.heroku.com/articles/git).

You can deploy to OpenShift with [`rhc`](https://github.com/openshift/rhc), by adding your own keys to the following command:

```
rhc app create twglobe nodejs-0.10 \
--from-code=http://github.com/twitterdev/twitter-stream-globe.git \
NODE_ENV=production \
TWITTER_CONSUMER_KEY=YOUR_TWITTER_CONSUMER_KEY \
TWITTER_CONSUMER_SECRET=YOUR_TWITTER_CONSUMER_SECRET \
TWITTER_ACCESS_TOKEN=YOUR_TWITTER_ACCESS_TOKEN \
TWITTER_TOKEN_SECRET=YOUR_TWITTER_TOKEN_SECRET \
PUBNUB_PUBLISH_KEY=YOUR_PUBNUB_PUBLISH_KEY \
PUBNUB_SUBSCRIBE_KEY=YOUR_PUBNUB_SUBSCRIBE_KEY
```

Before deploying to Heroku, set your environment [config vars](https://devcenter.heroku.com/articles/config-vars) to mirror config.json, and set `NODE_ENV` to "production."

Resources
----
- [Twitter API statuses/filter stream](https://dev.twitter.com/docs/api/1.1/post/statuses/filter)
- [Twitter REST API Rate Limiting](https://dev.twitter.com/docs/rate-limiting/1.1)
- [AngularJS](https://angularjs.org/)
- [PubNub AngularJS SDK](https://github.com/pubnub/pubnub-angular)
- [Three.js](http://threejs.org/)