
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.