24
Flutter #Fluent_Utter #Twitter_Poetry #Interactive_Game

Flutter - Fluent-Utter

Embed Size (px)

Citation preview

Page 1: Flutter - Fluent-Utter

Flutter#Fluent_Utter

#Twitter_Poetry

#Interactive_Game

Page 2: Flutter - Fluent-Utter

BriefFlutter is an interactive game simulation which computationally generates text aka“Flutter: Fluent-Utter” based on the “emotional score” of the player.

The player collect tweets pulled from Twitter having keywords:

I hate to - negative

I love to - positive

I believe in - positive

I fear - negative

The tweets are collected from randomly generated tweet pool containing equal number of tweets of each kind. The player gets 45 seconds to collect the tweets. The tweets collected undergo the computational transformation based on “Markov-Chain” and “Flutter” is generated. Player can generate multiple flutters with the tweets earned.

Page 3: Flutter - Fluent-Utter

ProcessThe process involved stages of idea generation, learning various concepts to implement

the idea, actual implementation and then modifications.

Discovery Learning Creation

Page 4: Flutter - Fluent-Utter

Idea GenerationVarious Ideas were brainstormed at this stage. Inspirations were drawn from exisitingprojects, conversations happening over twitter and popular events happening around the world.

https://docs.google.com/document/d/1h9yQuUvpQzJIMs2YrRVOfsw28uD7s402dFjCYm-8hPU/edit?usp=sharing

Page 5: Flutter - Fluent-Utter

Inspiration for Flutter

Page 6: Flutter - Fluent-Utter

Fortune Cookies: The curiosity of the unkown!!

Page 7: Flutter - Fluent-Utter

Serendipity of making a connection!!

Page 8: Flutter - Fluent-Utter

“Twistori” http://twistori.com/

Page 9: Flutter - Fluent-Utter

“DUCK-HUNT” – Happy remembrance!!

Page 10: Flutter - Fluent-Utter

Design

Page 11: Flutter - Fluent-Utter

Click to begin!

Page 12: Flutter - Fluent-Utter

Timer

Score Keeper

Tweet

Individual Score

To be HIT!

Page 13: Flutter - Fluent-Utter

Click to generate text

Page 14: Flutter - Fluent-Utter

Click again to generate different text

Page 15: Flutter - Fluent-Utter
Page 16: Flutter - Fluent-Utter
Page 17: Flutter - Fluent-Utter

Aesthetic Choices

Page 18: Flutter - Fluent-Utter

Aesthetic Choices

• The generated text is devoid of any punctuation marks except “periods” to make the algorithm easy to implement.

• The display of the tweet on the screen on the right might not be the best representation. One way if to fade-in the tweets at the same place where the bird is clicked. Other way is to display all the tweets clicked one-by-one before generating flutter

• The tweet-bird appearing on the screen is randomly generated. So there is equal probability of the occurrence of any tweet

Page 19: Flutter - Fluent-Utter

LOVE HATE BELIEVE FEAR

Color coded TWEET birds and the tweets

Page 20: Flutter - Fluent-Utter

Computaional Choices

Page 21: Flutter - Fluent-Utter

Markov ChainsBased on the feedback received during the critique, I tried to implement the Markov test generator.

The idea behind the text generator is to begin by having the program read in a large body of text, written by a human. The program will record chains of words of a fixed length, and will keep track of which particular word appeared immediately after each chain. This information is then used by a very simple algorithm that generates random text.

The random text generated is what is being called “Flutter”.

Markov chain was chosen since it generates text which is similar-looking to the human generated text.

https://www.cs.umd.edu/class/winter2012/cmsc389C/Projects/P1/P1.html

Page 22: Flutter - Fluent-Utter

An extensive use of for loops and conditionals has been made to implement decisions. Switch-case has also been used to simplify the code. User defined functions are used in abundance. Regular expressions has been made use of to remove unwanted elements form the tweets.

Data structures: Arrays, lists have been used generously to store and retrieve tweets and their indexes. Hash maps have been used to implement the Markov text generator.

The twitter library was not exploited to its best but only used for getting tweets with specific keywords from twitter

Page 23: Flutter - Fluent-Utter

Insights

Page 24: Flutter - Fluent-Utter

Learning on the go!!There were many times where I was stuck on implementation of the idea or caught up in the syntax. In particular, I learned about the implementation of Hashmaps and difference between String, StringLists and String array and that they have different methods associated with it.

There was a learning curve in understanding the draw() and its infinite loop but as pointed by Prof. Magerko in class that it would become more clear with practice, I learnt it the hard way by getting my code crashed several times!!