LibreCAD vs. QCAD, the war of forks that never happened


It’s quite disturbing how much controversy a small software niche can get in a relatively small timeframe. As if recent LibreDWG story wasn’t quite sufficient, the most recent news is that Ribbonsoft is not going to release Community Edition of QCAD right now.

The background

QCAD is a CAD system for Windows, Mac and Linux, created by Ribbonsoft and available in two editions: the commercial one and the free one called Community Edition (GPLv2).

Isometric grid and projections in QCAD. Screenshot courtesy by qcad.org.

Isometric grid and projections in QCAD. Screenshot courtesy by qcad.org.

The difference between commercial and free versions was mostly about amount of features and the date of availability. According to Andrew, the time gap between them was usually about a year, and it increased while the lead developer was working on QCAD 3, since there was nothing new to release during that period of completely rewriting QCAD.

Indeed, around 2009 the company started rewriting QCAD and released the first public beta version of QCad v3.0 in August 2011. It was the first new public release of QCAD since late 2009. The community edition was years old by the time. The final release of QCAD 3.0 followed in summer 2012.

Before you ask, according to Ribbonsoft, the whole idea of mixing the open source and the closed source business models wasn’t exactly controversial. Andrew says that feedback about QCAD, the QCAD community edition and the business model was mostly positive with very few negative voices.

The lack of strong opinions on the matter could partially be explained by the lack of source code contributions. Reportedly, there have been few patches and more other kinds of contributions — translations, CAD part library items, fonts, hatch patterns. All in all, no reason for hard feelings.

According to Andrew Mustun, an open source version of QCAD 3 was also planned and would have made perfect sense from a community perspective as well as a business perspective:

Some chosen script extensions and modules could have been released under a different license, creating a new business model.

What happened?

LibreCAD arrives

In 2010, Ries van Twisk decided to add CAM features to the Community Edition of QCAD and instead got himself into working on the Qt4 port and then on the core features of what later became LibreCAD.

When I started to do the work and looked around, I noticed there where a lot of complains about that QCad CE was only available for Qt3, and if I would give my CAM program any change to be used by others, I came to the conclusion that I needed a version of QCad in Qt4…

So I decided to make my own port, this would lead me to the advantage of knowing QT’s internals better, in case I needed to know that during my CAM project.

Meanwhile in Ribbonsoft:

While QCAD 2 was being forked into LibreCAD, I was busy working on QCAD 3 which provides a much better architecture for extending and maintaining QCAD and offers a very powerful and complete scripting interface.

Somewhere in the middle of it Ribbonsoft found out that LibreCAD was still using data that didn’t have the same license as the code, and requested the LibreCAD team to remove it.

The LibreCAD team ended up writing new help system and creating new CAD fonts to replace the sorely missing bits of the application.

The rivalry, or lack thereof?

As QCAD 3 was finally released to the masses in mid-2012, people began to wonder if the Community Edition was coming. Some even acquired a license in order to support the QCAD developer and encourage him to release the free version. However, Andrew has a different point of view:

The arrival of LibreCAD makes a new open source release of QCAD 3 in the near future less likely. There is little motivation for me to release anything as open source, knowing that it will immediately be forked.

A fork of QCAD 3 would create redundancy, take away development funding for future versions of QCAD and last but not least challenge my family’s income. Needless to say that all these things are undesirable to me.

This is where the two teams provide mutually contradictory information. According to Andrew:

They (LibreCAD team) never contacted me about this fork or requested any kind of cooperation which would have been my preferred way of doing things. I’d like to point out that the people behind LibreCAD have chosen to be competitors rather than collaborators of QCAD. It is a valid decision, but I cannot emphasize enough that this is their choice, not mine.

Whereas Ries says:

I did contact through the forum, maybe not a direct “I offer to help, here are my generous patches” offer, but reading the response from Andrew, and I am sure you would admit it wasn’t very inviting to work on porting QCad 2.0 to QT4 and supply patches when he was working on Qt3 and not even sure about releasing QCad 3 as GPL.

You are, of course, at liberty to draw your own conclusions, but here it looks more like a rather unfortunate misunderstanding between the two teams. All the better that neither of them is willing to get involved into any further controversies.

In fact, calling the data license incident a controversy would be an exaggeration: both sides came to terms with each other faster than you could say “versus”.

With LibreCAD anf QCAD now going their separate ways there are just few more things to discuss here.

The nearly forgotten CAM module

Since all this fuzz started from a mere wish to get CAM features into QCAD CE, what’s up with CAM in both applications?

Ries van Twisk eventually came back to his original plan and did some work on a CAM module which is available on Github. In December 2012 he stated in a public mailing list:

The current status is that some dialogs are working, but none of the CAM functions are implemented. However, it does give you an idea how plugins in LibreCAD work.

There’s also a prototype of a CAM plug-in by Dietmar Kühn that was last updated about a year ago.

As for QCAD, the situation is not a lot more different there. An automated CAM module for QCAD 3 is currently at alpha stage.

QCAD or LibreCAD?

How much do these two applications differ by now? If you take a closer look at QCAD 3.0 and recently released LibreCAD 2.0beta2, you’ll see that the difference is already increasingly large.

Properties editor in QCAD screenshot courtesy by qcad.org

Properties editor in QCAD screenshot courtesy by qcad.org

Here’s just a raw list of the most important changes from QCAD 2.x to QCAD 3.0:

  • multipage printing;
  • SVG export and import;
  • a new property editor;
  • a new part library browser;
  • working with selection modes;
  • scripting with JavaScript;
  • completely reworked text editing.

As for LibreCAD, a lot of work has gone into making various internal adjustments. The team made some important geometry improvements and added the anticipated advanced snapping. Unfortunately there are some issues as well.

Judging by reports from users, LibreCAD has a problem working with large files, while QCAD handles them rather well. This was going to be addressed by a kernel rewrite, which also involved GPU-based rendering (successfully tested with 1 million lines), but LibreCAD is badly out of active contributors to pursue this goal right now.

In terms of customization it’s hard to say which application is preferable. If you need to change core features, LibreCAD looks like an obvious choice. But if you think that a plug-in would do, QCAD allows writing those in both C++ and ECMAscript, whereas LibreCAD apparently needs more cleanup in the plug-ins department first.

Of course, for a number of people there’s also an ethical choice involved, as in “only free GPL software is OK to run”.

The future

What does it all mean to QCAD and its users? Given the price tag of mere 32 euros, the delayed or completely abandoned release of the Community Edition isn’t likely to seriously affect anyone except probably some government institutions (like public schools) on a really tight budget.

To LibreCAD users who care a lot about GPL it means less choices or more reasons to get involved with development of the application, because the code doesn’t write itself.

All commits to LibreCAD over time, note the gradual decrease of activity since 2011

All commits to LibreCAD over time, note the gradual decrease of activity since 2011

Even though growing open hardware and personal fabrication economies are likely to give a big push to engineering, and hence to CAD, right now it doesn’t look like people are rushing to join free CAD software projects. So let’s hope we won’t see too many further forks.