Geo Braille: First Prototype

From the real earth, to the digital realm and back again. Tactile Maps are here and they will help all of us understand our changing planet and get motivated to take action!

Geo Braille: First Prototype


If you read the first article on Geo Braille I laid out the potential of 3D printed maps to enable those who are blind to learn about the data of our world. I believe in a world where we can learn about our planet through sight and touch by creating a new way for people to engage with the geographic data of the world and collaborate with those that have a different perspective. 3D maps have been made before, but I set out to create a process that can be done with publicly available tools and services that are relatively simple to learn and use. This is an open-idea from The Geo Cloud so others can use it and do good in their communities.

With that in mind I created our first prototype 3D-printed map that is cartographically sound and scaled. I decided to focus the vector data (points, lines and polygons) that would form the core of the map. These layers consisted of data I downloaded from SANGIS and included the Pacific Beach community boundary, streets, and parks. Even though I was now working in 3D space, I found the process of cartographic generalization quite useful in preparing my map for print. If you’re unfamiliar with that term, it’s a process of controlling the amount of detailed information portrayed in map to make it useful. A map is a model and you can’t effectively communicate every detail about the world, so generalization is needed. Here’s a few principles that I followed to make the Pacific Beach tactile map accessible through touch:

  • Exaggerate is a process whereby an object is relatively enlarged so that its featured characteristics are not lost when drawn at a different scales. In the case of the streets and community boundary these were thin lines that wouldn’t be printable when the model is scaled up. I drew buffers around these to thicken the lines and make them stand out. Different heights were also added to further distinguish features from one another.

  • Eliminate can be used to remove unnecessary or illegible details at certain scale. In the case of the streets I only included major streets and removed a majority in the map. I also removed several parks.

  • Displace alters a features absolute location to preserve its unique identity. I did this with the large park in the north of the map. That park lies right on the boundary of the community boundary. When exporting the model, the software viewed it as a shared wall and the park wouldn’t even be outputted. As a solution I shifted the park away from the boundary.

The result of this process was something that looked pretty close to the original map I created. There were a few minor defects in the print, but I’ll discuss those in the ‘Lessons Learned’ section of the article. Not only did these principles help create a better map, a model of the world, it was necessary to use them for a 3D model to be brought into the real world via a 3D printer.

The stack

(1) Create a map in ArcGIS Pro or QGIS. Here you apply cartographic generalization to make the map printable while removing unecessary detail. In the case of this map I only kept major streets, a few parks, and the community boundary.
(2) Use City Engine to import shapefiles into a 3D space where you can add height to the elements so they can be 3D printed. Export to OBJ file so you can pull into a 3D software.
(3) Import the file from City Engine into Tinker CAD. There are applications more advanced than this, but I wanted something simple to use. All I needed was a place to scale down the model, add a base, and export to an STL file for print.
(4) Upload to 3D Hubs and check the printability of your file. If you get some errors go back to step one and adjust your map. If not, select the material and print!

The craft (photos)

A view from the south of the map: imagine you're in a plan flying by
A quarter on the map to show the scale in reference to a common object
The map is nearly the size of a common chessboard.
This shows the different heights of each feature type in the map with a chess piece for height reference
A side-by-side from original map in QGIS to the printed model (red arrows to help with orientation)

The craft (3D model)

Lessons learned

It took some good old-fashioned trial and error to get this to work. After spending time finding the right tools there were some challenges mostly at the third and fourth step in the stack. Here’s a few things I learned that could save you time if you want to create your own:

  1. Exaggerate widths of outlines (e.g. streets) by using buffers. They need to be of polygon type to be usable in the model as lines don’t have width to them. Before print, you can check how wide a feature will be by using the measure tool in Tinker CAD.
  2. Use the dissolve tool to make networks of lines a singular feature. Tinker CAD got angry when it was trying to import each street segment as it’s own model (I think that’s what was happening).
  3. Scale down to a size that is printable. I found the size when importing into Tinker CAD was enormous and required to be scaled by about 20x. Not sure why this was the case but Tinker CAD will show you the size of your output model.
  4. Intersecting features like a park polygon and boundary can cause the model to be distorted on import into Tinker CAD. I spent some hours trying to understand why the large park in my model kept disappearing, and it has something to do with the underlying data structure of the OBJ files.
  5. Follow Cartographic generalization principles to make tactile maps that are legible but informative.
  6. Utilize a base plate of printing material to tie in any 'floating' elements. This was done by adding a square underneath the imported model. After this initial print, you could bring the cost down substantially by having only a few millimeters for the base.
  7. Double-check your model in the 3D Hubs quote tool before sending for print. They have an automated tool that can check for errors in your model.

Future work

I was surprised at the usefulness of applying cartographic concepts to a 3D map that are typically used on 2D maps. By using cartography to inform our efforts in 3D map making, we can focus on the process and tools that make tactile maps possible. Next up, I’ll focus on adding braille for any named features like streets, parks, and oceans. Before doing that it would be very helpful to put this in the hands of the intended users and get their feedback. I wanted to get this to point so someone could understand what I was trying to do rather than explaining it. I plan on visiting the Braille Institute in San Diego.

During this process I realized that tactile maps can also be used by those who can see. This could especially be effective for grade-school children that could have something that can enable interactive, hands-on learning. Even at the university level tactile maps could help students grasp simple to complex concepts in Geography. People learn in different ways (e.g. listening, watching) while others, like me, do best when things are hands on.

At some point I want to make an open access data portal where anyone can access the 3D maps that I or others create. That way, anyone with a 3D-printer could download a map and use it to help them learn about the world. I imagine something like Google Earth where you can navigate to anywhere in the world and find something to print. All of us could have a tangible piece of earth transported across huge distances and sitting on our desk within a short period of time.

Lastly, there are some interesting possibilities in combining these tactile maps with AR technology. With a single map, like the one in this article, you could greatly diversify the amount of content and learning by combining the physical with the digital. You could put on a headset and see cars and how traffic forms on a busy day during the summer, what might happen if a tsunami should strike, or how that dreaded coastal fog is formed. I'm excited to look into this further and if anyone has any thoughts, let me know!