Bedrock uses CesiumJS and 3D Tiles Voxels to visualize subsurface data

Every foundation, tunnel, and major construction project depends on ground investigation data to assess what’s below the surface.
But much of this data is locked away in bespoke or legacy (or both!) geotechnical formats like GEF, making it hard to integrate with modern software, share, or visualize at scale.

At Bedrock, we make geotechnical and geological data more usable and visible.
We convert legacy and bespoke formats into geospatial web standards like 3D Tiles and GeoPackage.
We’ve been following the new 3D Tiles Voxel extension and its implementation in CesiumJS for a while. So we’ve started experimenting with visualizing large geological voxel models in the browser using these .

Our test case is GeoTOP, the national geological model of the Netherlands from the Dutch Geological Survey. GeoTOP represents the shallow subsurface in 100×100×0.5 m voxels, each containing attributes for lithology and stratigraphic unit.

Traditionally, GeoTOP is only accessible through a specialized desktop tool called ‘SubsurfaceViewer’ or in ArcGIS, which makes it difficult to explore easily or share online.

We wanted to see if was possible to view it directly in the browser. So we converted the dataset to 3D Tiles with voxel data and display it in CesiumJS. We were surprised at how well it performs, it’s very fast! And this is just a first attempt, I’m sure there are many opportunities for us to optimize it.

The full national dataset is still too large to serve efficiently, but we’ve published three regional subsets you can explore here: https://bedrock.engineer/geotop-voxels/ and a more integrated example that includes geotechnical data as GeoJSON and 3D Buildings as 3DTiles: Bedrock Amsterdam Noord Geodata Viewer .

3 Likes

Hi @Jules-Bedrock, welcome to the community!

This is a very impressive demo! I’m glad to see you were able to get voxels working. Please let us know if you have any suggestions to improve documentation, API design, performance, features, or anything else!

You may want to look through some of the voxels-related issues on GitHub. Two that are on our roadmap for work in the near term are:

Feel free to comment on any issues that you think should be prioritized, or open new issues as needed.

1 Like

Thank you @jjhembd! It was pretty tricky given there is not much documentation for the Voxel extension yet. It’s still very much a work in progress. I am thinking of writing an introductory blogpost to generating Voxel datasets when I get to know it more but all of 3DTiles is still new to me so it might take a while.

I did run into the “megatexture limit” a couple of times and through lots of trial-and-error managed to avoid it. I’ll keep track of the Voxel-related issues on GitHub and post when I run into issues.

Also I sent you a message on LinkedIn.

1 Like