In 2013, my friends and I developed an app during the first São Paulo Bus Hackathon and now, after a few years, we will finally release a commercial (but 100% free) version of this app for iOS and Android!
With inSPorte you will be able to track all your buses in real time, besides that you will also be able to evaluate these buses, thus helping improve the public transit system!
You will be able to track your buses using your watch
So, if you live in São Paulo and use the public transit system of the city, you might consider downloading our app!
I was working with Arduino recently and I thought: can this small ATMega328 run some 3D graphics? I realized that there are some projects about that, some of them are really good actually, and that was enough to get me inspired to try my own micro-project. So I thought, why not port OpenGL for Arduino? Let's see what a 16 Mhz 8-bit micro-controller can do.
And this is the result:
Cubes are easy!
STL models don't look so nice...
By the way, you got it right, that's the same display used on the old Nokias! As you can see, I didn't have a fancy LCD colour display, but for this demo that one is good enough!
It is not hard to see that most of OpenGL's features are missing. It has no backface culling, no frustum culling, no colours, no depth/z buffer, no textures, no lighting, no shading, no shaders, etc...
Although limited, you can use this Arduino library to port some really basic 2D and 3D OpenGL programs to Arduino. You could even try to build a small game! But don't get too excited, you only have 32kb of program memory and 2kb of RAM (most of that already used by the library itself). You'll probably only be able to fit one low poly 3D model and nothing else.
I came back to Brazil three months ago, and after my return I started working as an iOS developer in a new start-up company called Bike da Firma, but me coming back to Brazil is not interesting enough for me to write a blog post about it... What is really interesting is my participation in two other hackathons.
Social hotSPot
One of them wasn't really a hackathon, it was more like a project submission. The main goal of Sao Paulo Interativa was to create an application that used open data from the city of Sao Paulo and that could provide something useful for its citizens. For this "hackathon", Giovanni Marques and I created a project called Social hotSPot which is a location-based social network. This app uses the network of public wifi hotspots of the city as means of detecting the user location (even indoors), and it allows the user to post messages on a "virtual wall" for that location. Other users at that same location would be able to interact and reply to those messages. This app can also bring some useful information about the place itself, like historical information or current news (it could also show some ads related to that place or the neighbourhood around it, but we haven't implemented it). Unfortunately the project wasn't selected as the winner, but it was between the twelve best projects submitted on that competition.
iOS App
Android App
Android App (live)
HoloGlobo
Now this was a real hackathon! Last weekend I traveled to Rio de Janeiro to compete on the first hackathon of Globo, which is the biggest television network of Latin America, inside the house (or should I say studio?) of the Brazilian Big Brother programme.
The main goal of this hackathon was to build something that could "change the way people produce and consume content" for television. It proved to be quite a challenge, especially now that less and less people are watching television. However, we've had great people participating, and with all the equipment you could think of available for us (Arduino, Raspberry Pi, Leap Motion, Oculus Rift, Nao, Kinect, RealSense, MYO, GoPros, Google Glass, Google Cardboard, 3D printers, etc), sky was the limit.
We had great equipment...
...and great minds
Needless to say, being inside a television studio, we were surrounded by cameras and reporters all the time, and that proved to be another challenge when we had to focus on development. They were even broadcasting the event online. Luckily, we had a swimming pool available for us, which proved to be the best place to write code and relax.
One could write OpenGL code smoothly with that cool breeze...
Believe me, we were really focused.
So, you must be asking now: and what was the project? Well, first we had to create our teams and pick our ideas during the first two hours of the event. My idea was to create something that used that popular "smartphone hologram" as a medium, as you probably guessed I've always liked 3D stuff and popping virtual objects out of the screen was my next personal challenge. But that itself wasn't enough for a project, what was missing was Danielle's ideas of using it as a device for showing clothes for sale (especially those worn by actors and actresses from soap operas) and her experience in creating stunning presentations, Giovanni's ideas of using this kind of visualisation for soccer/association football matches and his experience with 3D scanning with Kinect, and Guilherme's experience as an intern at Google to quickly create, assemble and deploy functional Web Services and Databases. I was lucky enough to partner with these amazing guys, one of which I already knew, and like that we had the perfect team to compete!
(from left to right) Guilherme Berger, Danielle Cohen, Giovanni Marques and I.
With that team and a some hours of work, we were able to develop a platform called HoloGlobo!This platform allows a person to quickly scan an object or person and then upload its 3D model to a Database, thus publishing it. Right after that, this model becomes available online and people are able to visualise it as an "hologram" or in a 3D scene using our dedicated apps.
That's how it works...
A platform like this has a lot of applications, but I believe that the main ones are related to commerce (especially e-commerce), allowing people to have a better look at some products before purchase. Other applications include the diffusion of special television content, such as shows or sports matches, in this "hologram" format. Hopefully more people will be eager to watch television if they are able to have this kind of proximity and interaction with the content being broadcasted.
And we won!
Our prize is no less than a three day visit to the MIT Media Lab! Should I tell you how excited I am to go there? It's going to be AWESOME!!! Besides, it will be my first time visiting the US!
I'm staying in Canada for a few months, so I'm not sure if I will be able to work on my own projects during this period... I really hope I can have new ideas during this time off!
I'm also thinking of releasing the source code of one of my newest projects (Sector 914), so stay tuned!
This weekend I started working on another app for iOS that uses OpenGL ES. I'm still not sure what I'm gonna do with this, but I hope I can turn it into a 3D asteroids game or something like it...
Part of this project includes code to load .obj 3D models and feed them into the OpenGL pipeline in an efficient and not so complex way (It runs @ 60 fps on my iPhone 5S). I have also made some huge improvements over the graphics code that I wrote for GlitchXY, especially regarding the organization of the graphics code. Although some features are still missing, such as lights, shading, materials, etc...
Yes, that is the Space Shuttle Discovery.
I really like the idea of using the gyroscope sensor to get orientation data and use it as an input, I think interacting with the device this way feels more natural, so, unlike my previous proto-project GlitchXY, I'm about to use it as an input alongside the touch controls.