Version V8_0_0_rc2 is a candidate release incorporating over 80 improvements and bug fixes compared to version V8_0_0_rc1, bringing the total improvements since version 7.9.0 to over 130 changes.
What is a Release Candidate
A Release Candidate is a tag on the master branch that has completed all test rounds and is stable to use.
Release candidates progress in parallel with maintenance releases, with the difference that maintenance releases remain binary compatible with minor releases and cannot include most improvements.
The cycle for a release candidate is planned to be 5-10 weeks, while maintenance releases occur once per quarter.
What's New in OCCT 8.0.0-rc2
Core
Upgraded minimum C++ version requirement to C++17 #537
Geometric Classes Optimization: Significantly optimized gp_Vec, gp_Vec2d, gp_XY, and gp_XYZ classes by simplifying mathematical computations, replacing indirect API calls with direct data member access in performance-critical sections, and improving matrix operations including inversion, transposition, and power calculations #578
Reworked atomic and Standard_Condition implementation #598
Optimized NCollection_Array1 with type-specific improvements #608
Reworked math_DoubleTab to use NCollection container #607
Comprehensive VCPKG Support: Added full VCPKG layout configuration with CMake file placement in share/ directory for compliance, introduced OCCT_PROJECT_NAME parameter for customizing directory structure, and updated environment scripts while maintaining backward compatibility #618, #637, #638
Added VCPKG port opencascade with TclTk and GTest support #580, #616
New Helix Toolkit: Implemented a complete TKHelix toolkit with geometric helix curve adaptor and topological builders, featuring advanced B-spline approximation algorithms for high-quality helix representation and comprehensive TCL command interface #648
Added option to not build history in BRepFill_PipeShell #632
Fixed GeomFill_CorrectedFrenet hanging in some cases #630
Fixed infinite loop in Simplifying Fuse operation #557
Fixed Bnd_BoundSortBox::Compare failures in some cases #518
General Fuse Optimization: Improved BOPAlgo_PaveFiller performance by adding null checks for triangulation in BRep_Tool::IsClosed, simplifying index lookup logic in BOPDS_DS, and introducing helper functions for better clarity and robustness #514
Fixed BRepFilletAPI_MakeFiller segfault with two curves and rim #532
Fixed mismatch between projected point and parameter in ShapeAnalysis_Curve #600
Shape Healing
Implemented reusing Surface Analysis for Wire fixing #565
Visualization
Enhanced FFmpeg Compatibility Layer and updated Video Recorder #582
Fixed binary PPM image comment writing in Image_AlienPixMap #413c08272b
Fixed vcomputehlr misprint leading to error if no Viewer #526
Updated DrawDefault script to handle missing directory cases #542
Documentation
Added missing description to HLRBRep_HLRToShape methods #525
Added Copilot instructions for OCCT development #589
How to Upgrade
There are no critical breaking changes at the API level, however note the following:
C++17 Requirement: The minimum C++ version has been upgraded to C++17. Ensure your compiler supports this standard.
Deprecated Methods: Some Immediate Mode rendering methods in AIS_InteractiveContext have been marked as deprecated.
Migration should proceed smoothly for most applications.
Performance Improvements
This release includes several significant performance optimizations:
* Geometric Classes: Major performance improvements in gp_Vec, gp_Vec2d, gp_XY, and gp_XYZ classes through direct data access and simplified computations
* Boolean Operations: General Fuse algorithm optimization with improved index lookup and null safety checks
* Memory Management: Geom package copy optimization and NCollection_Array1 type-specific improvements
* Data Exchange: StepData_StepReaderData optimization for faster STEP file processing
* Foundation Classes: math_DoubleTab rework using NCollection containers for better memory efficiency
New Contributors
@iosdevzone made their first contribution in https://github.com/Open-Cascade-SAS/OCCT/pull/609
Full Changelog: https://github.com/Open-Cascade-SAS/OCCT/compare/V8_0_0_rc1...V8_0_0_rc2
This discussion was created from the release V8_0_0_rc2.
In case of mingw or other platform, packages are not provided at the moment and you need to build on your own (mingw, linux or mac os provides own 3rd-party by package manager which simplify install process). Next release planned to be all platform packaged as a vcpkg packages.
02Author
In case if you have any problems with build/compilation or other configuration solution cases, which were problematic for you.
Please share these difficulties as a bug report, to keep the build process stable for more use cases.
Also, all usage bugs or issues always welcome to be reported.
Will the Python library pyOCC of OpenCASCADE continue to be updated? I hope that future versions can have a deep binding with Python, so that they can be developed using the Python language
04Author
OCCT3D do not connected with pyOCC. From our side we are planning to develop our own python wrapper which will be sync with OCCT master branch.
From my side, I have in progress my personal project, which can be a first version of that wrapper: web-preview (Light OCCT)