(Quick slide deck if you're in a rush!: https://docs.google.com/presentation/d/1ftb7vr8Pp_7Z19jwxJZcG1GF9BGHx0ETbYopnAi1IQA/edit?usp=sharing )
Inspiration
We saw the social impacts of the "/r/place" experiment Reddit ran, where users could place a pixel every 5 minutes anywhere on a 1000x1000 canvas, and the social impact was crazy, communities were formed, battles were fought (Images were created and erased), empires (images) rose and fell. We wanted to take this idea and make it into a real world experience, where you had to go to make impact, and where the canvas was the entire world, where you could fight over real territory (with pixels!).
Domain
We registered a domain but it didn't percolate up yet, but its littleblu.org (Little Blue Dot org) Based on Carl Sagan's little blue dot speech, where he explains the whole world is so small and just a little blue dot, our place is the entirety of this little blue dot, and within this little blue dot you can place your own little blue dots (and other colours!).
What it does
Our place is a social, collaborative activity -- users open the application on their phones and they can drop a pixel where they're located in a variety of colours. As users move around the map, they can drop pixels where they stand to build a picture - but this pixel can be overwritten by anybody else. The map will show dots appearing or being overwritten in real-time, so you can see your beautiful creations being made (Or your creations being destroyed!). Alone, it'll be hard to make something, but with a group of people you can start creating something big. In order to draw, you'll have to go outside and walk around to drop pixels where you want, so it helps you get out too!
How we built it
The backend is built in Ruby on Rails using a PostgresSQL database, currently hosted on Heroku.
The front end is served with Node.js and is built in JavaScript. We leverage the Google Maps API in order to show the map, and we draw rectangles for pixels. To draw the same sized pixels everywhere without loading the entire map in memory, calculations are done server-side to determine pixel sizes and where exactly the pixel should be placed.
We also connect to a PayPal API in order to support monetization for features such as securing a spot as your own (No other people can draw over it for some time) or getting special colours.
Challenges we ran into
It was tough to figure out synchronization and making sure all users have real-time information, since users from all over could be adding new pixels while you're looking around. Additionally, understanding how to create a proper pixel size because the earth is round was difficult, so the Google Maps JavaScript API had to be learned very quickly.
Accomplishments that we're proud of
We're really excited that this product actually works! Users right now can drop a dot, and anyone else will be able to see it within seconds. We actually gave it to our friends, and a lot of people are dropping pixels and making small pictures around the world. Additionally, we got a basic authorization payment flow to work, so users can create an account and sign in, which will lend itself to other applications such as private/community maps, or perhaps for data analytics. Also, the authorization allowed us to create a basic PayPal payment flow to pay for new features.
What we learned
We learned a LOT about the Google Maps JavaScript API, creating ruby on rails servers and front-end development. Additionally, we learned a lot about creating real-time applications, and we also learned how fun it is to draw on a map!
Monetization Opportunities
This application can lend itself to a monetization model by creating special pixel colours that you can draw with for a small fee. We also envision a feature where users can pay some amount of money to lock down a small area (so that other users can't draw in it).
What's next
Machine learning - Block bots, profane drawings, notify people people are overriding their drawings nearby.
Private canvases - Create communities, host your own 'our place' server.
Different pixels - Things like emojis, customizable pixels.
Log in or sign up for Devpost to join the conversation.