discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

beginners question

LD
lee.deraud@roadrunner.com
Sat, May 30, 2026 2:34 AM

One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not quite the same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss discuss@lists.openscad.org
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org
Cc: Glenn Butcher glenn.butcher@gmail.com
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes.  I then wrote a short blog post on why STL files are problematic representing object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on.  CGAL is the library that it has used for many years; Manifold is a newer and far faster library.  Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection.


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

One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not *quite* the same thing, i.e. that a manifold STL is inherently hollow. Is this a distinction without a difference? -----Original Message----- From: Glenn Butcher via Discuss <discuss@lists.openscad.org> Sent: Friday, May 29, 2026 6:03 PM To: discuss@lists.openscad.org Cc: Glenn Butcher <glenn.butcher@gmail.com> Subject: [OpenSCAD] Re: beginners question I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes. I then wrote a short blog post on why STL files are problematic representing object boundaries: https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ Tried to make it understandable; anyone has questions, post them here. Glenn On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself. > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on. CGAL is the library that it has used for many years; Manifold is a newer and far faster library. Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection. > _______________________________________________ > 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
GB
Glenn Butcher
Sat, May 30, 2026 2:48 AM

Interesting question.  I might be wrong in this, so anyone with more
knowledge can correct me, but the inside of a manifold mesh is
considered 'solid' because the 'other' sides, or, inward-facing sides of
the triangles do not form a valid surface. One of the criteria of a
manifold mesh is that the triangles are all specified
'counter-clockwise', that is, the order of the three points is given
such that a round trip through them goes in a counter-clockwise path. 
Looking at the triangle from the inside, its points 'wind' clockwise, if
properly defined.  If I have it right, this convention enables
'inside/outside' tests, where a point in space is determined to be
inside or outside the mesh.

The triangle mesh that defines an object is a description of its
boundary, just one aspect of the object.

On 5/29/2026 8:34 PM, Lee DeRaud via Discuss wrote:

One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not quite the same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss discuss@lists.openscad.org
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org
Cc: Glenn Butcher glenn.butcher@gmail.com
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes.  I then wrote a short blog post on why STL files are problematic representing object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on.  CGAL is the library that it has used for many years; Manifold is a newer and far faster library.  Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection.


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


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

Interesting question.  I might be wrong in this, so anyone with more knowledge can correct me, but the inside of a manifold mesh is considered 'solid' because the 'other' sides, or, inward-facing sides of the triangles do not form a valid surface. One of the criteria of a manifold mesh is that the triangles are all specified 'counter-clockwise', that is, the order of the three points is given such that a round trip through them goes in a counter-clockwise path.  Looking at the triangle from the inside, its points 'wind' clockwise, if properly defined.  If I have it right, this convention enables 'inside/outside' tests, where a point in space is determined to be inside or outside the mesh. The triangle mesh that defines an object is a description of its boundary, just one aspect of the object. On 5/29/2026 8:34 PM, Lee DeRaud via Discuss wrote: > One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not *quite* the same thing, i.e. that a manifold STL is inherently hollow. > Is this a distinction without a difference? > > -----Original Message----- > From: Glenn Butcher via Discuss <discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM > To: discuss@lists.openscad.org > Cc: Glenn Butcher <glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question > > I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes. I then wrote a short blog post on why STL files are problematic representing object boundaries: > > https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ > > Tried to make it understandable; anyone has questions, post them here. > > Glenn > > On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: >> The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself. >> >> With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on. CGAL is the library that it has used for many years; Manifold is a newer and far faster library. Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection. >> _______________________________________________ >> 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 > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
MM
Michael Marx (spintel)
Sat, May 30, 2026 3:43 AM

that a closed surface and a solid object are not quite the same thing,
i.e. that a manifold STL is inherently hollow.

That is if you focus on surface, as a thin layer, it is not, the surface is a boundary.

Consider the green insides below, in the middle. It IS the solid, defined by the boundary.

It is different to the right side hollow cyan space, inside a solid.
So hollow must be created, by differencing. That is absence of solid.

Re Glenn's winding, the winding of the cyan is reversed, so the inside face is the hollow surface facing inwards.

Code:

$fs=0.2;

translate([-10,0,0])

hollowSphereShow(10,5,"blue");

difference() {

sphere(d=10);

translate([-15,-30,-15])

    cube([30,30,30]);

}

translate([10,0,0])

difference() {

    hollowSphere(10,5,"cyan");

    translate([-15,-30,-15])

        cube([30,30,30]);

    }

    

module hollowSphere(outD,inD,colIn=undef) {

difference() {

    sphere(d=outD);

    color(colIn) sphere(d=inD);

}

}

module hollowSphereShow(outD,inD,colIn=undef) {

difference() {

    %sphere(d=outD);

    color(colIn) sphere(d=inD);

}

}

-----Original Message-----

From: Lee DeRaud via Discuss [mailto:discuss@lists.openscad.org]

Sent: Saturday, May 30, 2026 12:35 PM

To: 'OpenSCAD general discussion Mailing-list'

Subject: [OpenSCAD] Re: beginners question

One thing about this subject in general: my brain persists in the illusion(?) that a

closed surface and a solid object are not quite the same thing, i.e. that a manifold STL

is inherently hollow.

Is this a distinction without a difference?

-----Original Message-----

From: Glenn Butcher via Discuss discuss@lists.openscad.org

Sent: Friday, May 29, 2026 6:03 PM

Cc: Glenn Butcher glenn.butcher@gmail.com

Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone walls, and ran into

all the fussiness of making 'manifold' meshes.  I then wrote a short blog post on why STL

files are problematic representing object boundaries:

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I learned and

seems simple and understandable, is that an ant walking on the surface will never fall off

an edge, and will never be presented with multiple choices of which surface to walk on

next. A bit more formally, every edge is connected to exactly two faces, and the surface

never intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries

for doing geometric operations like unions, differences, and so on.  CGAL is the library

that it has used for many years; Manifold is a newer and far faster library.  Manifold (or

perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection.


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


OpenSCAD mailing list

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

> that a closed surface and a solid object are not *quite* the same thing, > i.e. that a manifold STL is inherently hollow. That is if you focus on surface, as a thin layer, it is not, the surface is a boundary. Consider the green insides below, in the middle. It IS the solid, defined by the boundary. It is different to the right side hollow cyan space, inside a solid. So hollow must be created, by differencing. That is absence of solid. Re Glenn's winding, the winding of the cyan is reversed, so the inside face is the hollow surface facing inwards. Code: $fs=0.2; translate([-10,0,0]) hollowSphereShow(10,5,"blue"); difference() { sphere(d=10); translate([-15,-30,-15]) cube([30,30,30]); } translate([10,0,0]) difference() { hollowSphere(10,5,"cyan"); translate([-15,-30,-15]) cube([30,30,30]); } module hollowSphere(outD,inD,colIn=undef) { difference() { sphere(d=outD); color(colIn) sphere(d=inD); } } module hollowSphereShow(outD,inD,colIn=undef) { difference() { %sphere(d=outD); color(colIn) sphere(d=inD); } } > -----Original Message----- > From: Lee DeRaud via Discuss [mailto:discuss@lists.openscad.org] > Sent: Saturday, May 30, 2026 12:35 PM > To: 'OpenSCAD general discussion Mailing-list' > Cc: lee.deraud@roadrunner.com > Subject: [OpenSCAD] Re: beginners question > > One thing about this subject in general: my brain persists in the illusion(?) that a > closed surface and a solid object are not *quite* the same thing, i.e. that a manifold STL > is inherently hollow. > Is this a distinction without a difference? > > -----Original Message----- > From: Glenn Butcher via Discuss <discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM > To: discuss@lists.openscad.org > Cc: Glenn Butcher <glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question > > I recently finished writing code to do a specific sort of mesh, stone walls, and ran into > all the fussiness of making 'manifold' meshes. I then wrote a short blog post on why STL > files are problematic representing object boundaries: > > https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ > > Tried to make it understandable; anyone has questions, post them here. > > Glenn > > On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > > The explanation of what “manifold”, the geometric concept, means, that I learned and > seems simple and understandable, is that an ant walking on the surface will never fall off > an edge, and will never be presented with multiple choices of which surface to walk on > next. A bit more formally, every edge is connected to exactly two faces, and the surface > never intersects itself. > > > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries > for doing geometric operations like unions, differences, and so on. CGAL is the library > that it has used for many years; Manifold is a newer and far faster library. Manifold (or > perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection. > > _______________________________________________ > > 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 > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
AM
Adrian Mariano
Sat, May 30, 2026 2:10 PM

Lee, the technical mathematical definition of a 2-dimensional manifold is a
surface that looks locally like a plane at every point, or more formally,
one where you can map a neighborhood of every point continuously into the
plane.  In 3d modeling we are using the 2d manifold to define a 3d object
by specifying its boundary.  If the manifold is bounded (and orientable--a
technical condition) then it has an inside and an outside and the points
inside will form a well-behaved bounded 3d solid.  (Examples of unbounded
manifolds: plane, paraboloid, infinitely long cylinder.  Bounded: sphere,
torus.  Bounded but not orientable: klein bottle.)

On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <
discuss@lists.openscad.org> wrote:

One thing about this subject in general: my brain persists in the
illusion(?) that a closed surface and a solid object are not quite the
same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss discuss@lists.openscad.org
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org
Cc: Glenn Butcher glenn.butcher@gmail.com
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone
walls, and ran into all the fussiness of making 'manifold' meshes.  I then
wrote a short blog post on why STL files are problematic representing
object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I

learned and seems simple and understandable, is that an ant walking on the
surface will never fall off an edge, and will never be presented with
multiple choices of which surface to walk on next. A bit more formally,
every edge is connected to exactly two faces, and the surface never
intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those

two libraries for doing geometric operations like unions, differences, and
so on.  CGAL is the library that it has used for many years; Manifold is a
newer and far faster library.  Manifold (or perhaps the way that OpenSCAD
uses it) seems to be more tolerant of imperfection.


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


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

Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane. In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary. If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid. (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder. Bounded: sphere, torus. Bounded but not orientable: klein bottle.) On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss < discuss@lists.openscad.org> wrote: > One thing about this subject in general: my brain persists in the > illusion(?) that a closed surface and a solid object are not *quite* the > same thing, i.e. that a manifold STL is inherently hollow. > Is this a distinction without a difference? > > -----Original Message----- > From: Glenn Butcher via Discuss <discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM > To: discuss@lists.openscad.org > Cc: Glenn Butcher <glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question > > I recently finished writing code to do a specific sort of mesh, stone > walls, and ran into all the fussiness of making 'manifold' meshes. I then > wrote a short blog post on why STL files are problematic representing > object boundaries: > > > https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ > > Tried to make it understandable; anyone has questions, post them here. > > Glenn > > On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > > The explanation of what “manifold”, the geometric concept, means, that I > learned and seems simple and understandable, is that an ant walking on the > surface will never fall off an edge, and will never be presented with > multiple choices of which surface to walk on next. A bit more formally, > every edge is connected to exactly two faces, and the surface never > intersects itself. > > > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those > two libraries for doing geometric operations like unions, differences, and > so on. CGAL is the library that it has used for many years; Manifold is a > newer and far faster library. Manifold (or perhaps the way that OpenSCAD > uses it) seems to be more tolerant of imperfection. > > _______________________________________________ > > 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 > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
LD
lee.deraud@roadrunner.com
Sat, May 30, 2026 3:35 PM

Yeah, we’re kinda getting into some theoretical weeds here…

Change of perspective: consider slicing a cuboid into two pieces using an arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or surface points coming from a 3D scanner.

Alternatively, consider it as a 3D extension of ‘projection()’ from an arbitrary non convex surface. I can compute a ‘line’ (more precisely a sequence of points) projecting from any given point on the surface to an arbitrary base plane. Repeating at any desired density eventually gives me a dense, more-or-less solid point-cloud. But how do I then generate a triangle mesh that wraps that quasi-solid?

(Note: I have no real confidence that OpenSCAD can handle either case. Most likely  I’d end up using something like open3d.)

From: Adrian Mariano via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 7:10 AM
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc: Adrian Mariano avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane.  In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary.  If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid.  (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder.  Bounded: sphere, torus.  Bounded but not orientable: klein bottle.)

On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org > wrote:

One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not quite the same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org mailto:discuss@lists.openscad.org
Cc: Glenn Butcher <glenn.butcher@gmail.com mailto:glenn.butcher@gmail.com >
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes.  I then wrote a short blog post on why STL files are problematic representing object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on.  CGAL is the library that it has used for many years; Manifold is a newer and far faster library.  Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection.


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


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


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

Yeah, we’re kinda getting into some theoretical weeds here… Change of perspective: consider slicing a cuboid into two pieces using an arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or surface points coming from a 3D scanner. Alternatively, consider it as a 3D extension of ‘projection()’ from an arbitrary non convex surface. I can compute a ‘line’ (more precisely a sequence of points) projecting from any given point on the surface to an arbitrary base plane. Repeating at any desired density eventually gives me a dense, more-or-less solid point-cloud. But how do I then generate a triangle mesh that wraps that quasi-solid? (Note: I have no real confidence that OpenSCAD can handle either case. Most likely I’d end up using something like open3d.) From: Adrian Mariano via Discuss <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 7:10 AM To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> Cc: Adrian Mariano <avm4@cornell.edu> Subject: [OpenSCAD] Re: beginners question Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane. In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary. If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid. (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder. Bounded: sphere, torus. Bounded but not orientable: klein bottle.) On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > wrote: One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not *quite* the same thing, i.e. that a manifold STL is inherently hollow. Is this a distinction without a difference? -----Original Message----- From: Glenn Butcher via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM To: discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> Cc: Glenn Butcher <glenn.butcher@gmail.com <mailto:glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes. I then wrote a short blog post on why STL files are problematic representing object boundaries: https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ Tried to make it understandable; anyone has questions, post them here. Glenn On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself. > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on. CGAL is the library that it has used for many years; Manifold is a newer and far faster library. Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org>
AM
Adrian Mariano
Sat, May 30, 2026 4:34 PM

I don't understand the question you're asking, or the description in the
3rd paragraph.  If you slice a cube into two pieces....it's two
pieces...and...?  If you project a manifold onto an arbitrary plane you'll
get a set of points on the plane.  Then what...?  You want a triangle mesh
for the projection?

On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss <
discuss@lists.openscad.org> wrote:

Yeah, we’re kinda getting into some theoretical weeds here…

Change of perspective: consider slicing a cuboid into two pieces using an
arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or
surface points coming from a 3D scanner.

Alternatively, consider it as a 3D extension of ‘projection()’ from an
arbitrary non convex surface. I can compute a ‘line’ (more precisely a
sequence of points) projecting from any given point on the surface to an
arbitrary base plane. Repeating at any desired density eventually gives me
a dense, more-or-less solid point-cloud. But how do I then generate a
triangle mesh that wraps that quasi-solid?

(Note: I have no real confidence that OpenSCAD can handle either case.
Most likely  I’d end up using something like open3d.)

From: Adrian Mariano via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 7:10 AM
To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org

Cc: Adrian Mariano avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

Lee, the technical mathematical definition of a 2-dimensional manifold is
a surface that looks locally like a plane at every point, or more formally,
one where you can map a neighborhood of every point continuously into the
plane.  In 3d modeling we are using the 2d manifold to define a 3d object
by specifying its boundary.  If the manifold is bounded (and orientable--a
technical condition) then it has an inside and an outside and the points
inside will form a well-behaved bounded 3d solid.  (Examples of unbounded
manifolds: plane, paraboloid, infinitely long cylinder.  Bounded: sphere,
torus.  Bounded but not orientable: klein bottle.)

On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <
discuss@lists.openscad.org> wrote:

One thing about this subject in general: my brain persists in the
illusion(?) that a closed surface and a solid object are not quite the
same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss discuss@lists.openscad.org
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org
Cc: Glenn Butcher glenn.butcher@gmail.com
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone
walls, and ran into all the fussiness of making 'manifold' meshes.  I then
wrote a short blog post on why STL files are problematic representing
object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I

learned and seems simple and understandable, is that an ant walking on the
surface will never fall off an edge, and will never be presented with
multiple choices of which surface to walk on next. A bit more formally,
every edge is connected to exactly two faces, and the surface never
intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those

two libraries for doing geometric operations like unions, differences, and
so on.  CGAL is the library that it has used for many years; Manifold is a
newer and far faster library.  Manifold (or perhaps the way that OpenSCAD
uses it) seems to be more tolerant of imperfection.


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


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

I don't understand the question you're asking, or the description in the 3rd paragraph. If you slice a cube into two pieces....it's two pieces...and...? If you project a manifold onto an arbitrary plane you'll get a set of points on the plane. Then what...? You want a triangle mesh for the projection? On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss < discuss@lists.openscad.org> wrote: > Yeah, we’re kinda getting into some theoretical weeds here… > > > > Change of perspective: consider slicing a cuboid into two pieces using an > arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or > surface points coming from a 3D scanner. > > > > Alternatively, consider it as a 3D extension of ‘projection()’ from an > arbitrary non convex surface. I can compute a ‘line’ (more precisely a > sequence of points) projecting from any given point on the surface to an > arbitrary base plane. Repeating at any desired density eventually gives me > a dense, more-or-less solid point-cloud. But how do I then generate a > triangle mesh that wraps that quasi-solid? > > > > (Note: I have no real confidence that OpenSCAD can handle either case. > Most likely I’d end up using something like open3d.) > > > > *From:* Adrian Mariano via Discuss <discuss@lists.openscad.org> > *Sent:* Saturday, May 30, 2026 7:10 AM > *To:* OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org > > > *Cc:* Adrian Mariano <avm4@cornell.edu> > *Subject:* [OpenSCAD] Re: beginners question > > > > Lee, the technical mathematical definition of a 2-dimensional manifold is > a surface that looks locally like a plane at every point, or more formally, > one where you can map a neighborhood of every point continuously into the > plane. In 3d modeling we are using the 2d manifold to define a 3d object > by specifying its boundary. If the manifold is bounded (and orientable--a > technical condition) then it has an inside and an outside and the points > inside will form a well-behaved bounded 3d solid. (Examples of unbounded > manifolds: plane, paraboloid, infinitely long cylinder. Bounded: sphere, > torus. Bounded but not orientable: klein bottle.) > > > > On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss < > discuss@lists.openscad.org> wrote: > > One thing about this subject in general: my brain persists in the > illusion(?) that a closed surface and a solid object are not *quite* the > same thing, i.e. that a manifold STL is inherently hollow. > Is this a distinction without a difference? > > -----Original Message----- > From: Glenn Butcher via Discuss <discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM > To: discuss@lists.openscad.org > Cc: Glenn Butcher <glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question > > I recently finished writing code to do a specific sort of mesh, stone > walls, and ran into all the fussiness of making 'manifold' meshes. I then > wrote a short blog post on why STL files are problematic representing > object boundaries: > > > https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ > > Tried to make it understandable; anyone has questions, post them here. > > Glenn > > On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > > The explanation of what “manifold”, the geometric concept, means, that I > learned and seems simple and understandable, is that an ant walking on the > surface will never fall off an edge, and will never be presented with > multiple choices of which surface to walk on next. A bit more formally, > every edge is connected to exactly two faces, and the surface never > intersects itself. > > > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those > two libraries for doing geometric operations like unions, differences, and > so on. CGAL is the library that it has used for many years; Manifold is a > newer and far faster library. Manifold (or perhaps the way that OpenSCAD > uses it) seems to be more tolerant of imperfection. > > _______________________________________________ > > 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 > _______________________________________________ > 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 >
LD
lee.deraud@roadrunner.com
Sat, May 30, 2026 5:30 PM

(A picture would be worth a thousand words, but if I could draw the picture in OpenSCAD, I wouldn’t be asking the question. 😊)

Picture an arbitrary bounded non-planar surface hovering above a plane. Projection gives you its “shadow” on that plane (X/Y by convention). What I want is to fill the space between the surface and the shadow in the Z direction to produce a solid.

Maybe a better way to describe it is a 3D extrusion, although even that assumes the surface, and by extension the derived solid, is convex in Z.

And yet another conceptual picture: in CorelDraw,  draw a square and then draw a non-linear curve through it, forming two new 2D shapes. Fill one of them and export as an SVG. (“Smart Fill” in Corel creates a new filled 2D object, I assume Inkscape has a similar function.) I just want to extend that concept to 3D.

From: Adrian Mariano via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 9:35 AM
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc: Adrian Mariano avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

I don't understand the question you're asking, or the description in the 3rd paragraph.  If you slice a cube into two pieces....it's two pieces...and...?  If you project a manifold onto an arbitrary plane you'll get a set of points on the plane.  Then what...?  You want a triangle mesh for the projection?

On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org > wrote:

Yeah, we’re kinda getting into some theoretical weeds here…

Change of perspective: consider slicing a cuboid into two pieces using an arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or surface points coming from a 3D scanner.

Alternatively, consider it as a 3D extension of ‘projection()’ from an arbitrary non convex surface. I can compute a ‘line’ (more precisely a sequence of points) projecting from any given point on the surface to an arbitrary base plane. Repeating at any desired density eventually gives me a dense, more-or-less solid point-cloud. But how do I then generate a triangle mesh that wraps that quasi-solid?

(Note: I have no real confidence that OpenSCAD can handle either case. Most likely  I’d end up using something like open3d.)

From: Adrian Mariano via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Sent: Saturday, May 30, 2026 7:10 AM
To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Cc: Adrian Mariano <avm4@cornell.edu mailto:avm4@cornell.edu >
Subject: [OpenSCAD] Re: beginners question

Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane.  In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary.  If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid.  (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder.  Bounded: sphere, torus.  Bounded but not orientable: klein bottle.)

On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org > wrote:

One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not quite the same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org mailto:discuss@lists.openscad.org
Cc: Glenn Butcher <glenn.butcher@gmail.com mailto:glenn.butcher@gmail.com >
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes.  I then wrote a short blog post on why STL files are problematic representing object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on.  CGAL is the library that it has used for many years; Manifold is a newer and far faster library.  Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection.


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


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


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


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

(A picture would be worth a thousand words, but if I could draw the picture in OpenSCAD, I wouldn’t be asking the question. 😊) Picture an arbitrary bounded non-planar surface hovering above a plane. Projection gives you its “shadow” on that plane (X/Y by convention). What I want is to fill the space between the surface and the shadow in the Z direction to produce a solid. Maybe a better way to describe it is a 3D extrusion, although even that assumes the surface, and by extension the derived solid, is convex in Z. And yet another conceptual picture: in CorelDraw, draw a square and then draw a non-linear curve through it, forming two new 2D shapes. Fill one of them and export as an SVG. (“Smart Fill” in Corel creates a new filled 2D object, I assume Inkscape has a similar function.) I just want to extend that concept to 3D. From: Adrian Mariano via Discuss <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 9:35 AM To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> Cc: Adrian Mariano <avm4@cornell.edu> Subject: [OpenSCAD] Re: beginners question I don't understand the question you're asking, or the description in the 3rd paragraph. If you slice a cube into two pieces....it's two pieces...and...? If you project a manifold onto an arbitrary plane you'll get a set of points on the plane. Then what...? You want a triangle mesh for the projection? On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > wrote: Yeah, we’re kinda getting into some theoretical weeds here… Change of perspective: consider slicing a cuboid into two pieces using an arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or surface points coming from a 3D scanner. Alternatively, consider it as a 3D extension of ‘projection()’ from an arbitrary non convex surface. I can compute a ‘line’ (more precisely a sequence of points) projecting from any given point on the surface to an arbitrary base plane. Repeating at any desired density eventually gives me a dense, more-or-less solid point-cloud. But how do I then generate a triangle mesh that wraps that quasi-solid? (Note: I have no real confidence that OpenSCAD can handle either case. Most likely I’d end up using something like open3d.) From: Adrian Mariano via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Sent: Saturday, May 30, 2026 7:10 AM To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Cc: Adrian Mariano <avm4@cornell.edu <mailto:avm4@cornell.edu> > Subject: [OpenSCAD] Re: beginners question Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane. In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary. If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid. (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder. Bounded: sphere, torus. Bounded but not orientable: klein bottle.) On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > wrote: One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not *quite* the same thing, i.e. that a manifold STL is inherently hollow. Is this a distinction without a difference? -----Original Message----- From: Glenn Butcher via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM To: discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> Cc: Glenn Butcher <glenn.butcher@gmail.com <mailto:glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes. I then wrote a short blog post on why STL files are problematic representing object boundaries: https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ Tried to make it understandable; anyone has questions, post them here. Glenn On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself. > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on. CGAL is the library that it has used for many years; Manifold is a newer and far faster library. Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org>
RW
Raymond West
Sat, May 30, 2026 6:36 PM

On 30/05/2026 18:30, Lee DeRaud via Discuss wrote:

(A picture would be worth a thousand words, but if I could draw the
picture in OpenSCAD, I wouldn’t be asking the question. 😊)

draw the picture with pen and paper, post a photo, or scan.

Picture an arbitrary bounded non-planar surface hovering above a
plane. Projection gives you its “shadow” on that plane (X/Y by
convention). What I want is to fill the space between the surface and
the shadow in the Z direction to produce a solid.

if you are thinking that the non-planar surface is 2d, I've no idea how
you work with that in a 3d world. If it is the surface of a 3d object,
then linear extrude the projection, and difference the object.

Maybe a better way to describe it is a 3D extrusion, although even
that assumes the surface, and by extension the derived solid, is
convex in Z.

And yet another conceptual picture: in CorelDraw,  draw a square and
then draw a non-linear curve through it, forming two new 2D shapes.
Fill one of them and export as an SVG. (“Smart Fill” in Corel creates
a new filled 2D object, I assume Inkscape has a similar function.) I
just want to extend that concept to 3D.

*From:*Adrian Mariano via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 9:35 AM
To: OpenSCAD general discussion Mailing-list
discuss@lists.openscad.org
Cc: Adrian Mariano avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

I don't understand the question you're asking, or the description in
the 3rd paragraph.  If you slice a cube into two pieces....it's two
pieces...and...? If you project a manifold onto an arbitrary plane
you'll get a set of points on the plane.  Then what...?  You want a
triangle mesh for the projection?

On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss
discuss@lists.openscad.org wrote:

 Yeah, we’re kinda getting into some theoretical weeds here…

 Change of perspective: consider slicing a cuboid into two pieces
 using an arbitrary surface. And by arbitrary, I mean like a
 bounded chunk of mesh or surface points coming from a 3D scanner.

 Alternatively, consider it as a 3D extension of ‘projection()’
 from an arbitrary non convex surface. I can compute a ‘line’ (more
 precisely a sequence of points) projecting from any given point on
 the surface to an arbitrary base plane. Repeating at any desired
 density eventually gives me a dense, more-or-less solid
 point-cloud. But how do I then generate a triangle mesh that wraps
 that quasi-solid?

 (Note: I have no real confidence that OpenSCAD can handle either
 case. Most likely  I’d end up using something like open3d.)

 *From:*Adrian Mariano via Discuss <discuss@lists.openscad.org>
 *Sent:* Saturday, May 30, 2026 7:10 AM
 *To:* OpenSCAD general discussion Mailing-list
 <discuss@lists.openscad.org>
 *Cc:* Adrian Mariano <avm4@cornell.edu>
 *Subject:* [OpenSCAD] Re: beginners question

 Lee, the technical mathematical definition of a 2-dimensional
 manifold is a surface that looks locally like a plane at every
 point, or more formally, one where you can map a neighborhood of
 every point continuously into the plane.  In 3d modeling we are
 using the 2d manifold to define a 3d object by specifying its
 boundary.  If the manifold is bounded (and orientable--a technical
 condition) then it has an inside and an outside and the points
 inside will form a well-behaved bounded 3d solid.  (Examples of
 unbounded manifolds: plane, paraboloid, infinitely long cylinder. 
 Bounded: sphere, torus.  Bounded but not orientable: klein bottle.)

 On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss
 <discuss@lists.openscad.org> wrote:

     One thing about this subject in general: my brain persists in
     the illusion(?) that a closed surface and a solid object are
     not *quite* the same thing, i.e. that a manifold STL is
     inherently hollow.
     Is this a distinction without a difference?

     -----Original Message-----
     From: Glenn Butcher via Discuss <discuss@lists.openscad.org>
     Sent: Friday, May 29, 2026 6:03 PM
     To: discuss@lists.openscad.org
     Cc: Glenn Butcher <glenn.butcher@gmail.com>
     Subject: [OpenSCAD] Re: beginners question

     I recently finished writing code to do a specific sort of
     mesh, stone walls, and ran into all the fussiness of making
     'manifold' meshes. I then wrote a short blog post on why STL
     files are problematic representing object boundaries:

     https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

     Tried to make it understandable; anyone has questions, post
     them here.

     Glenn

     On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept,

     means, that I learned and seems simple and understandable, is
     that an ant walking on the surface will never fall off an
     edge, and will never be presented with multiple choices of
     which surface to walk on next. A bit more formally, every edge
     is connected to exactly two faces, and the surface never
     intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD

     supports those two libraries for doing geometric operations
     like unions, differences, and so on.  CGAL is the library that
     it has used for many years; Manifold is a newer and far faster
     library.  Manifold (or perhaps the way that OpenSCAD uses it)
     seems to be more tolerant of imperfection.

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
     _______________________________________________
     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

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

On 30/05/2026 18:30, Lee DeRaud via Discuss wrote: > > (A picture would be worth a thousand words, but if I could draw the > picture in OpenSCAD, I wouldn’t be asking the question. 😊) > draw the picture with pen and paper, post a photo, or scan. > > Picture an arbitrary bounded non-planar surface hovering above a > plane. Projection gives you its “shadow” on that plane (X/Y by > convention). What I want is to fill the space between the surface and > the shadow in the Z direction to produce a solid. > if you are thinking that the non-planar surface is 2d, I've no idea how you work with that in a 3d world. If it is the surface of a 3d object, then linear extrude the projection, and difference the object. > > Maybe a better way to describe it is a 3D extrusion, although even > that assumes the surface, and by extension the derived solid, is > convex in Z. > > And yet another conceptual picture: in CorelDraw,  draw a square and > then draw a non-linear curve through it, forming two new 2D shapes. > Fill one of them and export as an SVG. (“Smart Fill” in Corel creates > a new filled 2D object, I assume Inkscape has a similar function.) I > just want to extend that concept to 3D. > > *From:*Adrian Mariano via Discuss <discuss@lists.openscad.org> > *Sent:* Saturday, May 30, 2026 9:35 AM > *To:* OpenSCAD general discussion Mailing-list > <discuss@lists.openscad.org> > *Cc:* Adrian Mariano <avm4@cornell.edu> > *Subject:* [OpenSCAD] Re: beginners question > > I don't understand the question you're asking, or the description in > the 3rd paragraph.  If you slice a cube into two pieces....it's two > pieces...and...? If you project a manifold onto an arbitrary plane > you'll get a set of points on the plane.  Then what...?  You want a > triangle mesh for the projection? > > On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss > <discuss@lists.openscad.org> wrote: > > Yeah, we’re kinda getting into some theoretical weeds here… > > Change of perspective: consider slicing a cuboid into two pieces > using an arbitrary surface. And by arbitrary, I mean like a > bounded chunk of mesh or surface points coming from a 3D scanner. > > Alternatively, consider it as a 3D extension of ‘projection()’ > from an arbitrary non convex surface. I can compute a ‘line’ (more > precisely a sequence of points) projecting from any given point on > the surface to an arbitrary base plane. Repeating at any desired > density eventually gives me a dense, more-or-less solid > point-cloud. But how do I then generate a triangle mesh that wraps > that quasi-solid? > > (Note: I have no real confidence that OpenSCAD can handle either > case. Most likely  I’d end up using something like open3d.) > > *From:*Adrian Mariano via Discuss <discuss@lists.openscad.org> > *Sent:* Saturday, May 30, 2026 7:10 AM > *To:* OpenSCAD general discussion Mailing-list > <discuss@lists.openscad.org> > *Cc:* Adrian Mariano <avm4@cornell.edu> > *Subject:* [OpenSCAD] Re: beginners question > > Lee, the technical mathematical definition of a 2-dimensional > manifold is a surface that looks locally like a plane at every > point, or more formally, one where you can map a neighborhood of > every point continuously into the plane.  In 3d modeling we are > using the 2d manifold to define a 3d object by specifying its > boundary.  If the manifold is bounded (and orientable--a technical > condition) then it has an inside and an outside and the points > inside will form a well-behaved bounded 3d solid.  (Examples of > unbounded manifolds: plane, paraboloid, infinitely long cylinder.  > Bounded: sphere, torus.  Bounded but not orientable: klein bottle.) > > On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss > <discuss@lists.openscad.org> wrote: > > One thing about this subject in general: my brain persists in > the illusion(?) that a closed surface and a solid object are > not *quite* the same thing, i.e. that a manifold STL is > inherently hollow. > Is this a distinction without a difference? > > -----Original Message----- > From: Glenn Butcher via Discuss <discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM > To: discuss@lists.openscad.org > Cc: Glenn Butcher <glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question > > I recently finished writing code to do a specific sort of > mesh, stone walls, and ran into all the fussiness of making > 'manifold' meshes. I then wrote a short blog post on why STL > files are problematic representing object boundaries: > > https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ > > Tried to make it understandable; anyone has questions, post > them here. > > Glenn > > On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > > The explanation of what “manifold”, the geometric concept, > means, that I learned and seems simple and understandable, is > that an ant walking on the surface will never fall off an > edge, and will never be presented with multiple choices of > which surface to walk on next. A bit more formally, every edge > is connected to exactly two faces, and the surface never > intersects itself. > > > > With respect to Manifold, the library, and CGAL: OpenSCAD > supports those two libraries for doing geometric operations > like unions, differences, and so on.  CGAL is the library that > it has used for many years; Manifold is a newer and far faster > library.  Manifold (or perhaps the way that OpenSCAD uses it) > seems to be more tolerant of imperfection. > > _______________________________________________ > > 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 > _______________________________________________ > 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 > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
LD
lee.deraud@roadrunner.com
Sat, May 30, 2026 7:14 PM

I’ve attached an example surface. What I want is to fill the volume between it and the XY plane. I realize that creating this particular shape as the top surface of a cuboid can be done easily: that’s how I generated it in the first place. But I’m looking for a generalized that works with a surface extracted from a 3D scan.

And yes, I understand that this kind of surface is not 2D. Linear extruding the projection of it works right up until you get to  the lower bound of the surface. If you go past that point, the extrusion wipes out part of the surface, if you stop there, there will be gaps between the extrusion and the surface. Difference is zero help, as it just leaves a cuboid with a surface-shaped slice through it and no way to separate the two disjoint portions.

From: Raymond West via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 11:37 AM
To: Lee DeRaud via Discuss discuss@lists.openscad.org
Cc: Raymond West raywest@raywest.com
Subject: [OpenSCAD] Re: beginners question

On 30/05/2026 18:30, Lee DeRaud via Discuss wrote:

(A picture would be worth a thousand words, but if I could draw the picture in OpenSCAD, I wouldn’t be asking the question. 😊)

draw the picture with pen and paper, post a photo, or scan.

Picture an arbitrary bounded non-planar surface hovering above a plane. Projection gives you its “shadow” on that plane (X/Y by convention). What I want is to fill the space between the surface and the shadow in the Z direction to produce a solid.

if you are thinking that the non-planar surface is 2d, I've no idea how you work with that in a 3d world. If it is the surface of a 3d object, then linear extrude the projection, and difference the object.

Maybe a better way to describe it is a 3D extrusion, although even that assumes the surface, and by extension the derived solid, is convex in Z.

And yet another conceptual picture: in CorelDraw,  draw a square and then draw a non-linear curve through it, forming two new 2D shapes. Fill one of them and export as an SVG. (“Smart Fill” in Corel creates a new filled 2D object, I assume Inkscape has a similar function.) I just want to extend that concept to 3D.

From: Adrian Mariano via Discuss  mailto:discuss@lists.openscad.org discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 9:35 AM
To: OpenSCAD general discussion Mailing-list  mailto:discuss@lists.openscad.org discuss@lists.openscad.org
Cc: Adrian Mariano  mailto:avm4@cornell.edu avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

I don't understand the question you're asking, or the description in the 3rd paragraph.  If you slice a cube into two pieces....it's two pieces...and...?  If you project a manifold onto an arbitrary plane you'll get a set of points on the plane.  Then what...?  You want a triangle mesh for the projection?

On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org > wrote:

Yeah, we’re kinda getting into some theoretical weeds here…

Change of perspective: consider slicing a cuboid into two pieces using an arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or surface points coming from a 3D scanner.

Alternatively, consider it as a 3D extension of ‘projection()’ from an arbitrary non convex surface. I can compute a ‘line’ (more precisely a sequence of points) projecting from any given point on the surface to an arbitrary base plane. Repeating at any desired density eventually gives me a dense, more-or-less solid point-cloud. But how do I then generate a triangle mesh that wraps that quasi-solid?

(Note: I have no real confidence that OpenSCAD can handle either case. Most likely  I’d end up using something like open3d.)

From: Adrian Mariano via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Sent: Saturday, May 30, 2026 7:10 AM
To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Cc: Adrian Mariano <avm4@cornell.edu mailto:avm4@cornell.edu >
Subject: [OpenSCAD] Re: beginners question

Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane.  In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary.  If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid.  (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder.  Bounded: sphere, torus.  Bounded but not orientable: klein bottle.)

On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org > wrote:

One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not quite the same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org >
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org mailto:discuss@lists.openscad.org
Cc: Glenn Butcher <glenn.butcher@gmail.com mailto:glenn.butcher@gmail.com >
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes.  I then wrote a short blog post on why STL files are problematic representing object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on.  CGAL is the library that it has used for many years; Manifold is a newer and far faster library.  Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection.


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


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


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


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


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

I’ve attached an example surface. What I want is to fill the volume between it and the XY plane. I realize that creating this particular shape as the top surface of a cuboid can be done easily: that’s how I generated it in the first place. But I’m looking for a generalized that works with a surface extracted from a 3D scan. And yes, I understand that this kind of surface is not 2D. Linear extruding the projection of it works right up until you get to the lower bound of the surface. If you go past that point, the extrusion wipes out part of the surface, if you stop there, there will be gaps between the extrusion and the surface. Difference is zero help, as it just leaves a cuboid with a surface-shaped slice through it and no way to separate the two disjoint portions. From: Raymond West via Discuss <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 11:37 AM To: Lee DeRaud via Discuss <discuss@lists.openscad.org> Cc: Raymond West <raywest@raywest.com> Subject: [OpenSCAD] Re: beginners question On 30/05/2026 18:30, Lee DeRaud via Discuss wrote: (A picture would be worth a thousand words, but if I could draw the picture in OpenSCAD, I wouldn’t be asking the question. 😊) draw the picture with pen and paper, post a photo, or scan. Picture an arbitrary bounded non-planar surface hovering above a plane. Projection gives you its “shadow” on that plane (X/Y by convention). What I want is to fill the space between the surface and the shadow in the Z direction to produce a solid. if you are thinking that the non-planar surface is 2d, I've no idea how you work with that in a 3d world. If it is the surface of a 3d object, then linear extrude the projection, and difference the object. Maybe a better way to describe it is a 3D extrusion, although even that assumes the surface, and by extension the derived solid, is convex in Z. And yet another conceptual picture: in CorelDraw, draw a square and then draw a non-linear curve through it, forming two new 2D shapes. Fill one of them and export as an SVG. (“Smart Fill” in Corel creates a new filled 2D object, I assume Inkscape has a similar function.) I just want to extend that concept to 3D. From: Adrian Mariano via Discuss <mailto:discuss@lists.openscad.org> <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 9:35 AM To: OpenSCAD general discussion Mailing-list <mailto:discuss@lists.openscad.org> <discuss@lists.openscad.org> Cc: Adrian Mariano <mailto:avm4@cornell.edu> <avm4@cornell.edu> Subject: [OpenSCAD] Re: beginners question I don't understand the question you're asking, or the description in the 3rd paragraph. If you slice a cube into two pieces....it's two pieces...and...? If you project a manifold onto an arbitrary plane you'll get a set of points on the plane. Then what...? You want a triangle mesh for the projection? On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > wrote: Yeah, we’re kinda getting into some theoretical weeds here… Change of perspective: consider slicing a cuboid into two pieces using an arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or surface points coming from a 3D scanner. Alternatively, consider it as a 3D extension of ‘projection()’ from an arbitrary non convex surface. I can compute a ‘line’ (more precisely a sequence of points) projecting from any given point on the surface to an arbitrary base plane. Repeating at any desired density eventually gives me a dense, more-or-less solid point-cloud. But how do I then generate a triangle mesh that wraps that quasi-solid? (Note: I have no real confidence that OpenSCAD can handle either case. Most likely I’d end up using something like open3d.) From: Adrian Mariano via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Sent: Saturday, May 30, 2026 7:10 AM To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Cc: Adrian Mariano <avm4@cornell.edu <mailto:avm4@cornell.edu> > Subject: [OpenSCAD] Re: beginners question Lee, the technical mathematical definition of a 2-dimensional manifold is a surface that looks locally like a plane at every point, or more formally, one where you can map a neighborhood of every point continuously into the plane. In 3d modeling we are using the 2d manifold to define a 3d object by specifying its boundary. If the manifold is bounded (and orientable--a technical condition) then it has an inside and an outside and the points inside will form a well-behaved bounded 3d solid. (Examples of unbounded manifolds: plane, paraboloid, infinitely long cylinder. Bounded: sphere, torus. Bounded but not orientable: klein bottle.) On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > wrote: One thing about this subject in general: my brain persists in the illusion(?) that a closed surface and a solid object are not *quite* the same thing, i.e. that a manifold STL is inherently hollow. Is this a distinction without a difference? -----Original Message----- From: Glenn Butcher via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM To: discuss@lists.openscad.org <mailto:discuss@lists.openscad.org> Cc: Glenn Butcher <glenn.butcher@gmail.com <mailto:glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question I recently finished writing code to do a specific sort of mesh, stone walls, and ran into all the fussiness of making 'manifold' meshes. I then wrote a short blog post on why STL files are problematic representing object boundaries: https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ Tried to make it understandable; anyone has questions, post them here. Glenn On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > The explanation of what “manifold”, the geometric concept, means, that I learned and seems simple and understandable, is that an ant walking on the surface will never fall off an edge, and will never be presented with multiple choices of which surface to walk on next. A bit more formally, every edge is connected to exactly two faces, and the surface never intersects itself. > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those two libraries for doing geometric operations like unions, differences, and so on. CGAL is the library that it has used for many years; Manifold is a newer and far faster library. Manifold (or perhaps the way that OpenSCAD uses it) seems to be more tolerant of imperfection. > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org>
AM
Adrian Mariano
Sat, May 30, 2026 7:30 PM

If you have a surface with an edge defined as a point list it's a simple
matter in openscad to make that into a solid by extending it down to the xy
plane---assuming that no points on the surface are below the bounding edge
by building a polyhedron for your original surface and then adding edges
and a base.  BOSL2 provides textured_tile() and plot3d() that can do this
directly and handle the annoying bookkeeping of building the polyhedron.
You can also potentially have more flexibility (and more work) with
vnf_vertex_array().

If you don't have the surface as a point list then it's going to be a lot
more difficult, especially in the general case.  The shape you posted you
could do by taking the union of a bunch of translated copies.  Other folks
are better at figuring out complex ways to get stuff done in vanilla
OpenSCAD....  But that shape also looks like it was (or could be)
constructed mathematically  in which case it would be ideally suited to
using textured_tile() or plot3d().

Here's the method of translated copies:

include<BOSL2/std.scad>

module thing(){
import("TestSurface.stl");
}
zcopies(n=30,spacing=.9) thing();
down(20)linear_extrude(height=30)projection()thing();

On Sat, May 30, 2026 at 1:31 PM Lee DeRaud via Discuss <
discuss@lists.openscad.org> wrote:

(A picture would be worth a thousand words, but if I could draw the
picture in OpenSCAD, I wouldn’t be asking the question. 😊)

Picture an arbitrary bounded non-planar surface hovering above a plane.
Projection gives you its “shadow” on that plane (X/Y by convention). What I
want is to fill the space between the surface and the shadow in the Z
direction to produce a solid.

Maybe a better way to describe it is a 3D extrusion, although even that
assumes the surface, and by extension the derived solid, is convex in Z.

And yet another conceptual picture: in CorelDraw,  draw a square and then
draw a non-linear curve through it, forming two new 2D shapes. Fill one of
them and export as an SVG. (“Smart Fill” in Corel creates a new filled 2D
object, I assume Inkscape has a similar function.) I just want to extend
that concept to 3D.

From: Adrian Mariano via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 9:35 AM
To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org

Cc: Adrian Mariano avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

I don't understand the question you're asking, or the description in the
3rd paragraph.  If you slice a cube into two pieces....it's two
pieces...and...?  If you project a manifold onto an arbitrary plane you'll
get a set of points on the plane.  Then what...?  You want a triangle mesh
for the projection?

On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss <
discuss@lists.openscad.org> wrote:

Yeah, we’re kinda getting into some theoretical weeds here…

Change of perspective: consider slicing a cuboid into two pieces using an
arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or
surface points coming from a 3D scanner.

Alternatively, consider it as a 3D extension of ‘projection()’ from an
arbitrary non convex surface. I can compute a ‘line’ (more precisely a
sequence of points) projecting from any given point on the surface to an
arbitrary base plane. Repeating at any desired density eventually gives me
a dense, more-or-less solid point-cloud. But how do I then generate a
triangle mesh that wraps that quasi-solid?

(Note: I have no real confidence that OpenSCAD can handle either case.
Most likely  I’d end up using something like open3d.)

From: Adrian Mariano via Discuss discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 7:10 AM
To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org

Cc: Adrian Mariano avm4@cornell.edu
Subject: [OpenSCAD] Re: beginners question

Lee, the technical mathematical definition of a 2-dimensional manifold is
a surface that looks locally like a plane at every point, or more formally,
one where you can map a neighborhood of every point continuously into the
plane.  In 3d modeling we are using the 2d manifold to define a 3d object
by specifying its boundary.  If the manifold is bounded (and orientable--a
technical condition) then it has an inside and an outside and the points
inside will form a well-behaved bounded 3d solid.  (Examples of unbounded
manifolds: plane, paraboloid, infinitely long cylinder.  Bounded: sphere,
torus.  Bounded but not orientable: klein bottle.)

On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss <
discuss@lists.openscad.org> wrote:

One thing about this subject in general: my brain persists in the
illusion(?) that a closed surface and a solid object are not quite the
same thing, i.e. that a manifold STL is inherently hollow.
Is this a distinction without a difference?

-----Original Message-----
From: Glenn Butcher via Discuss discuss@lists.openscad.org
Sent: Friday, May 29, 2026 6:03 PM
To: discuss@lists.openscad.org
Cc: Glenn Butcher glenn.butcher@gmail.com
Subject: [OpenSCAD] Re: beginners question

I recently finished writing code to do a specific sort of mesh, stone
walls, and ran into all the fussiness of making 'manifold' meshes.  I then
wrote a short blog post on why STL files are problematic representing
object boundaries:

https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/

Tried to make it understandable; anyone has questions, post them here.

Glenn

On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote:

The explanation of what “manifold”, the geometric concept, means, that I

learned and seems simple and understandable, is that an ant walking on the
surface will never fall off an edge, and will never be presented with
multiple choices of which surface to walk on next. A bit more formally,
every edge is connected to exactly two faces, and the surface never
intersects itself.

With respect to Manifold, the library, and CGAL: OpenSCAD supports those

two libraries for doing geometric operations like unions, differences, and
so on.  CGAL is the library that it has used for many years; Manifold is a
newer and far faster library.  Manifold (or perhaps the way that OpenSCAD
uses it) seems to be more tolerant of imperfection.


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


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


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

If you have a surface with an edge defined as a point list it's a simple matter in openscad to make that into a solid by extending it down to the xy plane---assuming that no points on the surface are below the bounding edge by building a polyhedron for your original surface and then adding edges and a base. BOSL2 provides textured_tile() and plot3d() that can do this directly and handle the annoying bookkeeping of building the polyhedron. You can also potentially have more flexibility (and more work) with vnf_vertex_array(). If you don't have the surface as a point list then it's going to be a lot more difficult, especially in the general case. The shape you posted you could do by taking the union of a bunch of translated copies. Other folks are better at figuring out complex ways to get stuff done in vanilla OpenSCAD.... But that shape also looks like it was (or could be) constructed mathematically in which case it would be ideally suited to using textured_tile() or plot3d(). Here's the method of translated copies: include<BOSL2/std.scad> module thing(){ import("TestSurface.stl"); } zcopies(n=30,spacing=.9) thing(); down(20)linear_extrude(height=30)projection()thing(); On Sat, May 30, 2026 at 1:31 PM Lee DeRaud via Discuss < discuss@lists.openscad.org> wrote: > (A picture would be worth a thousand words, but if I could draw the > picture in OpenSCAD, I wouldn’t be asking the question. 😊) > > > > Picture an arbitrary bounded non-planar surface hovering above a plane. > Projection gives you its “shadow” on that plane (X/Y by convention). What I > want is to fill the space between the surface and the shadow in the Z > direction to produce a solid. > > > > Maybe a better way to describe it is a 3D extrusion, although even that > assumes the surface, and by extension the derived solid, is convex in Z. > > > > And yet another conceptual picture: in CorelDraw, draw a square and then > draw a non-linear curve through it, forming two new 2D shapes. Fill one of > them and export as an SVG. (“Smart Fill” in Corel creates a new filled 2D > object, I assume Inkscape has a similar function.) I just want to extend > that concept to 3D. > > > > *From:* Adrian Mariano via Discuss <discuss@lists.openscad.org> > *Sent:* Saturday, May 30, 2026 9:35 AM > *To:* OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org > > > *Cc:* Adrian Mariano <avm4@cornell.edu> > *Subject:* [OpenSCAD] Re: beginners question > > > > I don't understand the question you're asking, or the description in the > 3rd paragraph. If you slice a cube into two pieces....it's two > pieces...and...? If you project a manifold onto an arbitrary plane you'll > get a set of points on the plane. Then what...? You want a triangle mesh > for the projection? > > > > On Sat, May 30, 2026 at 11:35 AM Lee DeRaud via Discuss < > discuss@lists.openscad.org> wrote: > > Yeah, we’re kinda getting into some theoretical weeds here… > > > > Change of perspective: consider slicing a cuboid into two pieces using an > arbitrary surface. And by arbitrary, I mean like a bounded chunk of mesh or > surface points coming from a 3D scanner. > > > > Alternatively, consider it as a 3D extension of ‘projection()’ from an > arbitrary non convex surface. I can compute a ‘line’ (more precisely a > sequence of points) projecting from any given point on the surface to an > arbitrary base plane. Repeating at any desired density eventually gives me > a dense, more-or-less solid point-cloud. But how do I then generate a > triangle mesh that wraps that quasi-solid? > > > > (Note: I have no real confidence that OpenSCAD can handle either case. > Most likely I’d end up using something like open3d.) > > > > *From:* Adrian Mariano via Discuss <discuss@lists.openscad.org> > *Sent:* Saturday, May 30, 2026 7:10 AM > *To:* OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org > > > *Cc:* Adrian Mariano <avm4@cornell.edu> > *Subject:* [OpenSCAD] Re: beginners question > > > > Lee, the technical mathematical definition of a 2-dimensional manifold is > a surface that looks locally like a plane at every point, or more formally, > one where you can map a neighborhood of every point continuously into the > plane. In 3d modeling we are using the 2d manifold to define a 3d object > by specifying its boundary. If the manifold is bounded (and orientable--a > technical condition) then it has an inside and an outside and the points > inside will form a well-behaved bounded 3d solid. (Examples of unbounded > manifolds: plane, paraboloid, infinitely long cylinder. Bounded: sphere, > torus. Bounded but not orientable: klein bottle.) > > > > On Fri, May 29, 2026 at 10:35 PM Lee DeRaud via Discuss < > discuss@lists.openscad.org> wrote: > > One thing about this subject in general: my brain persists in the > illusion(?) that a closed surface and a solid object are not *quite* the > same thing, i.e. that a manifold STL is inherently hollow. > Is this a distinction without a difference? > > -----Original Message----- > From: Glenn Butcher via Discuss <discuss@lists.openscad.org> > Sent: Friday, May 29, 2026 6:03 PM > To: discuss@lists.openscad.org > Cc: Glenn Butcher <glenn.butcher@gmail.com> > Subject: [OpenSCAD] Re: beginners question > > I recently finished writing code to do a specific sort of mesh, stone > walls, and ran into all the fussiness of making 'manifold' meshes. I then > wrote a short blog post on why STL files are problematic representing > object boundaries: > > > https://glenn.pulpitrock.net/blog/posts/2025-12-21-whats-so-bad-about-stl-files/ > > Tried to make it understandable; anyone has questions, post them here. > > Glenn > > On 5/29/2026 5:29 PM, Jordan Brown via Discuss wrote: > > The explanation of what “manifold”, the geometric concept, means, that I > learned and seems simple and understandable, is that an ant walking on the > surface will never fall off an edge, and will never be presented with > multiple choices of which surface to walk on next. A bit more formally, > every edge is connected to exactly two faces, and the surface never > intersects itself. > > > > With respect to Manifold, the library, and CGAL: OpenSCAD supports those > two libraries for doing geometric operations like unions, differences, and > so on. CGAL is the library that it has used for many years; Manifold is a > newer and far faster library. Manifold (or perhaps the way that OpenSCAD > uses it) seems to be more tolerant of imperfection. > > _______________________________________________ > > 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 > _______________________________________________ > 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 > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >