Abundance CAD/CAM Software

We’ve been working on a free and open CAD/CAM option. It is still VERY much a work in progress, but I would love feedback and info about any bugs that you find if you give it a go!

6 Likes

Hi @bar - First, love this! Second, quick question before I have time to watch the video in full later - would this support importing a CAD file from another SW tool and just using Abundance for the CAM aspects?

Thanks!

1 Like

Hey Bar, great to see this outside the secret labs!

When I go to connect my github account, I get this message about access to all my public and private repos…

unclear if that is only abundance related repo, or all repos? Any way to scope this differently? or make it clear what it really has access to?

1 Like

Yes, you should be able to import a file and just use it for CAM. That being said the CAM will be based on Kiri::Moto so you might be better off just importing your files there.

Edit: Although if you wanted to share a project CAM file so that someone else could easily change things like the tool size that could be useful

1 Like

Unfortunately the github API doesn’t allow us to scope to just projects created with Abundance. We could scope to just public repos by default and then you wouldn’t be able to create private projects.

The easiest option is just to make a github account for Abundance. They’re free and that way abundance just has access to your abundance stuff.

what CAD system is this interface modeled on?

I tried this last night and could not get it to work with an import or text on
brave.

you need to have some minimal instructions or a link to a video in the software.
I could not figure out how to do anything at all with it until watching the
video.

David Lang

1 Like

It’s completely custom, it’s not modeled on anything. The Kernel doing the calculations is OpenCascade (The same one FreeCAD uses)

1 Like

I’ve seen similar in Grasshopper for Rhino and other applications.

According to my AI overlords it’s called node-based programming or graph-based visual programming. Maybe not exactly what Abundance is up to, but you can see the similarities.

In this style:
Nodes represent operations, functions, or components.
Wires (or connections) represent the flow of data between nodes.
• The entire program is structured as a graph, often a directed acyclic graph (DAG).

It’s dataflow-driven, meaning that when a value changes, everything downstream is recomputed automatically—ideal for parametric and procedural modeling.

Used in other CAD and design programs for parametric type flows. Autodesk Revit Dynamo, Siemens NX, Blender, Houdini. There is a node editor for Freecad. It also reminds me of wiring/patch type systems like Max/MSP. PyFlow, etc.

Fun to explore!

2 Likes

Interesting, I just wanted to make sure I wasn’t mis-configured. It looks like if you add the complications of switching from OAuth style to GitHub App you could get finer grained permissions controls repo by repo, and things like org support, but more complicated set up and user oversight. hmmm…

1 Like

Ok, I asked because I’ve seen similar node/diagram editing of CAD on the
https://www.youtube.com/@ussadesign ussa:woodworking channel but didn’t know
what CAD system it was.

being able to define variables/configs and then reference them in the CAD is an
incredibly powerful tool.

and while you can do a lot with regular polygons, circles(elipses), and
squares(rectanges) being able to draw with lines, arcs, and curves, specified
with lengths, angles and alignment with other elements is extremely powerful.

I am NOT saying to not take the general approach you are taking. I am instead
suggesting adding additional atoms that can be used

a drawing atom with more traditional CAD capability, with the ability to import
dxf/pdf/svg (espeically since many designs start off with 2d inputs, the
available space for the finished project if nothing else)

alignment options for move and rotate atoms (or an alignment atom that
constrains to other elements)

etc.

food for thought.

David Lang

1 Like

@bar thought you were working on something called makercam in the past, is this it. How do you find time in the day to do all this?

1 Like

This should already work in the import atom!

Bar wrote:

This should already work in the import atom!

Ok, I’ll test that (I tried importing a step file and it’s either failing or
just taking forever to render)

David Lang

1 Like

I agree 1000%. I think that these should be GitHub atoms that you can import though instead of built in. I would like as much functionality to be added that way as possible. The goal is to be like a package manager sort of like how python just gives you some basic language functions, but then you can use libraries to add all sorts of other functionality. It would be super easy to create a GitHub molecule to get the bounding box of shape A and place shape B in relation to it.

Probably this one. Is it a complicated file?

I didn’t mean to imply that it’s not stealing heavily from all sorts of places. In particular there was a company called MaterMachine (I think) that did something similar, but they went out of business and didn’t open source anything so I wanted something like that to exist

1 Like

the maslow router clamp, so yes.

David Lang

Ha ha, yes - first thing I wanted to draw was a trapezoid… Maybe there is a way to shrink wrap it, but I decided to investigate the code atom instead, which seems to work, as I was able to get a trapezoid shape working, though I’m not finding debugging very sophisticated. if you close the editor, and click on the atom it will show an error, but not much detail about what/where/etc.

I was able to import an SVG and then extrude it. It doesn’t pick up the size from the file, so get the ‘width’ from your drawing program of choice so you can specify that in import setting. Seems like you have to delete the atom to change the file…

Having fun exploring, I will have some suggestions… :slight_smile:

1 Like

Thanks so much the name! I know we’ve talked about this several times, but that helped close the loop. I found my email with those guys (bug reports, etc.) from 2015, and check this out:

I thought it was one of the coolest things at the MakerFaire that year, and hyped to see something similar coming to life!

1 Like

I agree, we need a much easier way to read debug messages from the code atom.

I would probably use loft for that, but I think we might want to add a “point” atom which could be used with shrinkwrap.