ILIA SIDOROVMASKLESS LITHOGRAPHY ENRU Get in touch
OTHER PROJECTS · FREECAD WORKBENCH
FreeCAD logo

HybridDesign

A workbench for FreeCAD 26.3 that models the way Fusion 360 does.

A command ribbon with Fusion's names and shortcuts, extrude and revolve by sketch region, Press Pull, Shell, Joints. It sits on top of the stock PartDesign, Part, Sketcher and Assembly, so the file stays a plain .FCStd that opens without the workbench.

  • Python
  • FreeCAD 26.3
  • OpenCASCADE
  • Qt / Coin3D

v0.1.0 · in daily development · proprietary licence

Screen recording, 14 September 2026, ×2
Who it's for

Fusion 360 habits, without Fusion 360's strings

For people who learned to model in Fusion 360 and want to keep working that way, but can't or won't depend on it.

No cloud, no sign-inFusion needs an Autodesk account and has to go online regularly. FreeCAD with HybridDesign runs fully offline, and your files stay on your disk.
No licence surprisesNo subscription terms that change under you and no feature limits on a personal licence. FreeCAD is open source.
Lower costNo per-seat subscription for every engineer; FreeCAD itself is free.
Closed networksGovernment agencies, defence and other air-gapped sites can't run cloud-bound CAD. A local, offline tool can go there.
359
commits, 10–22 Sep 2026
~100
test files, headless and GUI
106
command icons, light and dark
up to 12×
faster Press Pull preview

What it adds to FreeCAD

  • Ribbon panels Create, Modify, Assembly, Construct, Inspect and Sketch, named as in Fusion
  • Fusion's keys: E, Q, H, F, M, J; conflicting FreeCAD shortcuts are parked and given back on exit
  • Extrude and Revolve by sketch region, with Objects To Cut and new bodies from pieces
  • Hole by point, circle or edge; threads and counterbores
  • Press Pull and Offset Face, including faces next to fillets
  • Shell, Draft, Scale, Combine, Split Body, body patterns, Move/Copy
  • Joints and as-built joints with Fusion's joint types and limits
  • Automatic references between bodies: sketch on another body's face, cut several bodies at once
  • Retries when the kernel refuses, for example Fillet with a smaller radius
  • Imported STEP parts work in every body command
  • Layout grid, section view with hatching, Material 3 light and dark themes
  • Render cache and two-stage display for heavy assemblies
Development log

What changed, newest first

Written from the commit history. Timings are measured on a Ryzen 5 5600U laptop: in the FreeCAD GUI on FreeCAD 1.1.1 / OCCT 7.8.1 for entries up to 30 Sep, on our FreeCAD 26.3 build with OCCT 8.0.1 from 3 Oct.

RSS: this log RSS: all my dev logs

A whole linear module, assembled in our FreeCAD build

The linear module of the motion platform was modelled and assembled in our FreeCAD 26.3 build from a library of catalogue parts: plates, crossed-roller guides, ball screw and supports, servo, optical scale, limit switches and every screw, each hole checked against its mating part. The video shows the real fitting order; the same steps are interactive on the motion platform page.

The assembly in 32 steps, silent, with captions.

PartDesign patterns work, and Cancel really cancels

  • Patterns. Circular, Path and Point patterns exist in FreeCAD 26.3, but their view providers were never registered, so the features could not be opened or edited. The registration from current FreeCAD main is now in our build, and all three open and edit like the other patterns
  • Cancel and Undo in PartDesign panels. A panel opened its undo transaction only after the first change, so Cancel kept the first edited value and Undo could restore the wrong visibility. The transaction now opens before the panel touches anything, in the shared panel code, so every PartDesign panel restores exactly the state it found
  • Reproducibility, found in stock. Booleans run in parallel, and the tolerances they write can differ from one run to the next on the same model: fifteen runs of the same test gave fifteen different results. Before any fix we are measuring how large the spread is and whether it ever changes the outcome; the aim is a deterministic result without giving up the parallel speed
  • Checks. Error and warning pop-ups now fail a test with their full text, like errors in the console, the Report view and the log
  • Still open. Like many stock features, a circular pattern can still change the tolerances of the part it is built from; that whole class is being fixed separately

Fixing the base first: FreeCAD bugs under the workbench

A workbench cannot behave well while the FreeCAD underneath it misbehaves, so the plan now puts the base first: every bug HybridDesign trips over is fixed where it starts, in FreeCAD or OCCT, and the workaround in the workbench is then removed. HybridDesign keeps working on the standard FreeCAD document, so files stay editable in plain FreeCAD.

  • Object lifetime. Commands and observers could keep working on a document or object that was already being closed or deleted and crash. They now check that what they use is still alive
  • Undo and Cancel. Several paths left a half-restored state: an attachment evaluated in the middle of an undo, a cached shape kept after a cancel. Undo and Cancel now return exactly the state that was there before
  • Uninitialised data in the sketch editor could throw the view off. It is now initialised at the source
  • Honest refusals. When a feature cannot be built correctly, its panel says why instead of leaving the user guessing
  • Checks. Every user-path test now fails on any new line in the Python console, the Report view or the log, not only on a traceback, and workbench commands are tested the way a user drives them
  • Found in stock FreeCAD 26.3 / OCCT 8.0.1: operations that modify their inputs. With Refine on, many feature types quietly change the part they are built from (its tolerances and curves). A permanent detector now fingerprints every input before and after each feature; a fix that protects inputs and keeps every topological name is in testing
  • Found in stock: precision lost on save. Shapes are written into .FCStd with a fixed number of decimals, so very small values lose significant digits every time a file is saved
  • Found in stock: a check that never fires. The shell check inside Refine never sees free edges, so an open shell can be flipped by a meaningless volume sign. A fix that computes the check before reading it is in testing
  • Next. PartDesign Circular, Path and Point patterns, which stock 26.3 ships without a registered view provider

Our own FreeCAD 26.3 build: what it changes against stock

HybridDesign moved onto our own build of FreeCAD 26.3.0dev with OCCT 8.0.1. A few dozen of its 20,725 files are changed or added; everything else is stock. The work goes by classes of problems: each fix covers a whole family of shapes and is checked against stock and against Fusion 360 as a reference.

  • Booleans on periodic surfaces. Cylinders, cones and threads have a seam, and faces that cross it or span more than one period could leave material behind after a cut. The boolean now splits such faces correctly; wrong results on our test families are gone
  • Fillets at seams and closed contacts. A fillet that crossed the seam of a closed face, or closed on another face, failed or added material instead of removing it. The blend now treats the seam and the closed contact as a general case and matches Fusion 360 on the test families
  • Fillet tolerances. Fillets are written with an honest tolerance margin, so the body stays valid after it is moved or rotated
  • Chamfers that fold over. A chamfer larger than the local curvature, or one running along tangent edges, could give a silently invalid body. It is now trimmed where the band folds and stays exact
  • Silent failures. Offset, Thickness, Draft, Sweep and Defeaturing could return a broken or unchanged body without a word. When they cannot build, they now say why and where
  • Mass properties. Volume, area and centre of mass of curved bodies could be off by several percent. They are now integrated exactly
  • Kernel speed. Meshing of faces with many holes, cuts of long free-form faces, validity checks, ShapeFix and Refine are several times faster. Where exactness costs time, the cost is measured and stated, not hidden
  • PartDesign dress-up. Chamfer measured its size and angle from the wrong face on many edges; cancelling a fillet or chamfer could damage the original part; an invalid result could be accepted. All three are fixed for the whole feature family
  • Interaction speed. After an edit only the changed faces are meshed again, and picking under the cursor on very large models takes well under a millisecond
  • Assembly. The solver did not hold joint limits reliably and could move the wrong part; rack-and-pinion and screw joints did not solve. Limits now hold, the edited part is the one that moves, and those joints solve
  • Next. A shell after a fillet, and curve errors after reading some STEP files

Display quality that never leaks into a file

Heavy parts are drawn coarse while you edit and exact when idle; that temporary setting is now never written into the document.

  • A file damaged by the old behaviour is repaired when it opens
  • The progress window for long opens keeps its timing under load
  • A GUI test suite built on the structure of a real working file

A smoother viewport on heavy assemblies

  • Orbit picks its pivot without a stall: last preselection first, an exact pick only when it is cheap
  • Hover highlighting picks only where the cursor rests, never while a button is held
  • One frame per recompute instead of repainting in the middle of it
  • Render cache pinned only for parts up to 100 k triangles; heavier ones stay automatic
  • A fillet survives when its edge is made longer and FreeCAD loses the edge mapping

Viewport and panels: 177 commits in a day

  • Two-stage display for heavy parts, with a mesh cache on disk
  • Section view with hatching by the drafting standards and a live drag
  • Horizon levelling, zoom clamp, a pastel palette shared by all bodies
  • Picks keep their identity in Offset Face, Press Pull, Draft and the panels
  • Fillet shows its preview first, and every row keeps its own edge
  • FreeCAD's console output became an acceptance check: a run with new warnings fails

Press Pull preview: up to 12× faster on large parts

On large parts most of the Press Pull latency went into building the coloured preview: colouring the preview repeated work the offset had already done. The preview now reuses the regions the offset already built, so the cost no longer grows with the number of faces in the part.

  • Preview of a face offset: up to 12× faster on a large real part, about 4× on a face with hundreds of neighbours
  • Typing a distance updates the status in about 10 ms instead of about half a second

Its own icons, a render cache, Press Pull next to fillets

  • 106 command icons redrawn; every colour greys out when a command is disabled
  • Coin render cache on every part, and HybridDesign's first Preferences page
  • A progress window while a file opens or imports
  • Press Pull on faces next to fillets: offset them together or keep the fillet radius

Imports, themes and Fusion's layout grid

  • Imported STEP parts, primitives and links work in every body command
  • Extrude from any sketch region, a Revolve panel, pieces become bodies
  • Live previews for patterns, Mirror and construction planes
  • Fusion's layout grid in every 3D view; Material 3 light and dark themes
Screen recording from that day, played at ×2.

A real ribbon

  • Tabs, panels, big icons with labels, overflow per panel
  • The sketch hides after the operation that used it, as in Fusion
  • References between bodies stay live in both directions
  • A cylinder seam in the way is moved instead of failing the feature
  • GUI tests run offscreen, so a test run never takes over the desktop

Day one: the spec and the operations layer

  • Design specification, package skeleton, headless test runner and GUI harness
  • Extrude and Revolve with directions, cuts across several bodies
  • Holes with threads and counterbores, Combine
  • Joints with Fusion's types, limits and offsets; as-built joints
HybridDesign

Want to try it or follow along?

The workbench is not published yet. Write to me if you model in FreeCAD and want Fusion's workflow there, or if you need a FreeCAD tool built for your team.