How easy is it to extract CAD data from ZCAD files? Can they be reverse engineered?

One of the benefits of ZCAD is that it contains B-reps. On the other hand, meshes are often considered less proprietary information. What is the risk that B-reps could be reverse-engineered if made available for viewing?

1 Like

(I asked the question to @philip.taylor privately. Here is his response, posted with permission.)

Our Zcad files can contain parametric surface definitions or triangle meshes.

Parametric surfaces are encoded into textures that are uploaded to the GPU and decoded in the GPU. It is not a simple binary structure that can be read back, but the geometries are distributed over 3 textures that are indexed in the GPU. It would be a task of enormous complexity to get the parametric data out and even I would take weeks of work to get that data out of those textures and back out as something useful.

We also support encoding Zcad files with just triangles. These triangles are stored as lossy compressed vertices and indices.

Both options are fast now. In fact we are pushing more towards triangles as the GPU pipeline is vastly simpler and more versatile.

Compared to widely understood tools like Unity, where tools to extract data are readily available, zcad is like Fort Knox.

1 Like

Thanks Blake.

To add some context to this topic.

Most WebGL engine are moving towards using standard file formats like GLTF, which is a versatile and efficient format. While using GLTF is straight forward, it is also a file format that can be directly imported into a wide range of applications. Users can simply download the GLTF files from your web app and load them in to Blender.
https://docs.blender.org/manual/en/2.80/addons/io_scene_gltf2.html

Zcad, in contrast, is a file format supported only by the Zea Engine. No other apps can load zcad. How difficult would it be to extract data from zcad and load it into Blender? Quite difficult. Users would need deep knowledge of the Zea Engine, and be able to write an exporter to get the data out. None exist today.

As Blake mentioned, zcad also supports parametric CAD data, which is not representable in GLTF, or any other non-CAD format. The Zea CAD plugin generates the tessellation of parametric surface in the GPU. It uses a collection of textures to represent the tessellated surfaces and the trimming on those surfaces. Even a ninja programmer with a lot of time on their hands would struggle to get any meaningful data out of a zcad file.

We take security very seriously, and see zcad as the key to maintaining and increasing security of data loaded into Zea Engine. We are researching ways of making zcad more secure. A perfect solution provides a balance of strong security and high performance, while not encumbering developers with complex server configurations or other hurdles.

1 Like