Small breaking change coming to 3D Tiles .b3dm files

Hi all,

We are making amazing progress toward stabilizing the 3D Tiles spec and Cesium implementation.

As part of this progress, there is a small breaking change coming to the .b3dm tile format with pull requests #4183 (Cesium) and #125 (3D Tiles spec). The good news is that this may very well be the last breaking change!

The b3dm header is now 6 fields and 24-bytes (previously, it was 5 fields and 20 bytes). The new header is

magic, version, byteLength, batchTableJSONByteLength, batchTableBinaryByteLength, batchLength

as shown in this diagram. The old header was

magic, version, byteLength, batchLength, batchTableByteLength

as shown in the old diagram.

There is currently backwards compatibility for loading the old .b3dm format, but it will be removed ultimately when the 3d-tiles branch is merged into master.

Also, as part of these pull requests, there is now a binary section in the Batch Table so you can efficiently store numeric values instead of embedding them in a large JSON array.




About how far is the team away from merging into master? It looks like you guys are getting close…



btw, Thank you and your team for this great library. It is well designed, y’al have managed to make a library that is both powerful, but still has a sane API.

Hi Nicholas,

Thanks for the kind words. The 3d-tiles branch is in good shape, e.g., it includes unit tests and reference doc, and has become “the new master” for several users. We will merge it once the 3D Tiles spec fully stabilizes, perhaps in a few months.

I’ll post a more complete spec update to the forum tomorrow. Stay tuned.