As my classmate and I were talking through Skype the night before the competition started, I looked through my window and could see the stars. However, I could also see my face dimly lit from my laptop screen overlapping. So it came to me that it was a great way of making a HUD for a prototype.
We got to it and built the prototype from scratch. It took a lot of work and resourcefulness, rushing to get a webcam from friends that would work a Sunday morning (in Spain that year shops were closed on Sundays). Then we used several languages I already knew, if I remember correctly: HTML, CSS, PHP as the HUD display was actually a webpage, Processing for hand tracking and C++ for Arduino. I made the whole software part and my classmate the hardware+electronics. There were some more things like sensors and stuff that we made.
For the local phase we made it theatrical starting with the moon landing audio and the lights off, with me entering wearing the helmet and barely able to breathe and my classmate with the laptop and cables. Connect the projector and a screen appears. I'm sweating, but I point with my finger at a part of the screen and it correctly reads where and displays the info real-time. The same for the other 4 points and I can feel truly happy inside that it is working.
After winning the local one we rushed to get votes since we got into the People's Choice category and we had a strong battle against Macedonia's team. They were Trending Topic for most of the week the contest was happening in their whole country while in Spain it was all about football and celebs and we just made it into regional newspapers at that point. Another team also used bots but of course NASA people detected it. We won in the end, visited Cape Canaveral and saw a rocket launch.
One of the best moments (of my life) was when I came to class after winning the whole thing and everyone stood up and started clapping.
Here is the project, https://2014.spaceappschallenge.org/project/space-helmet/
(yes, for the video we used a fishtank and printed GoPros as props)
Many edits: added extra info and details, sorry for the long post.
Also of course I was just a couple of years in with learning programming while studying an unrelated degree.
HUDs have existed for a long time...
And Hololens uses tracking and other technologies that make it useful for AR.
Our team of 3 won the first Node Knockout by a slim margin with this realtime, multiplayer, pixel formation game.
Edit: Thank you for your positive feedback! Send me suggestions and ideas if you have any.
Tip: press spacebar.
I didn't engineer the back-end, that was all @steadicat, but the way I think it works is if 3 or more clients confirm a formation they're a part of as correct, it's marked as correct. That way the server doesn't have to check every pixel on the board. But it can cause some issues if some of the clients are laggy.
Many iterations later the map and the process through which the map is created is being used nationally and internationally. I've done workshops. Spoken at national conferences. The local tourist office hands it out. It's going to be in next months local authority magazine. Even had enquiries from local authorities to make these for them.
It's up for a local award in innovation (will find out in June if I've won).
Something that was a "meh really do not want to code today" hack has turned into a bit of a monster.
I think it would be good to automate how these maps are created, but there really is an artform to making them work well and require an immense amount of local knowledge and public consultation.
I made a Chrome Extension that blocks eyes: https://vimeo.com/90351144
If someone runs a dumb ideas hackathon in London, my next plans are either:
- Song lyrics to nineties powerpoint presentation converter, with lots of bullets and stock photos, and timed transitions
- A computer vision and Mortal Kombat-style announcer for pissing the shit off toilet seats
The other aspect was location verification. Working with NGOs, you could use this authentication method to let displaced persons login at certified locations. This solves two big issues:
1. Family member tracking. Red Cross and other organisations spend millions of dollars each year tracing where family members ended up. It is quite common for families to be split - reuniting them is a multi-year, labour intensive job. Solving that would do the world a whole lot of good.
2. Journey verification. When assessing refugee visa status, governments spend a lot of time trying to verify what journey a particular person took to get there to prove that they are legitimately a refugee. If a refugee could irrefutably prove their journey, then it would dramatically cut down on visa processing times.
We won that hackathon - I just wish I had time to develop it more. Tried to find who to talk to but the idea of using technology to solve the refugee crisis seems a little outlandish to traditional NGOs who (rightly so) place a lot of emphasis on food and shelter over apps.
It worked by scraping the top 1000 Bing results and then scraping several levels deep from each of the results to generate a "map" of knowledge. This in turn could be used to ask the user questions, generated fill-in-the-blanks, matchups & whatever else you could think up.
It worked after the five-day hackathon, which was truly surprising, but unfortunately, it used too much computing power so we never released it to the world.
To second another comment, I am also working on scraping but for articles. In this particular example I am trying to figure out how to get the scraper to start on the first headline all the way down to the bottom, and not touch anything else. Any tips for how to get it to find the first heading on a page?
I usually use lynx, which strips down the html and only outputs the text. News site tend to have the same structure for every article, so after passing the html to lynx, the headline for a news site article will probably be around line 5-6.
This is something I have tried to do with natural languages in the past but getting good, error free, unambiguous questions out of an algorithm seems to be really difficult.
WikiNomad: https://play.google.com/store/apps/details?id=com.wikinomad , https://www.wikinomad.com
I improved on this after the hackathon too.
My personal favorite was predicting depression before it occurs in a person using just his cellphone. We worked on Stanford thesis that was able to predict depression based on the number of wifi points a user connected to variances to the wifi points.
We increased the data points to GPS, wake times, bluetooth connections, text sentiment analysis and amount of facebook + instagram apps usage and using neural networks trained to classify a user as depressed with a probability value.
It won second prize sponsored by Freelancer at a local hackathon. That was almost 4 or 5 years ago now. I've improved the site a few times since then and it's still going quite strong! :)
Long story short, Facebook's Messenger automatically geotagged users by default. People reported it to their security program, Facebook said it was intended. Then someone made a browser extension that looked up location of active Messenger friends and showed their location on a map. It got increasingly popular. Facebook decided to switch the location from opt-out to opt-in.
I normally consider hackathons a questionable way to engage the tech community. In my opinion they seldom lead to anything sustainable and set the wrong expectations. 
Disclosure: I helped finance the continued product development through our organisational work.
I tend to work solo at Hackathons.
My favorite project was a presentation remote for Google Glass. You could control your presentation with the touch bar on the side of the glasses, see your current slide in the HUD, and it also included a timer so you could make sure you didn't run over your talk's time limit.
Second favorite was Cardwolla. A system where you could register your credit card and your dwolla account and a corresponding API for websites. If user and site had both opted in to taking dwolla it would route around the credit card system using the dwolla api to avoid to avoid the 2.7% credit card processing fees.
We generated the rhyming words using the CMU Pronunciation Dictionary . These were saved in a map, which mapped a word to its list of rhyming words. Initially, the rhyming words produced were short and uninteresting. So we repeated this process, but this time sorted the rhyming words by "coolness", which at its simplest, was a measure of the word's length and the number of phonemes. To save time, the map contained only 20k of the most popular English words. The map was encoded as JSON and served to the browser.
In the browser, the Web Speech API performed speech recognition. Each time we detected the end of a sentence, we used the last word to look up a list of rhyming words from the map. The rhyming words were then displayed in a randomized order. This continued in a loop.
There's also a tiny Q&A section in the video .
It was made for the Monthly Music Hackathon in NYC held at Spotify, but it ended up being not terribly musical and more about just fun with audio and convnets :)
Oh yeah! And for another instance of the same meetup, I teamed up with a guy who was great with audio synthesis, and I hooked up an Arduino and a gyroscope and microphone to my drumstick, and we made a wireless throat-singing, spatially-aware percussion instrument:
Not everyone follows the rules of the hackathon and works only during the time period. I was on a team that was a finalist at one of the startup festivals and won a few thousand dollars. Talking with the prize sponsor afterwards, they said something along the lines of "you don't have to pretend you did this all at the hackathon, I know how these things work". When they realized that we did, I think they were disappointed!
It worked out for us that time, but in most hackathons they don't have time to vet all the projects thoroughly, and if you do too much there will be a strong suspicion that you are cheating and just using it as a pseudo startup pitch and that can be held against you.
If you want to win, I think the best strategy for productive teams is to do more than one project since it's hard to know what any particular judge will like.
Anyway, to answer the question, the most impressive was probably a UI layout app (Mac) that synced the layout in real time with native iOS and Android apps using native widgets (this was before react native was popular). Where it was only a 24 hour hackathon and I ended up doing all 3 apps from scratch. I'm still pleased about getting horizontal and vertical snap alignment in! I'm sure the judges (reasonably) thought it was not from scratch but it can be fun to push once in a while, and people you hack with will know you did it.
It's best not to take it too seriously though. Rather than be impressive, it's probably better to be creative and do lots of stuff (and have fun too!).
As for regular hackathons... a lot has been said in this thread already.
Not particularly popular on HackerNews for whatever reason, it was the type of thing where I finished my project at 2:00 AM and when I woke up at 6:00 am to get it together to do my demo, it was already getting tons of traffic.
It got writeups in Fortune, CNET, Lifehacker, and DailyMail over the course of the next week.
We built a tamagotchi-like app called Piggly that would let you feed and take care of it using money from your bank account. However, instead of treating it like an in-app purchase, the money goes from your chequing account into savings or investments (you decide).
The server is still up if anyone would like to try it: http://22.214.171.124/
You can Register with any 6 digit number.
>We built a tamagotchi-like app called Piggly that would let you feed and take care of it using money from your bank account.
"Wow, that's exploitative as hell. You won't get many players but there are a few who'd get addicted and basically drain their accounts. Immoral - but profitable!"
>However, instead of treating it like an in-app purchase, the money goes from your chequing account into savings or investments (you decide).
"Well, that's just awesome. It encourages people to save by turning it into a game. If they really end up needing that money they can always move it back."
Neat idea. I wonder how a bank would react to someone constantly pushing money between checkings and savings to care for their Piggly without actually saving as if they had a pet.
You can see an animated image of it here:
I was a bit disappointed we shipped Hackathon code instead of doing it as part of normal product development. There were issues in the product development cycle and in reality, the end result was good so such is life.
We made a video chat app that ran in the terminal. Didn't win but went kinda viral. We later polished it up
I wrote up how I built the React Native app part in under 24 hours: https://nanohop.com/2017/04/25/how-we-built-a-react-native-a...
It was really neat seeing the hardware and software come together in only a day!
This won us the first prize for a google glass hackathon.
or...this bad boy:
Hideous but it worked.
Now that we're in the post SeeFood hotdog/nothotdog era, things have changed ;)
Just love them.
On that note, I would say that using Gimbal beacons to power a walking tour app was something that people responded really well to. From a tech side, I had to write some adapters for ionic that I had never done before. It worked surprisingly well
The pitch: https://www.facebook.com/brandoncorbin/posts/101552909699924...
Looking at programming this way is harmful to all of us (because it encourages us to spend time building things designed to decay out from under their users, or that could be built as contributions to open-source libraries, but which wouldn't be a "startup idea", "product" or "mvp" anymore), and it would be nice if folks in this thread took a moment to step back from the things they've built (which are fun and useful, most of the time!) to think about working on ideas as contributions to open-source infrastructure libraries rather than standalone programs or services.
Programming toys is fun; programming universally accessible, near-permanent extensions to human capability is exhilarating.
I'd like to pre-empt the response of "people should be able to write apps and toys and services if they want!". Of course they can. I just want to make sure people have considered an alternative point of view, since it's easy to never step outside apps culture.
Beyond this, hackathons are also great at surrounding yourself by a ton of knowledge and talent to learn something very very quickly that you might struggle to learn on your own as quickly.
And finally -- a lot of devs work remotely or alone, and hackathons are excellent at developing skills of working in a team. And also just getting the in-person enjoyment of interacting with others who are interested in the same thing.
A single hackathon is only a day or two. What you get out of it compared to the time you spent is huge.
I guess it depends on your experience with hackathons. I entered my first one last year, and it totally ruined them for me. The winning team wrote no code at all and had a powerpoint presentation and mockups using images and image-maps. (I've complained about it more in past comments :P )
It seemed like we were actually punished for trying to code. I asked if we were allowed to set up backend servers on something like DO or AWS, instead of using our laptops for the demo. "Sure, of course that's allowed." Until I got to the venue and found out they were blocking SSH and most other non web-browsing traffic. I had to tether to my cell phone in order to deploy because according to them, it was the venue and not their problem.
I spent a good amount of time helping out people who were using the same framework as us and didn't understand it well (Ionic). So I made some friends and contacts that way. Unfortunately, they all seemed to be really shallow. I haven't heard back from most of them, and of the two I have, one asked me to design their squarespace site for a stupidly low price, and the other cold-called me sometime later asking if I was interested in writing content for their startup ("Oh, no, we're not looking for devs at the moment"). Of course once I declined their offer, no contact, no friendship.
I'd be down to try a different one (the "stupid idea" hackathons seem like the most fun and least competitive), but the only upcoming hackathon in my city is the same one from last year I'm currently complaining about...
You can bootstrap or even finish a small FLOSS project during a hackathon and perhaps assemble a team that will keep contributing to it.
Hackathons are to startups as martial arts tournaments are to the martial arts. You get good at the tournament by training for tournaments. But that's maybe 5% of what it takes to be really good at the overall practice. And in most cases, to get really good at the tournament, you have to do things that are only useful in tournaments and are actually anti-productive in real-life scenarios.
I still do weekend prototyping sessions, especially on my own, and there is a lot of value to that, so long as it's understood to be about learning. But from most of what I've seen about hackathons, that's not why people are being asked to come to them, and that's not why people are there.
In my 20 years of professional coding, I've seen a lot more problems with people promoting code to shared status, attempting to build a foundation, before it's been used and before it's even remotely ready than I've ever seen with people throwing away good code. We're taught in CS school to always abstract and generalize, way too many people run with that and write code that abstracts away their specific problems, and build foundations that aren't sitting on the bedrock of solving a real problem. Almost all open source projects that start with the aim to build foundations are thrown away.
On the flip-side, one of the common goals of a hackathon is to build the best and most useful idea you can, quick and dirty, without getting mired in foundation building. The utility of that is to prove the idea is useful first, and if that succeeds for someone, what better starting place is there for building a foundation?
I'm not against throwing code away. I'm just not sold that the results of hackathons provide value.
Some code is doing useful work after 30 years, some after 10. Hipster stuff is called "ancient" after 1 year. Most hackathon stuff is dropped after 2 days.