
Next Release
Next Release.
The roadmap provides broad objectives for the direction of FreeCAD development.
This document describes several high-level objectives for the FreeCAD project. Rather than being a laundry list of development tasks, it focuses on a small set of strategic initiatives that, if achieved, will move FreeCAD closer to an ideal future state.
You can read more about the rationale for having a roadmap.
This roadmap outlines broad strategic objectives. Code contributions from developers will always be evaluated on their merits but are more likely to receive timely attention and be successfully merged if they are consistent with the stated objectives of this roadmap.
These objectives described here are very broad. Some of them are very ambitious and will take a long time to achieve. Others will never be fully achieved or ‘done’. For that reason, it’s helpful to pick a specific set of goals to focus on for the next release. This page broadly describes the major goals for the next release.
Robust, stable models are a necessary precursor to widespread adoption of FreeCAD. Some types of breakage are the unavoidable result of poor design practices by the user but FreeCAD must commit itself to reducing or eliminating as many causes of breakage as possible. Focus areas include:
Toponaming Resolution and Optimization
Reduction of sketcher solver errors
UI/UX features that promote better modeling practices and avoid brittleness.
Improved stability around linked documents
Assembly is a core feature of modern CAD systems. Without an integrated assembly capability, users are forced to use one of several add-on options. With competing alternatives available, collaboration and interoperability is negatively affected. Adoption of an assembly workbench should consider, at a minimum, a base set of features including
CAD is hard. These are complicated and powerful tools and the user should be expected to invest appropriate time to learn to use them well. However, UI/UX inconsistency makes the learning process more difficult than it need be. The FreeCAD community must pursue a program of UI normalization to make learning FreeCAD easier.
The first step in this process is to stop making things worse by accepting UI submissions that are poorly designed or implemented. Focus areas:
FreeCAD has an addon manager to allow the user to add niche features. This provides two important functions. First, it allows the core application to remain leaner and avoid bloat. Second, it allows for competing solutions early on. Our approach to addons, however, has been somewhat undisciplined. As a result, the quality of addons is very uneven. Some are excellent and behave like native parts of the application. Others feel and behave inconsistently. Still others are completely broken or unmaintained. If we want the addon capability to serve both purposes, additional development is needed. Focus areas include:
Documentation has become as important as the FreeCAD application itself. Good documentation can offer a bridge to new users and smooth the learning curve. It can make all the difference between an application that is hard to use and one that is easy to learn.
The FreeCAD documentation is generally in a very good state already. But it could, and should, go much further. Focus areas include
We want the FreeCAD application to be both efficient and attractive. We want it to integrate well with the rest of the desktop experience, to be responsive and to be delightful to use. Focus areas include:
Performing common and repetitive tasks should be as effortless as possible. FreeCAD developers should commit themselves to building efficient workflows throughout the application. This means minimizing clicks and unnecessary dialogs. It means adding dedicated tools for routine functions rather than relying on generalized tools that may require more steps. It means anticipating and giving the user efficient access to information when and where they need it. Focus areas include:
FreeCAD has an enormous number of functions and for a new user, there is no obvious way to use just a task oriented subset. It should be possible for new users to access a subset of FreeCAD functionality, say on the level of a TinkerCAD. As they gain experience, they can use additional functions.
FreeCAD has a major terminology problem for new users. We have a Part workbench that doesn’t make Parts and a Part Design workbench that isn’t used to design Parts. We have Pads and Extrudes, Pockets and Cuts, Fuses and Unions, etc. We have a Part container and a Group container(?) but no core functions to populate a container (ex a core assembly function)..
Forum comment regarding nomenclature: https://forum.freecad.org/viewtopic.php?p=669869#p669869
FreeCAD allows users to do things that are known to build fragile models, such as building features based on variable foundations (ex Sketches on Faces, Dimensions based on drawing lines). We even have icons and commands for doing this. FreeCAD should prevent “dangerous” actions, convert them behind the scenes to safe actions or at least provide a warning about unsafe practices.
Next Release.
Roadmap Rationale.