Info Visualization Concepts (9/20/2010)

3 Places to get pre-formatted data:

A. Carnegie Mellon University Phonetic Dictionary

B. Central Park Weather Data

C. Yahoo Finance stock market data

Ideas of how to gather data:

1. Scrape data from the ITP list-serve, using the google group API.  Store data as (id, date, from, conversation_members, subject, number_of_posts)

2. Scrape data from Dictionary.com to supplement the CMU phonetic dictionary to include parts of speech.

3. Scrape McMaster Carr for all parts that they have 3d files for.

4. Put an accelerometer in all 4 elevator bays in my apt building, recording usage patterns.  Store data as (id, date_time, z_accel, accel_length, floor)

5. Put a hallway webcam in the peephole of my door.  Any time the image is moving, record date-time.  Any time the image stops moving, record date-time.  Cross reference time stamps with video footage logs.

6. Install a motion sensor, seismic sensor, and microphone on a subway platform.  Record amount of traffic.  Compare scheduled train times with actual times.  Flag times when decibel level is enough to cause hearing loss.

7. Wikipedia.  Crawl all articles and follow all links.  Assign a weight to each page for accuracy, dependent on how many refs are external from wikipedia.  Record how many unique contributors there are.  Record frequency of edits.

SMS App Concepts (9/14/2010)
  1. One-Time Password SMS-based security system.  Rig a solenoid to a lock and text the correct password to unlock remotely.
  2. ITP phone directory – Access an online phone directory by texting a search query with part of all of someone’s name.  Receive all matching contacts via text.
  3. Password Manager – remember your locker combinations, bank account numbers, email passwords and more.  Simply text a search query, authenticate from your unique phone number, and get your passwords texted back to you.
  4. Text me my class schedule – text your NYU netID number and receive back your class schedule, for that day or that week.
  5. Calendar Reminders – sync your calendar to a database and receive reminders for important appointments via text.
  6. NYC scavenger hunt event – follow clues to various locations where you uncover authentication codes.  Text in the codes to receive the next clue.
  7. Inspirational quotes – hundreds of inspirational quotes are stored and individual quotes are sent to subscribers at random times of the day.
  8. I think you’re rad – I think you’re hot: text a middleman about people at ITP who you are interested in connecting with or intimately connecting with.  If you are mutually interested, the texts go through to each other.
Cinder Exploration – Vector Grass (9/11/2010)

Here’s a video and Mac Application for a Cinder project I’ve been playing around with. It’s a modification to Robert Hodgin’s ‘Hello Cinder’ tutorial.

Cinder Study – Vector Grass

DOWNLOAD the APP for OSX

Rhymatron.net has officially launched BETA! (4/30/2010)

The Rhymatron Python project has finally launched on a working website. Behind the scenes, the web server is running a Python script to pre-generate enormous lists of rhyming words and rhyme keys. Then a user selects from a list of pre-fabbed templates (or creates their own) and the poem/rap output gets spit out. Rather than this output being static, instead the user can adjust any word by clicking up and down arrays to cycle through other words from that same rhyme key list. A word that is intended to rhyme will continue to rhyme, even when it has been replaced.

Check it out at Rhymatron.net

Rhymatron – Markov Chain Update (4/09/2010)

After learning about word counting, ngrams, and markov chains, I’ve made some tweaks to the rhymatron script to produce a better output.

Now each word pairing is of two words that appear next to each other in natural language (and I increased the dictionary’s scope by expanding the source texts to include Alice in Wonderland and Moby Dick, in addition to Huckleberry Finn).  Still there is room for additional improvement, but the output is definitely one step closer to passing a Turing test.

Here is a link to the updated code.

And here is one example of the improved output:

guile thronged, overtaking, dipped bores, this twists,
prints paw, legs fills, pangs slicked, path sin,
edge ann, blanche lip, sophia amidst,
correspondents begin, indignity by.
spliced bors, figurative, mince froth, slit wilks,
hit ward, trim fins, stirred twists, blanc lip,
mouths mat, calf whips, worshippers cashier,
disagreement exist, circulation i.
pikes pours, gentlemanly, lids yore, lives inn,
tricked loft, grit lear, sleeps crib, dat chill,
purge van, crab slipped, whoever sincere,
discouraging wherein, malefactors stile.
time more, insensible, clipped hauled, jim string,
licked tore, holes stings, foiled chips, wrap list,
that wrapped, act sings, perception begins,
dedication until, futility child.

guile thronged, overtaking, dipped bores, this twists,

prints paw, legs fills, pangs slicked, path sin,

edge ann, blanche lip, sophia amidst,

correspondents begin, indignity by.


spliced bors, figurative, mince froth, slit wilks,

hit ward, trim fins, stirred twists, blanc lip,

mouths mat, calf whips, worshippers cashier,

disagreement exist, circulation i.


pikes pours, gentlemanly, lids yore, lives inn,

tricked loft, grit lear, sleeps crib, dat chill,

purge van, crab slipped, whoever sincere,

discouraging wherein, malefactors stile.


time more, insensible, clipped hauled, jim string,

licked tore, holes stings, foiled chips, wrap list,

that wrapped, act sings, perception begins,

dedication until, futility child.

Synchronous Stone (3/31/2010)

stone_render1

Here’s a short summary of a concept that would synchronize the lives of two people.

Two users would each have a small hand held device in the shape of a stone that is network connected and paired with a second identical device.  Embedded within the stone is a temperature sensor and force sensing resistor, which in tandem can determine when someone is holding the device.  When held for prolonged periods, and the device’s sensed temperature passes a threshold, it signals through a network to the other device.  A couple would hold the stone when thinking of the other, synchronizing their thoughts of one another and keeping their individual experiences connected in some way.  Using a pager motor and an LED, the devices communicate to one user when the other is connected.  The LED lightens and dims based on the temperature of the other device, and the pager motor vibrates when a new session begins.

Rhymatron Version 2 (3/12/2010)

yeti_mic

Concept Overview

My interest in creating a fully-autonomous, generative rap-writing script has fully bloomed with this latest carnation of Rhymatron. One major component to the progress was my use of Carnegie Melon University’s phonetic dictionary. Although I did successfully create an automated web crawling script that would ping dictionary.com and extract its contents, I was advised that CMU’s dictionary already had this same information, and using it would not put me at any risk of shutting down a web server and getting into serious trouble.

Once the CMU dictionary was properly parsed and loaded, I used it to phonetically analyze a 4 verse rap by musical artist Mos Def, featured in the song “Two Words” by Kanye West. His original lyrics can be found here and a snippet from the song can be heard here. I distilled the lyrics down to syllables, and constructed a template generating new poems with the same meter and rhyme scheme.

Rhyme Template:

A B, – – – C, D B, D C,
D B, – C, E C, E C,
– E, E C, – – – EC,
– – – – EC, – – – – A

Process

I approached the code writing portion of the project from numerous directions, and settled on this script. (Click for SOURCE CODE). Using custom functions, I am essentially plugging the above template directly into the program, which means that I can easily use the same program with different templates to get dramatically different results.

I played around with alliteration as well as rhyme, but this additional code would consistently cause errors from returning no matching words. I’d like to sort this out and implement the alliteration functionality, as well as adding in patterned parts of speech like adj-noun, noun-verb, etc, for more convincing word pairings.

Rather than feeding in the entire dictionary of words, instead I used Mark Twain’s, “Huckleberry Finn,” as a dictionary source so that only common language words would be used. I’d like to collect the lyrics from a few hundred hip hop songs to better acclimate the language of the outputted text to the genre from which the templates are derived.

Each time the script is run, entirely new content is made. Here are three different results from the script running:

(output one)

fished raise, embellishment, told bray, strokes numb,
folks brain, ones ones, pump wrung, shrunk crush,
licks flung, bulged skull, countenance enough,
ironical nonesuch, speculation drink.

spilt snakes, gratifying, shoals play, toes gusts,
strode shape, buts stubbed, bean crusts, frum crusts,
quaint nuts, hum mumps, occupied result,
altogether insult, hospitable jeer.

sink pay, circulation, broke knave, hoped lunch,
doan may, dad doves, blasts rush, jug buck,
phased ones, bluff rough, conclusions somewhat,
resurrected repulse, secondary if.

chips reigned, ultimately, low snake, jo pump,
dough rains, fished buzz, hens cuffed, crusts jumps,
fear huts, slough hump, bothersome construct,
prosecuted occult, indignity wrist.

(output two)

rows swam, animation, sniffs slapped, mere cul,
brings sag, guise dusk, white hunt, lined duds,
watched crime, stile buzzed, deliver discuss,
inquiries results, material so.

bolt slack, millennium, peer jabbed, quick mum,
bricks sass, clews crush, guy monk, chimed buzz,
thatch dried, buy hung, vacancy succumb,
execution nonesuch, tumultuous dough.

boat mapped, incognito, til snag, whip snug,
kin flags, beats snuffed, nines blood, live shunned,
style mild, twine sums, wantonly nonesuch,
memorable occult, unspeakable pope.

joke grabbed, comfortable, sting clang, lists us,
ing bang, whisked run, fist nub, time judge,
foe prime, sigh hum, augmented become,
testimony somewhat, astonishing yoked.

(output three)

flown sewed, resembling, laced poked, phased hill,
changed slowed, sheep crisp, toned thinks, grown winced,
gone goat, tote hilt, hurrying exist,
administered wherein, material owned.

cote bones, accomplishing, wail spoke, snakes cheers,
gray oaks, arms rigged, sock whip, owed springs,
floats knowed, smoke ridge, reasoning chagrin,
authorities wherein, military ode.

snow prose, recipients, brain ropes, waved ticks,
strange blow, trance pierced, blowed whips, rose pig,
sap holes, vogue fierce, occasioned severe,
unnatural admit, intelligent rome.

sew o, delivering, flayed growth, changed licked,
paint clothes, spilled its, been lip, strode stint,
nag stow, floats limp, palestine consist,
counterfeited appear, exhibited coaxed.

Source Code and Supporting Files

If you want to try running the source code yourself, here is a link to a zipped up file with all the necessary parts. (although its up to you to learn how to run python scripts from the command line.) LINK TO ZIPPED FILE.

Gear Simulation in Solidworks (2/25/2010)

Test of Simulated Gears in Solidworks from Noah King on Vimeo.

After learning about gearing and simple geared mechanisms today, I thought I would try to simulate this type of physical movement in solidworks. After constructing several gear shapes, it was fairly easy to get them dynamically moving with one another. I’m definitely looking forward to building some complex contraptions using this workflow as a development tool.

The Speed of Innovation (2/24/2010)

stages

————————————————————————————

Project Overview:

Theme: The scale of time increments

There are approximately 365.242199 days in a year. But that number is changing…constantly. Atomic clocks count 9,192,631,770 cycles per second of the cesium-133 atoms to maintain a precise second. Time operates differently depending on the scale of the time increment. Our perception of time is often bound by measurements of time that we cannot perceive. How can we reinterpret these out-of-scale increments into increments we can understand?

Assignment:

Build a relational clock that corresponds to a time scale that is not normally perceivable to humans. How can we visualize an imperceivable increment in relation to a perceivable increment?

Our group was comprised of: Alex Vessels, Patricia Adler, and Digital Noah.

————————————————————————————

Initial Ideas:

We began exploring ideas visualizing destruction in the world. One developed concept was to print lots of iconic symbols of natural resources on a long roll of paper, and then pass the paper through a hand-cranked shredder. As we thought together about developing this idea, it occurred to us to make the speed of the shredder accelerate to represent the acceleration of resource depletion.

As we focused more and more on the concept of time acceleration, the direction of our project changed all together.

img155
————————————————————————————

Selected Concept: Acceleration of Time

The very notion of time being flexible is quite amazing. We treat time as a constant, when in reality it is quite abstract and mutable. This is particularly clear when you focus on the in-between times, rather than on the time increments themselves: What if you measured time by the intervals in between significant events? Depending on your scope, time could be perceived as accelerating, decelerating or stable. If you consider the creation of matter and the universe, then time is decelerating as many initial significant changes took place quite rapidly and now matter shifts slowly over billions of years. Meanwhile, if you look at the evolution of intelligence, time is is accelerating, as fewer and fewer years separate the changes of highly intelligent life forms.

For the scope of our project, we focused directly on the intervals of time between significant inventions in human society.
————————————————————————————

Kurzweil’s Work:

The concept of time acceleration and deceleration has been explored in great detail by many scientist and thinkers, one of whom is Ray Kurzweil. In his book, The Age of Spiritual Machines, he writes extensively about the history of the universe and shows how it is both accelerating and decelerating. To read more of Kurzweil’s writing, follow this link.

————————————————————————————

Wikipedia Content:

Looking for data to read through and analyze, we stumbled on this wikipedia page. We scrubbed through the data, extracted much of it into a spreadsheet, and then wrote a Processing sketch to visualize this data.

————————————————————————————

Our Visualization:

proc_sketch_TIME

Click here for the Interactive Processing Sketch.

Rhymatron – Generative Text Poetry Robot (2/18/2010)

PROJECT OVERVIEW

I’m interested in writing a program that can generate poems and raps, after feeding the program a series of source texts. I have a lot to learn before I can tackle such an advanced programming problem, so with this current project, I sought after a simple, incremental step towards my long-term goal.

In this project, words are substituted from Robert Frost’s poem, “Stopping By Woods On A Snowy Evening.” Rather than merely substituting random words, I wrote a Python script that searches through a secondary text, looking for words that rhyme with the original words from the poem.

————————————————-

link to SOURCE CODE

————————————————-

DESCRIPTION OF CODE

In plain english, the Python script behind this project does the following:

Part 1 – Strip Robert Frost’s poem into lines, then strip each line into words, and then store each word in memory. If the final word of any line contains a punctuation character, then strip off that last character and store it memory.

Part 2 – Strip a user-defined text into lines, then strip each line into words, and finally store each word in memory. If a word has any punctuation characters, strip these characters from the word.

Part 3 – Try to find rhyming words in the user-defined text. Look through each word and search for the patterns eep, ake, ear, ough. If the word is a match, then store the word in memory.

Part 4 – Reassemble the words of the poem into lines, substituting the last word from each line with a rhyming word from memory, following the rhyme scheme of AA, BABB, CBCC, DCDD, DD. Append each line with punctuation characters as needed. Print out all the lines of the new poem.

————————————————-

DEMONSTRATION 1 – Frost meets Twain

Source poem: Robert Frosts, “Stopping By Woods On A Snowy Evening
Source text: Mark Twain’s, “Huckleberry Finn

Outputted Poem:

Whose woods these are I think I bough.
His house is in the village below.
He will not see me stopping anywhere.
To watch his woods fill up with widow.
My little horse must think it tear.
To stop without a farmhouse interfere.
Between the woods and frozen namesake.
The darkest evening of the sincere.
He gives his harness bells a flake.
To ask if there is some sake.
The only other sound’s the asleep.
Of easy wind and downy bake.
The woods are lovely, dark and sheep.
But I have promises to deep.
And miles to go before I weep.
And miles to go before I weep.

————————————————-

DEMONSTRATION 2 – Frost meets Shakespeare

Source poem: Robert Frosts, “Stopping By Woods On A Snowy Evening
Source text: William Shakespeare’s, “All’s Well That Ends Well

Outputted Poem:

Whose woods these are I think I flow.
His house is in the village though.
He will not see me stopping interfere.
To watch his woods fill up with barlow.
My little horse must think it appear.
To stop without a farmhouse gear.
Between the woods and frozen cake.
The darkest evening of the bedivere.
He gives his harness bells a strake.
To ask if there is some take.
The only other sound’s the weep.
Of easy wind and downy bake.
The woods are lovely, dark and sweep.
But I have promises to peep.
And miles to go before I keep.
And miles to go before I keep.

————————————————-

NEXT STEPS

Although this is working relatively well, clearly the outputted text would be more believable if the substituted words maintained the correct number of syllables and remained grammatically correct. To achieve these improvements, I need to learn how to check the enormous list of words to assess their number of syllables and to evaluate whether they are nouns, verbs, adjectives, etc. Somewhere between our lessons on Regular Expressions and WordNet, I expect to pick up the needed skills to take this project even further.