Curated Code CAD

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • Sonar - Write Clean Python Code. Always.
  • Onboard AI - Learn any GitHub repo in 59 seconds
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • Revelo Payroll - Free Global Payroll designed for tech teams
  • sdf

    Simple SDF mesh generation in Python

    > Basic things like 'hollow this object out, leaving a 3mm shell' are nearly impossible.

    Yeah, I think that's a consequence of how they're constructing the objects. But things like signed distance fields make that easier* because it'd just be "expand the SDF by 3mm" - https://github.com/fogleman/sdf has `shell` for this.

    * if you can wrap your head around the math/geometry, I guess

  • sdfx

    A simple CAD package using signed distance functions

    Nice to see sdfx [1] there, this project is impressive.

    deadsy built some rather sophisticated models, be sure to check out the renderings in the github README!

    https://github.com/deadsy/sdfx

  • Sonar

    Write Clean Python Code. Always.. Sonar helps you commit clean code every time. With over 225 unique rules to find Python bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.

  • opencascade-emscripten-port

    Open CASCADE - Emscripten / Webassembly port

    There is an OpenCascade version compiled down to wasm [1] that we're currently using embedded in our own app. Rendering to WebGL is relatively straight-forward and the system as a whole works well. Gives me a lot of power when designing mechanical systems and running simulations on the resulting models. Perf of the CAD kernel on the web is not great, but 'just good enough'.

    Troubleshooting issues is tricky though. If something doesn't work debugging is nearly impossible and the (C++) docs are very challenging.

    OpenCascade is very powerful, but the ergonomics of the API aren't great. Writing a simple FP-style immutable wrapper around it has proven very fruitful and we can now describe relatively complicated models with a bare minimum of TypeScript code. Lot's of fun!

    [1] https://github.com/gabrielcuvillier/opencascade-emscripten-p...

  • There is an OpenCascade version compiled down to wasm [1] that we're currently using embedded in our own app. Rendering to WebGL is relatively straight-forward and the system as a whole works well. Gives me a lot of power when designing mechanical systems and running simulations on the resulting models. Perf of the CAD kernel on the web is not great, but 'just good enough'.

    Troubleshooting issues is tricky though. If something doesn't work debugging is nearly impossible and the (C++) docs are very challenging.

    OpenCascade is very powerful, but the ergonomics of the API aren't great. Writing a simple FP-style immutable wrapper around it has proven very fruitful and we can now describe relatively complicated models with a bare minimum of TypeScript code. Lot's of fun!

    [1] https://github.com/gabrielcuvillier/opencascade-emscripten-p...

  • cq-containers

    Slightly OT:

    So after reading this, I went and tried cadquery ... it's really nice, but it is very, very unfortunately tied at the hip with anaconda, which is a monstrosity.

    I'm not sure why they would tie such a ball and chain to an otherwise super nice CAD scripting tool.

    There is luckily a docker based solution [1] that cleanly lets you wrap and try the whole cancerous thing without it spilling all over your system.

    [1] https://github.com/RubenRubens/cq-containers/tree/master/cq-...

  • ViewSCAD

    A Jupyter renderer for the OpenSCAD and SolidPython Constructive Solid Geometry languages

    Just a quick diff between your list and mine, apologies if I missed them or if there is a reason to exclude these:

        - https://github.com/nickc92/ViewSCAD

  • antimony

    CAD from a parallel universe

    - Matt Keeter's stuff (listed here https://www.mattkeeter.com/projects/, including https://github.com/mkeeter/antimony and https://www.mattkeeter.com/projects/ao/, though I see you have libfive)

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.

  • cadquery

    A python parametric CAD scripting framework based on OCCT

    To be fair these grievances are old: I've avoided conda like the plague for - easily - the last 5 years, and they might have cleaned up their act.

    However, I still find the notion of having to install 2 gigs worth of stuff on my machine only to try a simple CAD package for a few hours a rather offending proposition. Call me an old curmudgeon if you have to.

    To be fair to the cadquery folks: they seem to have realized the issue and they now offer what looks like a somewhat self contained binary dowload of the cq-editor package [2].

    Finally, I'll leave you with this, taken from the cadquery homepage itself [1] (note the use of the word "polluting" in there, looks like I'm not the only one feeling this way):

    For those unfamiliar (or uncomfortable) with Anaconda, it is probably best to install Miniconda to a local directory and to avoid running conda init. After performing a local directory installation, Miniconda can be activated via the [scripts,bin]/activate scripts. This will help avoid polluting and breaking the local Python installation. In Linux, the local directory installation method looks something like this

    [1] https://github.com/CadQuery/cadquery#alternative-anaconda-in...

    [2] https://github.com/CadQuery/CQ-editor/releases

  • CQ-editor

    CadQuery GUI editor based on PyQT

    To be fair these grievances are old: I've avoided conda like the plague for - easily - the last 5 years, and they might have cleaned up their act.

    However, I still find the notion of having to install 2 gigs worth of stuff on my machine only to try a simple CAD package for a few hours a rather offending proposition. Call me an old curmudgeon if you have to.

    To be fair to the cadquery folks: they seem to have realized the issue and they now offer what looks like a somewhat self contained binary dowload of the cq-editor package [2].

    Finally, I'll leave you with this, taken from the cadquery homepage itself [1] (note the use of the word "polluting" in there, looks like I'm not the only one feeling this way):

    For those unfamiliar (or uncomfortable) with Anaconda, it is probably best to install Miniconda to a local directory and to avoid running conda init. After performing a local directory installation, Miniconda can be activated via the [scripts,bin]/activate scripts. This will help avoid polluting and breaking the local Python installation. In Linux, the local directory installation method looks something like this

    [1] https://github.com/CadQuery/cadquery#alternative-anaconda-in...

    [2] https://github.com/CadQuery/CQ-editor/releases

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts