pythonOCC

pythonOCC provides a python wrapper for the OpenCASCADE C++ technology.

Project was started in 2008, it's a 13 years old technology that can be considered as mature. The original purpose, that still continues to drive the development, is to extend the OCCT audience (mostly C++ developers) to the Python community. 

There is a double benefit from using OCCT together with Python: 

  1. no need for any C++ skill, complex C++ compiler environment or compilation workflows, native multiplatform development; 
  2. access the wide Python data science ecosystem (NumPy, scipy, meshers, AI libraries, Jupyter and Voila, etc.). 

This makes the complexity of OCCT easily accessible to business end-users (architects, mechanical engineers) familiar with Python.

pythonOCC is distributed under the terms of the LGPL license and can be embedded in commercial software. Since it was started, it has been used in many free and open source projects (IfcOpenShell, pyGem). It is considered as a strong basis by academic and industrial/building industry, industrial researchers in the field of 3D CAD/BIM/CAM/automotive/aerospace/building industry, see for example.

License: 
LGPL
Type: 
SDK
Industrial sector: 
Automotive, Aerospace, Building
Software type: 
Open Source
Scope of application: 
3D modeling, Data Exchange, Language Bindings
Functionality / feature-set: 
Python wrapper covering most of the OCCT C++ library except the DRAW, High-level Python API that extends the core library; Qt/wxPython/PySide GUI widgets; web-ready: WebGL rendering (Three.js; x3dom); Jupyter notebooks, Desktop or server
Suitable for: 
Startups, Research & Science
Deployment options: 
Web: Cloud
SaaS; Desktop: Mac
Windows
Linux
Server: Windows
Programming Languages: 
Python
Support Options: 
Forum/Community
Training Options: 
Documentation, Videos
Localization: 
English
Vendor/Author(s): 
Thomas Paviot et al
F.A.Q.: 

Q. How to install pythonocc?
A. The best way to proceed is to go with conda or Anaconda.

Q. Where should I start with?
A. pythonocc-demos is a good start.

Q. What should I do if I need a class/method that is not covered by the example suite?
A. Read the official OCCT documentation. Port to python is straightforward.

Q. What is the OCCT targeted?
A. Pythonocc is sync’ed with OCCT release cycle.