November 11, 2021
I’ve always been fascinated with 3D modeling. 2D art is one thing, but exploring art in 3 dimensions lets you view things from a whole new perspective. When I first joined Soar.Earth, I remember being amazed by all of the 3D Maps being produced in the GIS community.
A few months into joining Soar.Earth,
I was asked to come up with fun infographics based on some of the maps in our platform. I thought this was the perfect opportunity to try and create infographic 3D Maps.
I started teaching myself, using my own personal knowledge from game development. I really enjoyed the process, so I wrote this piece to show you how I made these 3D Maps! This post is less of a ‘tutorial’ and more of a casual step-by-step of the process showing how things came together.
Four infographic 3D Maps based on maps uploaded to Soar.Earth
The first part was finding a map from Soar.Earth to use. Luckily, there’s no shortage of incredible and visually stunning maps on the platform
I chose this map of Maragua Syncline
by Soar.Earth user Sergio. The colours really stood out to me in 2D, so I was keen to see how it looked in 3D.
Use the top menu to start exploring the Soar.Earth
After gaining access to the original file, I converted the map into a simple png file to be used later as a texture map on the 3D Model. Then came the biggest challenge: transforming the image from 2D into 3D.
So how do you turn a flat image into 3D? There are multiple approaches, including modeling it yourself but that’d be time-consuming and likely inaccurate. So I used a special file we use often in game development, called a “Height-map”.
A “height-map” is a 2D greyscale image that tells the computer how much to either push up or down, depending on each pixel’s shade. For example, everything in the greyscale that is white will be taller. Everything that’s black is shorter or flatter. Every shade in between is relative to the height between. Put all together, it provides the data to make a 3D model.
Lucky for us, Satellites often capture this kind of data automatically, so there are many online resources that are free to use which contain heightmaps. For this project, I used a free resource on GitHub called
After some digging, I found the same location as the map on Soar.Earth in Tangram. You can play around with the values until you get something that isn’t blown out or dark. When I was happy with the map, I could render out the area as a png. I then overlaid both the ‘texture’ (aka the original map) and the height-map as best I could to line them up so they match.
Color image LEFT, Heightmap RIGHT
Once I exported both height-map and textures into a file, it was time to open 3DSmax, my preferred modeling software - but you can use any 3D modeling software you like! The setup from here can get pretty technical, so I’ll try to keep it short and simple.
First, you’ll need to create a basic square plane and divide its polygons up until it has enough points for the mesh to be able to form shape easily. Adding the heightmap projected over that plane lets me pull/push the polygons based on the white/grey/black levels in the heightmap image. As you can see from the gif below, as I raise the intensity - the magic happens!
Color image LEFT, Heightmap RIGHT
After this, I pull down the polygons at the corners and place a simple grey texture over them so it feels like a cutout of a cube. After some UVmapping and retopology to keep the model nice and simple, we can export the model or render it as we did with the initial Soar.Earth ones (later on adding infographics about the location in your preferred editor).
3D Model of the map with the corners pulled down to resemble a slab cutout
Now that the model is complete, you can do what I did and
upload it to any 3D viewing website such as Sketchfab.
Final result on Sketchfab
Our Earth looks incredible from above and having 3D versions of Soar.Earth maps is amazing to see. The whole process was a fascinating and fun challenge. I think the results speak for themselves.
Have you made any 3D Maps before? What do you think of ours? Let us know.