discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Re: STL best practices & tools

DC
david coneff
Sat, Jun 3, 2023 11:45 PM

You're doing some serious mental gymnastics if you're wondering why you
can't work in a social group when you haven't gotten vaccinated.
Self-defeating behaviors that make your presence toxic to the group will
lead to rejection and/or exclusion by groups. If the job offer was
dependent on actually working in physical proximity in an office because
work-from-home isn't possible, they were quite reasonable to reject you.

On Sat, Jun 3, 2023 at 4:41 PM neri-engineering via Discuss <
discuss@lists.openscad.org> wrote:

---------- Forwarded message ----------
From: neri-engineering neri-engineering@protonmail.com
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc:
Bcc:
Date: Sat, 03 Jun 2023 22:41:02 +0000
Subject: [OpenSCAD] STL best practices & tools
Greetings,

I want to begin to seek advice on an OpenSCAD-related project (improvement
or addition) in my writings below; however, first I offer a quick
introduction.

I use OpenSCAD to create hobby engineering designs and assembly
animations.  I have shared some of these before.  I want to share my latest
computer animation which was generated using OpenSCAD, along with the
top-level scripts used to generate it; in the case that someone wants to do
something similar they may draw upon my work for inspiration and ideas.

The animation itself (and I'm sorry if some people are offended with the
posting of an external link):
https://odysee.com/@Neri_Engineering/4wd-motor-mount-assy

The entry points into the program to generate the above computer animation:

https://sourceforge.net/p/nl10/code/HEAD/tree/scripts/4wd/motor/4wd-motor-mount-assembly-animation.sh
(entry point + camera work)

https://sourceforge.net/p/nl10/code/HEAD/tree/code/gears/4wd/motor/anim/4wd-motor-mount-assembly.scad
(movement of parts, part definitions)

At some point I could possibly “Nerf” down those animation scripts to
create something extremely barebones and simple, and then I could make a
video presentation/lecture describing it.

Next, I am looking for employment opportunities.  BERKELEY GRAD (MATH+CS),
EXPERT IN 3D COMPUTER GRAPHICS, THREADED PROGRAMMING, LOW LEVEL NETWORK
PROGRAMMING.  UNIX POWER USER.  FREEBSD, LINUX.  JAVA / C / PYTHON.  IN
TEXAS, SEEKING TO RELOCATE.  CURRENTLY EMPLOYED.  HAVE REFERENCES.

Okay, now onto the main topic of this email.

As I was studying other open source projects related to OpenSCAD I noticed
something interesting.  In particular I recall looking at some code to
generate spur gears, and other code that was for generating screw threads
(using the polyhedron() native construct in OpenSCAD).

I noticed that programmers have a habit of creating polyhedron that
overlap with their neighbors, so that when STL is generated, it consists of
one piece and not of many individual pieces.

Yes, it makes sense to do that.  I do understand why.

But, it makes a large project unmanageable, in my opinion.  For one,
usually, "fudging" the vertices on polyhedron() will result in very "jaggy"
objects, with extra vertices and extra little jaggies everywhere.  This is
obviously undesirable.

Second, it's not a pure approach in the mathematical sense.  When you
start doing boolean operations (add, subtract, intersect, etc.) with jaggy
and imprecise objects then things get very hairy and very quickly.

In all of my code, my mathematical intuition initially told me
instinctively to never fudge vertices in order to make polyhedron overlap,
and to instead keep everything as accurate and as precise as possible, with
the consequence that generated STL will be made up of many little pieces
(undesirable).

Now I am at a point where I need to address these issues, of having
generated STL that consists of many little pieces.

With time I will likely need to create STL to 3D print from, or to use to
make forms for injection molding, and with more time I will need to
transfer much of my work to other tools such as FreeCAD (Python scripts) in
the case where those parts need to be machined from metal, using CNC.

But, I was thinking about the possibility of creating a post-generation
"STL cleanup tool", and I'm sure that such tools already exist.  I was
imagining a tool which is configurable with "epsilon values" which will
treat sufficiently close numbers as being equal (configurable of course),
and will determine which faces are co-planar and which ones aren't.  I
already have lots of experience with this sort of technique from my days of
writing line-drawing algorithms that use full aliasing (no anti-aliasing)
with blocky pixels, yet which allow end point coordinates to be specified
in 64 bit floating point.  You are then able to draw very old-fashioned and
retro-looking pixelated lines (which look similar to the Bresenham style of
line) yet you're able to perfectly overlap sub-segments of the line.  For
example, if you draw your original line from (0.0,0.0) to (5.0,13.0), two
prime numbers that is, then you can draw a subsegment covering only half of
the original line (0.0,0.0) -> (2.5,6.5), where every single pixel in the
subsegment is almost guaranteed to cover a pixel in the original line
segment.  I say "almost" because usually this sort of operation entails
viewing the 64 bit representation of a floating point number in 32 bits, in
order to determine whether or not two numbers are sufficiently close to be
deemed equal.  There are always, or at least usually, going to be some very
rare cases where such calculations won't lead to desired results, due to
the nature of number approximations that usually happen in computers
(unless real number systems are used, which are computationally very
expensive).

I imagine using an approach similar to that of my near-perfect retro
line-drawing algorithm, in order to implement an STL cleanup tool which
combines STL pieces that "touch" into one solid object.  ("Touch" within an
epsilon value which is configurable.)  These are early ideas into such
functionality.

I have also in the past implemented a spacial 3D search tree, “R-tree” to
be exact, which optimizes the determination of whether or not two small
things are intersecting or not.  When analyzing STL files full of many
small little pieces, it would make sense to optimize boolean operations
through the use of a structure such as an R-tree.  There are research
papers written that describe the algorithm for the R-tree.  The R-tree has
very favorable time complexity characteristics, and it would be well-suited
for this sort of operation.  I implemented and used an R-tree (written in
Java) while working at a research laboratory at the University of
California, with excellent results.

So I ask, does such “STL clean-up” functionality already exist?  I think
no doubt it would by now.  But are such tools implemented correctly and are
they effective?  Can they handle the cleanup of STL files that consists of
hundreds, or thousands of tiny pieces?  For example I found myself needing
to implement my retro line drawer twenty two years ago because I didn't
find anything similar on the internet (and still can't).  I needed that
"retro line look" but wanted precise subsegment-covering properties for my
Blockout video game, so I implemented my own line-drawing library.

I imagine some post-OpenSCAD piece of code, which handles STL files
outside the scope of OpenSCAD, to allow for cleanup of STL files.  I
imagine this being written in Java, in C, or in Python.  I also imagine
that if such a piece of code is successful enough, that it may be
incorporated into OpenSCAD “proper” eventually (which is a great tool by
the way!).

For these reasons I seek some guidance.  I would like to potentially
embark on this mission of writing such a toolset in the near future, unless
such a toolset already exists, and unless it does a proper job.

This sort of work is right up my alley by the way.  I excel in
computational geometry and the like.  I think there would be extensive use
of recursive functions and intelligent ways of triangulating surfaces which
need to be split up and combined, in the ideal piece of code which I’m now
starting to imagine.

I interviewed with Materialise in Belgium (actually with a subsidiary in
Princeton NJ) but didn’t get the offer because of my unwillingness to take
the jab.  They were receiving financial help from a medical device company
(a client of theirs), which influenced their decision to mandate the jab
for all of their employees.

What I’m trying to say is that I find it odd that someone such as myself,
with my level of intelligence, talent, skill, and ambition, isn’t able to
find a way to sustain himself doing the type of work that he is best at.
At the very least I deserve a chance to be a contributing member of larger
society.  People such as myself oftentimes end up asking themselves,
whether the problem is internal to themselves or whether it’s a problem
with the people running our world.

Any feedback appreciated. on this sort of tool.  I am in the early stages
of thinking about such a tool at this point.  It’s the sort of thing I
would like to work on in the future; and, I would be very good at it.  I've
been away from this email list for a while because I have been so busy with
my hobby projects.

Respectfully,
Nerius Anthony Landys

Sent with Proton Mail https://proton.me/ secure email.

---------- Forwarded message ----------
From: neri-engineering via Discuss discuss@lists.openscad.org
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc: neri-engineering neri-engineering@protonmail.com
Bcc:
Date: Sat, 03 Jun 2023 22:41:02 +0000
Subject: [OpenSCAD] STL best practices & tools


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

You're doing some serious mental gymnastics if you're wondering why you can't work in a social group when you haven't gotten vaccinated. Self-defeating behaviors that make your presence toxic to the group will lead to rejection and/or exclusion by groups. If the job offer was dependent on actually working in physical proximity in an office because work-from-home isn't possible, they were quite reasonable to reject you. On Sat, Jun 3, 2023 at 4:41 PM neri-engineering via Discuss < discuss@lists.openscad.org> wrote: > > > > ---------- Forwarded message ---------- > From: neri-engineering <neri-engineering@protonmail.com> > To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> > Cc: > Bcc: > Date: Sat, 03 Jun 2023 22:41:02 +0000 > Subject: [OpenSCAD] STL best practices & tools > Greetings, > > I want to begin to seek advice on an OpenSCAD-related project (improvement > or addition) in my writings below; however, first I offer a quick > introduction. > > I use OpenSCAD to create hobby engineering designs and assembly > animations. I have shared some of these before. I want to share my latest > computer animation which was generated using OpenSCAD, along with the > top-level scripts used to generate it; in the case that someone wants to do > something similar they may draw upon my work for inspiration and ideas. > > The animation itself (and I'm sorry if some people are offended with the > posting of an external link): > https://odysee.com/@Neri_Engineering/4wd-motor-mount-assy > > The entry points into the program to generate the above computer animation: > > https://sourceforge.net/p/nl10/code/HEAD/tree/scripts/4wd/motor/4wd-motor-mount-assembly-animation.sh > (entry point + camera work) > > https://sourceforge.net/p/nl10/code/HEAD/tree/code/gears/4wd/motor/anim/4wd-motor-mount-assembly.scad > (movement of parts, part definitions) > > At some point I could possibly “Nerf” down those animation scripts to > create something extremely barebones and simple, and then I could make a > video presentation/lecture describing it. > > Next, I am looking for employment opportunities. BERKELEY GRAD (MATH+CS), > EXPERT IN 3D COMPUTER GRAPHICS, THREADED PROGRAMMING, LOW LEVEL NETWORK > PROGRAMMING. UNIX POWER USER. FREEBSD, LINUX. JAVA / C / PYTHON. IN > TEXAS, SEEKING TO RELOCATE. CURRENTLY EMPLOYED. HAVE REFERENCES. > > Okay, now onto the main topic of this email. > > As I was studying other open source projects related to OpenSCAD I noticed > something interesting. In particular I recall looking at some code to > generate spur gears, and other code that was for generating screw threads > (using the polyhedron() native construct in OpenSCAD). > > I noticed that programmers have a habit of creating polyhedron that > overlap with their neighbors, so that when STL is generated, it consists of > one piece and not of many individual pieces. > > Yes, it makes sense to do that. I do understand why. > > But, it makes a large project unmanageable, in my opinion. For one, > usually, "fudging" the vertices on polyhedron() will result in very "jaggy" > objects, with extra vertices and extra little jaggies everywhere. This is > obviously undesirable. > > Second, it's not a pure approach in the mathematical sense. When you > start doing boolean operations (add, subtract, intersect, etc.) with jaggy > and imprecise objects then things get very hairy and very quickly. > > In all of my code, my mathematical intuition initially told me > instinctively to never fudge vertices in order to make polyhedron overlap, > and to instead keep everything as accurate and as precise as possible, with > the consequence that generated STL will be made up of many little pieces > (undesirable). > > Now I am at a point where I need to address these issues, of having > generated STL that consists of many little pieces. > > With time I will likely need to create STL to 3D print from, or to use to > make forms for injection molding, and with more time I will need to > transfer much of my work to other tools such as FreeCAD (Python scripts) in > the case where those parts need to be machined from metal, using CNC. > > But, I was thinking about the possibility of creating a post-generation > "STL cleanup tool", and I'm sure that such tools already exist. I was > imagining a tool which is configurable with "epsilon values" which will > treat sufficiently close numbers as being equal (configurable of course), > and will determine which faces are co-planar and which ones aren't. I > already have lots of experience with this sort of technique from my days of > writing line-drawing algorithms that use full aliasing (no anti-aliasing) > with blocky pixels, yet which allow end point coordinates to be specified > in 64 bit floating point. You are then able to draw very old-fashioned and > retro-looking pixelated lines (which look similar to the Bresenham style of > line) yet you're able to perfectly overlap sub-segments of the line. For > example, if you draw your original line from (0.0,0.0) to (5.0,13.0), two > prime numbers that is, then you can draw a subsegment covering only half of > the original line (0.0,0.0) -> (2.5,6.5), where every single pixel in the > subsegment is almost guaranteed to cover a pixel in the original line > segment. I say "almost" because usually this sort of operation entails > viewing the 64 bit representation of a floating point number in 32 bits, in > order to determine whether or not two numbers are sufficiently close to be > deemed equal. There are always, or at least usually, going to be some very > rare cases where such calculations won't lead to desired results, due to > the nature of number approximations that usually happen in computers > (unless real number systems are used, which are computationally very > expensive). > > I imagine using an approach similar to that of my near-perfect retro > line-drawing algorithm, in order to implement an STL cleanup tool which > combines STL pieces that "touch" into one solid object. ("Touch" within an > epsilon value which is configurable.) These are early ideas into such > functionality. > > I have also in the past implemented a spacial 3D search tree, “R-tree” to > be exact, which optimizes the determination of whether or not two small > things are intersecting or not. When analyzing STL files full of many > small little pieces, it would make sense to optimize boolean operations > through the use of a structure such as an R-tree. There are research > papers written that describe the algorithm for the R-tree. The R-tree has > very favorable time complexity characteristics, and it would be well-suited > for this sort of operation. I implemented and used an R-tree (written in > Java) while working at a research laboratory at the University of > California, with excellent results. > > So I ask, does such “STL clean-up” functionality already exist? I think > no doubt it would by now. But are such tools implemented correctly and are > they effective? Can they handle the cleanup of STL files that consists of > hundreds, or thousands of tiny pieces? For example I found myself needing > to implement my retro line drawer twenty two years ago because I didn't > find anything similar on the internet (and still can't). I needed that > "retro line look" but wanted precise subsegment-covering properties for my > Blockout video game, so I implemented my own line-drawing library. > > I imagine some post-OpenSCAD piece of code, which handles STL files > outside the scope of OpenSCAD, to allow for cleanup of STL files. I > imagine this being written in Java, in C, or in Python. I also imagine > that if such a piece of code is successful enough, that it may be > incorporated into OpenSCAD “proper” eventually (which is a great tool by > the way!). > > For these reasons I seek some guidance. I would like to potentially > embark on this mission of writing such a toolset in the near future, unless > such a toolset already exists, and unless it does a proper job. > > This sort of work is right up my alley by the way. I excel in > computational geometry and the like. I think there would be extensive use > of recursive functions and intelligent ways of triangulating surfaces which > need to be split up and combined, in the ideal piece of code which I’m now > starting to imagine. > > I interviewed with Materialise in Belgium (actually with a subsidiary in > Princeton NJ) but didn’t get the offer because of my unwillingness to take > the jab. They were receiving financial help from a medical device company > (a client of theirs), which influenced their decision to mandate the jab > for all of their employees. > > What I’m trying to say is that I find it odd that someone such as myself, > with my level of intelligence, talent, skill, and ambition, isn’t able to > find a way to sustain himself doing the type of work that he is best at. > At the very least I deserve a chance to be a contributing member of larger > society. People such as myself oftentimes end up asking themselves, > whether the problem is internal to themselves or whether it’s a problem > with the people running our world. > > Any feedback appreciated. on this sort of tool. I am in the early stages > of thinking about such a tool at this point. It’s the sort of thing I > would like to work on in the future; and, I would be very good at it. I've > been away from this email list for a while because I have been so busy with > my hobby projects. > > Respectfully, > Nerius Anthony Landys > > Sent with Proton Mail <https://proton.me/> secure email. > > > > ---------- Forwarded message ---------- > From: neri-engineering via Discuss <discuss@lists.openscad.org> > To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> > Cc: neri-engineering <neri-engineering@protonmail.com> > Bcc: > Date: Sat, 03 Jun 2023 22:41:02 +0000 > Subject: [OpenSCAD] STL best practices & tools > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
J
jon
Sun, Jun 4, 2023 12:54 AM

Is this a forum about programming, or about politics or medical
practices?  I would prefer the former over the latter.

Jon

On 6/3/2023 7:45 PM, david coneff wrote:

You're doing some serious mental gymnastics if you're wondering why
you can't work in a social group when you haven't gotten vaccinated.
Self-defeating behaviors that make your presence toxic to the group
will lead to rejection and/or exclusion by groups. If the job offer
was dependent on actually working in physical proximity in an office
because work-from-home isn't possible, they were quite reasonable to
reject you.

On Sat, Jun 3, 2023 at 4:41 PM neri-engineering via Discuss
discuss@lists.openscad.org wrote:

 ---------- Forwarded message ----------
 From: neri-engineering <neri-engineering@protonmail.com>
 To: OpenSCAD general discussion Mailing-list
 <discuss@lists.openscad.org>
 Cc:
 Bcc:
 Date: Sat, 03 Jun 2023 22:41:02 +0000
 Subject: [OpenSCAD] STL best practices & tools
 Greetings,

 I want to begin to seek advice on an OpenSCAD-related project
 (improvement or addition) in my writings below; however, first I
 offer a quick introduction.

 I use OpenSCAD to create hobby engineering designs and assembly
 animations.  I have shared some of these before.  I want to share
 my latest computer animation which was generated using OpenSCAD,
 along with the top-level scripts used to generate it; in the case
 that someone wants to do something similar they may draw upon my
 work for inspiration and ideas.

 The animation itself (and I'm sorry if some people are offended
 with the posting of an external link):
 https://odysee.com/@Neri_Engineering/4wd-motor-mount-assy

 The entry points into the program to generate the above computer
 animation:
 https://sourceforge.net/p/nl10/code/HEAD/tree/scripts/4wd/motor/4wd-motor-mount-assembly-animation.sh
 (entry point + camera work)
 https://sourceforge.net/p/nl10/code/HEAD/tree/code/gears/4wd/motor/anim/4wd-motor-mount-assembly.scad
 (movement of parts, part definitions)

 At some point I could possibly “Nerf” down those animation scripts
 to create something extremely barebones and simple, and then I
 could make a video presentation/lecture describing it.

 Next, I am looking for employment opportunities. BERKELEY GRAD
 (MATH+CS), EXPERT IN 3D COMPUTER GRAPHICS, THREADED PROGRAMMING,
 LOW LEVEL NETWORK PROGRAMMING. UNIX POWER USER.  FREEBSD, LINUX. 
 JAVA / C / PYTHON. IN TEXAS, SEEKING TO RELOCATE.  CURRENTLY
 EMPLOYED. HAVE REFERENCES.

 Okay, now onto the main topic of this email.

 As I was studying other open source projects related to OpenSCAD I
 noticed something interesting.  In particular I recall looking at
 some code to generate spur gears, and other code that was for
 generating screw threads (using the polyhedron() native construct
 in OpenSCAD).

 I noticed that programmers have a habit of creating polyhedron
 that overlap with their neighbors, so that when STL is generated,
 it consists of one piece and not of many individual pieces.

 Yes, it makes sense to do that.  I do understand why.

 But, it makes a large project unmanageable, in my opinion.  For
 one, usually, "fudging" the vertices on polyhedron() will result
 in very "jaggy" objects, with extra vertices and extra little
 jaggies everywhere. This is obviously undesirable.

 Second, it's not a pure approach in the mathematical sense.  When
 you start doing boolean operations (add, subtract, intersect,
 etc.) with jaggy and imprecise objects then things get very hairy
 and very quickly.

 In all of my code, my mathematical intuition initially told me
 instinctively to never fudge vertices in order to make polyhedron
 overlap, and to instead keep everything as accurate and as precise
 as possible, with the consequence that generated STL will be made
 up of many little pieces (undesirable).

 Now I am at a point where I need to address these issues, of
 having generated STL that consists of many little pieces.

 With time I will likely need to create STL to 3D print from, or to
 use to make forms for injection molding, and with more time I will
 need to transfer much of my work to other tools such as FreeCAD
 (Python scripts) in the case where those parts need to be machined
 from metal, using CNC.

 But, I was thinking about the possibility of creating a
 post-generation "STL cleanup tool", and I'm sure that such tools
 already exist.  I was imagining a tool which is configurable with
 "epsilon values" which will treat sufficiently close numbers as
 being equal (configurable of course), and will determine which
 faces are co-planar and which ones aren't.  I already have lots of
 experience with this sort of technique from my days of writing
 line-drawing algorithms that use full aliasing (no anti-aliasing)
 with blocky pixels, yet which allow end point coordinates to be
 specified in 64 bit floating point.  You are then able to draw
 very old-fashioned and retro-looking pixelated lines (which look
 similar to the Bresenham style of line) yet you're able to
 perfectly overlap sub-segments of the line.  For example, if you
 draw your original line from (0.0,0.0) to (5.0,13.0), two prime
 numbers that is, then you can draw a subsegment covering only half
 of the original line (0.0,0.0) -> (2.5,6.5), where every single
 pixel in the subsegment is almost guaranteed to cover a pixel in
 the original line segment.  I say "almost" because usually this
 sort of operation entails viewing the 64 bit representation of a
 floating point number in 32 bits, in order to determine whether or
 not two numbers are sufficiently close to be deemed equal.  There
 are always, or at least usually, going to be some very rare cases
 where such calculations won't lead to desired results, due to the
 nature of number approximations that usually happen in computers
 (unless real number systems are used, which are computationally
 very expensive).

 I imagine using an approach similar to that of my near-perfect
 retro line-drawing algorithm, in order to implement an STL cleanup
 tool which combines STL pieces that "touch" into one solid object.
  ("Touch" within an epsilon value which is configurable.)  These
 are early ideas into such functionality.

 I have also in the past implemented a spacial 3D search tree,
 “R-tree” to be exact, which optimizes the determination of whether
 or not two small things are intersecting or not.  When analyzing
 STL files full of many small little pieces, it would make sense to
 optimize boolean operations through the use of a structure such as
 an R-tree.  There are research papers written that describe the
 algorithm for the R-tree.  The R-tree has very favorable time
 complexity characteristics, and it would be well-suited for this
 sort of operation.  I implemented and used an R-tree (written in
 Java) while working at a research laboratory at the University of
 California, with excellent results.

 So I ask, does such “STL clean-up” functionality already exist?  I
 think no doubt it would by now.  But are such tools implemented
 correctly and are they effective?  Can they handle the cleanup of
 STL files that consists of hundreds, or thousands of tiny pieces?
 For example I found myself needing to implement my retro line
 drawer twenty two years ago because I didn't find anything similar
 on the internet (and still can't).  I needed that "retro line
 look" but wanted precise subsegment-covering properties for my
 Blockout video game, so I implemented my own line-drawing library.

 I imagine some post-OpenSCAD piece of code, which handles STL
 files outside the scope of OpenSCAD, to allow for cleanup of STL
 files.  I imagine this being written in Java, in C, or in Python. 
 I also imagine that if such a piece of code is successful enough,
 that it may be incorporated into OpenSCAD “proper” eventually
 (which is a great tool by the way!).

 For these reasons I seek some guidance.  I would like to
 potentially embark on this mission of writing such a toolset in
 the near future, unless such a toolset already exists, and unless
 it does a proper job.

 This sort of work is right up my alley by the way.  I excel in
 computational geometry and the like.  I think there would be
 extensive use of recursive functions and intelligent ways of
 triangulating surfaces which need to be split up and combined, in
 the ideal piece of code which I’m now starting to imagine.

 I interviewed with Materialise in Belgium (actually with a
 subsidiary in Princeton NJ) but didn’t get the offer because of my
 unwillingness to take the jab.  They were receiving financial help
 from a medical device company (a client of theirs), which
 influenced their decision to mandate the jab for all of their
 employees.

 What I’m trying to say is that I find it odd that someone such as
 myself, with my level of intelligence, talent, skill, and
 ambition, isn’t able to find a way to sustain himself doing the
 type of work that he is best at.  At the very least I deserve a
 chance to be a contributing member of larger society.  People such
 as myself oftentimes end up asking themselves, whether the problem
 is internal to themselves or whether it’s a problem with the
 people running our world.

 Any feedback appreciated. on this sort of tool. I am in the early
 stages of thinking about such a tool at this point.  It’s the sort
 of thing I would like to work on in the future; and, I would be
 very good at it. I've been away from this email list for a while
 because I have been so busy with my hobby projects.

 Respectfully,
 Nerius Anthony Landys

 Sent with Proton Mail <https://proton.me/> secure email.



 ---------- Forwarded message ----------
 From: neri-engineering via Discuss <discuss@lists.openscad.org>
 To: OpenSCAD general discussion Mailing-list
 <discuss@lists.openscad.org>
 Cc: neri-engineering <neri-engineering@protonmail.com>
 Bcc:
 Date: Sat, 03 Jun 2023 22:41:02 +0000
 Subject: [OpenSCAD] STL best practices & tools
 _______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org

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

Is this a forum about programming, or about politics or medical practices?  I would prefer the former over the latter. Jon On 6/3/2023 7:45 PM, david coneff wrote: > You're doing some serious mental gymnastics if you're wondering why > you can't work in a social group when you haven't gotten vaccinated. > Self-defeating behaviors that make your presence toxic to the group > will lead to rejection and/or exclusion by groups. If the job offer > was dependent on actually working in physical proximity in an office > because work-from-home isn't possible, they were quite reasonable to > reject you. > > On Sat, Jun 3, 2023 at 4:41 PM neri-engineering via Discuss > <discuss@lists.openscad.org> wrote: > > > > > ---------- Forwarded message ---------- > From: neri-engineering <neri-engineering@protonmail.com> > To: OpenSCAD general discussion Mailing-list > <discuss@lists.openscad.org> > Cc: > Bcc: > Date: Sat, 03 Jun 2023 22:41:02 +0000 > Subject: [OpenSCAD] STL best practices & tools > Greetings, > > I want to begin to seek advice on an OpenSCAD-related project > (improvement or addition) in my writings below; however, first I > offer a quick introduction. > > I use OpenSCAD to create hobby engineering designs and assembly > animations.  I have shared some of these before.  I want to share > my latest computer animation which was generated using OpenSCAD, > along with the top-level scripts used to generate it; in the case > that someone wants to do something similar they may draw upon my > work for inspiration and ideas. > > The animation itself (and I'm sorry if some people are offended > with the posting of an external link): > https://odysee.com/@Neri_Engineering/4wd-motor-mount-assy > > The entry points into the program to generate the above computer > animation: > https://sourceforge.net/p/nl10/code/HEAD/tree/scripts/4wd/motor/4wd-motor-mount-assembly-animation.sh > (entry point + camera work) > https://sourceforge.net/p/nl10/code/HEAD/tree/code/gears/4wd/motor/anim/4wd-motor-mount-assembly.scad > (movement of parts, part definitions) > > At some point I could possibly “Nerf” down those animation scripts > to create something extremely barebones and simple, and then I > could make a video presentation/lecture describing it. > > Next, I am looking for employment opportunities. BERKELEY GRAD > (MATH+CS), EXPERT IN 3D COMPUTER GRAPHICS, THREADED PROGRAMMING, > LOW LEVEL NETWORK PROGRAMMING. UNIX POWER USER.  FREEBSD, LINUX.  > JAVA / C / PYTHON. IN TEXAS, SEEKING TO RELOCATE.  CURRENTLY > EMPLOYED. HAVE REFERENCES. > > Okay, now onto the main topic of this email. > > As I was studying other open source projects related to OpenSCAD I > noticed something interesting.  In particular I recall looking at > some code to generate spur gears, and other code that was for > generating screw threads (using the polyhedron() native construct > in OpenSCAD). > > I noticed that programmers have a habit of creating polyhedron > that overlap with their neighbors, so that when STL is generated, > it consists of one piece and not of many individual pieces. > > Yes, it makes sense to do that.  I do understand why. > > But, it makes a large project unmanageable, in my opinion.  For > one, usually, "fudging" the vertices on polyhedron() will result > in very "jaggy" objects, with extra vertices and extra little > jaggies everywhere. This is obviously undesirable. > > Second, it's not a pure approach in the mathematical sense.  When > you start doing boolean operations (add, subtract, intersect, > etc.) with jaggy and imprecise objects then things get very hairy > and very quickly. > > In all of my code, my mathematical intuition initially told me > instinctively to never fudge vertices in order to make polyhedron > overlap, and to instead keep everything as accurate and as precise > as possible, with the consequence that generated STL will be made > up of many little pieces (undesirable). > > Now I am at a point where I need to address these issues, of > having generated STL that consists of many little pieces. > > With time I will likely need to create STL to 3D print from, or to > use to make forms for injection molding, and with more time I will > need to transfer much of my work to other tools such as FreeCAD > (Python scripts) in the case where those parts need to be machined > from metal, using CNC. > > But, I was thinking about the possibility of creating a > post-generation "STL cleanup tool", and I'm sure that such tools > already exist.  I was imagining a tool which is configurable with > "epsilon values" which will treat sufficiently close numbers as > being equal (configurable of course), and will determine which > faces are co-planar and which ones aren't.  I already have lots of > experience with this sort of technique from my days of writing > line-drawing algorithms that use full aliasing (no anti-aliasing) > with blocky pixels, yet which allow end point coordinates to be > specified in 64 bit floating point.  You are then able to draw > very old-fashioned and retro-looking pixelated lines (which look > similar to the Bresenham style of line) yet you're able to > perfectly overlap sub-segments of the line.  For example, if you > draw your original line from (0.0,0.0) to (5.0,13.0), two prime > numbers that is, then you can draw a subsegment covering only half > of the original line (0.0,0.0) -> (2.5,6.5), where every single > pixel in the subsegment is almost guaranteed to cover a pixel in > the original line segment.  I say "almost" because usually this > sort of operation entails viewing the 64 bit representation of a > floating point number in 32 bits, in order to determine whether or > not two numbers are sufficiently close to be deemed equal.  There > are always, or at least usually, going to be some very rare cases > where such calculations won't lead to desired results, due to the > nature of number approximations that usually happen in computers > (unless real number systems are used, which are computationally > very expensive). > > I imagine using an approach similar to that of my near-perfect > retro line-drawing algorithm, in order to implement an STL cleanup > tool which combines STL pieces that "touch" into one solid object. >  ("Touch" within an epsilon value which is configurable.)  These > are early ideas into such functionality. > > I have also in the past implemented a spacial 3D search tree, > “R-tree” to be exact, which optimizes the determination of whether > or not two small things are intersecting or not.  When analyzing > STL files full of many small little pieces, it would make sense to > optimize boolean operations through the use of a structure such as > an R-tree.  There are research papers written that describe the > algorithm for the R-tree.  The R-tree has very favorable time > complexity characteristics, and it would be well-suited for this > sort of operation.  I implemented and used an R-tree (written in > Java) while working at a research laboratory at the University of > California, with excellent results. > > So I ask, does such “STL clean-up” functionality already exist?  I > think no doubt it would by now.  But are such tools implemented > correctly and are they effective?  Can they handle the cleanup of > STL files that consists of hundreds, or thousands of tiny pieces? > For example I found myself needing to implement my retro line > drawer twenty two years ago because I didn't find anything similar > on the internet (and still can't).  I needed that "retro line > look" but wanted precise subsegment-covering properties for my > Blockout video game, so I implemented my own line-drawing library. > > I imagine some post-OpenSCAD piece of code, which handles STL > files outside the scope of OpenSCAD, to allow for cleanup of STL > files.  I imagine this being written in Java, in C, or in Python.  > I also imagine that if such a piece of code is successful enough, > that it may be incorporated into OpenSCAD “proper” eventually > (which is a great tool by the way!). > > For these reasons I seek some guidance.  I would like to > potentially embark on this mission of writing such a toolset in > the near future, unless such a toolset already exists, and unless > it does a proper job. > > This sort of work is right up my alley by the way.  I excel in > computational geometry and the like.  I think there would be > extensive use of recursive functions and intelligent ways of > triangulating surfaces which need to be split up and combined, in > the ideal piece of code which I’m now starting to imagine. > > I interviewed with Materialise in Belgium (actually with a > subsidiary in Princeton NJ) but didn’t get the offer because of my > unwillingness to take the jab.  They were receiving financial help > from a medical device company (a client of theirs), which > influenced their decision to mandate the jab for all of their > employees. > > What I’m trying to say is that I find it odd that someone such as > myself, with my level of intelligence, talent, skill, and > ambition, isn’t able to find a way to sustain himself doing the > type of work that he is best at.  At the very least I deserve a > chance to be a contributing member of larger society.  People such > as myself oftentimes end up asking themselves, whether the problem > is internal to themselves or whether it’s a problem with the > people running our world. > > Any feedback appreciated. on this sort of tool. I am in the early > stages of thinking about such a tool at this point.  It’s the sort > of thing I would like to work on in the future; and, I would be > very good at it. I've been away from this email list for a while > because I have been so busy with my hobby projects. > > Respectfully, > Nerius Anthony Landys > > Sent with Proton Mail <https://proton.me/> secure email. > > > > ---------- Forwarded message ---------- > From: neri-engineering via Discuss <discuss@lists.openscad.org> > To: OpenSCAD general discussion Mailing-list > <discuss@lists.openscad.org> > Cc: neri-engineering <neri-engineering@protonmail.com> > Bcc: > Date: Sat, 03 Jun 2023 22:41:02 +0000 > Subject: [OpenSCAD] STL best practices & tools > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
N
neri-engineering
Sun, Jun 4, 2023 1:00 AM

Me too. I would hardly think that a highly technical forum would be a place where I would be belittled for having accidentally expressed an opinion on a political matter.

Sent with Proton Mail secure email.

------- Original Message -------
On Saturday, June 3rd, 2023 at 7:54 PM, jon jon@jonbondy.com wrote:

Is this a forum about programming, or about politics or medical practices? I would prefer the former over the latter.

Jon

On 6/3/2023 7:45 PM, david coneff wrote:

You're doing some serious mental gymnastics if you're wondering why you can't work in a social group when you haven't gotten vaccinated. Self-defeating behaviors that make your presence toxic to the group will lead to rejection and/or exclusion by groups. If the job offer was dependent on actually working in physical proximity in an office because work-from-home isn't possible, they were quite reasonable to reject you.

On Sat, Jun 3, 2023 at 4:41 PM neri-engineering via Discuss discuss@lists.openscad.org wrote:

---------- Forwarded message ----------
From: neri-engineering neri-engineering@protonmail.com
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc:
Bcc:
Date: Sat, 03 Jun 2023 22:41:02 +0000
Subject: [OpenSCAD] STL best practices & tools

Greetings,

I want to begin to seek advice on an OpenSCAD-related project (improvement or addition) in my writings below; however, first I offer a quick introduction.

I use OpenSCAD to create hobby engineering designs and assembly animations. I have shared some of these before. I want to share my latest computer animation which was generated using OpenSCAD, along with the top-level scripts used to generate it; in the case that someone wants to do something similar they may draw upon my work for inspiration and ideas.

The animation itself (and I'm sorry if some people are offended with the posting of an external link):
https://odysee.com/@Neri_Engineering/4wd-motor-mount-assy

The entry points into the program to generate the above computer animation:
https://sourceforge.net/p/nl10/code/HEAD/tree/scripts/4wd/motor/4wd-motor-mount-assembly-animation.sh (entry point + camera work)
https://sourceforge.net/p/nl10/code/HEAD/tree/code/gears/4wd/motor/anim/4wd-motor-mount-assembly.scad (movement of parts, part definitions)

At some point I could possibly “Nerf” down those animation scripts to create something extremely barebones and simple, and then I could make a video presentation/lecture describing it.

Next, I am looking for employment opportunities. BERKELEY GRAD (MATH+CS), EXPERT IN 3D COMPUTER GRAPHICS, THREADED PROGRAMMING, LOW LEVEL NETWORK PROGRAMMING. UNIX POWER USER. FREEBSD, LINUX. JAVA / C / PYTHON. IN TEXAS, SEEKING TO RELOCATE. CURRENTLY EMPLOYED. HAVE REFERENCES.

Okay, now onto the main topic of this email.

As I was studying other open source projects related to OpenSCAD I noticed something interesting. In particular I recall looking at some code to generate spur gears, and other code that was for generating screw threads (using the polyhedron() native construct in OpenSCAD).

I noticed that programmers have a habit of creating polyhedron that overlap with their neighbors, so that when STL is generated, it consists of one piece and not of many individual pieces.

Yes, it makes sense to do that. I do understand why.

But, it makes a large project unmanageable, in my opinion. For one, usually, "fudging" the vertices on polyhedron() will result in very "jaggy" objects, with extra vertices and extra little jaggies everywhere. This is obviously undesirable.

Second, it's not a pure approach in the mathematical sense. When you start doing boolean operations (add, subtract, intersect, etc.) with jaggy and imprecise objects then things get very hairy and very quickly.

In all of my code, my mathematical intuition initially told me instinctively to never fudge vertices in order to make polyhedron overlap, and to instead keep everything as accurate and as precise as possible, with the consequence that generated STL will be made up of many little pieces (undesirable).

Now I am at a point where I need to address these issues, of having generated STL that consists of many little pieces.

With time I will likely need to create STL to 3D print from, or to use to make forms for injection molding, and with more time I will need to transfer much of my work to other tools such as FreeCAD (Python scripts) in the case where those parts need to be machined from metal, using CNC.

But, I was thinking about the possibility of creating a post-generation "STL cleanup tool", and I'm sure that such tools already exist. I was imagining a tool which is configurable with "epsilon values" which will treat sufficiently close numbers as being equal (configurable of course), and will determine which faces are co-planar and which ones aren't. I already have lots of experience with this sort of technique from my days of writing line-drawing algorithms that use full aliasing (no anti-aliasing) with blocky pixels, yet which allow end point coordinates to be specified in 64 bit floating point. You are then able to draw very old-fashioned and retro-looking pixelated lines (which look similar to the Bresenham style of line) yet you're able to perfectly overlap sub-segments of the line. For example, if you draw your original line from (0.0,0.0) to (5.0,13.0), two prime numbers that is, then you can draw a subsegment covering only half of the original line (0.0,0.0) -> (2.5,6.5), where every single pixel in the subsegment is almost guaranteed to cover a pixel in the original line segment. I say "almost" because usually this sort of operation entails viewing the 64 bit representation of a floating point number in 32 bits, in order to determine whether or not two numbers are sufficiently close to be deemed equal. There are always, or at least usually, going to be some very rare cases where such calculations won't lead to desired results, due to the nature of number approximations that usually happen in computers (unless real number systems are used, which are computationally very expensive).

I imagine using an approach similar to that of my near-perfect retro line-drawing algorithm, in order to implement an STL cleanup tool which combines STL pieces that "touch" into one solid object. ("Touch" within an epsilon value which is configurable.) These are early ideas into such functionality.

I have also in the past implemented a spacial 3D search tree, “R-tree” to be exact, which optimizes the determination of whether or not two small things are intersecting or not. When analyzing STL files full of many small little pieces, it would make sense to optimize boolean operations through the use of a structure such as an R-tree. There are research papers written that describe the algorithm for the R-tree. The R-tree has very favorable time complexity characteristics, and it would be well-suited for this sort of operation. I implemented and used an R-tree (written in Java) while working at a research laboratory at the University of California, with excellent results.

So I ask, does such “STL clean-up” functionality already exist? I think no doubt it would by now. But are such tools implemented correctly and are they effective? Can they handle the cleanup of STL files that consists of hundreds, or thousands of tiny pieces? For example I found myself needing to implement my retro line drawer twenty two years ago because I didn't find anything similar on the internet (and still can't). I needed that "retro line look" but wanted precise subsegment-covering properties for my Blockout video game, so I implemented my own line-drawing library.

I imagine some post-OpenSCAD piece of code, which handles STL files outside the scope of OpenSCAD, to allow for cleanup of STL files. I imagine this being written in Java, in C, or in Python. I also imagine that if such a piece of code is successful enough, that it may be incorporated into OpenSCAD “proper” eventually (which is a great tool by the way!).

For these reasons I seek some guidance. I would like to potentially embark on this mission of writing such a toolset in the near future, unless such a toolset already exists, and unless it does a proper job.

This sort of work is right up my alley by the way. I excel in computational geometry and the like. I think there would be extensive use of recursive functions and intelligent ways of triangulating surfaces which need to be split up and combined, in the ideal piece of code which I’m now starting to imagine.

I interviewed with Materialise in Belgium (actually with a subsidiary in Princeton NJ) but didn’t get the offer because of my unwillingness to take the jab. They were receiving financial help from a medical device company (a client of theirs), which influenced their decision to mandate the jab for all of their employees.

What I’m trying to say is that I find it odd that someone such as myself, with my level of intelligence, talent, skill, and ambition, isn’t able to find a way to sustain himself doing the type of work that he is best at. At the very least I deserve a chance to be a contributing member of larger society. People such as myself oftentimes end up asking themselves, whether the problem is internal to themselves or whether it’s a problem with the people running our world.

Any feedback appreciated. on this sort of tool. I am in the early stages of thinking about such a tool at this point. It’s the sort of thing I would like to work on in the future; and, I would be very good at it. I've been away from this email list for a while because I have been so busy with my hobby projects.

Respectfully, Nerius Anthony Landys

Sent with Proton Mail secure email.

---------- Forwarded message ----------
From: neri-engineering via Discuss discuss@lists.openscad.org
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc: neri-engineering neri-engineering@protonmail.com
Bcc:
Date: Sat, 03 Jun 2023 22:41:02 +0000
Subject: [OpenSCAD] STL best practices & tools


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


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

Me too. I would hardly think that a highly technical forum would be a place where I would be belittled for having accidentally expressed an opinion on a political matter. Sent with [Proton Mail](https://proton.me/) secure email. ------- Original Message ------- On Saturday, June 3rd, 2023 at 7:54 PM, jon <jon@jonbondy.com> wrote: > Is this a forum about programming, or about politics or medical practices? I would prefer the former over the latter. > > Jon > > On 6/3/2023 7:45 PM, david coneff wrote: > >> You're doing some serious mental gymnastics if you're wondering why you can't work in a social group when you haven't gotten vaccinated. Self-defeating behaviors that make your presence toxic to the group will lead to rejection and/or exclusion by groups. If the job offer was dependent on actually working in physical proximity in an office because work-from-home isn't possible, they were quite reasonable to reject you. >> >> On Sat, Jun 3, 2023 at 4:41 PM neri-engineering via Discuss <discuss@lists.openscad.org> wrote: >> >>> ---------- Forwarded message ---------- >>> From: neri-engineering <neri-engineering@protonmail.com> >>> To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> >>> Cc: >>> Bcc: >>> Date: Sat, 03 Jun 2023 22:41:02 +0000 >>> Subject: [OpenSCAD] STL best practices & tools >>> >>> Greetings, >>> >>> I want to begin to seek advice on an OpenSCAD-related project (improvement or addition) in my writings below; however, first I offer a quick introduction. >>> >>> I use OpenSCAD to create hobby engineering designs and assembly animations. I have shared some of these before. I want to share my latest computer animation which was generated using OpenSCAD, along with the top-level scripts used to generate it; in the case that someone wants to do something similar they may draw upon my work for inspiration and ideas. >>> >>> The animation itself (and I'm sorry if some people are offended with the posting of an external link): >>> https://odysee.com/@Neri_Engineering/4wd-motor-mount-assy >>> >>> The entry points into the program to generate the above computer animation: >>> https://sourceforge.net/p/nl10/code/HEAD/tree/scripts/4wd/motor/4wd-motor-mount-assembly-animation.sh (entry point + camera work) >>> https://sourceforge.net/p/nl10/code/HEAD/tree/code/gears/4wd/motor/anim/4wd-motor-mount-assembly.scad (movement of parts, part definitions) >>> >>> At some point I could possibly “Nerf” down those animation scripts to create something extremely barebones and simple, and then I could make a video presentation/lecture describing it. >>> >>> Next, I am looking for employment opportunities. BERKELEY GRAD (MATH+CS), EXPERT IN 3D COMPUTER GRAPHICS, THREADED PROGRAMMING, LOW LEVEL NETWORK PROGRAMMING. UNIX POWER USER. FREEBSD, LINUX. JAVA / C / PYTHON. IN TEXAS, SEEKING TO RELOCATE. CURRENTLY EMPLOYED. HAVE REFERENCES. >>> >>> Okay, now onto the main topic of this email. >>> >>> As I was studying other open source projects related to OpenSCAD I noticed something interesting. In particular I recall looking at some code to generate spur gears, and other code that was for generating screw threads (using the polyhedron() native construct in OpenSCAD). >>> >>> I noticed that programmers have a habit of creating polyhedron that overlap with their neighbors, so that when STL is generated, it consists of one piece and not of many individual pieces. >>> >>> Yes, it makes sense to do that. I do understand why. >>> >>> But, it makes a large project unmanageable, in my opinion. For one, usually, "fudging" the vertices on polyhedron() will result in very "jaggy" objects, with extra vertices and extra little jaggies everywhere. This is obviously undesirable. >>> >>> Second, it's not a pure approach in the mathematical sense. When you start doing boolean operations (add, subtract, intersect, etc.) with jaggy and imprecise objects then things get very hairy and very quickly. >>> >>> In all of my code, my mathematical intuition initially told me instinctively to never fudge vertices in order to make polyhedron overlap, and to instead keep everything as accurate and as precise as possible, with the consequence that generated STL will be made up of many little pieces (undesirable). >>> >>> Now I am at a point where I need to address these issues, of having generated STL that consists of many little pieces. >>> >>> With time I will likely need to create STL to 3D print from, or to use to make forms for injection molding, and with more time I will need to transfer much of my work to other tools such as FreeCAD (Python scripts) in the case where those parts need to be machined from metal, using CNC. >>> >>> But, I was thinking about the possibility of creating a post-generation "STL cleanup tool", and I'm sure that such tools already exist. I was imagining a tool which is configurable with "epsilon values" which will treat sufficiently close numbers as being equal (configurable of course), and will determine which faces are co-planar and which ones aren't. I already have lots of experience with this sort of technique from my days of writing line-drawing algorithms that use full aliasing (no anti-aliasing) with blocky pixels, yet which allow end point coordinates to be specified in 64 bit floating point. You are then able to draw very old-fashioned and retro-looking pixelated lines (which look similar to the Bresenham style of line) yet you're able to perfectly overlap sub-segments of the line. For example, if you draw your original line from (0.0,0.0) to (5.0,13.0), two prime numbers that is, then you can draw a subsegment covering only half of the original line (0.0,0.0) -> (2.5,6.5), where every single pixel in the subsegment is almost guaranteed to cover a pixel in the original line segment. I say "almost" because usually this sort of operation entails viewing the 64 bit representation of a floating point number in 32 bits, in order to determine whether or not two numbers are sufficiently close to be deemed equal. There are always, or at least usually, going to be some very rare cases where such calculations won't lead to desired results, due to the nature of number approximations that usually happen in computers (unless real number systems are used, which are computationally very expensive). >>> >>> I imagine using an approach similar to that of my near-perfect retro line-drawing algorithm, in order to implement an STL cleanup tool which combines STL pieces that "touch" into one solid object. ("Touch" within an epsilon value which is configurable.) These are early ideas into such functionality. >>> >>> I have also in the past implemented a spacial 3D search tree, “R-tree” to be exact, which optimizes the determination of whether or not two small things are intersecting or not. When analyzing STL files full of many small little pieces, it would make sense to optimize boolean operations through the use of a structure such as an R-tree. There are research papers written that describe the algorithm for the R-tree. The R-tree has very favorable time complexity characteristics, and it would be well-suited for this sort of operation. I implemented and used an R-tree (written in Java) while working at a research laboratory at the University of California, with excellent results. >>> >>> So I ask, does such “STL clean-up” functionality already exist? I think no doubt it would by now. But are such tools implemented correctly and are they effective? Can they handle the cleanup of STL files that consists of hundreds, or thousands of tiny pieces? For example I found myself needing to implement my retro line drawer twenty two years ago because I didn't find anything similar on the internet (and still can't). I needed that "retro line look" but wanted precise subsegment-covering properties for my Blockout video game, so I implemented my own line-drawing library. >>> >>> I imagine some post-OpenSCAD piece of code, which handles STL files outside the scope of OpenSCAD, to allow for cleanup of STL files. I imagine this being written in Java, in C, or in Python. I also imagine that if such a piece of code is successful enough, that it may be incorporated into OpenSCAD “proper” eventually (which is a great tool by the way!). >>> >>> For these reasons I seek some guidance. I would like to potentially embark on this mission of writing such a toolset in the near future, unless such a toolset already exists, and unless it does a proper job. >>> >>> This sort of work is right up my alley by the way. I excel in computational geometry and the like. I think there would be extensive use of recursive functions and intelligent ways of triangulating surfaces which need to be split up and combined, in the ideal piece of code which I’m now starting to imagine. >>> >>> I interviewed with Materialise in Belgium (actually with a subsidiary in Princeton NJ) but didn’t get the offer because of my unwillingness to take the jab. They were receiving financial help from a medical device company (a client of theirs), which influenced their decision to mandate the jab for all of their employees. >>> >>> What I’m trying to say is that I find it odd that someone such as myself, with my level of intelligence, talent, skill, and ambition, isn’t able to find a way to sustain himself doing the type of work that he is best at. At the very least I deserve a chance to be a contributing member of larger society. People such as myself oftentimes end up asking themselves, whether the problem is internal to themselves or whether it’s a problem with the people running our world. >>> >>> Any feedback appreciated. on this sort of tool. I am in the early stages of thinking about such a tool at this point. It’s the sort of thing I would like to work on in the future; and, I would be very good at it. I've been away from this email list for a while because I have been so busy with my hobby projects. >>> >>> Respectfully, Nerius Anthony Landys >>> >>> Sent with [Proton Mail](https://proton.me/) secure email. >>> >>> ---------- Forwarded message ---------- >>> From: neri-engineering via Discuss <discuss@lists.openscad.org> >>> To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> >>> Cc: neri-engineering <neri-engineering@protonmail.com> >>> Bcc: >>> Date: Sat, 03 Jun 2023 22:41:02 +0000 >>> Subject: [OpenSCAD] STL best practices & tools >>> _______________________________________________ >>> OpenSCAD mailing list >>> To unsubscribe send an email to discuss-leave@lists.openscad.org >> >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to >> discuss-leave@lists.openscad.org