08.12.2023 • C3D Modeler, C3D Solver, C3D Converter

Nanosoft Uses the Geometric Kernel From C3D Labs for Its Import Substitution Project

The nanoCAD platform, which can model even the most complicated products, now uses the C3D Labs geometric kernel.

Nanosoft has switched to the C3D Labs geometry kernel from a component from an international vendor. The kernel is an integral part of the CAD platform. It does the math for 3D object manipulations. The C3D Labs kernel is almost as powerful as its predecessor. It has an embedded parametric solver and supports the import/export of third-party 3D formats.

About the Customer: Nanosoft is a developer of computer-aided design (CAD), building information modeling (BIM), industrial/civil construction project life cycle management solutions, and end-to-end industrial digitalization tools.

Official website: www.nanocad.com.

Industry: CAD/BIM.

C3D Labs Products:

  • C3D Modeler;
  • C3D Solver;
  • C3D Converter.


  • Replacing the solution from an competitor vendor
  • Need for a comprehensive product
  • Support for many 3D model formats


  • C3D geometric kernel has completely replaced the competing product
  • A new, holistic approach to CAD development
  • Building strong, trusted business relationships

In Search of Perfect Geometry

Nanosoft offers high-quality, affordable, and fully domestic solutions for customers. The company's flagship product is the nanoCAD platform. It supports *.dwg/IFC formats. Initially, the nanoCAD platform used a geometric kernel from an competitor vendor. Over time, the company began to look for an alternative solution. There were several reasons for choosing C3D Labs.

Nanosoft Uses the Geometric Kernel From C3D Labs for Its Import Substitution Project, photo 1
Image 1. Conversion of CAD formats in the nanoCAD platform with the “3D” and “Mechanics” modules

The Nanosoft team worked closely with the creators of only one commercially available geometric kernel even before it was launched. Testing the C3D kernel was beyond the scope of Nanosoft's core business, but the two teams have been working together for several years to develop and improve the solution.

As a result of this technology partnership, Nanosoft has gained experience in using the new geometric kernel as the basis for engineering software and has gained a full understanding of the required kernel functionality. In response to the feedback from the nanoCAD platform developers, the C3D kernel has been optimized and rigorously tested.

In 2016, Nanosoft began using the C3D Labs product alongside its existing solution, giving its customers two kernels to choose from. Subsequently, the C3D Labs tool became a pillar of the nanoCAD platform. The C3D Labs geometric kernel fits the full customers’ requirements perfectly.

Step by Step

The C3D Labs Geometry kernel consists of eight C3D Toolkit modules. Nanosoft is now using three of them: C3D Modeler, C3D Solver, and C3D Converter. C3D Modeler provides classes and methods to define and edit geometry, specify hierarchical relationships between components, create triangulated surfaces for visualization, compute geometric properties, mass, and inertia, and generate 2D views. The kernel mostly uses B-rep (boundary representation) when the geometry is represented as shells, faces, edges, and vertices. Mesh and wireframe representations are also available. C3D Solver supports dimensional and logical constraints to create relationships between 2D and 3D geometric objects. C3D Converter imports and exports 3D models in many formats.

Nanosoft Uses the Geometric Kernel From C3D Labs for Its Import Substitution Project, photo 2
Image 2. Conversion of CAD formats in the nanoCAD platform with the “3D” and “Mechanics” modules

The CAD kernel project was implemented in stages. It was an evolution within the nanoCAD ecosystem.

The first step included the export of C3D models to the *.dwg legacy format with subsequent code optimization. The previous geometry kernel stores geometry definitions in the same way as they are stored in the *.dwg format. The internal representation of geometry in the C3D Labs kernel is significantly different, and initially, each 3D model had to be converted. Today, there is still some need for conversion, but the conversion procedures have been sufficiently refined and optimized to not significantly affect the performance of the open/save commands.

Nanosoft Uses the Geometric Kernel From C3D Labs for Its Import Substitution Project, photo 3
Image 3. Parametric model of a sliding prism in the nanoCAD Platform with the “3D” and “Mechanics” modules

The next step was to develop a set of functions for creating simple solid objects (boxes, cylinders, cones, etc.), implementing Boolean operations, and adding chamfers and fillets. The goal was achieved: the kernel had an appropriate and efficient implementation for each of these operations.

Another step toward integration was the introduction of associative relationships and constraints. Such relationships between objects (such as faces or edges) or numerical constraints applied to object properties are persistent. This means they must be maintained when the original object is modified. For example, splitting or merging faces should not invalidate the existing relationship. A unique technology has been developed to achieve this. The Nanosoft team has implemented the relationships and constraints using the model attributes resulting in consistently high modeling performance.

The next stage was support for geometric arrays. Initially, when the C3D kernel was integrated into nanoCAD, models with multiple shells were a challenge: some operations on them could fail. Toward the end of the project, the two teams combined their efforts and found a solution to correctly generate object arrays, even those consisting of independent geometric elements.

Nanosoft Uses the Geometric Kernel From C3D Labs for Its Import Substitution Project, photo 4
Image 4. Parametric model of a conveyor in the nanoCAD Platform with the “3D” and “Mechanics” modules

Another major milestone was the implementation of 2D and 3D solvers. As for support for third-party 3D formats, this is still a work in progress as the number of such formats is huge.

The final stage was the sheet metal module. A wrapper for the C3D kernel has also been tested. Customers can use it to develop their .NET and C# applications.


The kernel switch project for the nanoCAD platform has demonstrated that the close collaboration between the C3D Labs and Nanosoft teams has produced tangible results. Thanks to the direct access to the C3D Labs team, the customer could request new functionality or refinements "right here, right now". The teams also developed a roadmap for adapting the product to the specific CAD platform and user requirements. As a result, the C3D Labs kernel has become an indispensable nanoCAD component, offering a number of significant advantages. These include:

  • Comprehensive In the past, Nanosoft used the kernel and 2D solver from different vendors. The C3D Labs kernel has a built-in solver and provides additional import/export functionality to third-party 3D formats. Before switching to the C3D kernel, the nanoCAD platform did not offer this capability.
  • Multithreading
    Unlike its predecessor, the C3D kernel is capable of performing multiple operations concurrently (for example, when generating a 2D projection). It greatly improves the 3D modeling performance for nanoCAD users
  • Flexibility
    The developers of only one commercially available geometric kernel are very responsive to changing market demands and industry transformations, implementing new concepts.
Nanosoft Uses the Geometric Kernel From C3D Labs for Its Import Substitution Project, photo 5
Image 5. Working with imported geometry in the nanoCAD Platform with the “3D” and “Mechanics” modules

Oleg Zykov, CEO, C3D Labs

"We highly appreciate the contribution of our partners from Nanosoft”, says Oleg Zykov, CEO, C3D Labs. "nanoCAD is the first use of C3D components in a full-featured CAD system supporting *.dwg format. To realize the most ambitious customer feedback, we are looking for the best ways to collaborate, to complement each other's platform and its foundation".

Kirill Melnikov, Director for Software Development, Nanosoft

"Switching to a new CAD kernel is challenging and time-consuming", notes Kirill Melnikov, Director for Software Development, Nanosoft. By joining forces, we can harmonize our solutions and achieve the greatest productivity through synergy. We keep expanding the nanoCAD ecosystem, and may introduce more C3D Toolkit components in the future".