Open CASCADE Technology Version 8.0.0 Release Candidate 2
Open Cascade is delighted to announce the release of Open CASCADE Technology version 8.0.0 Release Candidate 2
to the public.
(Release Candidate 1: https://github.com/Open-Cascade-SAS/OCCT/releases/tag/V8_0_0_rc1)
Overview
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
- Fixed WinAPI resource leaks #625
- Fixed include brackets type issues #635
- Geom package copy optimization #645
Build System and Configuration
- 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
- Implemented flexible project root configuration #641
- Fixed build config file validation issues #647
- Disabled GLTF build without RapidJSON #646
- Fixed link errors on macOS when not building using vcpkg #609
- Fixed CSF variable overwriting issues #561
- Fixed paths to 3rd-party in cmake configuration #523
- Fixed ARCH detection for older 32-bit Macs #626
- Removed unused CMake scripts and dependencies #644, #581
- Fixed samples CMake configuration #643
Modeling
- 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
- Updated Graphic3d_Aspects::PolygonOffsets documentation #519
- Marked Immediate Mode rendering methods as deprecated in AIS_InteractiveContext #521
Data Exchange
- Fixed GLTF indices parsing during array processing #602
- Implemented non-uniform scaling in GLTF Import #503
- Fixed GLTF saving edges when Merge Faces is enabled #554
- Changed GLTF export line type to LINE_STRIP #535
- Fixed missing GDT values in STP Import #617
- Preserved control directives in Step Export #601
- Ignored unit factors during tessellation export #577
- Applied scaling transformation in Step Export #513
- Fixed missing Model Curves in IGES Export transfer cache #483
- Fixed XCAFDoc_Editor::RescaleGeometry not rescaling translation of roots reference #529
- Fixed facets with empty normals handling in RWObj_Reader #520
- Added conversion utilities for STEP geometrical and visual enumerations #545
- Added missing headers #530
- Optimized StepData_StepReaderData #543
- Optimized entity graph evaluating #562
- Removed GLTF files from XDEDRAW #649
- Removed unused dependencies from TKXDEDRAW #650
Testing
- Updated GitHub Actions to use latest versions #640
- Added performance summary posting to PR #612
- Fixed master validation workflow #611
- Added daily vcpkg package validation #605
- Updated samples C++ version #606
- Removed extra GitHub jobs #594
- Added ASCII code validation #593
- Migrated PR actions to VCPKG-based #587
- Added compilation on Clang without PCH #540
- Enabled IR integration concurrency #531, #536
Draw and Tools
- 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 #609
Full Changelog: V8_0_0_rc1...V8_0_0_rc2