3DTiles from Ion Crashing Unity

I was testing the Cesium CityGML to 3DTiles pipeline through Cesium Ion by uploading a CityGML to Ion. The conversion and tiling went smoothly and could be visualized in the Web App.

Problem is when streaming via ion to the Unity plugin setup, it crashes.

Please advise on what could be the issue as I would very much like to visualize on the Unity platform using Cesium and it’s important in my consideration for using the Cesium pipeline.

I have included the crash logs from unity in case it helps.
Crash Report.zip (398.5 KB)

Can you please send me a private message with the ion asset ID, a token that can be used to access it, and your permission to access it for debugging purposes? I’ll take a look. I think the CityGML tiler uses i3dm files (instanced meshes), which Cesium for Unity and Cesium for Unreal do not yet support (issue here: Support .i3dm tile payloads · Issue #458 · CesiumGS/cesium-native · GitHub). But it should merely report this, not crash.

Thanks for sending me the details of the tileset. I took a look, and there are two problems. One is that the Cesium ion CityGML pipeline is producing some subtly not-quite-spec-compliant data in this case. And the second problem is that that is causing Cesium for Unity to crash.

I’ve written an issue for the second problem here:

We should be able to get that fixed pretty quickly. But in the meantime, you may be able to work around it by making sure that the string properties in your CityGML, such as gml:name, have values for every feature, even if it’s - or N/A or similar.


Thanks Kevin. Will try out what you suggested first.

On a related note, I have been trying to contact your sales team to get more information on Cesium On-prem solutions like the citygml tiler pipeline. Is there anyway to get in contact with someone for that info.

I am seeing if it is a good solution for my company for creating Digital Twins and I am at the same time pushing for the use of Cesium for it.

Hi @darvil,

We just merged a fix for the crash into Cesium for Unity’s main branch, so it will be in the next release. I confirmed it makes your model load successfully (nice model!). You can also try out a build from the main branch yourself in the meantime if you like.

I’ve pinged some folks internally about your email to sales. Let me know if you don’t hear back soon.


Thanks Kevin!

Really appreciate your help on this.


Hi Kevin,

Not sure if its related or of any help but I also experienced this crash with my dataset when streaming it to the unreal plugin.

Thanks for the note. Yeah, it’s a bug in cesium-native, which underlies both. I’m planning to publish a new version of Cesium for Unity with the fix today.

Hi Kevin,

Sorry, but I still haven’t heard from sales yet. Hoping to hear from them soon as I am in the midst of convincing my management to use Cesium.

Hi darvil,

Can you email me directly with your sales questions - thanks! Jim jim@cesium.com

Hi Kevin,

I don’t know whether to start a new thread but I seem to be encountering another issue this time regarding the loading of b3dm files which have textures inside. While the 3d models load perfectly in Unity, the textures are not loaded with them.

How was the tileset created? What is the format of the images? Are you using the latest version of Cesium for Unity? There was a bug in older versions with WebP and KTX2 images.