ITP
Ferrofluid, and more…
Genevieve and thought about building solar powered ferrofluidic sculpture. So we started to play around with ferrofluid – and made a mess. It is cool stuff and can make some beautiful patterns and behavior.
At first we talked about creating a sound with a photocell , using a “light to sound” circuit – The speaker, powered by a solar panel, would create an electromagnetic field, driving cool patterns in ferrofluid….
well, electromagnets aren’t THAT easy…
So we have since modified our plan, after many iterations… I think we will log voltage and light input over the course of the month, and do something cool with that data (a ferrofluid-type graph?)
We are still hooked on the electromagnet idea and have played around with some (a nail with a coil, a few solenoids) to see what type of voltage we need to input in order to get some interaction with the ferrofluid
MAGNETIC EXPLOSION:
after the mess:
RWEL Homework – another approach – playing around with email and ngrams
I sometimes have crazy email interactions with my mother, and I decided to take her emails and write some ngrams with them – and see how they fare
When I was just starting out I figured out how to pull in the body text from emails from specific people (in the process I accidentally deleted 12,000 unread messages (it took about 20 minutes) but… I realize my gmail box needs some sorting
import sys import imaplib, re conn = imaplib.IMAP4_SSL("imap.gmail.com", 993) conn.login('gabriella.levine', 'qwewqwe1!') output = conn.select("INBOX") print "new messages", output unread=conn.search(None, 'UnSeen') print unread unreadCount = re.search("UNSEEN (\d+)", conn.status("INBOX", "(UNSEEN)")[1][0]).group(1) print "unread", unreadCount def get_emails_from_ruth(): ruth = conn.search(None, 'FROM', '"Ruth"') print "ruth", ruth #have to write a functioin that outputs ruth then run it in a nother function below ruthmsg #output ruth ruthmsg = conn.fetch('149', '(BODY.PEEK[TEXT])') print ruthmsg #msgdata = conn.fetch(num, "(BODY.PEEK[HEADER.FIELDS (FROM TO CC DATE SUBJECT MESSAGE-ID)] UID)")
This gave me each number of her emails in a list, as well as how many I had from her, as well as a large mass of text from one of her emails. Then I wrote it better so I got all of her emails, as a text, and only the body text of her email (so I split the text on “7BIT\r\n\r\nhi” and “\r\n\r\n–Boundary” which surrounded the body text of every email I extracted and printed out.
I wasn’t able to get all of her emails but here is some of what I output:
thought you might like to you can breathe a good time together: i thought you can babble on and on like the one who i\’ve been back in a good time didn\’t pass. we\’re together. what a good time together: in our lives in a good time didn\’t pass. have so much fun when we\’re together. we feel great depths for us.\r\n it\’s wonderful for us.\r\n these are SOOOOO different in our lives in touch with her last night. it\’s like my dinner with her last night. schook – the man she lives now can breathe a good time together: i knew all the man she married, and uncles and brother and have such a different world realistically and aunts and emotionally and intellectually, but we can babble on and i thought you when you when we\’re together. mom
hi gabby,, we feel great depths for each other and brother and aunts and have such a good time together: we have so much fun when we\’re together. i thought you might like the one who i\’ve been back in a relief afterwards, hopefully. it\’s like the same about me. noone in tons of relief afterwards, hopefully. it\’s like my dinner with her parents and have you can breathe a sigh of course, there\’s history: mom
So I have to clean it up a lot, and take out the line break symbols. But It is something I will work with. My first step is to get every email in the list (I was getting an error when I was trying to pass in all the emails from her, as opposed to a few at a time)
RWEL – smtp and IMAP libraries
I used this code to send an email:
import smtplib fromaddr = 'gabriella.levine@gmail.com' toaddrs = 'gabriella.levine@gmail.com' msg = 'There was a terrible error that occured and I wanted you to know!' # Credentials (if needed) username = 'gabriella.levine@gmail.com' password = 'qwewqwe1!' # The actual mail send server = smtplib.SMTP('smtp.gmail.com:587') server.starttls() server.login(username,password) server.sendmail(fromaddr, toaddrs, msg) server.quit()
I would like to be able to monitor a project I’m doing for Sustainable energy (where I will be monitoring the voltage input from a solar panel), and send myself an email if any of the components (the Arduino, the Xbee, the Real time clock, the sd card / shield) stops functioning properly
I thought using this code and the smtp library would send an email but I KEEP getting an error(see below), and I’m not quite sure why yet:
import smtplib from email.mime.text import MIMEText sender = 'gabriella.levine@gmail.com' recipients = 'gl715@nyu.edu' msg = MIMEText('hi my name is gabby') msg['Subject'] = 'test' msg['gabriella levine'] = sender msg['you'] = recipients smtpserver = 'smtp.gmail.com' smtpuser = 'gabriella.levine' # set SMTP username here smtppass = 'qwewqwe1!' # set SMTP password here session = smtplib.SMTP("smtp.gmail.com", 587) session.ehlo() session.starttls() session.ehlo() session.login(smtpuser, smtppass) smtpresult = session.sendmail(sender, [recipients], msg.as_string()) if smtpresult: errstr = "" for recip in smtpresult.keys(): errstr = """Could not delivery mail to: %s Server said: %s %s %s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr) raise smtplib.SMTPException, errstr session.close()
ERROR:
Traceback (most recent call last):
File “1151.py”, line 1, in
import smtplib
File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/smtplib.py”, line 46, in
import email.utils
File “/Users/administrator/Desktop/pyEmail/email.py”, line 25, in
conn.login( “putemailhere”, “putpasswordhere” )
File “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/imaplib.py”, line 501, in login
raise self.error(dat[-1])
imaplib.error: [AUTHENTICATIONFAILED] Invalid credentials (Failure)
I also started trying to sort through email using the IMAP library – I haven’t gotten very far, and have to look at the documentation some more, but this is what I have:
import sys import imaplib conn = imaplib.IMAP4_SSL("imap.gmail.com", 993) conn.login('gabriella.levine', 'qwewqwe1!') output = conn.select("INBOX") print "new messages", output #toaddress = msg['to'] #output1 = conn.select("SENT MAIL") #print output1 output1=conn.select('Sent') print output1
almost finished photopopper
See him moving towards light:
slightly blurry, but you get the idea, maybe
and here again (he falls off the computer
RWEL HW- rideshare data (also messing around with sound)
playing around with python’s ability to write .wav file – I’d like to redo my midterm in python, writing two different sin waves, as well as reading through a text’s binary data and having a tone play on 1 and nothing on 0… here’s the start
import sys import math import wave import struct freq = 440.0 data_size = 40000 fname = "WaveTest.wav" frate = 11025.0 # framerate as a float amp = 64000.0 # multiplier for amplitude sine_list_x = [] for x in range(data_size): sine_list_x.append(math.sin(2*math.pi*freq*(x/frate))) wav_file = wave.open(fname, "w") nchannels = 1 sampwidth = 2 framerate = int(frate) nframes = data_size comptype = "NONE" compname = "not compressed" wav_file.setparams((nchannels, sampwidth, framerate, nframes, comptype, compname)) for s in sine_list_x: # write the audio frames to file wav_file.writeframes(struct.pack('h', int(s*amp/2))) wav_file.close()
Additionally, I’m doing more with the code to extract zip code data: I had not been printing the city and state in my processing sketch earlier, but now I am-
[‘43068’, ‘43215’] (zip codes, origin and destination of rideshare requests)
82.803454 39.955145 83.004383 39.967106 (data of gps lats / longs from the zip codes – I had been using after cleaning it with python)
80.281567 40.604424 MACARTHUR PA 80.073393 40.438045 CRAFTON PA (data I will now use, using the new code – see below)
where the first zip code is the origin of a rideshare request, and the latter is a destination point: gps lat., gps long., city name, state name, from a zip code
Now I just need to figure out how to do this through processing (in other words, I don’t want to have to run this code to pull the data from online in order to generate the text file that processing can use)
import sys import urllib #define a function def len(array): i=0 for entry in array: i=i+1 return i def clean(line): line = line.replace("\'", "") line = line.replace(" ", "") line = line.replace(",", ".") line = line.replace("(", "") line = line.replace(")", "") line = line.replace("...", ",") line = line.strip("(),'\"") return line def zipToLat(origin, destination, zipCodeMap): #for each origin and destination zipcode that exists in the zipCodeMap, print it out in the format : (latOrigin, lonOrigin; latDestination, lonDestination) if zipCodeMap.has_key(origin) and zipCodeMap.has_key(destination): #print zipCodeMap[origin][0], zipCodeMap[origin][1], zipCodeMap[destination][0], zipCodeMap[destination][1] print zipCodeMap[origin][0],",", zipCodeMap[origin][1],",", zipCodeMap[origin][2], zipCodeMap[origin][3],",", zipCodeMap[destination][0],",", zipCodeMap[destination][1],",",zipCodeMap[destination][2], zipCodeMap[destination][3] #print "yes" #print zipCodeMap[origin]+zipCodeMap[destination] #print origin def maxloc(locationsDict,zipmap): #return string of both values - location and how many times it appears tmp_max_count = -1 tmp_max_value = '' zipMapRF={} for entry in locationsDict: if len(entry)>1: zipcode = entry[0] count = entry[1] if zipmap.has_key(zipcode): #print zipmap[zipcode] + " , " , count #print "%s %s" % (zipmap[entry[0]],entry[1]) zipMapRF[entry[0]] = entry[1] if tmp_max_count < count: tmp_max_count = count tmp_max_value = zipmap[zipcode] #entry 1 num times apprs, 0 is name of location #chek beforehand - does zipmap have this key.. # print locationsDict print "popular location is " + tmp_max_value + " which was visited " , tmp_max_count , " times." return tmp_max_value #now get value and the map zipNames = {} zipCoordinates = {} starts = {} destinations= {} locations={} for line in open('zips.txt'):#can i just load it from http://www.census.gov/tiger/tms/gazetteer/zips.txt tup = line.split(",") #print tup if len(tup)>=4: zip=tup[1][1:-1] state=tup[2][1:-1] town=tup[3][1:-1] lon=tup[4] lat=tup[5] point = lon,lat point = lon,lat, town, state #print point #zipmap[zip]=pair #print zip + " (" + pair[0] + "," + pair[1] + ")" zipNames[zip] = town + ", " + state zipCoordinates[zip] = point #print zipCoordinates #this Now stores most of what I need #print zipmap #print zipNames #print zipCoordinates #f = urllib.urlopen('http://www.erideshare.com/!!.php') #s = f.read() #f.close() f = urllib.urlopen('http://www.erideshare.com/!!.php') lines = f.readlines() f.close() for line in lines:#open('phpErid.txt'):#figure this out for pointPair in line.split("|"): #build concordence pointPair = pointPair.strip() points = pointPair.split(",") #print points #print "points!" #print points if len(points)>=2: dest = points[1]#the second zip code is the dest loc = points[0]#first zip code of the pair destinations[dest]=destinations.get(dest,0) +1 starts[loc] = starts.get(loc,0) +1 locations[dest] = locations.get(dest,0) +1 locations[loc] = locations.get(loc,0) +1 zipToLatValue = zipToLat(loc,dest, zipCoordinates) l=len(locations) topZipCode = maxloc(locations,zipNames) locations = locations.items() maxloc(locations,zipNames) locations.sort #print locations if len(locations)>1: locations.sort() # print locations[0] # print locations[l-1] maxloc(locations,zipNames) #{'M': 1, 's': 4, 'p': 2, 'i': 4} #print zipNames #print zipmap #60647,60120| 60647,60120| L1X2W8,M5S1N5| L1X2W8,M5S1N5| 22601,20041| 22601,20041| 19446,19477| 19446,19477| 19446,19477| 19446,19477| 21224,20019| 90840,92660| 02114,02132| 17047,17128| 94612,94903| 94612,94903| 94612,94903| 62034,62035| 62034,62035| 94110,94403| 94110,94403| 07306,07059|
So here is an image of the processing sketch I have when I write this text file inside of the processing folder
(and here is the sketch in early phases, running sort of slowly)
at the Climbing gym
Things in the gym that have bearings, bushings, sliding things, springs etc…
Many things I use for rock climbing are made up of bearings, gears, springs, cams, and other moving parts…
BeamBot
I built the beginning of a BEAM robot: it moves in the light. Using a blinking LED as a diode that allows it to pulse rhythmically. I’m using a small capacitor (2200 uF), but using a clamp light, the solar panel charges to about 4.5 V.
I’d like to use an oscilloscope to see more of what’s going on.
I used this circuit from this site
Here are some helpful links for the BEAM photopopper I hope to build:
Solarbotics tutorials
Beam circuits
Fred Photopopper
another Fred Photopopper tutorial
I’d like it to look something like this, and be a smart BEAM (that moves towards the light)
Maybe my BEAM can even have this FM receiver circuit, for, say, a microphone, so it will respond to sound?
fecpw
This is it
an ongoing interactive screen project.
JOE MEEK
couldnt a photo of him as a young child dressed as a girl, playing with tapes…
Joe Meek (born robert george meek, 1929)
Telstar was inspired by the launch of Telstar 1, which is the first communication satellite to relay TV signals.
– launched on top of THOR DELTA rocket on july 1962
made it to the best selling british song in 1962, also topped the charts in the us
The day after he watches Telstar launch, he calls the Tornadoes, a “crack instrumental British club / pop band”. They record it, then he adds a Clavioline, an electric keyboard, a reverb effect of a rocket lifting off (some people say he records his toilet and plays it backwards”
rock and roll had already been blossoming in the states, he learned on his own / made up what rock and roll is
outer space and electronics from working for the airforce
LANDSOWNE studios: 1954; producing british jazz recordings
electronic effects: – reverb, echo, distortion, compression, closeup miking, filters, multitracking,
pissed off the other engineers at landsowne
formed triumph records – 1960
Did his recording on 304 Holloway Road in North London – 3 story building above a leather goods store
sometimes he produced up to 3 albums / week, top sellers
RWEL poems turned sound
(see project site here)
The quality of digital representation is somewhat arbitrary, and always bits.
With three short texts: Yeats’ The Second Coming and Squirrel at Kyle-No-No, and the quote at the beginning of Nabokov’s Pale Fire, I made a new form of poetry: that in the form of sound. I generated binary data using Python, then attempted to use Python’s sound libraries in order to write my own sound files. However, instead, I ended up reading the text files representing the original ASCII in binary, I generated sound files in Processing. I experimented by using different sample rates to read in the data and play the sound, in order to start understanding how sample rate from digital data leads to affects the audio outputs. I used both a sin wave and a Audio Out pulse to show two different sound outputs possible. I also used the data to represent color gradients…
Listen to the text:
sample rate: 1, 256, 1024
2 sin waves
Look at the text:
Sample rate at 1024, 512, 256, and 1:
Here is my code in Python:
Here is a snippet example
Using sine waves and black / white, rgb
This reminds me of the ludicrous account he gave Mr. Langston, of the despicable state of a young gentleman of good family. “Sir, when I heard of him last, he was running about town shooting cats.” And then in a sort of kindly reverie, he bethought himself of his own favorite cat, and said, “But Hodge shan’t be shot: no, no, Hodge shall not be shot.
1bit
samplerate 1024
rgb
256 sample rate
NOC from here on out
Further:
I probably will make these points move:
as well as continue what I did for the midterm with libraries and force fields
NOC midterm
Here’s a link to the screen recording
I went through many iterations of this project. This is what I ended up with. I would like to input bloodline datasets as well as using libraries to make biological animations of bodily functions.
see the applet
Here are some images of what I was working on:
kinetic energy HAND POWERED AM receiver
(see project site here)
design by Gabriella Levine, Emily Webster, Genevieve Hoffman
The concept for our Kinetic Energy project evolved from an interest in generating sound by hand. What we ended up creating was an AM frequency receiver that picks up all the frequencies in its bandwidth. It currently doesn’t have tuning capabilities but instead it is sensitive to all frequencies in its immediate vicinity.
In order to make the receiver we worked from the following circuit to create the portable “radio.” Rather than of using a walkman PCB, though, we chose to substitute the LM380N to amplify the signal.
The most complicated part of the process was generating enough energy to power our circuit by hand. We used a geared stepper motor from a printer as our supply voltage. The stepper motor created a decent amount of AC power but we put the stepper in series to increase the supply and then ran it through a bridge rectifier to convert it to DC power. We used a 2200uf 50V capacitor, large resistors and signal diodes which helped store, smooth and regulate our output voltage.
Our gear box was helpful to increase the revolutions on the stepper but we attempted to attach a pull start to make the revolutions more continuous. The mechanics of attaching the pull start to the gear box proved to be difficult since there aren’t any exposed gears that we could easily attach. We tried to create our own gears but the gears weren’t precise enough to line up with the teeth on the gear box.
We then attached a hand crank which made it easier to turn the crank by hand but wasn’t as continuous a motion as the pull start. We still had trouble making a secure connection between the hand crank and the gear we attached to we, though. This made it difficult to generate as much power as we had hoped for despite trying a variety of capacitors in an attempt to store energy before delivering it to the speaker.
Our ultimate goal is to transmit our own signal and tune the receiver. We’d like to do this on both an AM frequency and also explore the possibilities of transmitting a signal to a TV. Pirate radio/TV!
a weird robot – Blatella Mechanica
A design of two minds- Gabriella Levine and Alexander Kozovski– a mechanized creature of linkages.
NOC new direction
using my carpool data (which I finally cleaned up using Python and now have nice OOP Processing sketch to work with, I’d like to get my small objects to move and interact with each other…
Mechanisms midterm?
This light fixture I made, to represent a pixel, mixed light using a strip of red, green and blue light.
The result was fascinating, and using moving light in visualized 3D space, I would like to explore how light additively mixes.
HW RWET: until I figure out to do what I was trying to do…
(extracting all the words that are used in a newspaper article and in a few emails that are only in the OED as of this year, to sort of see who uses “new” words and where they are most prevalent)
I took a story that I really love, from my friend, and got rid of all the vowels. It is just as readable, and I can read it faster now. I might do this before doing any readings for class from now on:
The code was super simple:
#code to take out the vowels:
import sys
for letter in sys.stdin:
letter = letter.replace(“a”, “”)
letter = letter.replace(“e”, “”)
letter = letter.replace(“i”, “”)
letter = letter.replace(“i”, “”)
letter = letter.replace(“u”, “”)
print letter
And some of the story is here:
My gn pg s Amrcn. It mght b fnny to thnk bot t tht wy bt h lvs n cg n Amrc, whch s n my hos, whch s lso n Amrc. In ordr from smllst to lrgst, my gn pg’s world looks lk ths: cg, bdroom, hos, strt, town, stt, Amrc, North Amrc, world, Mlky Wy, nvrs. So h s ctzn of Msschstts nd ctzn of th nvrs, bt bng n Amrcn s th mddl pont of hs prsonl dntty.
Whn popl mt my gn pg thy rfr to hm s Mr. Fostr ntl thy gt to know hm. At crtn pont, whch I dtrmn, thy cn cll hm Pl. If h poops n yor hnd t conts s knowng hm. If h ps n yor hnd (nd yo forgot to pt th towl down), tht conts s knowng hm, too. Yo cold forgt th towl vn thogh th stck s rght thr by th cg, nd popl sy ll th tm, Hllry, pt th towl down, jst sprd t ot, t’s sy. Th p fls wrm t frst bt thn cold nd stcky, nd t cn vn mk yo cry. Not fll-on cry, bt yor ys mght brn. If yo go to th ktchn to gt strng chs nd my gn pg hrs yo nd strts sqkng lk fr lrm for lprchns, nd thn nstd of strng chs yo opn th crspr nd gt hndfl of kl, nd tk th kl to Mr. Fostr, wll I’d consdr tht knowng hm too nd yo cold cll hm Pl.
I’m stndng n front of my whol forth grd clss, nd I’m tllng vryon ll bot ths stff. It’s my trn to do prsntton on On Kd’s Lf Lvn’ In Amrc nd How Tht Kd Gts By. I don’t know f tht’s th tr nm of th ssgnmnt, bt t’s nr nogh to t.
replacing New Words in the media
I am writing a script that allows you to read in a text and if it contains a word that was only put into the English Language (ie, entered into the Oxford English Dictionary as of 2010), I print out that. This is the latest update for the OED, and contains a list of new words. I created a text file from all the new words of 2010.
In order to start to mess around with Python and see if I could pick out a certain word from a list, I just tried to replace every letter in a text file with a number : a–>z corresponded to 1–>26.
I am still working on this code (shouldn’t be too complicated…). I am also still working on conceptually, what to do… or why this might be interesting. More to come…
Here is the code: (I will shortly upload the plugin to allow me to write in legible code)
i=0
num = len(alphabet)
#print num
alphadict = {}
while i
Here is the result:
What I have been working on mostly for the past week is to take a file of carpool data consisting of two zip codes, in for format |origin, destination|
and getting this: (FINALLY I cleaned up the data and got lat/longitude points
[origin_latitude origin_longitude destination_latitude destination_longitude]
See the code:
(more…)
some more NOC work to work on
here’s something I’m working on, but many steps to go – I shall also use real origin and destination data
And I have to fix the spring like motion, give the creatures tails, make the Particle Systems interact, give an outside attractor etc…
NOC HW Applet Links
tried to make one object do what I wanted, then many objects do what I want, then put them together: much more work to do… (i want a bunch of sperms attracted to one egg)
SKETCHES:
one sperm
many things moving wth tails that are unattached from their bodies and don’t look like tails
and here’re many things moving:
3 cultural themes the SNAKE has adopted
(..in progress)
predator? idol? people look with mix of fear, shame, reverence
The seducer:
Michaelangelo’s, Sistine Chapel, 1509
The biblical story of Eden depicts the snake as a deceitful seducer, who tempts Eve to disobey God’s command of refraining from eating fruit from of the tree of knowledge.
God punished the snake by removing his arms and forcing him to slither on its belly. This biblical myth represents the metamorphosis of the serpent from a handsome, wise seducer, to a voiceless, limbless pathetic creature.
It turns out that Eve then lures Adam in, rendering her as a seductress as well.
This image: shows the whole story; androgynous; human like; is he limited or empowerd?
The biblical serpent in the story of Eden also is rational and manipulative, therefore he could represent wisdom, as he is able to get his way with Eve (if we interpret his banishing Adam and Eve as intentional and calculated).
The Eden myth does not specify the serpent’s specific intentions – was he acting out of pure malice? Or was he jealous of the humans and trying to evict them from Eden?
There are other stories in Genesis with slightly different depictions of snakes (as evil plagues, for example), and different versions of Genesis depict the serpent slightly differently (for example, in the Brazen Serpent myth, it is a beast / plague that bites the Israelites because of their lack of faith, and they must worship and revere this creature in order to heal).
Make thee a fiery serpent, and set it upon a pole: and it shall come to pass, that every one that is bitten, when he looketh upon it, shall live” (Numbers 21:8).
The serpent is therefore a representation of power and control, and in this myth, the people are helpless to the will of the snake.
visual discourse:
High Renaissance, Medieval theology, 16th century painting, Catholic traditions, biblical refereces, (in a sense, this painting has become kitschy and mass-produced – I’ve seen it as a poster in a college dorm room, for example…)
Fiercely Sexy
This white albino Burmese Python is fear-inducing and awe-inspiring. Yet wrapped intimately around icon Britney Spears’ neck it signifies power, seduction, and allure. This python is at once the seducer (or the object of Britney’s desire) and a representation of Britney’s inner power. She sings,
I know I may come off quiet, I may come off shy.
But I feel like talking, feel like dancing when I see this guy.
chorus: I’m a slave for you. I cannot hold it; I cannot control it.
I’m a slave for you. I won’t deny it; I’m not trying to hide it.
This phallic, muscular python represents her inner desire (the id), that she cannot “hold” or “control”. The performance represents a fight between Britney and the python, but she is also taunting the snake (she does not want to hold or control it, and she fondles its muscular body throughout the performance).
The powerful snake transforms her into nothing but a helpless slave, making this performance somewhat ironic: She is wearing this extremely strong creature, presumably boosting her own inner strength; However, she asserts that she is nothing but a slave. Is she a slave to the python? or to the subject of the song? Or is the python the subject of the song? Who is really seducing whom?
The albino Burmese python is a rare breed of snake, although the typical Burmese python is overly-prolific, and becoming an invasive species. This is because of its adaptability to multiple environments (scientists even fear that these pets-turned-pests – as people set them free – which are becoming so ubiquitous along the southeast coast of America, will make their way to New York City!) This invasive quality of this particular creature also leads to an ironic aspect, in that this species is ubiquitous and annoyingly pervasive.
The fact that the python is albino makes him a rarity, and more alluring and hard to reach. The lightness of an albino might also imply innocence its innocence? (although that might be contrived):
Visual Discourse:
pop culture, low-culture, entertainment; people rush towards her – idolize her (like Michaelangelo’s painting above)
Other female icons wearing pythons or boa constrictors:
why did the snake become such an anti hero in comic literature?
The snake is known (from my experience in America) to be foreign and exotic, as well as creepy, slimy and gross. Possibly this is because it is is both similar and dissimilar – physically – to our own human form. They are vertebrates with bilaterally symmetrical bodies, two eyes, a nose, a mouth; However, they have no arms, segmented bodies, shiny, wet-looking skin, forked tongues, bug-eyes. They just seem creepy-looking. They slither on their belly in either a wave like “S” motion or a compression / expansion type of peristalsis motion. They eat creatures that are as big as themselves, and don’t even chew. Some snakes even kill their prey by suffocation (scary). Therefore, because they are not so foreign from the human form, humans might equate themselves just enough to be repulsed by the dissimilarities that make them helpless-seeming.
Additionally, snakes are one of the few poisonous reptiles in America, rendering them into a creature that historically has taken on evil characteristics, such as being the bearer of plagues, invaders, and malicious. Therefore, Venom makes sense as Spiderman’s enemy. Spiderman represents benevolence and anti-violence. Venom, on the contrary, represents malevolence, violence, destruction, and the anti-hero.
The most creepy physical attributes are depicted in Venom’s illustrations: a long forked tongue, venom and saliva spewing out of his mouth, bug eyes, bulging veins, giant jaws, drops of slime..
visual discourse:
venomous, disease-ridden, creepy, scary, repelling; high saturation, illustrations, comic art, geared towards kids: loud, bright, full of motion, violent
More snake visual references: snakes and ladders, ungrateful: the snake parable, blue cross / staff…