Inspiration
Mexico City's (CDMX) public transport is vast and complex. It comprises a subway, light rail, RTP, and cablecars interconnected in a complex network that is overwhelming. Although there are many apps and official maps, they are very complex and intricate and it’s very hard to understand where you actually are and are very hard to navigate.
What it does.
The app will let you navigate through the many systems of public transport focused on where you are standing now at moment. It will let you find the nearest station, and once you are there, it’s easy to follow your actual position and know where to commute and navigate between stations, lines, and systems in the apps
AR Powered
Although the system line maps are abstract, you may want to see how the whole system works in a realistic manner out there on the streets. So, the brand new AR section brings the maps to reality to let you understand the relationship between all systems. And if you are physically beneath the limits of Mexico City’s public transport, the map will adjust to a realistic scale, letting you know, where the train is going through even if it’s below the surface. If you are not in the city, you will see a map of the whole system laying on any surface you choose.
How we build it.
We had to collect a normalize a huge amount of data such as tracing over 200 icons that are only provided in raster format. They were no available 3d maps or models for public transport so we developed a huge amount of scripts to transform geospatial data into a 3d model and interpolate the missing altitude data to create a realistic representation of the deepness of each point of the system.
Challenges we ran into
While rendering the maps we found some geospatial data that is probably misreported leading to nonsense 3d representations so we have to challenge and infer some of this info. Some assets were also inconsistent so had to trace manually many hundreds of them. Also, ARCore and other helping libraries are very complex, with some stability issues (we did our best!) and almost no documentation or knowledge base beyond “hello world” tutorials or placing an android robot on a plane. We ran into a large number of bugs and accurate placement errors while trying to make the models work in reality.
Also, many of these libraries didn’t come along well with Jetpack Compose, so we ran into a large number of difficulties before getting them to work.
Accomplishments that we're proud of:
An X-Ray of the Earth
After rendering the first 3d map, which represents accurately the deepness of each line at each point of the route, we realized that, to our knowledge, we delivered the first realistic 3D representation of the subway, train, and other transport systems in Mexico City (and perhaps all other cities). It’s like taking an X-Ray of the earth and not just delivering another flat map.
A beautiful design.
The whole transport system of Mexico City has a beautiful and award-winning graphic language by the renowned designer Lance Wyman that created a unique icon for each station and a distinctive color for each system, a concept which it's indeed the ancestor of the “app icon”. We honor these concepts and heritage with our beautiful app with the Material 3 design guidelines and framework by creating a color scheme for each system and line delivering an immersive experience that leads to a better understanding of the system.
What we learned
We acquired a lot of knowledge and codebase to process and digest geospatial data, to transform from the many different formats in which they were provided to a unified representation that allows us to correct, redo, improve and replicate this with new data, producing updates to this app streamlined or to create apps for other cities and systems with ease.
We also get a better understanding of the ARCore and helper libraries, how they work, their caveats, what they are missing, and how to contribute to their development to make these implementations easier and achievable for all developers.
What's next for YoCDMX
Besides the fact that the public transport system in Mexico City grows every day and we have to pace in to keep the app current, we have to make many refinements in the 3d representation many of which are now gross-scale and to provide an accurate representation of the platform and stations powered by AI inference as official station plans are hard to obtain. We may also get to the point to represent the actual trains/buses/cars moving along the 3d map in real-time if we manage to get access to this existing data, which will let us see these maps like blood flowing through the veins of the city. Once this is ready we will move to the next city.
Built With
- android-studio
- arcore
- blender
- jetpack-compose
- kotlin
- sceneview
Log in or sign up for Devpost to join the conversation.