QymCAD is a free, open source design & prototyping project written in Rust and released under AGPL-3.0. It has 539 GitHub stars, 26 forks and 35 open issues, and was last pushed 5 hours ago. On this registry it ranks #83 of 85 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available.

What is QymCAD?

QymCAD is a free, self-contained parametric 3D CAD desktop application for mechanical designers, makers, and 3D-printing hobbyists who want exact B-rep modelling without a cloud account or a subscription.

What it is

QymCAD is a desktop CAD program for mechanical parts and assemblies — housings, brackets, mechanisms, printed and milled work — written in Rust and running on the OpenCASCADE B-rep kernel, the same kernel FreeCAD uses. Its workflow runs sketch → part → assembly inside one program with one .qcad project file, and the interface is available in English, Ukrainian and Russian.

The concrete problem it solves is exactness without proprietary tooling: geometry is stored as precise solid B-rep surfaces rather than triangle meshes, so fillets come out correct, surfaces stay precise, and parts can be exchanged through STEP with other CAD systems. Because the model is parametric and associative, changing a dimension in any timeline operation rebuilds everything below it, including the assembly, and a sketch placed on a neighbouring part's face as an associative reference rebuilds the dependent part when the neighbour changes.

Key capabilities

  • Sketch lines, arcs, circles, ellipses, splines, polygons, slots and text, with constraints and dimensions solved together and dimensions written as parametric expressions such as w/2 or sin(a), plus construction geometry and projection of a body's edges into the sketch.
  • Turn sketches into solids with extrude, revolve, sweep and loft, then modify them with fillet (including variable radius set at vertices), chamfer, shell, draft, holes (plain, counterbored, countersunk), thicken, patch, stitch, trim, split, face copy, face push, linear and circular patterns, mirror and booleans, alongside primitives such as box, cylinder, sphere, cone, torus and prism.
  • Build threads from a real helical profile with run-outs rather than cosmetic thread textures.
  • Assemble parts and sub-assemblies with rigid, revolute, slider, cylindrical, planar, ball, pin-slot and parallel joints, including limits, drives, degrees of freedom and an interference check.
  • Exchange geometry through STEP import and export, STL import and export, and DXF and SVG import and export of sketches, exporting either the whole project or a single part or sub-assembly selected in the tree.
  • Open the built-in illustrated help with F1, with the articles living in docs/help.
  • Convert documents saved by earlier versions with python3 convert_qcad.py part.qcad, which converts in place and leaves a part.qcad.bak beside it.

Who uses it and how

  • Mechanical designers producing housings, brackets and mechanisms who need a timeline of operations that rebuilds when a dimension changes.
  • 3D-printing hobbyists and makers who sketch a part, extrude or revolve it, apply fillets and holes, and export STL for printing.
  • Milled-work designers who export STEP to exchange precise solid geometry with other CAD systems and CNC workflows.
  • Cross-platform users running natively on Windows 10/11 x64, on Linux as a single AppImage on glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora 36+, Arch), or on macOS 12+ Apple Silicon.
  • Multilingual teams working in English, Ukrainian or Russian.

Getting started

Grab qymcad-win64.zip or the qymcad-*.AppImage from the Releases page — no extra libraries are needed, since OpenCASCADE and all dependencies are inside the package — unpack or chmod +x and run qymcad.exe or the AppImage directly.

How it compares

Among the tools named in its own documentation, QymCAD sits alongside FreeCAD, sharing the OpenCASCADE kernel that gives both exact B-rep geometry, STEP exchange and correct fillets. What distinguishes it is the packaging described in its README: one program, one .qcad project file, no cloud and no subscription, distributed as plain self-contained builds under AGPL-3.0.

When to use it — and when not

QymCAD is a development build: it works and is fit for real parts, but it is updated daily, the document format changes with no backward compatibility so an earlier file may not open without convert_qcad.py, the CNC (CAM) module does not work and returns only for the stable alpha, and the macOS build carries no Apple signature, requires clearing quarantine by hand, and exists for Apple Silicon only. Anyone needing a stable file format, working toolpath generation, an Intel Mac build, or a long-term support guarantee should not pick it yet, and self-hosters should note there is no server or service component here — only a desktop application to install.

project readme (upstream, from github) — read inline

QymCAD

A parametric associative CAD on a B-rep kernel

Sketch → part → assembly. One program, one project file, no cloud and no subscription.

cad.qymis.tech

English | Русский | Українська

What it is

QymCAD is a desktop CAD for mechanical parts and assemblies: housings, brackets, mechanisms, printed and milled work.

A sketch becomes a solid by extruding, revolving or sweeping; the solid takes holes, fillets, a shell, patterns. Parts come together into an assembly through joints — revolute, slider, rigid. The model is parametric: change a dimension in any operation and everything below it in the timeline rebuilds, the assembly included.

The geometry is exact and solid (B-rep), computed by the OpenCASCADE kernel — the same one FreeCAD runs on. Hence precise surfaces instead of meshes, correct fillets and exchange through STEP with other CAD systems.

The interface is available in English, Ukrainian and Russian.

Status

A development build. The program works and is fit for real parts, but it is updated daily.

  • The document format changes with no backward compatibility. A file saved by an earlier version may not open. For such files there is the convert_qcad.py script (see below).
  • The CNC (CAM) module does not work. The settings do carry a “Machining” tab (CAM) checkbox, but what is behind it is groundwork: part of the code came from an earlier version and is not maintained. The module returns for the stable alpha.
  • The macOS build carries no Apple signature. macOS marks a downloaded application as quarantined and refuses to open it, saying it is damaged - it is not. The mark is cleared once, with one command, written out step by step in the notes inside the archive. Apple Silicon only; there is no Intel build.

Features

Sketching. Lines, arcs, circles, ellipses, splines, polygons, slots, text. Constraints and dimensions are solved together; dimensions are parametric (w/2, sin(a)). There is construction geometry and the projection of a body's edges into the sketch.

Parts. Extrude, revolve, sweep, loft, fillet (including a variable radius set at vertices), chamfer, shell, draft, holes (plain, counterbored, countersunk), thicken, patch, stitch, trim, split of faces and of a body, face copy and face push, linear and circular patterns, mirror, booleans, and the primitives: box, cylinder, sphere, cone, torus, prism. Threads are built from a real helical profile with run-outs.

Assemblies. Parts and sub-assemblies, joints (rigid, revolute, slider, cylindrical, planar, ball, pin-slot, parallel), limits and drives, degrees of freedom, an interference check. A sketch can be placed on the face of a neighbouring part as an associative reference: change the neighbour and the dependent part rebuilds.

Exchange. STEP (import and export), STL (import and export), DXF and SVG (import and export of sketches). Either the whole project or a single part or sub-assembly picked in the tree can be written out.

Installation

The builds are in Releases. No extra libraries are needed: OpenCASCADE and the dependencies are inside the package.

Windows 10/11 x64 — qymcad-win64.zip. Unpack anywhere and run qymcad.exe.

Linux — qymcad-*.AppImage, a single file. Requires glibc 2.35 or newer: Ubuntu 22.04+, Debian 12+, Fedora 36+, Arch.

chmod +x qymcad-*.AppImage
./qymcad-*.AppImage

macOS 12+ (Apple Silicon) — qymcad-*-macos-arm64.zip. Unpack it and read README.txt lying beside the application: the build carries no Apple signature, so the quarantine mark has to be cleared once, before the first launch. It takes one command and is written out step by step.

Help

The built-in help opens with F1. The articles, with illustrations, live in docs/help.

Project files

A document is saved as .qcad. The format changes directly, with no compatibility layer; documents from earlier versions are brought forward by a separate script:

python3 convert_qcad.py part.qcad    # converts in place, keeping part.qcad.bak beside it

The script brings a document forward from any earlier version in one pass and is idempotent.

Building from source

Linux — just pkg-linux, Docker required. Windows — MSVC with the kernel built from source. macOS — the kernel from source as well, then packaging/macos/bundle.sh. The details are in packaging/README.md.

Contributing

See CONTRIBUTING.md.

Licence

The code is distributed under AGPL-3.0-or-later: a fork and any derived build stay under the same licence with open sources.

The OpenCASCADE kernel comes under LGPL-2.1 with an exception and is linked dynamically; the fonts and the icons come under licences of their own. All of it is listed in THIRD-PARTY-NOTICES.md, and that file is placed beside the program in every package.


QymIs Tech — qymis.tech. Author: Denis Kazachenkov.

Frequently asked questions

Is QymCAD free to use?

QymCAD is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does QymCAD do?

Parametric 3D CAD with a real B-rep kernel (OpenCASCADE)

What is QymCAD written in?

QymCAD is primarily written in Rust. Its source is publicly available at https://github.com/QymIs-Tech/QymCAD, and it has 539 GitHub stars.