Someone asked me why I hadn’t commented on Cesium and Unreal getting together. Honestly , no reason. This is big news honestly. HERE, where I work, is teaming up with Unity to bring the Unity SDK and the HERE SDK to automotive applications. I talk about how we used Mapbox Unity SDK at Cityzenith (though I have no clue if they still are). Google and Esri have them too. In fact both Unreal and Unity marketplaces are littered with data sources you can plug in.
This is getting at the core of what these two platforms could be. Back in the day we had two browsers, Firefox and Internet Explorer 6. Inside each we had many choices of mapping platforms to use. From Google and Bing to Mapquest and Esri. In the end that competition to make the best API/SDK for a mapping environment drove a ton of innovation. What Google Maps looks like and does in 2021 vs 2005 is amazing.
This brings up the key as to what I see happening here. We’ll see the mapping companies (or companies that have mapping APIs) deliver key updates to these SDK (which today are pretty limited in scope) because they have to stay relevant. Not that web mapping is going away at any point, but true 3D world and true Digital Twins require power that browsers cannot provide even in 2021. So this rush to become the Google Maps of 3D engines is real and will be fun to watch.
Interesting in that Google is an also-ran in the 3D engine space, so there is so much opportunity for the players who have invested and continue to invest in these markets without Google throwing unlimited R&D dollars against it. Of course it only takes on press release to change all that so don’t bet against Google.
Why did Cityzenith choose Cesium?
The choice of Cesium predates me, so I was not involved with the decision. That said those who made the decision have explained why they went that way. Cesium was probably not the original choice but at the time in 2014/2015 it was the best solution of a “game engine” for our product. We did look at other engines such as Unreal but the 64-bit support and the ease of use in the browser, Cesium won out. In implementing Cesium what were we able to do?
We were able to implement a cross platform 3D world in a browser. That’s not an insignificant accomplishment. Our Cesium team really did an amazing job of making Smart World feel like a regular desktop application even if it was in a browser. No extensions to load, Java or Flash to configure. In a modern browser it basically just worked (more on this though later).
While normally a pain in the rear, the fast updates and quick support for new features on the Cesium project gave us access to new features regularly. We were able to continually update our support for better graphics, performance and features almost by just loading up a new version of Cesium. Of course, in reality it is not that easy but the feature improvements were regular and powerful.
Open source is very liberating on many levels. Not having to fight a licensing battle and focus on the product is a nice change from other development libraries and SDKs. Also having direct access to the developers. If you don’t follow Patrick Cozzi yet you should. Amazing work and they listen to feedback.
glTF support is second to none. I’ll be talking about glTF soon as well and why we absolutely love it.
OK, so what didn’t work with Cesium? Why leave it?
There are really only two reasons we have left. Most of everything else we get with Unity we would either have with Cesium very soon or it’s being implemented today. But the two reasons have been killer for Smart World. I don’t think everyone runs into the same problem we have with their apps so this is more of a specific issue with what we are doing rather than a problem with Cesium.
Cross browser support. Remember when I said that we had cross platform support? Well that really only works if you use Google Chrome. Other browser support is poor at best. Microsoft Edge? Yea not going to happen. Being an enterprise app, we don’t always have the latest and greatest browsers that our customers can use. It’s not an IE8 problem but Edge and Firefox support really killed it for us. It got so bad that we had to put up a modal dialog box that basically said you couldn’t use Smart World without Google Chrome. That’s just unacceptable to us and while we tried to work on solving this the reality of support in other browsers was not coming quick enough and I’m not sure it was a problem that Cityzenith could have solved throwing money at the problem.
Performance in the browser. Chrome is many things and one of them is that it is a memory hog. Loading up cities in Chrome really would put a strain on our user’s computers. The browser is great for simpler 3D mapping but streaming gigabytes of data into a browser really tasked computers. We worked on a ton of LOD workarounds but the compromises to make the application work on a typical enterprise desktop or laptop really left a bad taste in our mouths.
Roadmap for Cityzenith
We want to provide the best 3D analytical tools and we’ll continue to do so. Combined with AWS Lambda and AWS IoT services, we’re making a huge leap in how people perform spatial analysis. Not only are we working on our own planning tools such as rooftop solar analysis, LEED-ND analysis and traffic analysis, we’re integrating RhinoGrasshopper plugin support, so anyone can use their existing workflows. As I said above, we’re moving our 3D engine to Unity. In fact we’ll be having a closed beta very soon for our customers to try it out. One of the biggest reasons we went with Unity was Mapbox’s Unity SDK. We are already a big user of Mapbox and thus moving to the SDK made a ton of sense. I’ll go more into this in another article.