u/Great-Repeat-7287

▲ 15 r/ukulele+1 crossposts

So this started with a pretty specific goal: I wanted to design ukuleles with flexible parameters.

While I appreciated the coding methodology of OpenSCAD (my coder mind 'clicked' about it), I also immediately felt the limitations of an awkward syntax, limited capabilities (fillet?), and a slow rendered (manifold3d was not yet well integrated back then)… so I went down the rabbit hole and built my own thing:

👉 https://github.com/bat52/pylele

While this is still mainly a ukulele/guitar design tool, the lower layers gradually grew up more than I had initially planned into a generic CAD library with flexible rendering backend (B13D), and a somewhat capable scad interpreter fully written in Python (B1SCAD).

Rough positioning

It’s somewhat in the same space as:

  • pythonscad (Python-driven CAD)
  • anchorscad (really like the composability and syntax there)

…except it’s not a wrapper, but more like a new openscad implementation from the ground up!

Current state

  • Can generate actual ukulele parts (body, tuners, etc.) in a countless number of configurations (see the links on the README)
  • flexible backend support (manifold3d, openscad, cadquery, trimesh, blender, ...)
  • Extensible Parametric + scriptable workflow
  • extensive test library and CI
  • Still very rough around the edges
    • more boilerplate code required than I would like to
    • missing spatial helper functions (like anchors in anchorscad)
    • no dedicated GUI editor (mitigated by VSCode .stl previewer)

Where I’m unsure

I don’t really know what this should become:

  • stay a niche tool for instrument design? I feel the lack of a visualization tool starts making me go crazy in thinking of 3d geometry in my head
  • try to port to pythonscad ? In theory openscad preview should work there... hopefully
  • or just scrap parts and move to an existing ecosystem?

Mainly posting for feedback

Curious what people think:

  • does this solve a real problem or just reinvents existing tools?
  • is a Python-native CAD interpreter actually useful?
  • what would make something like this worth using?

Happy to dig into internals if anyone’s interested.

u/Great-Repeat-7287 — 8 days ago