3D Terrain - it's underway and it's looking good!

Literally the first thing everyone asks for 3D terrain support for Mantle has been at the very centre of our development vision since day one. If you've been scrutinising images that we've put up on Instagram or the site you may have noticed some 3D terrain popping up here and there as a bit of a tease.

Well it's most certainly under development and here are some progress shots.

Grand Canyon created with Mapbox elevation tiles, Mapbox Satellite Tiles and Mapzen vector tiles

Grand Canyon created with Mapbox elevation tiles, Mapbox Satellite Tiles and Mapzen vector tiles

Castle Valley, Utah created with Mapbox elevation tiles, Mapbox Satellite Tiles and Mapzen vector tiles

Castle Valley, Utah created with Mapbox elevation tiles, Mapbox Satellite Tiles and Mapzen vector tiles

Where the detail is good, it's simply stunning! Our next look is at prefab placement and road shrinkwrapping.

Roads and their directed graphs (for simulation) shrinkwrap to the terrain

Roads and their directed graphs (for simulation) shrinkwrap to the terrain

Terrain placement really  adds amazing capability to your environments

Terrain placement really  adds amazing capability to your environments

We saw image overlays with satellite detail above, but what about when we apply Stamen's Watercolour image tiles?
Simply beautiful.

San Francisco's waterfront generated with Stamen Design's Watercolor map tiles

San Francisco's waterfront generated with Stamen Design's Watercolor map tiles

Lastly where Mantle really starts to shine is bringing all layers together in tandem with custom models placed into the generated environment. Here we've dropped the Golden Gate bridge Sketchup model by Google Geo Models from the Trimble 3D Warehouse into an environment generated around the location. Given Unity's native support for .SKP files and the fact that 3D Warehouse files are all created to the correct geo-scale it's literally a drag and drop process!

Golden Gate bridge 3Dwarehouse Sketchup model placed straight into a generated Mantle scene of the area

Golden Gate bridge 3Dwarehouse Sketchup model placed straight into a generated Mantle scene of the area

We're working hard on terrain level of detail control right now and refining environmental styling so that you can generate 3D environments with full elevated and decorated terrain at the push of a button.

It's coming soon and we promise, we'll let you know!

Dean

2D to 3D

People often wonder how we take 2D mapping data  (the kind you see in Google maps, or MapBox or OpenStreetMaps) and push it into a third dimension!  The questions around why we do that fizzle out pretty fast when they see Mantle turning these maps into living worlds where it has the potential to propel you into your own child hood street in a fully immersive VR world, when we are on the verge of powering games like Pokemon Go, or when building proposals come alive off the back of unintelligible 2D plans, and when we turn the entire Earth into an alternative dimension! 

We are super excited with Mantle as it has the potential to create worlds like The Upside Down from Stranger Things, or a Charlie and the Chocolate Factory world of lollipops and candy (homage to Gene Wilder) - Mantle creates these worlds without any human developers, rather all it needs to create an entirely new Earth is a Theme.

I could go into the technicalities in (what feels like) seemingly infinite detail here, but I won't, mostly because I’m trying to keep this short and also I hope that many of you reading this are not coders and hopefully don’t care about how it’s done as much as what it changes:  We want to change the way people create 3D worlds.

When I started looking at what data was out there for Mantle, it felt like it was designed by traditional cartographers thinking only in 2D: this blue blob was a lake, and this green rectangle was a park. But looking beyond this we saw that the underlying data held great potential, a bit like the atom bomb - containing immense energy without anyone really tapping into its explosive potential!   I saw different land types from cemeteries to playgrounds and building types with interesting metadata.  And there it began.  Using my Procedural Content Generation (PCG) background, I realised we could create, extrapolate and infer a third dimension! I could create algorithms which use fuzzy logic to guess the heights of buildings and create a fully operating traffic simulation using the lines and road types in those maps by converting them into directed networks.

Mantle can go to anywhere you like on Earth and procedurally generate all the 3D meshes for the land types you see as well as the roads and buildings in that area. Using a Mantle Theme it decorates the area with materials like grass, water and sand and then intelligently positions objects, like swings, boats, camels or bird sounds in that scene. The designer has control over how Mantle positions things using a particular Mantle Style in a Theme for a given land type. For example any farm Mantle generates can be rendered with one or more grass materials and have a wooden fence around it with sheep (of a given density) scattered around it (with a given noise value) to make it look organic and random. There is great power in the Mantle Style component and along with the two factors mentioned here, there are many more that give the designer strong control over the look of a particular land type no matter where it is on Earth.

Another example might be where a game designer wants to be super original and create a Zombie Apocalypse game (because no one has ever done that before...). A Zombie Mantle Theme would be created which references all the desired Mantle Styles such as one for all cemeteries or shopping malls on Earth.  This style would control how to spawn zombies and place tomb stones in rows for effect. We then simply link cemeteries or any other area to that Style and when Mantle is in range of a cemetery it renders it according to that Style. Hey presto: ZOMBIES! Whether the player is in Rio or Reykjavik, Mantle doesn’t care where these things are in the world, just what they are and how to show them if they are ever within range.

I now work with an amazing team of people to propel this forward and my ultimate vision is to see a GTA level of detail in a game which is not just one city but covers the entire Earth, and yet developed on a modest budget without the need for human world builders with Mantle doing the heaving lifting and creating the world - and its spirit - for us.

Till next time, I hope Mantle will help you build your own worlds and I look forward to blogging more about what we’re up to on the technical front!

Isaac

Early iterations of Manhattan semi-real content placement

Examples of street furniture , fencing and building cladding placement

Specialised material shaders per land type element

Purely fictional style placement

Winter in Sydney: application of snow styles on Sydney terrain

Placement alternative objects such as AI, sound  sources and vehicles

Announcing Mantle Mapbox integration in development!

As our first devblog post I'm very pleased to be able to showcase something we've been working on since the Mantle 1.0 release.

We're committed to expanding Mantle’s mapping services and format support and as part of that mission we're announcing support for Mapbox! Check out some in-progress shots of our Mapbox vector tile integration and protobuffer format support.

I'm personally a huge Mapbox fan having used Mapbox tiles designed with Mapbox Studio for game development in the past. Anything that brings good workflow and user experience into working with detailed map data gets two thumbs up from me.

If you use Mapbox data in your own projects already then the environments generated in Mantle will match up perfectly.

We should also mention 3D terrain generation support! We’ve got Mapbox elevation tiles working in dev right now and it’s really exciting not only to see 3D terrain but also the areas with support for super high detail.

We’ll go into more detail because 3D terrain definitely deserves it's own post. It’s not far off, promise :)

Providing support for the protobuf format has also been on our internal roadmap for some time. This integration now makes it much easier to provide future support for other protobuf based services, which ESRI announced support for last year. Being able to create protobuf tiles from ArcGIS content means potential to feed that content straight into Mantle, providing some great workflows for shared and custom data sets for detailed project areas.

There's still more work to do. We have resilience testing and optimisation to do as well as making sure internal systems play nicely with multiple map source formats that are vastly different.

Right now we're aiming for it to be part of the 1.1 release but we'll keep you up to date.

Until then, I'm off to walk around the hills of San Francisco again!

Dean

Work-in-progress: Buildings, land use areas and transport routes generated from Mapbox Streets vector tiles

Fantasy environment created using Mapbox Streets as a generation 'seed'

All meshes generated from Mapbox layers

Terrain generated from Mapbox San Francisco test elevation data