Source-available · Non-commercial · Licensed under the PolyForm Noncommercial License 1.0.0 · Copyright Matthew Armstrong · No warranty, no liability: use at your own risk. Free for personal, hobby, study and other non-commercial use; commercial use needs my separate permission. Not legal advice. See THIRD_PARTY.md.
Early release (0.12.0). Tested in FreeCAD 1.1.4 on Linux. SimpleFlow's RUN button has been run for real against OpenFOAM v1912 (ESI) only; OpenFOAM Foundation 13, Windows and Mac are not tested yet; see RESEARCH.md. SimpleStress results are a quick check, not a certified analysis.
FreeCAD made simple: one pack, four workbenches.
- SimpleCAD: a decluttered, Fusion 360-style sketch-and-solid workbench. FreeCAD's screen is full of tools most people never touch; SimpleCAD hides them (nothing is removed) and puts sketch → solid front and centre, with one big red button that always does the next obvious thing.
- SimpleStress, SimpleFlow, SimpleSnap: foolproof, step-by-step simulations (will it break? how does air or water move? put the parts together). Each locks you into a short numbered pipeline: you can't skip a step, every refused click explains itself in plain English, and the same big red caution-tape button runs the next thing.
| Ask it | You do | |
|---|---|---|
| SimpleStress | Will my part break? | Pick one part or several, tap a material tile for each (PLA, PETG, ABS, steel, stainless, pine, oak, plywood...), say which way up it was printed or which way the grain runs, bolt parts together with virtual M3-M6 bolts (no holes needed), paint the faces that are glued or bolted, pin holes, click where it gets pushed (a small spot, shown as a twinkling red disc, or the whole face), say how hard in N, kg or lb, tilt the push with two sliders, press RUN. You get STRONG / PROBABLY OK / RISKY / WILL BREAK and a red dot on the weakest spot. |
| SimpleFlow | How does air or water move round or through it? | Choose AROUND (a wind tunnel is built for you) or THROUGH A HOLE (click the rim of each opening: IN or OUT; the water inside is worked out for you), pick air / water / oil, set the speed and tilt the wind. It picks laminar or turbulent for you and builds the CfdOF case. |
| SimpleSnap | Put these parts together. | Like Lego: click a peg, hole or flat face; it lists what fits (pegs into matching holes, flat onto flat), you choose STUCK / SPINS / SLIDES, press SNAP IT. The peg goes all the way in and the part lands the right way up. |
All screenshots are real FreeCAD 1.1.4 windows (Linux, virtual display, scripted clicks), except the deck close-ups deck.webp / swirl.webp, which are renders.
SimpleCAD
Features
-
Brushed-aluminium instrument panel: the deck is a screwed-on brushed-metal plate with engraved, recessed modules (MODE · CONFIRM · VIEW · SYSTEM), machined keys with indicator LEDs and a green phosphor readout; SimpleCAD's tool rows get the same metal and keys. The grain is a seamless generated tile (
tools/make_brushed_alu.py), so it's all offline. Turn the tool-row styling off withALU_TOOLBARS = False. -
The big red button (in caution tape, shortcut Ctrl+Enter) does the next obvious thing:
- ✏ SKETCH: sketch on the selected face, or edit the selected sketch. With nothing selected, the three planes appear in the 3D view: click one, or press the big TOP / FRONT / SIDE buttons. No side-panel list to hunt through.
- ✔ FINISH SKETCH: close the sketch and leave it selected, so Extrude / Revolve / Loft is one click.
- ✔ OK – FINISH STEP: when a tool like Pad or Fillet is open, press its OK button.
- Acid-green ACTIVE badge with rising bubbles shows whether you're in SKETCH, SOLID or TOOL mode.
- 🎯 SNAP TO FACE: look straight at the selected face (or the sketch you're in) and zoom to it.
- ⏎ ENTER button: pulses red whenever a tool (Pad, Pocket, Fillet...) is open and ready to confirm; click it, or just press Enter on the keyboard. (Enter is left alone in sketch mode, where it confirms typed dimensions.)
- Whole-solid tools (Solid toolbar): New body (works from the start page too), Duplicate, Move / turn (drag arrows and rings), Combine, Subtract (first click kept, the rest cut away) and Intersect. Every result is a new body you can keep sketching on; originals are hidden, not deleted. Each says in plain English why it won't (e.g. "These solids don't touch, so they can't become one solid").
- Make component: select bodies that belong together (a lid and its knob, a case and its clips) and they become one component (a folder that moves as one piece, like a Fusion 360 component). Nothing moves on screen. SimpleSnap snaps a component as one part. Select a component before New body to start a body inside it.
- Light on old PCs: the deck is drawn once and reused, and the badge bubbles and ENTER pulse only animate briefly when something changes, so FreeCAD sits at about 3 % CPU when idle (0.9.3 kept a core about 40 % busy).
- Sketch on a solid, snap to it: a new sketch on a solid gets that solid's edges in the sketch plane as pink reference lines (like Fusion 360), so your lines snap to them and can be made coincident. Use solid edges and Project (click any other edge) are first in the sketch tool row.
- Only the everyday tools, on their own row under the deck, and the row swaps automatically between sketch tools and solid tools. On a smaller screen (e.g. a 1366 px laptop) the labels drop to icons only, so no tool falls off the end (hover for its name). Optional auto-extrude after finishing a sketch.
- ⋯ More tools: every Part Design / Sketcher command, plus "Show all hidden toolbars" and a jump to the full Part Design workbench.
- Stays put: FreeCAD 1.x jumps to the Sketcher workbench when you open a sketch, and to Part Design whenever a Pad/Pocket/Fillet... dialog opens. SimpleCAD hops straight back without resetting anything (Declutter, deck and buttons stay as they were), and steps aside if FreeCAD ever keeps fighting it.
- Tidy panels: model tree, task panel, report view and Python console become tabs on the left, and the Tasks tab comes forward when a dialog opens.
-
🧭 Navigation readout (the green phosphor display) cycles navigation styles (all orbit around the centre of the screen unless noted):
- Fusion Trackpad: two-finger swipe pans, Shift or Option + two-finger swipe orbits, pinch zooms, two-finger double-tap fits everything; two-finger click-drag also orbits.
- TinkerCAD: right-drag (two-finger click-drag) orbits, middle-drag pans, wheel zooms.
- FreeCAD Touchpad: FreeCAD's own touchpad style.
- Fusion Mouse and Cursor Mouse (orbit around what's under the mouse) need a mouse with a middle button, so on a Mac the button skips them; they're still in More tools → 🧭 Navigation.
- Reverse trackpad directions or restore FreeCAD's original navigation from the same menu.
-
🌀 Rainbow swirl: the selected face gets a smooth, see-through rainbow spiral so you can always see what's active (opacity:
SWIRL_OPACITY). It animates gently (10 fps) and freezes to a static swirl by itself if the PC struggles; toggle it or make it static in More tools → 🎨 Look. -
🌈 Rainbow faces: every face gets its own bright, see-through colour, updated automatically after each Pad/Pocket (toggle in More tools → 🎨 Look; transparency and colour strength at the top of
SimpleCADDeck.py). - Looks: solids go even more see-through while you sketch. 🌙 Luminous (high contrast: near-black background, glowing cyan solids, neon selection) or ☀ Clean (light, soft blue-grey). Originals are backed up; More tools → 🎨 Look → Restore puts them back.
- The look stays in SimpleCAD. Switch to SimpleStress, SimpleFlow, Part Design or any other workbench and your solids get their own colours back and FreeCAD its own background; the look returns when you come back. SimpleSnap is the exception: it assembles the same bodies you model, so they keep SimpleCAD's look there.
- DECLUTTER key (amber LED when on): hides every remaining toolbar, panel and the status bar (never the workbench switcher). Press again to undo. Nothing it hides is remembered by FreeCAD, so a restart, with or without SimpleCAD, always brings everything back.
- Opens in SimpleCAD: FreeCAD starts in SimpleCAD, and a new Part Design document (e.g. the Start page's Parametric Body) opens in SimpleCAD too. Turn off with More tools → Start FreeCAD in SimpleCAD (your previous start workbench comes back). The LUMINOUS key (green LED) switches the high-contrast 3D view.
Step by step
- Start FreeCAD and pick SimpleCAD (it opens there by default).
- Click the big red button (or Ctrl+Enter) with nothing selected, then click TOP / FRONT / SIDE in the 3D view.
- Draw, then press the button again to finish the sketch; press Extrude (or let auto-extrude do it).
- While a tool (Pad, Pocket, Fillet...) is open, press Enter or the ⏎ button.
- More tools holds everything else, including Show all hidden toolbars and About.
Customise
Everything tweakable is at the top of SimpleCADDeck.py: which tools appear, icon size, colours, themes, navigation presets, trackpad speeds and the bubble animation.
The simulations
SimpleStress: PARTS > MATERIAL > DIRECTION > BOLTS > HOLD > FORCES > RUN > RESULT
- The only solid in the document is picked automatically. Ctrl+click several solids to test them bolted together.
- Materials are big colourful tiles (drawn in code, no image files): 3D printed (PLA, PETG, ABS, ASA, nylon, polycarbonate, resin), metal (mild steel, stainless, aluminium, brass), wood & board (pine, oak, plywood, MDF) and acrylic. Each shows its strength along and across its weak or strong direction.
- DIRECTION (only when it matters): how it sat on the printer (flat, on its side, on its end, or click the face that was on the bed), which way the grain runs (or click the end grain), or which way a sheet's thickness runs. A blue arrow shows it in the 3D view. The stiffness and strength then really depend on it: a PLA bracket printed on its end can be half as strong as one printed flat, and the result tells you when "layers pulled apart" is the weak spot.
- BOLTS (several parts only): pick M3, M4, M5 or M6 and stainless A2-70 or steel 8.8, press PLACE BOLTS and click where each bolt head goes. The bolt runs straight through into the part it touches; holes are optional. A bolt and nut are drawn in the 3D view; click one again to remove it. Each bolt is checked for stretching, shearing, its head or nut pulling through the part, and crushing the hole wall, and the result lists every part and every bolt. Parts touch only where bolted (cautious).
- GLUE = stuck solid. PIN = a bolt through a round hole: it can turn but not slide off. A single pin on its own is refused (it would swing like a door).
- Forces: SPOT (default): click exactly where it pushes; the force goes on a small circle there (set its size, e.g. a finger is about 15 mm, an M4 washer 9 mm), shown as a red twinkling disc. Click again to move it. WHOLE FACE: paint faces and the push is spread over them. Set how hard in N, kg or lb (kg/lb = the pull of that weight hanging on it; newtons always shown; your unit is remembered), PUSH IN or PULL OUT, then TILT (0 straight, 90 sideways) and SWING (which way it leans) with a live compass and a red arrow. Optional self-weight.
- The part wears its material in the 3D view: layer lines the way it was printed, wood grain along the grain, brushed metal, so a wrong direction is easy to spot.
- A face can't be both held and pushed. Nothing runs until something holds it and something pushes it.
- The mesh is coarsened automatically so older PCs (7th-gen Core i3) cope.
- CLEAN UP removes everything the study added, including FreeCAD's own result objects.
SimpleFlow: PART > KIND > FLUID > FLOW > CHECK > RUN > RESULT
- AROUND builds a wind-tunnel box aligned with the wind (3 lengths upstream, 8 downstream, 3 each side), cuts your part out, and labels inlet, outlet and slip side walls.
- THROUGH A HOLE: pick the part with the hole or channel in it (a drilled block, a pipe fitting, a manifold). Every opening on a flat face is found and shown as a grey disc. Tap IN or OUT next to each, or turn on IN / OUT and click the rim of the hole (or its inside wall near that end: the nearest end is used, never the whole wall). The fluid inside is worked out for you; if the channel also comes out somewhere you have not marked, it names that opening instead of letting the water leak. Unrelated holes (e.g. mounting holes) are ignored. Several inlets may face different ways.
- THE PART IS THE FLUID: if you modelled the water itself (a solid shaped like the inside of the pipe), paint the faces where it enters and leaves.
- CHECK shows the Reynolds number and whether it will be laminar or turbulent, and refuses air above 100 m/s (beyond what this setup can model).
- RUN is one green button, like SimpleStress's: it builds the CfdOF case, meshes the part (Gmsh), runs OpenFOAM on every core, with a live progress line ("Solving, step 120 of 2000") and a red STOP that really ends the solver. When it finishes it jumps to RESULT. Nothing to open in CfdOF any more (small MESH PANEL / SOLVER PANEL buttons stay for experts). RESULT reads the solver log: SETTLED, STILL RUNNING, FINISHED BUT NOT SETTLED, or BLEW UP (with advice), plus how many cells and how long it took.
SimpleSnap: PARTS > BASE > SNAP > DONE
- Tick parts to add them. Your own bodies go into the assembly, no copies are made: snapping moves the real part, so SimpleCAD and SimpleStress see it where it was snapped. Parts stay where they are; one that overlaps another is slid aside first.
- Components: bodies that move together (a lid and its separate knob) can be added as one component (select them, then + ADD SELECTED AS ONE COMPONENT), or made beforehand with SimpleCAD's Make component. Each body on its own is its own component.
- An assembly already in the file is picked up again when you come back (also after reopening the file).
- START AGAIN puts every part back exactly where it was (same place, same folder) and splits components SimpleSnap made back into their bodies.
- The base is fixed to the table (first part by default).
- Click a face on the part you want to move. Matching faces on other parts are listed best-first (a perfect fit is chosen for you). Choose STUCK, SPINS, SLIDES, SPINS & SLIDES or BALL JOINT where it makes sense, then press the big red SNAP IT.
- OTHER END pushes a peg in from the other side of a through-hole; FLIP LAST, UNDO LAST.
- Snapping two parts that are both already attached is refused (it would jam the assembly). NEXT unlocks only when nothing is loose.
Files
| Path | What |
|---|---|
InitGui.py, SimpleCAD*.py, icons/
|
SimpleCAD itself (deck, solid tools, trackpad, swirl, metal panel) |
SimpleStress/, SimpleFlow/, SimpleSnap/
|
The simulations (each: InitGui.py, *Boot.py, *UI.py screens, *Logic.py plain-Python rules, *Backend.py FreeCAD calls) |
simplewiz/ |
The simulations' shared core: step-locking wizard, caution-tape panel, face picker, geometry, 3D overlays |
install.py + launchers |
Installer window (install, start FreeCAD, check, uninstall) |
tests/ |
Unit/UI tests (no FreeCAD needed) and tests/freecad/ scripts that run in real FreeCAD |
RESEARCH.md |
Sources, measurements, decisions, and what is not verified yet |
HOW_IT_WORKS.md |
What it reads, changes and never does |
Build and test
Nothing to compile. The heavy work is done by FreeCAD, CalculiX, Gmsh, OpenFOAM and FreeCAD's assembly solver.
pip install -r requirements-dev.txt # PySide6, only for the tests
QT_QPA_PLATFORM=offscreen python3 -m unittest discover -s tests
# real FreeCAD (Linux, AppImage extracted to ./squashfs-root):
FREECAD=./squashfs-root/AppRun tests/freecad/run_all.sh
Version
One version for the whole pack. It is in SimpleCAD's About box, the deck's tooltip and the status bar, in every simulation panel's title and status line (e.g. SimpleStress 0.12.0 (Built 2026-10-16 00:58)), and in python3 install.py --version.
Source code: The-Dorkknight/simplecad on GitHub
















Top comments (0)