# C3D Toolkit

C3D Toolkit is a proprietary cross-platform geometric modeling kit software developed by Russian C3D Labs (previously part of ASCON Group). It's written in C++ . It can be licensed by other companies for use in their 3D computer graphics software products. The most widely known software in which C3D Toolkit is typically used are computer aided design (CAD), computer-aided manufacturing (CAM), and computer-aided engineering (CAE) systems.
C3D Toolkit provides routines for 3D modeling, 3D constraint solving, polygonal mesh-to-B-rep conversion, 3D visualization, and 3D file conversions etc.

## History

Nikolai Golovanov is a graduate of the Mechanical Engineering department of Bauman Moscow State Technical University as a designer of space launch vehicles. Upon his graduation, he began with the Kolomna Engineering Design bureau, which at the time employed the future founders of ASCON, Alexander Golikov and Tatiana Yankina. While at the bureau, Dr Golovanov developed software for analyzing the strength and stability of shell structures.
In 1989, Alexander Golikov and Tatiana Yankina left Kolomna to start up ASCON as a private company. Although they began with just an electronic drawing board, even then they were already conceiving the idea of three-dimensional parametric modeling. This radical concept eventually changed flat drawings into three-dimensional models. The ASCON founders shared their ideas with Nikolai Golovanov, and in 1996 he moved to take up his current position with ASCON. As of 2012 he was involved in developing algorithms for C3D Toolkit.
In 2012 the earliest version of the C3D Modeller kernel was extracted from KOMPAS-3D CAD. It was later adopted to a range of different platforms and advertised as a separate product.

## Overview

It incorporates five modules:
* C3D Modeler constructs geometric models, generates flat projections of models, performs triangulations, calculates the inertial characteristics of models, and determines whether collisions occur between the elements of models;
** C3D Modeler for ODA enables advanced 3D modeling operations through the ODA's standard "OdDb3DSolid" API from the Open Design Alliance;
* C3D Solver makes connections between the elements of geometric models, and considers the geometric constraints of models being edited;
* C3D B-Shaper converts polygonal models to boundary representation (B-rep) bodies;
* C3D Vision controls the quality of rendering for 3D models using mathematical apparatus and software, and the workstation hardware;
* C3D Converter reads and writes geometric models in a variety of standard exchange formats.

## Features
### C3D Modeler

* Modeling 3D solids
* Performing Boolean operations
* Creating thin-walled solids
* Filleting and chamfering parts
* Modeling sheetmetal parts
* Designing with direct modeling
* Modeling 3D surfaces
* Modeling 3D wireframe objects
* Surface triangulation
* Performing geometric calculations
* Casting planar projections
* Creating section views
* Calculating mass inertia properties
* Collision detection

### C3D Converter

Boundary representation (B-Rep):
* STEP incl. PMI (protocols AP203, AP214, AP242)
* Parasolid X_T, X_B (read v.29.0/write v.27.0)
* ACIS SAT (read v.22.0/write v.4.0, 7.0, 10.0)
* IGES (read v.5.3/write v.5.3)
Polygonal representation:
* STL (read and write)
* VRML (read v.2.0/write v.2.0)
Both representations:
* JT v.8.0 - 10.x incl. PMI and LOD (ISO 14306)
The C3D file format is also used as CAD exchange format, and it is gaining popularity in the global area.

### C3D Vision

* Configures levels of detail (LOD)
* Applies shaders and widgets
* Uses 3D assembly feature tree managers
* Controls static graphics and dynamic scenes
* Sets anti-aliasing levels
* Culls invisible elements of scenes
* Speeds up visual computing through hardware acceleration
* Section planes
* Interactive 3D controls (manipulators)

### C3D Solver

* 2D constraint solver for 2D drawings and 3D sketches
* 3D constraint solver for assemblies and kinematic analyses
The C3D Solver supports the following constraint types:
* Coincidence (available in 2D and 3D)
* Align points (2D)
* Angle (2D and 3D)
* Coaxiality (3D)
* Distance (2D and 3D)
* Equal lengths (2D)
* Equal radii (2D)
* Fix geometry (2D and 3D)
* Fix length and direction (2D)
* Incidence (2D)
* Parallelism (2D and 3D)
* Perpendicularity (2D and 3D)
* Radius (2D)
* Tangency (2D and 3D)

### C3D B-Shaper

* Controls surface recognition accuracy
* Segments polygonal meshes
* Edit segments
* Reconstructs segments in certain types of surfaces
* Generates B-rep models

## Development

The toolkit is developed by using various software design tools and IDEs:
* MS Visual Studio 2017
* MS Visual Studio 2015
* MS Visual Studio 2013
* MS Visual Studio 2012
* MS Visual Studio 2010
* MS Visual Studio 2008
* Clang (for Mac OS)
* GCC (for Linux)
* NDK (for Android)
The supported programming languages include:
* C++
* C#
* JavaScript

## Applications

Since 2013 - the date the company started issuing a license for the toolkit -, several companies have adopted C3D software components for their products, users include:
* nanoCAD and nanoCAD Mechanica use the C3D Modeler, C3D Solver, and C3D Converter components
* KOMPAS-3D flexible 3D modeling system
* KOMPAS-Builder
* KOMPAS:24 for Android
* TECHTRAN uses C3D to import 3D models in various formats, view them, prepare blanks for turning CNCs from 3D models of future parts, and retrieve geometric data from 3D models.
* LEDAS Geometry Comparison (LGC) technology to compare 3D models and pinpoint all of the differences between them
* CAE system PASS/EQUIP for comprehensive structural pressure vessels analysis
* ESPRIT Extra CAD is based on C3D kernel
* Furniture Design CAD K3-Furniture
* Furniture Design CAD K3-Mebel
* Quick CADCAM
* Furniture Design CAD BAZIS System
* 3D AEC CAD software platform Renga Architecture
* Building information modeling system Renga Structure for structural design buildings and facilities
* Staircon application for the timber staircase industry
* SolidEng
* Dietech India develops software to configure mold bases for various die casting machines
* LOGOS software for simulation with supercomputers
* PRISMA (Russian analogue of MCNP)
* EE Boost Acoustic VR
* EE Boost Electromagnetics
* MKA Steel application for a single-story steel structure design
* Delta Design software for the automated design of electronic devices
* Altium Designer software package for printed circuit board, field-programmable gate array and embedded software design
* Quickfield finite element analysis software package
* ÇİZEN Die (manufacturing) Design Software from Mubitek
* Open BIM Systems from CYPE Software
* VR Concept Virtual reality application uses C3D Converter for reading imported CAD data, and C3D Modeler for constructing and editing 3D models
Recently, C3D Modeler has been adapted to ODA Platform.
In April 2017, C3D Viewer was launched for end users. The application allows to read 3D models in common formats and write it to the C3D file format. Free version is available.