Understanding Genomes – Dragonfly Cyclovirus

I chose to research a relatively new virus discovered in the past year. I chose the family Circoviridae particularly because of its very small genome size (between 1 and 2 Kilobases). It amazes me that a virus so small, coding for only two proteins, a replication and capsid protein can be sustained. Of course in this line toward efficiency I wanted to also investigate prions but held back for the moment at Yasser’s request.

The Dragonfly Cyclovirus is a circular ssDNA (single stranded) virus and was discovered reccently in dragonflies (Odonata: Anisoptera) in Tonga.

It is described in detail in this paper published this year (2011):

Rosario, K., Marinov, M., Stainton, D., Kraberger, S., Wiltshire, E. J., Collings, D. A., . . . Varsani, A. (2011). Dragonfly cyclovirus, a novel single-stranded DNA virus discovered in dragonflies (odonata: Anisoptera). The Journal of General Virology, 92(Pt 6), 1302-8. doi:10.1099/vir.0.030338-0

The Dragonfly Cyclovirus is the first known report of a circular ssDNA virus infecting insects. The paper suggests that this may help explain some evolutionary links between cycloviruses and circoviruses.

This virus was discovered using a “Shotgun sequencing” method from samples taken from three species of dragonflies on the Kingdom of Tonga.

While I was not able to find a complete genome with genome length, a similar virus, Cyclovirus Bat/USA, with a genome size of 1.7 Kb will have to serve as a reference point.

I was able to find an identified replication associated protein on uniprot.org:

>tr|F1CZT7|F1CZT7_9CIRC Replication associated protein
OS=Dragonfly cyclovirus PE=4 SV=1

MREATGINAGTRANALVLIRVEPVTRMRRMNITIRRFVFTWNNYTTSDFETCITFLDNFC
KYGIIGKEKCPTTQTPHIQGFCNLSKPMRFNNIKKHLHHTIHIEKANGSDEQNKIYCSKS
GEFFEKGHPDKQGKRNDLDAVVLTIQNGTNTISNVAKLHPISFIKYHKGIKEYINHVNPI
RPRHYKSEVYYYWGPPGTGKSKTALEKATAYNTDSIYYKPRGLWWDGYQQQTSVIIDDFY
GWIKYDELLKICDRYPYKVQIKGGFEEFTSKYIFITSNVDTCDLYKFRNYNTDAIERRIT
EKIHFKNIF

After doing a BLAST search in NCBI I came up with some interesting similarities:

Bat circovirus ZS/China/2011, Cyclovirus PK5006, Cyclovirus PK5034

Similarities to viruses found in other species:

Illustration from the aforementioned paper.

Posted in Fall 2011, Understanding Genomes | Leave a comment

Inventing the Future of Media – Case Study

SoundCloud a Case Study

PDF version

Posted in Fall 2011, Inventing the Future of Media | Leave a comment

Understanding Genomes – Extracting DNA

Extracting Octoploid (Strawberry) DNA
using everyday materials in your own home

Posted in Fall 2011, Understanding Genomes | Leave a comment

Inventing the Future of Media – What is Media?

What is media?
Course intro and discussion

During the course introduction to Ien Cheng’s class “Inventing the Future of Media” some general probing questions on the subject of media were put forth. Among them was the familiar type of seemingly unanswerable question: “What is media?”

Problems of definition are nested in the implicit, which is why it can be hard to strip them down enough or to reframe them in such a way to make any progress in considering them —especially with something  as ubiquitous as… “media”. Few hands were raised in response to the question. I decided however knowing full well that I would miss, to take a swing at the so called ‘phantom piñata’… I came at it with something more or less aligned with the likes of Claude Shannon… a reductionist attempt that went something like: “A system of transmitting or transporting information.” This was answered first with silence and then eventually with echoes of Marshall McLuhan… cringe. McLuhan is held in high regard at ITP. Admittedly I had never read him prior to ITP. I have to say that the elegantly styled copy of “Understanding Media” looks nice on the book shelf —it even has one of those attached ribbon book marks… that was sadly never put to full use. I won’t elaborate on McLuhan more than saying that he made good strides towards a holistic and less categorical approach to understanding media… but falls short in his obsession with the medium itself as a prosthesis of “us”. A simple error of scale perhaps: “If the earth isn’t the center of the… and the sun isn’t the center of the… wait wait… I know this one… It’s the… “

Spending a good part of the weekend contemplating “What is media?” —I tried to refine my take on it… again a spared down and broad attempt, but one that tries to mitigate the tendency to focus on the medium or pathway itself… I arrived for the time being at:

Media is system potential realized.

Only slightly better perhaps, but I want to keep working on it only because, however intractable it may appear, it has so far led me to consider a different perspective on something so foundational and therefore potentially far reaching once redefined. Further consideration might be: defining more clearly what is meant by “system potential”. Are there distinct limiting factors such as resources that influence the realization of a system’s potential? —and if so how does this definition scale across, not just human social systems, but other species’, or even molecular ones.

Perhaps the system pathway, or medium, at a given time P(t) is really less important in defining the nature of a system’s potential trajectory but it could be useful in understanding how that potential is limited or shaped by the current environment. In this way we could begin to understand largest scale trends in something like “Media” for instance… and whether they lean toward complexity, expansion, diversity, etc… and then attempt to  understand environmental limits/conditions specific to those trends and how we can reveal roadblocks within the environment —hopefully then revealing the hidden roads that they obscure.

For example:.. Instead of defining technologies as “disruptive”, implying that a unique technology suddenly appears and has the ability to hijack a point in culture with one teleology and reroute it to another, it may be more useful to consider that, within an understood largest scale trend, a generative system’s potential “wants” to go in a finite direction and will do so however it can. The problem with the music industry in the late 1990′s was that it had possibly reached its carrying capacity under its accepted, standardized, and litigated pathway.

The problem with music’s system at the time was that it was… part of a larger system and that connectedness itself destabilized or disrupted its current pathway as the larger system was being realized through the growing internet. Though unclear to the RIAA at the time, the current pathway couldn’t continue (at least not with scalable revenue) because it was beginning to be misaligned and bogged down by comparison. It would be impossible to imagine a music industry now without the Mp3, but the technology wasn’t what disrupted the system, it was the other way around. The system was disrupted by how it happened to realize its potential through a specific distribution system (forming a pressure swell that had to be relieved) and the technology is what reinstated stability to the system, allowing it to better realize its potential. When roadblocks can’t be revealed by something like the MP3 they run the risk of being overrun, cutoff, depleted, or retired to a historical enclave…

Technologies are most powerful when they realize new pathways rather than merely optimizing current ones; fidelity and physical longevity were gained from the compact disc, but the distribution pathway largely stayed the same. No network infrastructure at the time could handle uncompressed WAV or AIFF files conveniently, so the the roadblock was clearly visible and the technology that could go around it was just coming into the mainstream. Without understanding the current environmental limiting factors within a system, we are unable to reveal scenarios where possible technologies on the horizon or entirely unknown technologies and techniques can serve to realize a system’s potential.

Posted in Fall 2011, Inventing the Future of Media | Leave a comment

Understanding Genomes – Dictyostelium Discoideum

Dictyostelium Discoideum
a profile

The ameboid protozoan Dictyostelium Discoideum, also known “Slime Mold”, is a social amoebae.  Social amoebae are unique in their ability to alternate between unicellular and multicellular forms. Dictyostelium Discoideum follows a 3 stage life cycle:

The hereditary information is carried on six chromosomes with sizes ranging from 4 to 7 Mb resulting in a total of about 34 Mb of DNA, a multicopy 90 kb extrachromosomal element that harbors the rRNA genes, and the 55 kb mitochondrial genome. The estimated number of genes in the genome is 8,000 to 10,000 and many of the known genes show a high degree of sequence similarity to genes in vertebrate species. —nih.gov

D. Discoideum has an extensive research base due in part to it being a useful analog in researching cytokinesis relative to human immunology. Extensive information and resources are available at Dictybase, an NIH funded project.

Posted in Fall 2011, Understanding Genomes | Leave a comment

Nature of Code – Final Project

Soliloquy
A collaboration with Alvin Chang
see Alvin’s post here

Soliloquy is a non-visual interactive system that implements simple body tracking, spatial audio, and airflow feedback.

System Overview

Initially using a Kinect and the OSCeleton library with Processing, we combined constrained skeleton tracking (limited to the upper body of a seated individual) with directional airflow feedback via a specialized radial fan rig consisting of 8 12v DC fans  modulated with an Arduino microcontroller as well as spatial audio from ToxicLibs via noise canceling headphones. The airflow system is powered by 3 modified PC power supplies providing a total of 33A of system current to the fans with each fan drawing a maximum of 7A.

The user is blindfolded and seated in the center of an adjustable perimeter of directional fans. The array of fans delivers variable intensity airflow from front, back, left, and right. The intensity of each fan’s flow is mapped to the orientation of the user’s head and shoulders as well as a directional ‘wind’ sound effect; where if the user gradually leans forward, the frontal air flow would gradually intensify along with the wind sound effect; offering feedback to the user that their movement and position is active/reactive within the system.  From here the user can explore a two dimensional auditory space populated with sound objects.

Spatial Audio and Sound Objects

Each sound object is located in the auditory space in the form of a looping monoaural sound file. The 3D spatial audio capability from ToxicLibs provides logarithmic intensity and doppler shift. At present we can only render simulated spatial audio using distance attenuation without any filtering. This means that without any OpenAL support or 5.1 surround capability (on a MacBook Pro) the user’s perception of front and back are difficult to discern. This can make spatial navigation difficult, though some users have been able to adapt to it and accurately locate sound objects. Optimally we would like to try to add true “circumaural” rendering to the system with a device like Creative Lab’s Tactic3D gaming headset. This would allow true 3D spatial audio.

The system is experimental; exploring the capabilities of non-visual spatial navigation only, though more cohesive audio-spatial environments would be an eventual goal.

Possible Modifications

An alternate configuration being considered would replace the Kinect as a method of tracking a user’s body position with a simple color tracking system that might track single or multiple points on the user’s headset from above. This approach could potentially offer the same if not more accurate level of control in the current configuration. While this would limit the addition of further gestural interaction later on it would eliminate the need to calibrate each user for skeleton tracking with the Kinect, something that has not been seamless due to the required lower than normal position of the Kinect and its difficulty recognizing a user within the obstructing airflow array.

Code

Fan Control in Processing

Arduino

Soliloquy Processing Code

Posted in Nature of Code, Spring 2011 | Leave a comment

Reading and Writing Electronic Text – Final Project

新しい言葉 (New Words)
A method for generating phonetically unique words from a corpus of existing words in the Japanese language. —resulting in words that are statistically similar to Japanese. (project proposal)

This project was also presented as a final project for Learning Bit by Bit.

This project was inspired from an ongoing love of the Japanese language, from its unique phonetic and rhythmic qualities, and from its capacity for adaptive and inter-lingual word play.

The Japanese language has a multitude of unique phonetic forms including its abundance of onomatopoeia like ザーザー (za-za-) signifying heavy rainfall or its ability, especially within youth-centric slang, to adopt non-Japanese words such as the soon to fall out of fashion use of ナウ (nau) or “now” rather than the conventional いま (ima) to indicate the present. 宿題をするナウ。“Doing homework now.”

While I have from time to time come up with my own variations on Japanese words, some of which I even use frequently with close friends, it seemed natural to employ a method of natural language processing toward the generation of ‘unique’ Japanese words: words that are statistically similar in phonetic terms, but not present in the Japanese dictionary.

Initial Attempts

I began with some naive experiments in which I simply made a list of base phonemes derived from the standard Hepburn Romanization:

“a”, “i”, “u”, “e”, “o”, “ya”, “yu”, “yo”, “ka”, “ki”, “ku”, “ke”, “ko”, “kya”, “kyu”, “kyo”, “sa”, “shi”, “su”, “se”, “so”, “sha”, “shu”, “sho”, “ta”, “chi”, “tsu”, “te”, “to”, “cha”, “chu”, “cho”, “na”, “ni”, “nu”, “ne”, “no”, “nya”, “nyu”, “nyo”, “ha”, “hi”, “fu”, “he”, “ho”, “hya”, “hyu”, “hyo”, “ma”, “mi”, “mu”, “me”, “mo”, “mya”, “myu”, “myo”, “ya”, “yu”, “yo”, “ra”, “ri”, “ru”, “re”, “ro”, “rya”, “ryu”, “ryo”, “wa”, “wo”, “n”, “ga”, “gi”, “gu”, “ge”, “go”, “gya”, “gyu”, “gyo”, “za”, “ji”, “zu”, “ze”, “zo”, “ja”, “ju”, “jo”, “da”, “ji”, “zu”, “de”, “do”, “dya”, “dyu”, “dyo”, “ba”, “bi”, “bu”, “be”, “bo”, “bya”, “byu”, “byo”, “pa”, “pi”, “pu”, “pe”, “po”, “pya”, “pyu”, “pyo”

From here I would choose a random range of phonemes and randomly build sets of phonemes or ‘words’ within that range. The first obvious problems arose when words were generated starting with phonemes like “pyo” or “pyu” which gave a distinctively more Korean-like quality than Japanese, or words beginning with the only singular consonant “n” which don’t exist. I attempted to remedy this by creating a secondary list containing only start phonemes. This and subsequent versions use a Romaji module written by Ed Halley to convert to and from unicode kana characters.

A sample of words generated with this method:
(code)

jajidaji, じぁじだじ
jijafubi, じじぁふび
jugesunyu, じぅげすんゆ
zochiko, ぞちこ
rerinu, れりぬ
shukyu, しゅきゅ

Though at times there were a few interesting occurrences they were very seldom. At this point the words were not being checked against a dictionary so it was still possible to generate an existing word without knowing it. It became quickly apparent that this or any rule based approach was probably not the direction to proceed in and that a statistical model made more sense.

Statistical Models and EDICT

Turning toward a bigram method I needed a good corpus to train the model on. I found cjklib, an Asian language library for Python that makes use of Jim Breen’s EDICT project at Monash University. The EDICT dictionary resource file contains around 150,000 headwords. The headwords are all in unicode kana, so before I could start building a statistical model these had to be converted into parse-able ASCII which also made things more easy to debug. Finding discrepancies with my base Hepburn romanization lists I had to build a custom phoneme list that could account for stresses indicated by the small “tsu” “っ” as in あれっくす romanized: arekkusu or a hard ‘k’. This meant that variant phonemes like “kku” had to be added to the list as well as some unusual phonemes like “vu” and “du” that were most likely being used for loan words.  This nearly doubled the number of ‘phonemes’. I knew that treating the hard consonants as separate phonemes would shift the eventual statistics in certain direction but it seemed like the best approach. An alternate method would have been to choose a unique ASCII character for “っ” and then modify the Romaji module to convert this upon later romanization to whatever character followed it for reading.

The eventual generator made use of a few core functions:

A sample of words generated from a single (EDICT) source corpus:

kikiiza, ききいざ
keou, けおう
sokutsusou, そくつそう
mouchuu, もうちゅう
naiawakaioku, ないあわかいおく
tensasantsuuegarigasa, てんささんつうえがりがさ
kagaicho, かがいちょ
kouraushucho, こうらうしゅちょ
iketsu, いけつ

Note: EDICT has a number of phrasal entries as well as lengthy technical terms consisting of conjoined subwords which may account for some of the unusually long words being generated. To confirm this I did a search for the longest headword in EDICT which is apparently 35 phonemes in length.

The generated words are immediately discernable from the purely random attempts. At this point I began to realize that the generator lacked a method of personal influence or nuance. I had recently attended Daniel Shiffman‘s session on ‘Genetic Algorithms’ which I found really inspiring and felt that a simplified form of genetic algorithm could be implemented with a human defined ‘fitness’ function in the form of a qualitative word list selection. The secondary list can consist of actual Japanese words or words that have been generated from the EDICT corpus. This allows for a weight coefficient to be applied to the secondary list which equivalently populates the general word population with a multiplier; increasing the probability of the secondary words.

A sample  secondary list of words that I found interesting:

dictionary=[
"koutaria",
"mukotome",
"shisenbaikoushu",
"kyuubutsuke",
"keshinoko",
"umemoku",
"hoshiru",
"kimobata",
"hankaken",
"modansou",
"sangairu",
"osakirini",
"tsubanei",
"ekobari",
"ohinomi",
"sairabo",
"kanishinai",
"osameki",
"ronisu"]

After applying a weight of 20,000 to this list and running the generator we get:

shinoubu, しのうぶ
kyuumemoda, きゅうめもだ
hanbanega, はんばねが
kanishisen, かにしせん
keshinasa, けしなさ
osamemo, おさめも
hoshinoha, ほしのは
ubutsubane, うぶつばね
kanishinaha, かにしなは

The influence can be seen pretty clearly with pleasing results.

Further Investigation

At present I have enjoyed deriving meanings for the generated words through an entirely non-computational process, essentially from my own ability to find likenesses and relationships:

芥子の子 [けしのこ] keshinoko
-noun
1. mustard child
2. a precocious child

however… it would be feasible to allow the selection of available kanji to be randomized which would allow for partial meaning to be derived automatically.

(Main generator code)
(Pickled dictionary parse file – for optimization) 11MB / the parsing function can be uncommented and run alternatively with pickle commented.
(Sample secondary dictionary)

Required libs and modules:
cjklib with EDICT resource
romaji.py

Posted in Learning Bit by Bit, Reading and Writing Electronic Text, Spring 2011 | Leave a comment

Design Frontiers – Final Project

Part I: Producing X-rays from adhesive tape
A Collaboration with Johnny Lu

Continuing with our previous build we made some progress. After attempting a higher vacuum without success using an oil diffusion pump we later sought the assistance of Kent Lab at NYU Physics. Andy Kent and Pradeep Subedi generously let us use their turbo pump after which we surpassed our desired pressure of 10−4 Torr and reached a vacuum of  10−6 Torr.

At this pressure we observed greater triboluminescence, but failed to detect any X-Rays using two different geiger-mueller tube detectors. No phosphorescence was observed with our Gadolinium phosphors either.

We considered the possibility that  our motor speed was insufficient. Our initial build used a 24v 40RPM geared motor that we later ran at 36v briefly to see if any improvement would result. This is not the right way to make a motor run faster!

We later rebuilt our tape pulling assembly entirely with a new motor (a disassembled cordless drill) which gave the needed torque and the variable speed control that we lacked before. Using the refitted chamber we attempted once again at Kent Lab and observed an even greater increase in triboluminescence with the motor running at full speed, but still no X-Rays were detected.

At present we are considering how we will continue towards a successful build. So far this investigation has led us through a series of multilayered technical problems, from which we have had the pleasure to learn a great deal.

Possible problems and solutions:

Materials: Tribolelectric similarities between chasis material of our tape pulling assembly (cast acrylic sheet) and the Scotch tape film and polymer adhesive. On the the tribolectric series both Plexiglass (methyl methacrylate) and adhesive tapes tend to be in the same range.. about -10 nC/J (nano ampsec/wattsec of friction). It’s unclear if changing the chasis material would have an effect, but it may be the next step.

Detection: Another possibility that Daniel Bedau, a research scientist at NYU Physics, suggested is that our detection methods may be inadequate, and that we may possibly be producing X-Rays but at such rapid or sporadic pulses that the basic circuitry on our Geiger counter simply can’t detect them. Another possibility is that our relatively thick .71″ cast acrylic window on our chamber can’t be penetrated by the X-Rays being produced. We should try alternate methods of detection which could include using a scintillator device or something as simple as a Kearny Fallout Meter —a simple to build radiation detector that is particularly sensitive to low level radiation.

Part II: The Effects of Ionizing Radiation On Plant Growth and Mutation

Our Exposure Candidates: Pumpkin seeds and Sunflowers seeds

X-Ray exposure (0.2 mSv) - 3 days

We exposed two groups of seeds, one at 0.1 mSv and the other at 0.2 mSv using a Gendex 765DC Intraoral X-ray Unit. We germinated the exposed seeds alongside control groups under identical conditions. Below are the initial observations after one week of growth.

Though no significant loss (ungerminated seeds) was apparent against the controls, there was significantly less growth with the X-Ray exposed sets. It is unclear so far if any genetic mutation has taken place. Further observation will be needed.

X-Ray exposure (0.2 mSv) - pumpkins

X-Ray exposure (0.2 mSv) - sunflowers

X-Ray exposure (0.1 mSv) - pumpkins

X-Ray exposure (0.1 mSv) - sunflowers

Control - pumpkins

Control - sunflowers

Part III: The Effects of Aqueous Ferro Fluid and Magnetic Fields On Plant Growth

As outlined in a previous post, we investigated the effects of ferrofluid injection on vascular plant growth. Our test plants were the homely pumpkin and the joyous sunflower.

Ferrofluid synthesis

As the end target for our ferrofluid was injection into plants, we were unable to directly purchase the usually kerosene-based pre-made ferro fluid but instead had to formulate a water-based ferrofluid that replaces chemicals such as tetramethylammonium hydroxide (used as a surfactant) in the synthesis of our ferro fluid for more plant-friendly replacements such as oleic acid, linoleic acid, and citric acid.

We purchased from Sigma-Aldrich the following chemicals:

  • 12.0 M Hydrochloric Acid
  • Iron(II) Chloride Tetrahydrate
  • Iron(III) Chloride Hexahydrate

along with store bought ammonia, distilled water, and the aforementioned oleic acid, linoleic acid, and citric acid.

We ended up making several batches of ferrofluid, basically following the instructions found here, but for slightly smaller portions and having to recreate their concentrations for solutions by diluting our own heavily concentrated solutions.

We split the resulting batch of magnetite in three so that we could test the three different replacement surfactants.

Unfortunately, we may have left the magnetite for too long after synthesizing them and it looked as though some of the particles had aggregated into larger particles. We also found that our test surfactants with linoleic and oleic acids did not seem to pan out very well.

Shortly after, we made another run with a smaller batch. The resultant magnetite particles seemed better and we were armed with a larger magnet. Our results were still not quite behaving the same way as ferrofluid was expected and we decided to run a separate test batch using a different method found in this paper. Instead of using hydrochloric acid as in the initial batches, we decided to heat the mixture of ferric and ferrous salts in distilled water to 80ºC while vigorously stirring to accelerate the process. While far more time consuming, this method seemed to generate better ferrofluid with little noticeable clumping though there was an unexplained slightly red tint to our ferrofluid. We decided to use the ferrofluid from this batch, using a citric acid surfactant, as the base for our plant treatment.

Application to plants

The resulting ferrofluid was mixed with water in two separate concentrations (a lower concentration .5 ml of ferrofluid diluted in 10 ml of water and a higher concentration of 10 ml of ferrofluid diluted in 10 ml of water). Each of these ferrofluid concentrations were then injected directly into ten seeds each of two separate fast-growing plants: the lowly pumpkin and the kingly sunflower. These seeds were from the same source and were randomly assigned to a high concentration, low concentration, and control (no ferrofluid injection) groups.

We used an insulin needle to apply these solution and placed these within moistened cotton balls in order to let them sprout along with strong rare earth magnets that were placed above the seeds. Our initial results showed that the high concentration was somewhat antithetical to life as seeds for both plants quickly developed a terrible mold and seemed more or less sterile with the exception of two seedlings for each plant. The low concentration group for sunflowers, surprisingly, were the first to sprout and seemed to orient themselves towards the magnet despite not having a strong vascular system. The control group for both plants and the low concentration group for pumpkins sprouted later than the low concentration group for sunflowers. These initial results were heartening.

Ferrofluid (0.5ml to 20ml water solution) - sunflowers

After a period of five days, the seedlings were transported into small plots of potted soil. The low concentration sunflowers continued to grow, but soon after (and currently), the control sunflower group overtook them in growth. However, the low concentration group has shown a far greater survival/sprouting rate in that there are more.

Final Results

Survival Rate (out of ten) Sunflower Pumpkin
Control, no ferrofluid 4 6
Low Concentration 10 2
High Concentration 0 0

Ferrofluid injection (0.5ml Ff to 20ml water solution) - sunflowers

Ferrofluid injection (10ml Ff to 10ml water solution) - sunflowers

Ferrofluid injection (0.5ml Ff to 20ml water solution) - pumpkins

Ferrofluid injection (10ml Ff to 10ml water solution) - pumpkins

Magnetic control - sunflowers

Magnetic control - pumpkins

While the surviving sunflower control group seems to have matured greater than our low concentration sunflowers, the survival rate seems to be much in the latter’s favor. We recognize that this is a very small sample group, but feel this might be promising for further research.

Unfortunately, we were unable to create a good controlled environment in terms of equal distribution of magnetic fields so are unable to make any conclusions about how that might have changed the growth patterns of our plants and is something to pursue later.

Posted in Design Frontiers, Spring 2011 | Leave a comment

Nature of Code – Final Project Proposal

Non-Visual Interfaces
(Implementing Kinect body tracking with non-visual spatial feedback)
A Collaboration with Alvin Chang

Pictured above are three ubiquitous non-visual interfaces… Having focused primarily on visual media for the longest time, I myself find it odd that I have frequently fixated on concepts surrounding non-visual interfaces. Perhaps looking less often at a screen would allow one to direct their attention to other things in their environment? In any case I have long thought that alternative feedback methods have been underutilized in interactive systems. Aside from “vibrate” on mobile phones and haptic feedback on handheld gaming controllers, which seem to be on their way out, there hasn’t been extensive implementation. Much of this can be attributed to path dependent tendencies with interfaces -even when the benefit gained is far greater than the cost of changing; evidenced by the QWERTY keyboard above. This is perhaps due in part to our inherent proclivity for adapting to less than optimal tools… keyboards will most likely stay the same for some time, but other systems are worth experimentation.

Adapting a project devloped by Alvin Chang that utlized a Kinect for body tracking to maneuver a simple aquatic environment, we have designed an experimental system incorporating spatial audio and air flow feedback that will hopefully allow a user to navigate a mapped space. Our design requires the user to be blindfolded and to wear noise-canceling headphones while interacting with the system; this will hopefully help to make the non-visual feedback become prominent and effective.

A Kinect will track the user’s body position within a limited gestural space. To reduce user disorientation and ensure proper body tracking the user will remain seated using a limited set of movements to navigate.

The user’s movement will be indicated using an array of variable flow multidirectional fans. The user’s acceleration and speed in a given direction will be translated to flow intensity from a corresponding fan aimed at the user’s face. Serial communication with an Arduino microcontroller will regulate four 200mm 1300rpm fans. Three fans are positioned in front of the user and one behind.

Spatial targets in the form of mapped sound objects will hopefully be perceived as directional by the user. A user should be able to seek a sound locale effectively. Using distance with logarithmic intensity in a right-left binaurally mapped audio space, possibly implementing Doppler frequency shift as well, we hope to position multiple looped sound effects in a 2D coordinate space.

Related: Shay Martin a blind “video” game developer.

An active braille interface. Last year I saw a man on the subway in Tokyo using a much smaller portable device… possibly a braille mobile texting device or e-reader, though I couldn’t find picture of it.

Posted in Nature of Code, Spring 2011 | Leave a comment

Learning Bit by Bit – Final Project Proposal

Deep Search Explorer
Discovering the Unknown

Deep Search Explorer is an extension of a previous project titled IPExplore that randomly searches IP addresses. IPExplore was an attempt at regaining a less mediated experience of discovery on the internet; inspired in part by a childhood experience of the internet and its precursors as well as late night TV channel surfing. During the days of dial-up and BBS the net was a much less accessible sphere which often meant that when you did find something interesting, that site had potentially more personal value simply through the ownership of “discovering” it.  There is without question many times more information reachable now with efficient and pervasive search mediums like Google, but it is their inescapable pervasiveness that shapes our experience; Google is a very well engineered version of the internet, but it is still just one version.

Among the problems encountered by IPExplore is the fact that while a large amount of the active IP range has been claimed, most of it is publicly unused on port80 (http). This is made clear by how many IP addresses can be cycled through, often hundreds, before an active site is reached. A fitting analogy might be the distribution of matter in our universe with what can in relative human scale terms seem like so much empty space. This realization, as well as Google’s page rank algorithm, is how I reconsidered the function of something like IPExplore. Deep Search finds inspiration and its moniker from the Hubble space telescope, particularly its Deep Field images, the most remote objects seen in our universe. Deep Search could be thought of as a specialized telescope that points to a random coordinate in the sky hoping to find what few knew was there… particularly objects that robust search engines can not see.

Context Simulation
Something to stress here is that much of Deep Search and IPExplore’s aim is to facilitate the experience of personal discovery through a specific reduced context; one that essentially has no content expectation… that is because the user has no idea what will be returned by it the returned object is essentially experienced in a reduced and hopefully unique sense.

How is Deep Search different?
While IPExplore does not repeat any addresses, its method of iteration over the potential 4 billion useable IP addresses is essentially random without any method of recognizing recurrent usage patterns that might help to predict which regions to look at next… other than a user option that limits the search within a specified address range such as 44.112.0.0 – 44.112.255.255. Deep Search hopes to implement forms of regression and classification to make its hit rate much better. Another issue with the previous project was that it was never clear what to do once a page was found with IPExplore. A tagging system was implemented which in theory just replaces DNS and search indexing with content tags, such as: “timeout”, “personal”, “business”, “adult”. While it did require active user engagement (a good thing), amassing a database of over 10,000 tagged IP’s, it was never understood how those tags would be useful or accurate for other users. A revision to this comes directly from Google’s PageRank method which assigns a rank to a page based on the number of back links or other pages linking to it. This approach makes sense when attempting to define relevance and value to accessible information relative to a query, but Deep Search is in a sense interested in the opposite. Instead of a high back link count, Deep Search is interested in low numbers of back links primarily it is interested in a rank of zero, or true orphans.

Discovery Method

The discovery method applies a rank within a specified threshold based on the number of back links to the page. Back link checking could simply use existing search services like Google since our definition of mediated “knowns” and less mediated “unknowns” is tied closely to or defined by them.  The optimal rank here is 0, but the probability of finding “zero objects” is something like finding dark matter, so we employ a “Discovery Rank” threshold to populate our “Discovery Feed”.

Range Prediction
Understanding range usage and trends should allow for an optimized iteration over IP addresses. Within Class A, B, and C IP ranges (the ranges used on the internet) we exclude certain ranges from our searches such as loopback(127.0.0.0), zero addresses (0.123.123.123), and private ranges(192.168.1.1).

Class Leftmost bits Start address Finish address
A 0xxx 0.0.0.0 127.255.255.255
B 10xx 128.0.0.0 191.255.255.255
C 110x 192.0.0.0 223.255.255.255
D 1110 224.0.0.0 239.255.255.255
E 1111 240.0.0.0 255.255.255.255

Within these ranges we can use existing sample IP data to generate search IP’s with each byte range within a predictive n gram model or regression.

Discovery Feed
Rather than a single IP search instance the “discoveries” would join an updated feed that could be followed and possibly searched. This adds the possibility for community exchange.

Web Client (collaborative discovery)
Allowing an active search instance of Deep Search to run in a browser tab many collective users could contribute discoveries in a volunteer computing – like model.

Relative Applications
Using a structured random search with scarcity or remoteness as a ranking feature is a potentially valuable approach in other cultural mediums. An example of a similar approach is recent research published earlier this year (2011) at The University of Texas Southwestern Medical Center in which a viable Alzheimer’s treatment (P7C3) was discovered through a brute force approach, testing thousands of organic compounds with mice.

Posted in Learning Bit by Bit, Spring 2011, Uncategorized | Leave a comment