FreeCAD Core Architecture Developments

This article provides an overview of the ongoing and planned architectural developments for the FreeCAD open-source parametric 3D modeler. Driven by the FreeCAD Project Association and community contributors, these future core changes focus on stabilizing geometry handling, decoupling the software's underlying subsystems, overhauling the assembly framework, and modernizing the dependency stack to ensure high performance and long-term maintainability.

Topological Naming Problem (TNP) Resolution and Consolidation

The primary architectural milestone for FreeCAD has been resolving the Topological Naming Problem, where internal identifiers of geometric elements (such as faces, edges, and vertices) shift after a parametric edit, causing downstream features to break. The implementation involves a persistent topological naming algorithm directly within the App and Part core modules. Future developments focus on refining this integration across all core workbenches, optimizing cache mechanisms to reduce document recompute overhead, and finalizing API stabilization so that custom tools can rely on immutable element referencing.

Core Decoupling and Headless Architecture

FreeCAD is actively restructuring its foundational codebase to enforce a strict separation between the core application logic (App) and the graphical user interface (Gui). Architectural plans aim to:

  • Enable Full Headless Execution: Allowing FreeCAD to run as a pure geometry calculation engine without invoking any Qt or OpenGL dependencies, which facilitates server-side parametric modeling and continuous integration pipelines.
  • Modular API Layer: Creating clear, stable C++ and Python APIs that insulate core functionality from interface updates.
  • Web and Cloud Enablement: Laying the groundwork for cloud-native implementations and remote rendering services by isolating document recompute loops from the desktop window manager.

Native Assembly Framework Integration

Historically, assembly functionality in FreeCAD was fragmented across multiple community-developed add-ons. The modern architecture integrates a standardized, native Assembly workbench directly into the core distribution. Future developments include:

  • Core-Level Constraint Solver Integration: Embedding a dedicated constraint solver natively into the core data model rather than relying on external workbench-specific logic.
  • Hierarchical Document Structuring: Optimizing how FreeCAD manages multi-file documents, large assemblies, external references, and proxy objects to prevent memory bloat and file corruption.

Upgrades to Geometry and Rendering Pipelines

FreeCAD's core relies heavily on Open CASCADE Technology (OCCT) and Coin3D. Architectural roadmaps target several foundational updates to these third-party integrations:

  • OpenCASCADE Modernization: Continuously adapting to the latest OCCT releases to benefit from improvements in boolean operations, fillet algorithms, and parallelized geometry processing.
  • Scenegraph and Viewport Upgrades: Modernizing the 3D rendering pipeline to replace legacy Coin3D limitations with modern OpenGL or Vulkan-based renderers, providing hardware-accelerated rendering, ambient occlusion, and modern real-time lighting.

Multithreading and Asynchronous Document Recomputes

FreeCAD's core document object model currently executes most operations synchronously on a single CPU thread. Future core improvements aim to introduce asynchronous evaluation:

  • Dependency Graph Parallelization: Analyzing the Directed Acyclic Graph (DAG) of document features to execute non-dependent feature calculations simultaneously across multiple CPU cores.
  • Non-Blocking UI: Decoupling long computational recomputes from the main application thread to ensure the user interface remains responsive during complex geometry calculations.