22.05.2018 • C3D Vision

Why We Decided to Develop Another 3D Engine

In 1995, we began work on a geometric kernel for our then-new MCAD system, KOMPAS-3D. Kernel is a technology component key to developing CAD (computer-aided design) systems. But then two years ago, we released C3D Vision, our proprietary visualization module. Why did we need another 3D engine?

For CAD developers, implementing rendering engines always poses challenges. Most ready-to-use commercial and open source visualizers were developed originally for the games industry, and so they do not take into account aspects unique to CAD/CAM/CAE applications.

Here is the difference: game engines work with textures, sprites, and animations. Engineering software, by contrast, works primarily with geometry made of vectors. As well, rendering engines designed for CAD need functions unnecessary to gaming software:

  • Positioners to convert cursor coordinates on the screen to a position on the current geometric object
  • Snaps to calculate the exact coordinates of geometric features
  • Manipulators to interact with the model being constructed

Those three are tools that are important to CAD systems, but are not available in game engines.

There are additional considerations for deploying a CAD-specific rendering engine. For instance, most developers don’t have the time or resources to create their own engine – a task that is expensive, time-consuming, and distracting. It keeps developers from working on their profitable products.

Thus a demand for specialized CAD engines arose naturally. Several such products are readily available on the international market, such as from Hoops and Redway. These are, however, quite expensive and require integration with previously-developed geometric kernels. The best visualizer is one that works with the kernel as a whole.

Until 2016, we did not have a rendering engine to offer developers. They were using our geometric modeling engine, our geometric constraint solver, and our data exchange module, but at the same time, they were asking us about visualization. They wanted to get an engine with the kernel so that they would not have to integrate a third-party component.

And so we decided to create our own engine. The decision was influenced also by the fact that no one provides the complete set of components needed for developing a CAD system. Even today, we are the only vendor that provides all four components: kernel, solver, converter, and visualizer. As well, our 3D engine can also be used as a standalone module in combination with third-party components.