The Real History of the C3D Kernel from Alexander Spivakov

This year C3D Labs celebrates the 20th anniversary of its C3D geometric kernel. Twenty years ago the founders of ASCON Group made the decision to begin writing a new mechanical CAD system, today known as KOMPAS-3D. To power the system, the company established a team to write a 3D kernel good enough to compete with foreign kernels in operability and functions. This is where the history of the "Kolomna" geometric kernel begins.

During the years that followed, ASCON continuously developed and improved the kernel. New modeling methods were invented, computational algorithms were developed, and additional modules were added such as a parametric solver, the data converter, and a visualization module. Behind all these changes, there always were a special group of people developing the geometric kernel, which recently was renamed C3D.

Today, people take a greater interest in geometric modeling, some of whom keep tabs on who develops what. So to celebrate the 20th anniversary, we decided to conduct interviews with our development team:

In this new, fourth interview, we shed light on the development of converters in the C3D kernel and so we had a frank conversation with Alexander Spivakov, who is responsible for developing the C3D Converter at the company's Kolomna office. The interview was conducted by C3D marketing manager Arkadiy Kamnev.

The Real History of the C3D Kernel from Alexander Spivakov, photo 1
Alexander Spivakov is mathematician and programmer at C3D Labs в C3D Labs

Q: Alexander, where are you from? Where did you study and grow up?

A: I am originally fr om the city of Gorky in Russia, have been living there until I was 26.I studied at the Lobachevsky State University in Nizhny Novgorod in a faculty with the tongue-twisting name of “VShOPF.” This is an abbreviation that in Russian stands for “Advanced School of General and Applied Physics.” My first field of study was gas-discharge plasma spectroscopy. My second major was related to solids and semiconductors. After six years of basic training, I had three more years of postgraduate studies at the Institute for Physics of Microstructures of the Russian Academy of Sciences (IPM RAS), but didn't defend a thesis. I left university in 2007, and in 2010 I moved to live and work in Kolomna.

Q: What can you tell us about your work experience before joining ASCON?

A: When I was in secondary school, I managed to work part time at the Gorky Automobile Plant. The company arranged work opportunities in summer for the children of employees. Children were usually involved in work like watering flowers, looking after flowerbeds, and weeding the grounds. But I was lucky, because after grade 9 I ended up in a department that worked with AutoCAD. This was where I first learned what CAD (computer-aided design) generally looks like, and so for two summers in a row, I worked hard at creating workshop plans and teaching trainees the basics of working with CAD.

Later in my university days, I spent the summers working as a laborer and electrician on construction sites. Well actually the first entry in my employment record states that after my third year at university I worked part-time as a system administrator at a bicycle factory.

Q: It would be interesting to know about the first job you held in your field. Where was it, and what did you do?

A: My first proved place of work was the Institute of Applied Physics of the Russian Academy of Sciences (IAP RAS). By coincidence, this is where I was first involved in scientific research, which dealt with the visualization of microwave radiation using gas-discharge plasma.

Q: What is that?

A: We used electrical discharges in gas to create plasma columns with specific characteristics, and then heated them with microwave radiation. This resulted in a visual image that could be captured by a camera operating in the optical or infrared range. The advantage of this approach is that by using relatively simple tools we can solve problems that typically require much more complex and expensive devices.

Q: How could this technology be applied in practice?

A: The first thing that comes to mind is the problem of viewing in centimeter and millimeter spectral ranges. We can take a material that is opaque to the eye and then use microwave radiation to look through it, which allows us to detect metal and other materials opaque to microwave radiation. At this point, I could use stock examples like “searching for illegal weapons, explosives, drugs and diagnosing diseases.” I think you guessed them anyway.

Another application for the technology is studying the output properties of high-power microwave devices to, for example, configure them.

The Real History of the C3D Kernel from Alexander Spivakov, photo 2
The experimental spectral module and a Si/Ge heterostructure sample studied by Alexander Spivakov

Q: When you first joined ASCON, what was your job?

A: Initially I worked on the KOMPAS-3D CAD project, but almost immediately I agreed to switch to the mathematics department. During my probationary period I was given the task of developing a class that provides operations on surfaces based on four curves and mesh of of curves -- my colleagues wanted to see if I could handle the task! After I passed probation, I moved on to work on converters, which is what I do today.

Q: What do you find special about working on file conversion software?

A: The key concern is that converters cannot reject any input data. As each thing comes out of a file, it has to be processed somehow. We have to deal with syntax errors, incorrect or contradictory information, and special-case topologies. There are cases specific to different modelers and processors in exchange formats. We have to analyze all of them in a specific way and produce the final output -- or decide that no output is possible, and so notify the user of the problem.

Another issue that occurs is when we recalculate 3D models into the architecture of our .c3d format. The standard algorithms used in the C3D geometric kernel don't always work, and so we added mapping routines to the kernel specifically for converters. It was one of the first problems that I solved working on the kernel together with my colleague Vladimir Latyshev (another mathematician and programmer at C3D Labs).

Q: What do you work on the most at C3D Labs?

A: That's an interesting question! Most of all, thinking. A large part of my working time is spent reading documentation and developer manuals. When we import and export data in formats such as STEP, IGES, Parasolid (X_T, X_B), ACIS (SAT), VRML and STL, we need to follow the existing standards strictly, especially for ISO. For tunately, the formats are publicly available and their documentation includes a large number of examples. So I find that usually there are no problems working with them.

The rest of the time I spend fixing bugs and writing new features for the C3D Converter.

Q: While we’re on that topic, let's talk about formats. The C3D Converter will very soon be supporting STEP 242 and JT. Why are these two being added?

A: Exchange formats are constantly changing in response to changing demands. The emergence of software products with new functionality leads to the parallel mergence of new formats. Older formats are forgotten as they become things of the past. Change means that exchange formats like STEP and JT learn how to store Product and Manufacturing Information (PMI). That's why we decided to teach the C3D Converter how to work with this data.

STEP format with PMI had already been implemented in our converter. But STEP ISO committee decided that PMI was inadequately supported by the 203 and 214 protocols, and so came up with a new protocol, 242. Its main task is to harmonize the two previous protocols so that there is no ambiguity, allowing programmers to more easily exchange data. I found that the most interesting feature of STEP 242 is its ability to work with composite materials: the protocol writes and reads the specific aspects of stacking layers, compounding, and so on. STEP 242 also allows us to write mostly demanded types of connections, including screwed, glued, welded, soldered, riveted and so on. We have already implemented the part of this protocol that relates to communicating information on the form of the 3D model in our C3D Converter.

As for the JT format, this is a binary format that is supposed to provide fast reading. JT supports compression step-by-step and delayed loading, which allows it to store the triangulation of the 3D model separately with other characteristics, and then quickly display it on the screen. The file recording scheme is very convenient when there is no need to make any changes to the 3D model. But if we have to change something, this requires recalculating all the triangulation and B-Reps of the 3D model, as well as the links between them. The JT developers thought apparently that this would be an operation far less common than viewing data, and so economized on that computing resource. By comparison, other formats typically transmit only B-Rep data, which is then used to calculate a secondary representation of the 3D model for display on the screen, calculate mass inertia properties, and so on. Each time we open one of these files, it unfortunately consumes a lot of operating system resources.

The Real History of the C3D Kernel from Alexander Spivakov, photo 3
3D models imported fr om STEP exchange format by using C3D Converter

Q: Some 3D file formats cannot store the parametrisation. Can you explain why?

A: Parameterization is a concept fr om mathematics. But from the CAD point of view, it is better to use engineering terms so that software developers can accurately implement their designs. Another issue is that that the parametric kernels do not always match the geometric ones, so it is not surprising that for geometric kernels one or another parameterization may be simply not available in the exchange file.

Q: But we still have the problem that we cannot store the geometry and history of 3D models in exchange formats. What is the reason for this?

A: The history based modeling is a concept that is too dependent on CAD. In this sense, the boundary representation (B-Rep) transfers information about the 3D model in a much more consistent way from one version to others versions of the software in which the model was created. In principle we can also transfer the history. All we need is the will to do it!

It turns out, however, that this is not a panacea. Let's imagine that we are transferring a B-Rep of a 3D model with it’s history tree, overlaid a plane secondary representation and, in addition, with the calculated levels-of-detail. In this case, we need somehow to synchronize all of this data. What we get is a complex computational problem that needs a complicated system to track feedback. There are not many software developers who would like to service such a huge thing. I think this is the answer to your question.

Q: What do you like most in the working process?

A: I really like having multiple work horizons. On the one hand, I can always see wh ere to go and what the system will look like in the future. For me, this is a kind of extreme programming, something I strive for. But in the medium term, I have to plan the work on my own. One thing that I will be dealing with in the near future is multi-threading.

Converters are a great testing ground for code parallelization! This is why the very first results of multithreaded computations in the C3D Toolkit were achieved in our converters. The maximum effect from acceleration is achieved here with lots of large blocks of data. For example, when we receive large and complex multi-component models, often it turns out that each component is an isolated set of data, which can be processed in parallel effectively.

The Real History of the C3D Kernel from Alexander Spivakov, photo 4
Accelerating data import from STEP and Parasolid formats by using multi-threading in the C3D Converter (the columns are test models used for comparison)

Q: From wh ere do you get the ideas to develop the C3D Converter further?

A: I find it helps to think about what is beautiful. In some cases, we need to standardize the code; in others, we need to create our own objects; or we work on something that could be taken under the full control of the user or left to his discretion. It is the appearance of how the system is built, which reminds me what the idealized converter should look like. It is very important to have a broad outlook; used properly, it can help in any work.

Q: Could you tell us about your hobbies?

A: A few years ago I took up kayaking. In Kolomna, I joined the Kovcheg Tourist Club and began to attend the School of Sport Tourism. When I joined the club, I already had plenty of kayaking experience, but for many other guys this was the first time they had ever seen rafting equipment. We train during the autumn and even winter, and occasionally we go out on weekend trips. For our final exam, we took a category II trip on catamarans in the Caucasus, the mountain range that is located in south of Russia.

I should mention that catamarans behave in their own particular way on rapid rivers, and that the experience is quite different from expedition kayaking. A single kayak trip on the mostly lowland rivers of Karelia or central Russia can easily be 200 km long, but in the Caucasus we had to travel in roped teams and make regular crossings between rivers. This gave us a very different experience. On calm water, we can use our own strength to reach our destination. But in white water rafting, we had to be able to use the power of nature, in particular the energy of the stream, to achieve our objective. This is very difficult and so makes it very interesting!

The Real History of the C3D Kernel from Alexander Spivakov, photo 5 The Spivakov family kayaking down a river
The Real History of the C3D Kernel from Alexander Spivakov, photo 6 Alexander against the backdrop of Mount Elbrus, the highest peak in Europe

Q: Can C3D Toolkit compete with other solutions?

A: I believe that the converters are products that should be used as a very important feature of the C3D Toolkit. The C3D Converter module provides developers of applications based on the C3D Geometric Kernel with greater data exchange capabilities than with any other kernel.

In the very long run, I see the emergence of complex hybrid systems on the market, which create 3D models with low levels of detail, a kind of prototype. Such models are used for calculations like dynamics, electrics, strength, fatigue, and fitness for assembly; the results are run quickly through a variety of engineering analysis systems. This is wh ere converters are the key elements that ensure the easy integration of different software.

As for the C3D Toolkit in general, its attractiveness gets a major boost in that software developers can communicate with the solution developers who write the software. If someone finds this important when selecting the kernel, then C3D Labs is ready to offer the best terms. Understanding the needs of each developer and staying in close contact is exactly what we can provide!

Q: In your opinion, what are the current trends in CAD software?

A: Regarding the development of converters, I would like to mention materials engineering, as it is the closest to manufacturing. In particular, converters will be able to transfer the characteristics of various materials, making it possible to provide data for hybrid engineering and manufacturing systems. But everything that relates to complex assemblies will go into long-term storage.

Today, we can use engineering software to create 3D models of products, provide the design documentation and specifications, analyze the scanning results, and record the history of building and assembling the model. One day, we will be able to store all this information in a single file; for this, I think that the most preferable solution is open exchange formats.

I also believe that, in the near future, we will see the emergence of qualitatively new technological processes, for example, in the area of biotechnology, wh ere a living body can be connected to a nonliving 3D model. Who knows, maybe there will even be a "biological CAD" like in science-fiction!