discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

beginners question

RW
Raymond West
Sat, May 30, 2026 8:45 PM

Here you go.

Pretty generic, but parameters, trial and error, or calculate. Based on
Adrian's stacked slices, no bosl2. You may or may not get z fighting
with other shapes.

module one(){
import("C:/Users/ray/Desktop/TestSurface.stl");
}

// Parameters
t = 0.9;    // Thickness of each thin layer (allow for overlap)
layers = 40; // Number of layers to stack
slice=30; //level to slice

////////////////////////

module some(){
// Stack the layers to make a solid
union() {
    for (i = [0:layers-1]) {
      translate([0, 0, i * t])
      one();
    }
  }
}

module prof(){
   projection(cut=true)translate([0,0,-slice])some();
}

module base(){
   linear_extrude(slice)prof();
}

module under(){
  difference(){
   scale([0.999,0.999,0.999])base(); //to avoid z fighting
   some();
 }
}

under();

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

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 <discuss@lists.openscad.org>
 <mailto:discuss@lists.openscad.org>
 *Sent:* Saturday, May 30, 2026 9:35 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

 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

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

Here you go. Pretty generic, but parameters, trial and error, or calculate. Based on Adrian's stacked slices, no bosl2. You may or may not get z fighting with other shapes. module one(){ import("C:/Users/ray/Desktop/TestSurface.stl"); } // Parameters t = 0.9;    // Thickness of each thin layer (allow for overlap) layers = 40; // Number of layers to stack slice=30; //level to slice //////////////////////// module some(){ // Stack the layers to make a solid union() {     for (i = [0:layers-1]) {       translate([0, 0, i * t])       one();     }   } } module prof(){    projection(cut=true)translate([0,0,-slice])some(); } module base(){    linear_extrude(slice)prof(); } module under(){   difference(){    scale([0.999,0.999,0.999])base(); //to avoid z fighting    some();  } } under(); On 30/05/2026 20:14, Lee DeRaud via Discuss wrote: > > 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 <discuss@lists.openscad.org> > <mailto:discuss@lists.openscad.org> > *Sent:* Saturday, May 30, 2026 9:35 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 > > 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 > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
LD
lee.deraud@roadrunner.com
Sat, May 30, 2026 9:20 PM

Yeah, the example shape was math-derived, just to get something with complex curvatures and convex in Z. (If it isn’t convex along the projection axis, things get REALLY ugly.) Regarding the assumption that “no points on the surface are below the bounding edge”, note that the example violates that already. But I think “convex in Z” might be enough to let that translated-copy method work for most useful scans. I need to wrap my head around what inputs and/or manual operations I’d need in the general case.

I can certainly extract the surface as a point list, but we’re talking about a LOT of points, in the 250K->1M range. My eyes glazed over when I first encountered VNF, so I’m not sure exactly how that applies here. Maybe it’s time to revisit that particular learning curve.

I’ll go away now and ponder the whole thing for awhile…you may return to your normally scheduled programming. 😊

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

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 mailto: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 mailto:discuss@lists.openscad.org >
Sent: Saturday, May 30, 2026 9:35 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

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

Yeah, the example shape was math-derived, just to get something with complex curvatures and convex in Z. (If it isn’t convex along the projection axis, things get REALLY ugly.) Regarding the assumption that “no points on the surface are below the bounding edge”, note that the example violates that already. But I think “convex in Z” might be enough to let that translated-copy method work for most useful scans. I need to wrap my head around what inputs and/or manual operations I’d need in the general case. I can certainly extract the surface as a point list, but we’re talking about a LOT of points, in the 250K->1M range. My eyes glazed over when I first encountered VNF, so I’m not sure exactly how that applies here. Maybe it’s time to revisit that particular learning curve. I’ll go away now and ponder the whole thing for awhile…you may return to your normally scheduled programming. 😊 From: Adrian Mariano via Discuss <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 12:30 PM To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> Cc: Adrian Mariano <avm4@cornell.edu> Subject: [OpenSCAD] Re: beginners question 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 <mailto: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 <mailto:discuss@lists.openscad.org> > Sent: Saturday, May 30, 2026 9:35 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 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>
LD
lee.deraud@roadrunner.com
Sat, May 30, 2026 9:40 PM

Thanks.

I’m pretty sure the general case requires convexity in Z* to work properly. I can cobble up some code in open3d to test for that as a preprocess step. Worst case, the scans may need careful rotation and/or splitting into properly behaved chunks to get around that.

*I’ve been assuming people understand what I mean by that, but I may be using the wrong terminology.

By “surface is convex in Z”, I mean “any line parallel with the Z-axis intersects the surface at most once”. (The other two axes don’t matter: if it is convex in all three, I’d just hull() it.)

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

Here you go.

Pretty generic, but parameters, trial and error, or calculate. Based on Adrian's stacked slices, no bosl2. You may or may not get z fighting with other shapes.

module one(){
import("C:/Users/ray/Desktop/TestSurface.stl");
}

// Parameters
t = 0.9;    // Thickness of each thin layer (allow for overlap)
layers = 40; // Number of layers to stack
slice=30; //level to slice

////////////////////////

module some(){
// Stack the layers to make a solid
union() {
for (i = [0:layers-1]) {
translate([0, 0, i * t])
one();
}
}
}

module prof(){
projection(cut=true)translate([0,0,-slice])some();
}

module base(){
linear_extrude(slice)prof();
}

module under(){
difference(){
scale([0.999,0.999,0.999])base(); //to avoid z fighting
some();
}
}

under();

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

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  mailto:discuss@lists.openscad.org discuss@lists.openscad.org
Sent: Saturday, May 30, 2026 11:37 AM
To: Lee DeRaud via Discuss  mailto:discuss@lists.openscad.org discuss@lists.openscad.org
Cc: Raymond West  mailto:raywest@raywest.com 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


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

Thanks. I’m pretty sure the general case requires convexity in Z* to work properly. I can cobble up some code in open3d to test for that as a preprocess step. Worst case, the scans may need careful rotation and/or splitting into properly behaved chunks to get around that. *I’ve been assuming people understand what I mean by that, but I may be using the wrong terminology. By “surface is convex in Z”, I mean “any line parallel with the Z-axis intersects the surface at most once”. (The other two axes don’t matter: if it is convex in all three, I’d just hull() it.) From: Raymond West via Discuss <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 1:45 PM To: Lee DeRaud via Discuss <discuss@lists.openscad.org> Cc: Raymond West <raywest@raywest.com> Subject: [OpenSCAD] Re: beginners question Here you go. Pretty generic, but parameters, trial and error, or calculate. Based on Adrian's stacked slices, no bosl2. You may or may not get z fighting with other shapes. module one(){ import("C:/Users/ray/Desktop/TestSurface.stl"); } // Parameters t = 0.9; // Thickness of each thin layer (allow for overlap) layers = 40; // Number of layers to stack slice=30; //level to slice //////////////////////// module some(){ // Stack the layers to make a solid union() { for (i = [0:layers-1]) { translate([0, 0, i * t]) one(); } } } module prof(){ projection(cut=true)translate([0,0,-slice])some(); } module base(){ linear_extrude(slice)prof(); } module under(){ difference(){ scale([0.999,0.999,0.999])base(); //to avoid z fighting some(); } } under(); On 30/05/2026 20:14, Lee DeRaud via Discuss wrote: 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 <mailto:discuss@lists.openscad.org> <discuss@lists.openscad.org> Sent: Saturday, May 30, 2026 11:37 AM To: Lee DeRaud via Discuss <mailto:discuss@lists.openscad.org> <discuss@lists.openscad.org> Cc: Raymond West <mailto:raywest@raywest.com> <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> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org>
JB
Jordan Brown
Sun, May 31, 2026 12:50 AM

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?

I don't think so.  I think the difference starts to matter when you
start trying to really support color, because then you have the question
of whether colors apply to the surfaces, or also to the space inside the
shape.  For most 3D graphics what you're interested in is the color on
the surface, but I think that for 3D printing what you're interested in
is the color of the volume. (And then it gets even harder if you try to
overlap at the boundaries for better strength.)

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? I don't think so.  I think the difference starts to matter when you start trying to really support color, because then you have the question of whether colors apply to the surfaces, or also to the space inside the shape.  For most 3D graphics what you're interested in is the color on the surface, but I think that for 3D printing what you're interested in is the color of the volume. (And then it gets even harder if you try to overlap at the boundaries for better strength.)
JB
Jordan Brown
Sun, May 31, 2026 12:52 AM

On 5/30/2026 11:30 AM, 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. 😊)

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.

It doesn't (yet?) work for OpenSCAD data, only for imported data, but
what you described is the surface() operation.  Well, at least when the
surface is defined as a grid.

Mostly, it shouldn't be too hard to build an appropriate polyhedron. 
Just, as always when building polyhedra, tedious.

On 5/30/2026 11:30 AM, 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. 😊) > > 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. > It doesn't (yet?) work for OpenSCAD data, only for imported data, but what you described is the surface() operation.  Well, at least when the surface is defined as a grid. Mostly, it shouldn't be too hard to build an appropriate polyhedron.  Just, as always when building polyhedra, tedious.