Software In Progress

Open source software can be fantastic. I run almost exclusively open software, and have for longer than I care to admit. And although I’m not a serious coder by an stretch, I fill out bug reports when I find them, and poke at edge cases to help the people who do the real work.

For 3D modeling, I’ve been bouncing back and forth between OpenSCAD and FreeCAD. OpenSCAD is basic, extensible, and extremely powerful in the way that a programming language is, and consequently it’s reliably bug-free. But it also isn’t exactly user friendly, unless you’re a user who likes to code, in which case it’s marvelous. FreeCAD is much more of a software tool than a programming language, and is a lot more ambitious than OpenSCAD. FreeCAD is also a program in a different stage of development, and given its very broad scope, it has got a lot of bugs.

I kept running into some really serious bugs in a particular function – thickness for what it’s worth – which is known to be glitchy in the FreeCAD community. Indeed, the last time I kicked the tires on thickness, it was almost entirely useless, and there’s been real progress in the past couple years. It works at least sometimes now, on super-simple geometries, and this promise lead me to find out where it still doesn’t work. So I went through the forums to see what I could do to help, and it struck me that some people, mostly those who come to FreeCAD from commercial programs that were essentially finished a decade ago, have different expectations about the state of the software than I do, and are a lot grumpier.

Open source software is working out its bugs in public. Most open source is software in development. It’s growing, and changing, and you can help it grow or just hang on for the ride. Some open-source userland projects are mature enough that they’re pretty much finished, but the vast majority of open-source projects are coding in public and software in progress.

It seems to me that people who expect software to be done already are frustrated by this, and that when we promote super-star open projects like Inkscape or Blender, which are essentially finished, we are doing a disservice to the vast majority of useful, but still in progress applications out there that can get the job done anyway, but might require some workarounds. It’s exactly these projects that need our help and our bug-hunting, but if you go into them with the “finished” mentality, you’re setting yourself up for frustration.

Optical illusion gingerbread house from an odd perspective

An Engineer’s Perspective On Baking Gingerbread Houses

If you’ve ever wanted to merge the worlds of holiday cheer and clever geometry, [Kris Wilk]’s gingerbread house hack is your ultimate inspiration. Shared in a mesmerising video, [Wilk] showcases his 2024 entry for his neighborhood’s gingerbread house contest. Designed in FreeCAD and baked to perfection, this is no ordinary holiday treat. His pièce de résistance was a brilliant trompe l’oeil effect, visible only from one carefully calculated angle. Skip to the last twenty seconds of the video to wrap your head around how it actually looks.

[Wilk] used FreeCAD’s hidden true perspective projection function—a rarity in CAD software. This feature allowed him to calculate the perfect forced perspective, essential for crafting the optical illusion. The supporting structures were printed on a Prusa MK4, while the gingerbread itself was baked at home. Precision photography captured the final reveal, adding a professional touch to this homemade masterpiece. [Wilk]’s meticulous process highlights how accessible tools and a sprinkle of curiosity can push creative boundaries.

For those itching to experiment with optical illusions, this bakery battle is only the beginning. Why not build a similar one inside out? Or construct a gingerbread man in the same way? Fire up the oven, bend your mind, and challenge your CAD skills!

Continue reading “An Engineer’s Perspective On Baking Gingerbread Houses”

FreeCAD Version 1.0 Released

After 22 years of development, FreeCAD has at long last reached the milestone of version 1.0. On this momentous occasion, it’s good to remember what a version 1.0 is supposed to mean, as also highlighted in the release blog post: FreeCAD is now considered stable and ready for ‘real work’. One of the most important changes here is that the topological naming problem (TNP) that has plagued FreeCAD since its inception has now finally been addressed using Realthunders’ mitigation algorithm, which puts it closer to parity here with other CAD packages. The other major change is that assemblies are now supported with the assembly workbench, which uses the Ondsel solver.

Other changes include an updated user interface and other features that should make using FreeCAD easier and closer in line with industry standards. In the run-up to the 1.0 release we already addressed the nightmare that is chamfering in FreeCAD, and the many overlapping-yet-uniquely-incomplete workbenches, much of which should be far less of a confabulated nightmare in this bright new 1.0 future.

Naturally, the big zero behind the major version number also means that there will still be plenty of issues to fix and bugs to hunt down, but it’s a promising point of progress in the development of this OSS CAD package.

The End Of Ondsel And Reflecting On The Commercial Prospects For FreeCAD

Within the world of CAD there are the well-known and more niche big commercial players and there are projects like FreeCAD that seek to bring a OSS solution to the CAD world. As with other OSS projects like the GIMP, these OSS takes on commercial software do not always follow established user interactions (UX), which is where Ondsel sought to bridge the gap by giving commercial CAD users a more accessible FreeCAD experience. This effort is now however at an end, with a blog post by Ondsel core team member [Brad Collette] providing the details.

The idea of commercializing OSS is by no means novel, as this is what Red Hat and many others have done for decades now. In our article on FOSS development bounties we touched upon the different funding models for FOSS projects, with the Linux kernel enjoying strong commercial support. The trick is of course to attract such commercial support and associated funding, which is where the development on the UI/UX and feature set of the core FreeCAD code base was key. Unfortunately the business case was not strong enough to attract such commercial partners and Ondsel has been shutdown.

As also discussed on the FreeCAD forum, the Ondsel codebase will likely be at least partially merged into the FreeCAD code, ending for now the prospect of FreeCAD playing in the big leagues with the likes of AutoCAD.

Thanks to [Brian Harrington] for the tip.

FreeCAD Is Near 1.0

The open-source parametric 3D modelling software, FreeCAD, is out in a release candidate for version 1.0.  If you’ve tried FreeCAD before and found a few showstoppers, it might be a good time for you to test it out again because the two biggest of them have been solved in this latest version.

First, version 1.0 finally implements a solution to the “topological naming problem”. Imagine you want to put a hole into a surface. The program needs to know on which surface to put the hole, and so it refers to this surface by name / number. Now imagine you subdivide the surface, and both subsections get new names. Where does your hole go now?  If you want to dig into the issue, the inimitable [MangoJelly] has a great video about the topo naming problem. Practically, there were workarounds, like only adding chamfers after the main design has stabilized, but frankly it was a hassle to remember all of the tricks. This is a huge fix.

The second big fix concerns assemblies.  Older versions of FreeCAD were great for making single parts, but combining them all together inside the CAD program was always janky.  Version 1.0 combines the previous two patchwork assembly workbenches into one, and it’s altogether more pleasant to use. The constraints of how two parts move when held together with an axle just works now, and this is a big deal for multi-part models.

If you’re coming from any other parametric CAD program, most of FreeCAD will seem familiar to you, but there will also be workflow differences that will take some getting used to. In trade, what do you get? Scriptability in Python, real open source software, and all of the bells and whistles for free. Now that its two biggest pain points have been addressed,  FreeCAD has become a lot easier to love. We’re looking forward to some good V1.0 tutorials in the future, and we’ll keep you posted when we find them.

An L-shaped orange mounting structure with two white reservoirs on top, a set of pumps on the outer bottom edges, and a membrane cell bolted together in the center. The parts are connected by a series of transparent tubes.

Open Source Residential Energy Storage

Battery news typically covers the latest, greatest laboratory or industry breakthroughs to push modern devices further and faster. Could you build your own flow battery stationary storage for home-built solar and wind rigs though?

Based on the concept of appropriate technology, the system from the Flow Battery Research Collective will be easy to construct, easy to maintain, and safe to operate in a residential environment. Current experiments are focusing on Zn/I chemistry, but other aqueous chemistries could be used in the future. Instead of an ion exchange membrane, the battery uses readily attainable photo paper and is already showing similar order of magnitude performance to lab-developed cells.

Any components that aren’t off-the-shelf have been designed in FreeCAD. While they can be 3D printed, the researchers have found traditional milling yields better results which isn’t too surprising when you need something water-tight. More work is needed, but it is promising work toward a practical, DIY-able energy storage solution.

If you’re looking to build your own open source wind turbine or solar cells to charge up a home battery system, then we’ve got you covered. You can also break the chains of the power grid with off-the-shelf parts.

A FreeCAD sticker, a FreeCAD pencil, a Hackaday Jolly Wrencher SAO PCB and the board-to-be-encased next to each other

FreeCAD Foray: Shells For All Our PCBs

Are you the kind of hacker who tries to pick up FreeCAD, but doesn’t want to go through a tutorial and instead pokes around the interface, trying to transfer the skills from a CAD suite you’ve been using before? I’ve been there too, and in my experience, FreeCAD doesn’t treat such forays lightly. It’s a huge package that enables everything from architecture to robotics design, so if you just want a 3D-printed case for a PCB project, the hill can be steep. So let’s take that first simple project as an example, and see if it helps you learn a little bit of FreeCAD.

This board needs a case – badly.

As motivation, I recently built a USB-C PSU board that uses a DC PSU and does the USB-C handshaking to provide 20 V to a laptop. It is currently my only 100 W USB-C PSU, and my 60 W PSU just died, which is why I now use this board 24/7. I have brought it on two different conferences so far, which has highlighted a problem – it’s a board with tons of exposed contacts, which means that it isn’t perfectly travel-friendly, and neither it is airport-friendly – not that I won’t try and bring it anyway. So, currently, I have to watch that nothing shorts out – given the board has 3.3 V close to 20 V at 9 A, it’s a bit of a worry.

This means I have to design some sort of case for it. I was taught SolidWorks in the half a year that I spent in a university, and honestly, I’m tired of the licensing and proprietary format stuff. When it comes to more hobbyist-accepted tools like Fusion360, I just don’t feel like exchanging one proprietary software for another. So, FreeCAD is the obvious choice – apart from OpenSCAD, which I know and love, but I don’t always want to think up fifteen variable names for every silly little feature. That, and I also want to fillet corners every now and then.

For a full-open-source workflow, today’s PCB is designed with KiCad, too. Let’s see about installing FreeCAD, and the few things you need to import a KiCad board file into FreeCAD.

Continue reading “FreeCAD Foray: Shells For All Our PCBs”