CLI tool
leozide/leocad avatar
leozide/leocad

LeoCAD: a desktop CAD program for building virtual LEGO models

A CAD application for creating virtual LEGO models

2,874 stars258 forksC++License varies

At a glance

What is it?
A C++ and Qt CAD tool that reads and writes LDraw part files, with per-platform downloads and a 221 issue tracker that reflects two decades of accumulated requests.
Who is it for?
LeoCAD is at its best when your source of truth is already an LDraw library and you want a real viewport, not a web app. The 26.09 release puts the effort where CAD users feel it, in undo coverage, rotation handling and high-DPI rendering, and the continuous tag keeps builds arriving between named releases.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 13 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 24, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A CAD program built on the LDraw format

LeoCAD describes itself plainly: a CAD program for creating virtual LEGO models, free under the GNU Public License version 2, running on Windows, Linux and macOS. The repository is written in C++ and the tree carries the directories you would expect from a Qt desktop application, with `qt/`, `common/`, `resources/`, `docs/` and `tools/` at the top level and `leocad.pro` as the project file.

The format underneath is LDraw, and that is the important technical fact about the project. The repository topics list includes `ldraw`, which means LeoCAD reads and writes the community part and model format rather than a proprietary one. The practical consequence is that models and the parts library are not locked to the application: a model authored in LeoCAD is a set of LDraw files that other tools can consume.

The numbers suggest a project with a long life behind it. 2,874 stars, 258 forks, and an open issue count of 221. That ratio is worth holding in mind when you read the tracker. For a desktop CAD tool of this age, a large share of those issues is usually feature requests that predate your use case rather than defects in the current build, and the release notes read like a running list of the requests that did land.

The README also carries a legal note that most projects in this space would omit: LEGO is a trademark of the LEGO Group, which does not sponsor, authorize or endorse the software. Nobody involved is claiming a partnership.

Four ways to install on Linux, one download on Windows and macOS

Installation is the part of the README that will save you time, because the Linux story has four branches and only one of them is a package manager you already use.

On Windows you download `LeoCAD-Windows.exe`, double click it and follow the installer. On macOS you download `LeoCAD-macOS.dmg`, open it, copy `LeoCAD.app` into your Applications folder and launch it from there. On Linux there is a Snap, an AppImage, a Flatpak from Flathub, and a source archive.

The command-line Snap install is the shortest of the four:

bash
sudo snap install leocad

The AppImage route requires marking the file executable before it will run. The Flatpak route carries an honest caveat about timing: there may be a delay before a new release appears on Flathub, though an already installed copy will be updated. That is a real practical difference between the options if you are trying to be on the current version on the day it ships.

The source route is the least documented. The README tells you to take the source archive from the GitHub releases page and says you will need a parts library installed separately if you do not have one, then sends you to leocad.org for compilation instructions. Two downloads are needed in that case, which is the same requirement as the binary route.

One installation note applies everywhere. The README recommends installing the latest video card drivers, because LeoCAD uses OpenGL for hardware-accelerated rendering. The 26.09 release notes follow the same theme from the other direction, listing improved high-DPI presentation with Retina text and UI scaling among the general improvements.

What the 26.09 release actually changed

The current named release, v26.09 from 2026-09-20, is mostly about editing mechanics rather than new modelling capability, and that is a reasonable read of where a mature CAD tool spends its effort.

Undo and redo were reworked across a much wider range of actions: object and model properties, grouping, duplication, visibility, keyframes, step editing, camera and light changes, painting, and mouse-driven transforms. The previous release in the list, v25.09 from 2025-09-02, was shorter and added a Train Track Layout Editor, an updated Minifig Wizard, an updated Properties Widget and Blender render support.

The rotation gizmo was replaced with a modern one offering trackball and camera-plane rotation plus camera-axis rotation with clearer direction feedback. Viewport text moved to signed distance field glyphs with configurable halos and unified overlay colors, which is the kind of change that shows up as labels that were previously blurry at certain zoom levels becoming legible.

Several project management improvements landed too: drag-and-drop reordering in the Model List, merging multiple files into a single project, opening submodels directly from the parts picker, and drag-and-drop support for both part categories and inline models. Zoom and Smart Zoom gestures were added, dialogs were refreshed across group editing, image export, set selection and update handling, and Simplified Chinese localization arrived.

macOS packaging got Universal and Apple Silicon builds, which is the change most likely to matter to anyone on recent hardware.

The continuous tag and what it means for version pinning

The release list has two kinds of entries and the difference is worth understanding before you pin anything. Named releases follow a year-month pattern, v26.09 and v25.09 being the current pair. Alongside them there is a tag called `continuous`, whose release body consists of the words Travis CI build log followed by a colon and nothing else.

An empty body is not a mistake in the record; it means the entry exists to carry a build rather than to describe a change. The README labels that tag Unstable builds and links it directly as a separate download option alongside the main site. So the project publishes nightly builds for people who want the newest code and named releases for people who want a version they can depend on, and both come out of the same repository.

For a CAD tool this distinction has a specific meaning. A model file you open in an unstable build may contain features that a stable build cannot read, and a parts library may reference part types that only a recent build knows how to render. The cost of running the continuous build is not instability in the crash sense but forward incompatibility with other people's models.

The default branch is `master`, the last push was 2026-09-24, and the repository is not archived. There is also a `.github/` directory alongside the older `appveyor.yml` used for Windows builds and a `PKGBUILD` for Arch-style packaging, plus `snapcraft.yaml` for the Snap package that the README tells Linux users to install from.

What the README leaves to the website

The README is short by design and everything beyond installation is delegated. New users are pointed at an online tutorial at leocad.org covering the first steps of using the program. Anything about building from source is described only as more information available in the documentation section of the same site.

That means the repository cannot answer the questions that actually decide whether you will use the tool. How large is the parts library and where does a new one come from? How do you set up a second window onto the same model? What are the tradeoffs between the Snap, the AppImage and a Flatpak for library paths? None of that is in the GitHub front page.

The tree hints at the scope. `docs/` exists in the repository, so some material lives there as well, and `tools/` suggests build and conversion scripts. But the repository is a delivery vehicle first and a documentation project second, which is a normal arrangement for desktop applications that have a separate website.

The README's one substantive piece of advice beyond installation is also the one most likely to be ignored until it causes trouble: install current video drivers, because rendering goes through OpenGL. On a machine with an older GPU, that is the first thing to check if the viewport opens slowly, renders incorrectly, or looks wrong at high resolution, and the 26.09 notes on Retina and high-DPI improvements make it clear that the display path is actively worked on rather than settled.

Editorial conclusion

LeoCAD is at its best when your source of truth is already an LDraw library and you want a real viewport, not a web app. The 26.09 release puts the effort where CAD users feel it, in undo coverage, rotation handling and high-DPI rendering, and the continuous tag keeps builds arriving between named releases. What the repository does not settle is where the parts library comes from or how a model moves into a render engine beyond Blender, since both belong to leocad.org and the documentation section. Download the application and its parts library together, try a tutorial model, and only then judge the plugin and build type flags.

Frequently asked questions

Is there a Lego CAD software?

LeoCAD is one, and it is a desktop program rather than a web service. It is a CAD application for creating virtual LEGO models, written in C++ with Qt, free under the GNU Public License version 2, and available for Windows, Linux and macOS. It builds on the LDraw part format, which is also how the LEGO Group's own CAD-derived formats relate.

What is the best Lego digital designer?

That depends on whether you want a polished browser tool or a real CAD application. The README for this repository points at leocad.org for downloads and a tutorial, and calls LEGO Digital Designer a separate product it is not affiliated with. For part-level editing against an LDraw library and a multi-window desktop workflow, LeoCAD is the relevant answer here.

Is there a free Lego design app?

Yes. The README states that LeoCAD is available for free under the GNU Public License version 2. Downloading it and its parts library from leocad.org is the only cost; there is no paid edition or in-app purchase described anywhere in the project.

Official sources

  1. Issues
  2. leozide/leocad on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/leozide-leocad.svg)](https://hysenlabs.com/projects/leozide-leocad)