As an engineer working in both software and hardware, I have often felt frustrated by the current workflow of CAD software. For the past 50 years, the industry has relied heavily on proprietary software with proprietary file formats. This reliance has significantly constrained innovation in hardware development, as major advancements typically come from a handful of large software companies.
In stark contrast, software engineering has been transformed by the open-source movement.
Workflows in software development continue to evolve rapidly because anyone can contribute
and challenge the status quo. A prime example of this is version control: git
has
become the standard for version control in software engineering, and it is both free
and open-source. In hardware development, however, most small teams do not use version
control at all, and those that do often rely on expensive, proprietary extensions
of their CAD software. Additionally, reuse in hardware development is practically
non-existent due to these proprietary file formats.
This is why we are building Cadbuildr. Our goal is to bring the best practices of software engineering into the realm of hardware development starting with an open format.
Our first contribution is the foundation
library. It is written in Python and
enables users to create 3D models programmatically. Typically in CAD software
you can represent a part or assembly as a history of features. Your typical CAD
software program will enable you to draw a square on a sketch and extrude it to
make a cube. The foundation
library enables you to do the same thing but
programmatically. This translation step, from code to history of features, is
agnostic of the actual rendering or CAD software that you use. We have a viewer
that can render the tree representation of your part, but nothing prevents you
from building another viewer that can render the tree representation in a
different way.
Why Python? Python is one of the most popular programming languages in the world. It is easy to learn and has a large community of users. Additionally, in the engineering world, Python is also extremely popular. For hardware, you might actually have key dimensions that are the result of simulation or analysis already done in Python.
Why open-source? We believe that the future of hardware development is
open-source. By making our library open-source, we enable anyone to contribute
to the library and improve it and build on top of it. The hope is that it
becomes a standard for hardware development and that if a design is made using
the foundation
library, it can be opened and modified by anyone.
The foundation
library is available on Github
here and the documentation is hosted
here
We are working on a full suite of tools that will enable you to design,
simulate, and manufacture your parts and assemblies. These will leverage the
foundation
library with different options for your use case.
First, we built the playground
giving you a way to use the foundation
library with a visualizer and exporter for parts and assemblies. Everything runs
in the browser. You can try it out here. You
can also share simple designs with others by sharing the URL.
We are also working on a beta for makers and professionals that would benefit from our development workflows. You can request access here. We want to hear from you and understand your needs.
By adopting Cadbuildr, you're not just choosing a tool; you're joining a movement towards more open, collaborative, and innovative hardware development. We envision a future where hardware design is as dynamic and community-driven as software development. Join us on this journey and be part of the change. Let's build the future of hardware together.
Who can use Cadbuildr? Anyone from hobbyists to professional engineers can use Cadbuildr. It is designed to be accessible and scalable for various levels of expertise.
Is Cadbuildr compatible with other CAD software? Not directly, the
foundation
library is designed to meant to be agnostic of any specific CAD
software, however currently the playground
is the only viewer that can
render the tree representation of your part and export it as .step
and
.stl
. We hope this changes soon.
How can I contribute to Cadbuildr? Contributions and issues are welcome via our GitHub repository here
What are the system requirements for the Playground? Since everything runs in the browser, there are minimal system requirements. A modern browser and an internet connection are all you need.
Feel free to reach out with any more questions or feedback. We're excited to see what you will build with Cadbuildr!