discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Fwd: OFF TOPIC - usability/mutability- to be, or not to be!

RW
Raymond West
Tue, Nov 25, 2025 10:27 AM

Hi,

I've been developing my own cad. Why? because I can, with help from AI.
Having dabbled with Python, I decided that is not for me. The
implementation of the Manifold library is not yet complete in python, or
it wasn't when I started into this, a month or two ago, so I decided to
use C++  (Cpp) and a parser for my code. C# would have been easier, but
that needs .net, afaik. I know very little about Cpp, and I forced
co-pilot to write all  the code. At the moment, the LLM versions of AI
are little more than glorified search engines. They work well for
Python, where most of the difficulty is in finding blocks of
code/existing libraries, to do what you want, but I wonder whatever they
were smoking when the decision was made to make spaces significant in
Python, although that concept would have been OK for coding forms, I
suppose... so, I've had to hack together a parser, for my home brew,
simple cad language.

Fundamentally, In my cad world every object relates to the physical
world and has three dimensions, excluding time and whatever else. 2d
objects do not exist, other than as thin 3d objects. Object names can 
can mutate - a value, one moment, a shape the next. All calculation in
fixed decimal point.

So, how far have I and AI got? I'm pretty pleased, and I've attached
some code and results below. This only shows a fragment. My latest
effort  is to show_view to a gui screen, so that I can manually select
points, and enter them into the code. this will be needed to easily
select specific, individual edges to be filleted, and also I think that
may be useful for pinpointing mismatched triangles. The code example
(demo.cad) attached, shows the errors that verify can pick up, for
example. Because my cad does all it's calculations using manifold
parameters, then the result should be manifold (watertight), but it may
have small defects.

I've designed it so that a useful help is built in, and a verbose mode
that can print out the calculation steps, if I have a problem with a
particular function, although the more recent functions do not have that
(AI memory is worse than mine.). I simply have to say to copilot,' write
the help for xyz function', then spend an hour or two reminding it how
it organised it three hours earlier. I've used my cad a few times to
create 'useful' 3d printed items, but I want to see if the mutable names
becomes a problem with more advanced items.

I use meshlab to automatically show the .obj and .ply files, openscad
for the scad files. I much prefer the openscad viewer, but it is slower
to render.

Not shown, but I have subroutines, for/next, if's etc, the versions that
I grew up with, and, as well as the manifold simplify, i have my own
point reduction methodology, which sometimes behaves in a more
predictable manner - (but sometimes not), my own Minkowski type function
(which also operates inside the base shape), paths, etc.

For demo.cad, you can view the code by dragging it into the openscad
editor, or if you want it pretty, use vs code, and set to c#. the other
image files should be self explanatory.

Best wishes,

Ray
because of the 1500kb size limit, I'll send the other ply and obj files
seperately

Hi, I've been developing my own cad. Why? because I can, with help from AI. Having dabbled with Python, I decided that is not for me. The implementation of the Manifold library is not yet complete in python, or it wasn't when I started into this, a month or two ago, so I decided to use C++  (Cpp) and a parser for my code. C# would have been easier, but that needs .net, afaik. I know very little about Cpp, and I forced co-pilot to write all  the code. At the moment, the LLM versions of AI are little more than glorified search engines. They work well for Python, where most of the difficulty is in finding blocks of code/existing libraries, to do what you want, but I wonder whatever they were smoking when the decision was made to make spaces significant in Python, although that concept would have been OK for coding forms, I suppose... so, I've had to hack together a parser, for my home brew, simple cad language. Fundamentally, In my cad world every object relates to the physical world and has three dimensions, excluding time and whatever else. 2d objects do not exist, other than as thin 3d objects. Object names can  can mutate - a value, one moment, a shape the next. All calculation in fixed decimal point. So, how far have I and AI got? I'm pretty pleased, and I've attached some code and results below. This only shows a fragment. My latest effort  is to show_view to a gui screen, so that I can manually select points, and enter them into the code. this will be needed to easily select specific, individual edges to be filleted, and also I think that may be useful for pinpointing mismatched triangles. The code example (demo.cad) attached, shows the errors that verify can pick up, for example. Because my cad does all it's calculations using manifold parameters, then the result should be manifold (watertight), but it may have small defects. I've designed it so that a useful help is built in, and a verbose mode that can print out the calculation steps, if I have a problem with a particular function, although the more recent functions do not have that (AI memory is worse than mine.). I simply have to say to copilot,' write the help for xyz function', then spend an hour or two reminding it how it organised it three hours earlier. I've used my cad a few times to create 'useful' 3d printed items, but I want to see if the mutable names becomes a problem with more advanced items. I use meshlab to automatically show the .obj and .ply files, openscad for the scad files. I much prefer the openscad viewer, but it is slower to render. Not shown, but I have subroutines, for/next, if's etc, the versions that I grew up with, and, as well as the manifold simplify, i have my own point reduction methodology, which sometimes behaves in a more predictable manner - (but sometimes not), my own Minkowski type function (which also operates inside the base shape), paths, etc. For demo.cad, you can view the code by dragging it into the openscad editor, or if you want it pretty, use vs code, and set to c#. the other image files should be self explanatory. Best wishes, Ray because of the 1500kb size limit, I'll send the other ply and obj files seperately
RW
Raymond West
Tue, Nov 25, 2025 10:32 AM

Hi,

I've been developing my own cad. Why? because I can, ....

here's the output.obj file, attached
Best wishes,

Ray

Hi, I've been developing my own cad. Why? because I can, .... here's the output.obj file, attached Best wishes, Ray
JB
Jon Bondy
Tue, Nov 25, 2025 12:12 PM

Ray:

Very ambitious!

Is this a pre-processor for OpenSCAD?  That is, does your system work
without OpenSCAD?

Jon

On 11/25/2025 5:27 AM, Raymond West via Discuss wrote:

Hi,

I've been developing my own cad. Why? because I can, with help from
AI. Having dabbled with Python, I decided that is not for me. The
implementation of the Manifold library is not yet complete in python,
or it wasn't when I started into this, a month or two ago, so I
decided to use C++  (Cpp) and a parser for my code. C# would have been
easier, but that needs .net, afaik. I know very little about Cpp, and
I forced co-pilot to write all  the code. At the moment, the LLM
versions of AI are little more than glorified search engines. They
work well for Python, where most of the difficulty is in finding
blocks of code/existing libraries, to do what you want, but I wonder
whatever they were smoking when the decision was made to make spaces
significant in Python, although that concept would have been OK for
coding forms, I suppose... so, I've had to hack together a parser, for
my home brew, simple cad language.

Fundamentally, In my cad world every object relates to the physical
world and has three dimensions, excluding time and whatever else. 2d
objects do not exist, other than as thin 3d objects. Object names can 
can mutate - a value, one moment, a shape the next. All calculation in
fixed decimal point.

So, how far have I and AI got? I'm pretty pleased, and I've attached
some code and results below. This only shows a fragment. My latest
effort  is to show_view to a gui screen, so that I can manually select
points, and enter them into the code. this will be needed to easily
select specific, individual edges to be filleted, and also I think
that may be useful for pinpointing mismatched triangles. The code
example (demo.cad) attached, shows the errors that verify can pick up,
for example. Because my cad does all it's calculations using manifold
parameters, then the result should be manifold (watertight), but it
may have small defects.

I've designed it so that a useful help is built in, and a verbose mode
that can print out the calculation steps, if I have a problem with a
particular function, although the more recent functions do not have
that (AI memory is worse than mine.). I simply have to say to
copilot,' write the help for xyz function', then spend an hour or two
reminding it how it organised it three hours earlier. I've used my cad
a few times to create 'useful' 3d printed items, but I want to see if
the mutable names becomes a problem with more advanced items.

I use meshlab to automatically show the .obj and .ply files, openscad
for the scad files. I much prefer the openscad viewer, but it is
slower to render.

Not shown, but I have subroutines, for/next, if's etc, the versions
that I grew up with, and, as well as the manifold simplify, i have my
own point reduction methodology, which sometimes behaves in a more
predictable manner - (but sometimes not), my own Minkowski type
function (which also operates inside the base shape), paths, etc.

For demo.cad, you can view the code by dragging it into the openscad
editor, or if you want it pretty, use vs code, and set to c#. the
other image files should be self explanatory.

Best wishes,

Ray
because of the 1500kb size limit, I'll send the other ply and obj
files seperately


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

Ray: Very ambitious! Is this a pre-processor for OpenSCAD?  That is, does your system work without OpenSCAD? Jon On 11/25/2025 5:27 AM, Raymond West via Discuss wrote: > Hi, > > I've been developing my own cad. Why? because I can, with help from > AI. Having dabbled with Python, I decided that is not for me. The > implementation of the Manifold library is not yet complete in python, > or it wasn't when I started into this, a month or two ago, so I > decided to use C++  (Cpp) and a parser for my code. C# would have been > easier, but that needs .net, afaik. I know very little about Cpp, and > I forced co-pilot to write all  the code. At the moment, the LLM > versions of AI are little more than glorified search engines. They > work well for Python, where most of the difficulty is in finding > blocks of code/existing libraries, to do what you want, but I wonder > whatever they were smoking when the decision was made to make spaces > significant in Python, although that concept would have been OK for > coding forms, I suppose... so, I've had to hack together a parser, for > my home brew, simple cad language. > > Fundamentally, In my cad world every object relates to the physical > world and has three dimensions, excluding time and whatever else. 2d > objects do not exist, other than as thin 3d objects. Object names can  > can mutate - a value, one moment, a shape the next. All calculation in > fixed decimal point. > > So, how far have I and AI got? I'm pretty pleased, and I've attached > some code and results below. This only shows a fragment. My latest > effort  is to show_view to a gui screen, so that I can manually select > points, and enter them into the code. this will be needed to easily > select specific, individual edges to be filleted, and also I think > that may be useful for pinpointing mismatched triangles. The code > example (demo.cad) attached, shows the errors that verify can pick up, > for example. Because my cad does all it's calculations using manifold > parameters, then the result should be manifold (watertight), but it > may have small defects. > > I've designed it so that a useful help is built in, and a verbose mode > that can print out the calculation steps, if I have a problem with a > particular function, although the more recent functions do not have > that (AI memory is worse than mine.). I simply have to say to > copilot,' write the help for xyz function', then spend an hour or two > reminding it how it organised it three hours earlier. I've used my cad > a few times to create 'useful' 3d printed items, but I want to see if > the mutable names becomes a problem with more advanced items. > > I use meshlab to automatically show the .obj and .ply files, openscad > for the scad files. I much prefer the openscad viewer, but it is > slower to render. > > Not shown, but I have subroutines, for/next, if's etc, the versions > that I grew up with, and, as well as the manifold simplify, i have my > own point reduction methodology, which sometimes behaves in a more > predictable manner - (but sometimes not), my own Minkowski type > function (which also operates inside the base shape), paths, etc. > > For demo.cad, you can view the code by dragging it into the openscad > editor, or if you want it pretty, use vs code, and set to c#. the > other image files should be self explanatory. > > Best wishes, > > Ray > because of the 1500kb size limit, I'll send the other ply and obj > files seperately > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com
RW
Raymond West
Tue, Nov 25, 2025 1:06 PM

Hi Jon,

It works without openscad. It produces object and ply files, and other
formats, if I could be bothered to fight with co-pilot. It outputs the
openscad polyhedron thing, that is all it has that is connected to
openscad. However, it will not be on git-hub/wherever, since for me, the
journey is the destination.

It does nothing much that could not be done in openscad, but I wanted to
find out whether mutability was a hindrance or a benefit.

I believe that openscad should remain as it is, not weaken to the
influence of python. (fwiw, inmnsho, compared to writing a parser/using
cpp, writing a python pre-processor script is easier). The future of
openscad is in its reliability, using a succinct code base, probably
improving it's usability of the display mechanism, better svg handling,
etc.

In a year or two's time, when AI is a bit more I, this sort of thing
will be done in a day or two, but probably not for free. If you are in
the business of writing code, be afraid, very afraid. I think, in the
whole thing, I have only typed in three lines of code, that was easier
than getting the ai to change it.

Best wishes,

Ray

On 25/11/2025 12:12, Jon Bondy wrote:

Ray:

Very ambitious!

Is this a pre-processor for OpenSCAD?  That is, does your system work
without OpenSCAD?

Jon

Hi Jon, It works without openscad. It produces object and ply files, and other formats, if I could be bothered to fight with co-pilot. It outputs the openscad polyhedron thing, that is all it has that is connected to openscad. However, it will not be on git-hub/wherever, since for me, the journey is the destination. It does nothing much that could not be done in openscad, but I wanted to find out whether mutability was a hindrance or a benefit. I believe that openscad should remain as it is, not weaken to the influence of python. (fwiw, inmnsho, compared to writing a parser/using cpp, writing a python pre-processor script is easier). The future of openscad is in its reliability, using a succinct code base, probably improving it's usability of the display mechanism, better svg handling, etc. In a year or two's time, when AI is a bit more I, this sort of thing will be done in a day or two, but probably not for free. If you are in the business of writing code, be afraid, very afraid. I think, in the whole thing, I have only typed in three lines of code, that was easier than getting the ai to change it. Best wishes, Ray On 25/11/2025 12:12, Jon Bondy wrote: > Ray: > > Very ambitious! > > Is this a pre-processor for OpenSCAD?  That is, does your system work > without OpenSCAD? > > Jon > > >
WF
William F. Adams
Tue, Nov 25, 2025 2:37 PM

A screen grab showing your current UI, or a sketch showing what you want for it to be would be quite helpful.

For my part, I've crashed and burned or run into limitations on pretty much everything I've tried until I got to Open/PythonSCAD (needed Python for "real" variables to track machine position in: https://github.com/WillAdams/gcodepreview), though I did make it through the tutorial for Dune 3D pretty much in one take w/o difficulty, which is a real testament to its UI/UX and I'd recommend folks who have any interested in GUI 3D CAD at least look at it.

That said, I'm currently listening to/watching: 

https://www.youtube.com/playlist?list=PLUilfM8GEmrS3yRLygdFOGJjRZHOzLnkM

and I'm really regretting buying a Plasticity Studio license rather than Moment of Inspiration 3D.

I really wish that there was a visual programming language suited to 3-dimensional work which clicked with me (yeah, arguably, I should've bought Rhinoceros 3D and used Grasshopper, or stayed in bed w/ Autodesk and used Autolisp) --- that said, BlockSCAD is surprisingly useful, and I'm very glad of:

https://github.com/derkork/openscad-graph-editor

William

A screen grab showing your current UI, or a sketch showing what you want for it to be would be quite helpful. For my part, I've crashed and burned or run into limitations on pretty much everything I've tried until I got to Open/PythonSCAD (needed Python for "real" variables to track machine position in: https://github.com/WillAdams/gcodepreview), though I did make it through the tutorial for Dune 3D pretty much in one take w/o difficulty, which is a real testament to its UI/UX and I'd recommend folks who have any interested in GUI 3D CAD at least look at it. That said, I'm currently listening to/watching:  https://www.youtube.com/playlist?list=PLUilfM8GEmrS3yRLygdFOGJjRZHOzLnkM and I'm really regretting buying a Plasticity Studio license rather than Moment of Inspiration 3D. I really wish that there was a visual programming language suited to 3-dimensional work which clicked with me (yeah, arguably, I should've bought Rhinoceros 3D and used Grasshopper, or stayed in bed w/ Autodesk and used Autolisp) --- that said, BlockSCAD is surprisingly useful, and I'm very glad of: https://github.com/derkork/openscad-graph-editor William
WF
William F. Adams
Tue, Nov 25, 2025 2:37 PM

A screen grab showing your current UI, or a sketch showing what you want for it to be would be quite helpful.

For my part, I've crashed and burned or run into limitations on pretty much everything I've tried until I got to Open/PythonSCAD (needed Python for "real" variables to track machine position in: https://github.com/WillAdams/gcodepreview), though I did make it through the tutorial for Dune 3D pretty much in one take w/o difficulty, which is a real testament to its UI/UX and I'd recommend folks who have any interested in GUI 3D CAD at least look at it.

That said, I'm currently listening to/watching: 

https://www.youtube.com/playlist?list=PLUilfM8GEmrS3yRLygdFOGJjRZHOzLnkM

and I'm really regretting buying a Plasticity Studio license rather than Moment of Inspiration 3D.

I really wish that there was a visual programming language suited to 3-dimensional work which clicked with me (yeah, arguably, I should've bought Rhinoceros 3D and used Grasshopper, or stayed in bed w/ Autodesk and used Autolisp) --- that said, BlockSCAD is surprisingly useful, and I'm very glad of:

https://github.com/derkork/openscad-graph-editor

William

A screen grab showing your current UI, or a sketch showing what you want for it to be would be quite helpful. For my part, I've crashed and burned or run into limitations on pretty much everything I've tried until I got to Open/PythonSCAD (needed Python for "real" variables to track machine position in: https://github.com/WillAdams/gcodepreview), though I did make it through the tutorial for Dune 3D pretty much in one take w/o difficulty, which is a real testament to its UI/UX and I'd recommend folks who have any interested in GUI 3D CAD at least look at it. That said, I'm currently listening to/watching:  https://www.youtube.com/playlist?list=PLUilfM8GEmrS3yRLygdFOGJjRZHOzLnkM and I'm really regretting buying a Plasticity Studio license rather than Moment of Inspiration 3D. I really wish that there was a visual programming language suited to 3-dimensional work which clicked with me (yeah, arguably, I should've bought Rhinoceros 3D and used Grasshopper, or stayed in bed w/ Autodesk and used Autolisp) --- that said, BlockSCAD is surprisingly useful, and I'm very glad of: https://github.com/derkork/openscad-graph-editor William