Howl

Inspiration

We always found it a bit troublesome to share files. You upload it to the cloud, you get a URL, you get the email address of your friend or find his Facebook, you message him. That's a hell lot of friction for something so simple.
What we built is a tool for nearby file sharing through audio. You drag and drop a file you want to upload, and all nearby computers get prompted to download it. While developing this, we even started using our MVP to share assets between each other, accelerating our development workflow and proving how effective of a tool this can be.

What it does

It provides a convenient platform for users to send files to nearby computers AND mobile devices through playing a series of tones. The nearby devices receiving the tones will automatically initiate file download.

How we built

It is using a web application and using Javascript to control the broadcast and receive different frequencies. The uploader will upload the file to our python Flask server which will respond with an address to retrieve the file. Then the uploading device will broadcast the address in form of sound waves that will be picked up by nearby receiving devices and will initiate file transfer.

Challenges we ran into

We mostly ran into problems related to the amount of noise our sound wave experience as well as the limitations commercial hardware and compatibility. Our frequency analyser is very sensitive to noises and can easily be disturbed by other sounds. Furthermore, commercial microphones are designed to broadcast and pickup frequency ranges around 2000-3000 Hz, and cannot accurately determine higher frequency ranges.

Accomplishments

We're proud of being able to work together and overcome many of the challenges described above. The project was more difficult than we had anticipated. We used heuristics to filter out noises and use statistical methods to increase the probability of picking up the right signals. Because of the high chance of incorrect information transfer, we minimized the amount of sound waves sent. There are a lot of things to improve upon and Howl is far from perfect, but we believe we did create a product that facilitates the transfer of files between devices or group of people.

What we learned

We learned (about ¼ way into the hackathon) that Google has attempted a similar project involving Google plugin for transferring urls between different chrome browsers through sound wave. At the point we were just starting to realize the difficulty associated with receiving sound waves accurately in a noisy environment. Our early attempts at transferring sound waves were disastrous. However, from this process, we learned a lot about the technical aspects of transmitting information through sound waves, and experienced first-hand just how the same pitch can sound different from just 2 feet away.

What's next for Howl

We want to give users the ability to share not only files, but URL's as well. We also plan on building a Chrome Extension, allowing the functionality to be independent of a website and can upload from any web page.