discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Progress Report: CGAL vs Manifold

GB
Glenn Butcher
Fri, Jul 18, 2025 2:09 PM

I have a rather complicated model, thought I'd run a speed comparison
between CGAL and Manifold renders.  I did this at the command line in
order to use the time command.  Here's a screenshot of the model:

The following is run on a 12-core AMD/16GB machine, Ubuntu OS, OpenSCAD
version reported at the bottom:

glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time
openscad --backend=manifold -o wwall.stl wwall.scad
Geometries in cache: 412
Geometry cache size in bytes: 53609520
CGAL Polyhedrons in cache: 103
CGAL cache size in bytes: 0
Total rendering time: 0:00:51.037
   Top level object is a 3D object (manifold):
   Status:     NoError
   Genus:      31
   Vertices:   420014
   Facets:     840148

real    0m51.787s
user    2m28.472s
sys     0m12.415s

glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time
openscad -o wwall.stl wwall.scad
ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion
violation!
Expr: e_below != SHalfedge_handle()
File: /usr/include/CGAL/Nef_3/SNC_FM_decorator.h
Line: 418
ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion
violation!
Expr: itl != it->second.end()
File: /usr/include/CGAL/Nef_3/SNC_external_structure.h
Line: 1078
ERROR: The given mesh is not closed! Unable to convert to CGALNefGeometry.
EXPORT-WARNING: Exported object may not be a valid 2-manifold and may
need repair
Geometries in cache: 413
Geometry cache size in bytes: 53609520
CGAL Polyhedrons in cache: 1
CGAL cache size in bytes: 61781376
Total rendering time: 0:12:25.389
Top level object is a 3D object (Nef polyhedron):
   Simple:     no
   Vertices:    32480
   Halfedges:  141852
   Edges:       70926
   Halffacets:  76922
   Facets:      38461
   Volumes:         2
WARNING: Object may not be a valid 2-manifold and may need repair!

real    12m26.287s
user    12m23.918s
sys     0m2.237s

glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ openscad -v
OpenSCAD version 2025.07.17

Manifold renders more quickly than even the preview in GUI OpenSCAD, and
its renders navigate more smoothly when panning, rotating and zooming. 
I'd say just scrap both preview and CGAL.

FWIW,
Glenn Butcher

I have a rather complicated model, thought I'd run a speed comparison between CGAL and Manifold renders.  I did this at the command line in order to use the time command.  Here's a screenshot of the model: The following is run on a 12-core AMD/16GB machine, Ubuntu OS, OpenSCAD version reported at the bottom: glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time openscad --backend=manifold -o wwall.stl wwall.scad Geometries in cache: 412 Geometry cache size in bytes: 53609520 CGAL Polyhedrons in cache: 103 CGAL cache size in bytes: 0 Total rendering time: 0:00:51.037    Top level object is a 3D object (manifold):    Status:     NoError    Genus:      31    Vertices:   420014    Facets:     840148 real    0m51.787s user    2m28.472s sys     0m12.415s glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time openscad -o wwall.stl wwall.scad ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion violation! Expr: e_below != SHalfedge_handle() File: /usr/include/CGAL/Nef_3/SNC_FM_decorator.h Line: 418 ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion violation! Expr: itl != it->second.end() File: /usr/include/CGAL/Nef_3/SNC_external_structure.h Line: 1078 ERROR: The given mesh is not closed! Unable to convert to CGALNefGeometry. EXPORT-WARNING: Exported object may not be a valid 2-manifold and may need repair Geometries in cache: 413 Geometry cache size in bytes: 53609520 CGAL Polyhedrons in cache: 1 CGAL cache size in bytes: 61781376 Total rendering time: 0:12:25.389 Top level object is a 3D object (Nef polyhedron):    Simple:     no    Vertices:    32480    Halfedges:  141852    Edges:       70926    Halffacets:  76922    Facets:      38461    Volumes:         2 WARNING: Object may not be a valid 2-manifold and may need repair! real    12m26.287s user    12m23.918s sys     0m2.237s glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ openscad -v OpenSCAD version 2025.07.17 Manifold renders more quickly than even the preview in GUI OpenSCAD, and its renders navigate more smoothly when panning, rotating and zooming.  I'd say just scrap both preview and CGAL. FWIW, Glenn Butcher
SL
Steve Lelievre
Fri, Jul 18, 2025 3:03 PM

Hi Glenn,

An off-topic reply: I'm quite impressed by your model and particularly
the uneven texturing used to simulate the faces of the blocks used for
the walls - just like chiselled granite. How did you achieve that
texturing? It just so happens that I'm currently looking for a way to
roughen smooth surfaces.

On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote:

I'd say just scrap both preview and CGAL.

Just a casual reaction: Based on execution times alone, I'd probably
agree. But I like preview because of $preview, which lets me have
multipart models assembled in preview and broken apart for rendering in
preparation to3d printing. And, I regularly use the % modifier to add
guides or diagnostic shapes during development of models. So I'd still
like to have the preview functionality even if the underlying mechanisms
were changed.

Cheers, Steve

Hi Glenn, An off-topic reply: I'm quite impressed by your model and particularly the uneven texturing used to simulate the faces of the blocks used for the walls - just like chiselled granite. How did you achieve that texturing? It just so happens that I'm currently looking for a way to roughen smooth surfaces. On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote: > I'd say just scrap both preview and CGAL. Just a casual reaction: Based on execution times alone, I'd probably agree. But I like preview because of $preview, which lets me have multipart models assembled in preview and broken apart for rendering in preparation to3d printing. And, I regularly use the % modifier to add guides or diagnostic shapes during development of models. So I'd still like to have the preview functionality even if the underlying mechanisms were changed. Cheers, Steve
GB
Glenn Butcher
Fri, Jul 18, 2025 3:41 PM

Regarding texture: That turned into a sub-hobby.  I used a "coherent
noise" library, aptly named libnoise, to make a program to generate
texture data.  Since I was writing the program, I made an output option
a row-columm text file ingestible by OpenSCAD's surface() operator.  
The texture definition is a network of libnoise operators, probably
needs a separate thread to discuss. I did the stones in the render in
two steps: 1) a script to make the separate stones as .stl files, 2) a
script to load them and add the wall foundation, doors, windows, and
corbels.

Regarding rendering: Just a visceral reaction on my part.  The preview
render of the snapshot doesn't navigate as smoothly as the Manifold
render, and preview takes an ungodly long time when I initially open the
script.  Has got me thinking about just command-line rendering, just to
keep from waiting for the preview render.

On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote:

Hi Glenn,

An off-topic reply: I'm quite impressed by your model and particularly
the uneven texturing used to simulate the faces of the blocks used for
the walls - just like chiselled granite. How did you achieve that
texturing? It just so happens that I'm currently looking for a way to
roughen smooth surfaces.

On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote:

I'd say just scrap both preview and CGAL.

Just a casual reaction: Based on execution times alone, I'd probably
agree. But I like preview because of $preview, which lets me have
multipart models assembled in preview and broken apart for rendering
in preparation to3d printing. And, I regularly use the % modifier to
add guides or diagnostic shapes during development of models. So I'd
still like to have the preview functionality even if the underlying
mechanisms were changed.

Cheers, Steve


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

Regarding texture: That turned into a sub-hobby.  I used a "coherent noise" library, aptly named libnoise, to make a program to generate texture data.  Since I was writing the program, I made an output option a row-columm text file ingestible by OpenSCAD's surface() operator.   The texture definition is a network of libnoise operators, probably needs a separate thread to discuss. I did the stones in the render in two steps: 1) a script to make the separate stones as .stl files, 2) a script to load them and add the wall foundation, doors, windows, and corbels. Regarding rendering: Just a visceral reaction on my part.  The preview render of the snapshot doesn't navigate as smoothly as the Manifold render, and preview takes an ungodly long time when I initially open the script.  Has got me thinking about just command-line rendering, just to keep from waiting for the preview render. On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote: > Hi Glenn, > > An off-topic reply: I'm quite impressed by your model and particularly > the uneven texturing used to simulate the faces of the blocks used for > the walls - just like chiselled granite. How did you achieve that > texturing? It just so happens that I'm currently looking for a way to > roughen smooth surfaces. > > On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote: >> I'd say just scrap both preview and CGAL. > > Just a casual reaction: Based on execution times alone, I'd probably > agree. But I like preview because of $preview, which lets me have > multipart models assembled in preview and broken apart for rendering > in preparation to3d printing. And, I regularly use the % modifier to > add guides or diagnostic shapes during development of models. So I'd > still like to have the preview functionality even if the underlying > mechanisms were changed. > > Cheers, Steve > > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
JB
Jon Bondy
Fri, Jul 18, 2025 4:01 PM

Glenn:

Doesn't OpenSCAD display the computational time?  Why would you need to
run it at the command prompt (which adds program load time)?  Are you
implying that the times that OpenSCAD state are inaccurate?

Jon

On 7/18/2025 10:09 AM, Glenn Butcher via Discuss wrote:

I have a rather complicated model, thought I'd run a speed comparison
between CGAL and Manifold renders.  I did this at the command line in
order to use the time command.  Here's a screenshot of the model:

The following is run on a 12-core AMD/16GB machine, Ubuntu OS,
OpenSCAD version reported at the bottom:

glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time
openscad --backend=manifold -o wwall.stl wwall.scad
Geometries in cache: 412
Geometry cache size in bytes: 53609520
CGAL Polyhedrons in cache: 103
CGAL cache size in bytes: 0
Total rendering time: 0:00:51.037
   Top level object is a 3D object (manifold):
   Status:     NoError
   Genus:      31
   Vertices:   420014
   Facets:     840148

real    0m51.787s
user    2m28.472s
sys     0m12.415s

glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time
openscad -o wwall.stl wwall.scad
ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion
violation!
Expr: e_below != SHalfedge_handle()
File: /usr/include/CGAL/Nef_3/SNC_FM_decorator.h
Line: 418
ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion
violation!
Expr: itl != it->second.end()
File: /usr/include/CGAL/Nef_3/SNC_external_structure.h
Line: 1078
ERROR: The given mesh is not closed! Unable to convert to CGALNefGeometry.
EXPORT-WARNING: Exported object may not be a valid 2-manifold and may
need repair
Geometries in cache: 413
Geometry cache size in bytes: 53609520
CGAL Polyhedrons in cache: 1
CGAL cache size in bytes: 61781376
Total rendering time: 0:12:25.389
Top level object is a 3D object (Nef polyhedron):
   Simple:     no
   Vertices:    32480
   Halfedges:  141852
   Edges:       70926
   Halffacets:  76922
   Facets:      38461
   Volumes:         2
WARNING: Object may not be a valid 2-manifold and may need repair!

real    12m26.287s
user    12m23.918s
sys     0m2.237s

glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ openscad -v
OpenSCAD version 2025.07.17

Manifold renders more quickly than even the preview in GUI OpenSCAD,
and its renders navigate more smoothly when panning, rotating and
zooming.  I'd say just scrap both preview and CGAL.

FWIW,
Glenn Butcher


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

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

Glenn: Doesn't OpenSCAD display the computational time?  Why would you need to run it at the command prompt (which adds program load time)?  Are you implying that the times that OpenSCAD state are inaccurate? Jon On 7/18/2025 10:09 AM, Glenn Butcher via Discuss wrote: > > I have a rather complicated model, thought I'd run a speed comparison > between CGAL and Manifold renders.  I did this at the command line in > order to use the time command.  Here's a screenshot of the model: > > The following is run on a 12-core AMD/16GB machine, Ubuntu OS, > OpenSCAD version reported at the bottom: > > glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time > openscad --backend=manifold -o wwall.stl wwall.scad > Geometries in cache: 412 > Geometry cache size in bytes: 53609520 > CGAL Polyhedrons in cache: 103 > CGAL cache size in bytes: 0 > Total rendering time: 0:00:51.037 >    Top level object is a 3D object (manifold): >    Status:     NoError >    Genus:      31 >    Vertices:   420014 >    Facets:     840148 > > real    0m51.787s > user    2m28.472s > sys     0m12.415s > > glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ time > openscad -o wwall.stl wwall.scad > ERROR: CGAL error in CGAL_Nef_polyhedron3(): CGAL ERROR: assertion > violation! > Expr: e_below != SHalfedge_handle() > File: /usr/include/CGAL/Nef_3/SNC_FM_decorator.h > Line: 418 > ERROR: CGAL error in CGALUtils::applyUnion3D: CGAL ERROR: assertion > violation! > Expr: itl != it->second.end() > File: /usr/include/CGAL/Nef_3/SNC_external_structure.h > Line: 1078 > ERROR: The given mesh is not closed! Unable to convert to CGALNefGeometry. > EXPORT-WARNING: Exported object may not be a valid 2-manifold and may > need repair > Geometries in cache: 413 > Geometry cache size in bytes: 53609520 > CGAL Polyhedrons in cache: 1 > CGAL cache size in bytes: 61781376 > Total rendering time: 0:12:25.389 > Top level object is a 3D object (Nef polyhedron): >    Simple:     no >    Vertices:    32480 >    Halfedges:  141852 >    Edges:       70926 >    Halffacets:  76922 >    Facets:      38461 >    Volumes:         2 > WARNING: Object may not be a valid 2-manifold and may need repair! > > real    12m26.287s > user    12m23.918s > sys     0m2.237s > > glenn@bena:~/Railroading/Antonito/Antonito_Depot/WWall-Copy$ openscad -v > OpenSCAD version 2025.07.17 > > Manifold renders more quickly than even the preview in GUI OpenSCAD, > and its renders navigate more smoothly when panning, rotating and > zooming.  I'd say just scrap both preview and CGAL. > > FWIW, > Glenn Butcher > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com
JB
Jon Bondy
Fri, Jul 18, 2025 4:05 PM

The BOSL2 Library has an extensive texturing feature already in place...

https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#function-texture

Jon

On 7/18/2025 11:41 AM, Glenn Butcher via Discuss wrote:

Regarding texture: That turned into a sub-hobby.  I used a "coherent
noise" library, aptly named libnoise, to make a program to generate
texture data.  Since I was writing the program, I made an output
option a row-columm text file ingestible by OpenSCAD's surface()
operator.   The texture definition is a network of libnoise operators,
probably needs a separate thread to discuss. I did the stones in the
render in two steps: 1) a script to make the separate stones as .stl
files, 2) a script to load them and add the wall foundation, doors,
windows, and corbels.

Regarding rendering: Just a visceral reaction on my part.  The preview
render of the snapshot doesn't navigate as smoothly as the Manifold
render, and preview takes an ungodly long time when I initially open
the script.  Has got me thinking about just command-line rendering,
just to keep from waiting for the preview render.

On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote:

Hi Glenn,

An off-topic reply: I'm quite impressed by your model and
particularly the uneven texturing used to simulate the faces of the
blocks used for the walls - just like chiselled granite. How did you
achieve that texturing? It just so happens that I'm currently looking
for a way to roughen smooth surfaces.

On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote:

I'd say just scrap both preview and CGAL.

Just a casual reaction: Based on execution times alone, I'd probably
agree. But I like preview because of $preview, which lets me have
multipart models assembled in preview and broken apart for rendering
in preparation to3d printing. And, I regularly use the % modifier to
add guides or diagnostic shapes during development of models. So I'd
still like to have the preview functionality even if the underlying
mechanisms were changed.

Cheers, Steve


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

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

The BOSL2 Library has an extensive texturing feature already in place... https://github.com/BelfrySCAD/BOSL2/wiki/skin.scad#function-texture Jon On 7/18/2025 11:41 AM, Glenn Butcher via Discuss wrote: > Regarding texture: That turned into a sub-hobby.  I used a "coherent > noise" library, aptly named libnoise, to make a program to generate > texture data.  Since I was writing the program, I made an output > option a row-columm text file ingestible by OpenSCAD's surface() > operator.   The texture definition is a network of libnoise operators, > probably needs a separate thread to discuss. I did the stones in the > render in two steps: 1) a script to make the separate stones as .stl > files, 2) a script to load them and add the wall foundation, doors, > windows, and corbels. > > Regarding rendering: Just a visceral reaction on my part.  The preview > render of the snapshot doesn't navigate as smoothly as the Manifold > render, and preview takes an ungodly long time when I initially open > the script.  Has got me thinking about just command-line rendering, > just to keep from waiting for the preview render. > > On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote: >> Hi Glenn, >> >> An off-topic reply: I'm quite impressed by your model and >> particularly the uneven texturing used to simulate the faces of the >> blocks used for the walls - just like chiselled granite. How did you >> achieve that texturing? It just so happens that I'm currently looking >> for a way to roughen smooth surfaces. >> >> On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote: >>> I'd say just scrap both preview and CGAL. >> >> Just a casual reaction: Based on execution times alone, I'd probably >> agree. But I like preview because of $preview, which lets me have >> multipart models assembled in preview and broken apart for rendering >> in preparation to3d printing. And, I regularly use the % modifier to >> add guides or diagnostic shapes during development of models. So I'd >> still like to have the preview functionality even if the underlying >> mechanisms were changed. >> >> Cheers, Steve >> >> >> >> _______________________________________________ >> 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 -- This email has been checked for viruses by AVG antivirus software. www.avg.com
SL
Steve Lelievre
Fri, Jul 18, 2025 4:05 PM

Ah, Surface. Of course!

I can just grab a random dither image from the web, and I’ll be on my way.

I got bogged down trying to figure out how to do it with some kind of
randomness generated within Openscad itself.

Thanks for the lead.

Steve

On Fri, 18 Jul 2025 at 08:41, Glenn Butcher via Discuss <
discuss@lists.openscad.org> wrote:

Regarding texture: That turned into a sub-hobby.  I used a "coherent
noise" library, aptly named libnoise, to make a program to generate
texture data.  Since I was writing the program, I made an output option
a row-columm text file ingestible by OpenSCAD's surface() operator.
The texture definition is a network of libnoise operators, probably
needs a separate thread to discuss. I did the stones in the render in
two steps: 1) a script to make the separate stones as .stl files, 2) a
script to load them and add the wall foundation, doors, windows, and
corbels.

Regarding rendering: Just a visceral reaction on my part.  The preview
render of the snapshot doesn't navigate as smoothly as the Manifold
render, and preview takes an ungodly long time when I initially open the
script.  Has got me thinking about just command-line rendering, just to
keep from waiting for the preview render.

On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote:

Hi Glenn,

An off-topic reply: I'm quite impressed by your model and particularly
the uneven texturing used to simulate the faces of the blocks used for
the walls - just like chiselled granite. How did you achieve that
texturing? It just so happens that I'm currently looking for a way to
roughen smooth surfaces.

On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote:

I'd say just scrap both preview and CGAL.

Just a casual reaction: Based on execution times alone, I'd probably
agree. But I like preview because of $preview, which lets me have
multipart models assembled in preview and broken apart for rendering
in preparation to3d printing. And, I regularly use the % modifier to
add guides or diagnostic shapes during development of models. So I'd
still like to have the preview functionality even if the underlying
mechanisms were changed.

Cheers, Steve


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

Ah, Surface. Of course! I can just grab a random dither image from the web, and I’ll be on my way. I got bogged down trying to figure out how to do it with some kind of randomness generated within Openscad itself. Thanks for the lead. Steve On Fri, 18 Jul 2025 at 08:41, Glenn Butcher via Discuss < discuss@lists.openscad.org> wrote: > Regarding texture: That turned into a sub-hobby. I used a "coherent > noise" library, aptly named libnoise, to make a program to generate > texture data. Since I was writing the program, I made an output option > a row-columm text file ingestible by OpenSCAD's surface() operator. > The texture definition is a network of libnoise operators, probably > needs a separate thread to discuss. I did the stones in the render in > two steps: 1) a script to make the separate stones as .stl files, 2) a > script to load them and add the wall foundation, doors, windows, and > corbels. > > Regarding rendering: Just a visceral reaction on my part. The preview > render of the snapshot doesn't navigate as smoothly as the Manifold > render, and preview takes an ungodly long time when I initially open the > script. Has got me thinking about just command-line rendering, just to > keep from waiting for the preview render. > > On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote: > > Hi Glenn, > > > > An off-topic reply: I'm quite impressed by your model and particularly > > the uneven texturing used to simulate the faces of the blocks used for > > the walls - just like chiselled granite. How did you achieve that > > texturing? It just so happens that I'm currently looking for a way to > > roughen smooth surfaces. > > > > On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote: > >> I'd say just scrap both preview and CGAL. > > > > Just a casual reaction: Based on execution times alone, I'd probably > > agree. But I like preview because of $preview, which lets me have > > multipart models assembled in preview and broken apart for rendering > > in preparation to3d printing. And, I regularly use the % modifier to > > add guides or diagnostic shapes during development of models. So I'd > > still like to have the preview functionality even if the underlying > > mechanisms were changed. > > > > Cheers, Steve > > > > > > > > _______________________________________________ > > 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 >
JB
Jon Bondy
Fri, Jul 18, 2025 4:06 PM

I agree: Preview has many useful uses [sic]

Jon

On 7/18/2025 11:03 AM, Steve Lelievre via Discuss wrote:

Hi Glenn,

On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote:

I'd say just scrap both preview and CGAL.

Just a casual reaction: Based on execution times alone, I'd probably
agree. But I like preview because of $preview, which lets me have
multipart models assembled in preview and broken apart for rendering
in preparation to3d printing. And, I regularly use the % modifier to
add guides or diagnostic shapes during development of models. So I'd
still like to have the preview functionality even if the underlying
mechanisms were changed.

Cheers, Steve


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

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

I agree: Preview has many useful uses [sic] Jon On 7/18/2025 11:03 AM, Steve Lelievre via Discuss wrote: > Hi Glenn, > > On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote: >> I'd say just scrap both preview and CGAL. > > Just a casual reaction: Based on execution times alone, I'd probably > agree. But I like preview because of $preview, which lets me have > multipart models assembled in preview and broken apart for rendering > in preparation to3d printing. And, I regularly use the % modifier to > add guides or diagnostic shapes during development of models. So I'd > still like to have the preview functionality even if the underlying > mechanisms were changed. > > Cheers, Steve > > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com
JB
Jordan Brown
Fri, Jul 18, 2025 4:40 PM

On 7/18/2025 8:41 AM, Glenn Butcher via Discuss wrote:

Regarding rendering: Just a visceral reaction on my part.  The preview
render of the snapshot doesn't navigate as smoothly as the Manifold
render, and preview takes an ungodly long time when I initially open
the script.  Has got me thinking about just command-line rendering,
just to keep from waiting for the preview render.

If you don't like your model previewing on load... turn off
Design/Automatic Reload and Preview.

I think that for most models preview is still a bit faster than Manifold.

Preview has # and %.

Manifold color/transparency handling isn't quite all there yet.  (Not to
say that preview's doesn't have problems.)

I understand the use case for $preview for two alternate forms, but do
note that having a top-level boolean and using the Customizer gives you
almost the same thing.

On 7/18/2025 8:41 AM, Glenn Butcher via Discuss wrote: > Regarding rendering: Just a visceral reaction on my part.  The preview > render of the snapshot doesn't navigate as smoothly as the Manifold > render, and preview takes an ungodly long time when I initially open > the script.  Has got me thinking about just command-line rendering, > just to keep from waiting for the preview render. If you don't like your model previewing on load... turn off Design/Automatic Reload and Preview. I think that for most models preview is still a bit faster than Manifold. Preview has # and %. Manifold color/transparency handling isn't quite all there yet.  (Not to say that preview's doesn't have problems.) I understand the use case for $preview for two alternate forms, but do note that having a top-level boolean and using the Customizer gives you almost the same thing.
GS
Guenther Sohler
Fri, Jul 18, 2025 7:00 PM

No fancy lib required here to created tiled walls.
All Tiles types can easily be adopted , new ideas probably easily
implemented

https://imgur.com/a/6wZAaqz

from openscad import *

round = circle(r=15)
tile=hull((cube([2,2,4])+[4,4,0]), cube([10,10,1])).rotx(90)

wall = [tile+[10i,0,10j] for i in range(10) for j in range(4)]

wrap(wall, round).show()

On Fri, Jul 18, 2025 at 5:41 PM Glenn Butcher via Discuss <
discuss@lists.openscad.org> wrote:

Regarding texture: That turned into a sub-hobby.  I used a "coherent
noise" library, aptly named libnoise, to make a program to generate
texture data.  Since I was writing the program, I made an output option
a row-columm text file ingestible by OpenSCAD's surface() operator.
The texture definition is a network of libnoise operators, probably
needs a separate thread to discuss. I did the stones in the render in
two steps: 1) a script to make the separate stones as .stl files, 2) a
script to load them and add the wall foundation, doors, windows, and
corbels.

Regarding rendering: Just a visceral reaction on my part.  The preview
render of the snapshot doesn't navigate as smoothly as the Manifold
render, and preview takes an ungodly long time when I initially open the
script.  Has got me thinking about just command-line rendering, just to
keep from waiting for the preview render.

On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote:

Hi Glenn,

An off-topic reply: I'm quite impressed by your model and particularly
the uneven texturing used to simulate the faces of the blocks used for
the walls - just like chiselled granite. How did you achieve that
texturing? It just so happens that I'm currently looking for a way to
roughen smooth surfaces.

On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote:

I'd say just scrap both preview and CGAL.

Just a casual reaction: Based on execution times alone, I'd probably
agree. But I like preview because of $preview, which lets me have
multipart models assembled in preview and broken apart for rendering
in preparation to3d printing. And, I regularly use the % modifier to
add guides or diagnostic shapes during development of models. So I'd
still like to have the preview functionality even if the underlying
mechanisms were changed.

Cheers, Steve


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

No fancy lib required here to created tiled walls. All Tiles types can easily be adopted , new ideas probably easily implemented https://imgur.com/a/6wZAaqz from openscad import * round = circle(r=15) tile=hull((cube([2,2,4])+[4,4,0]), cube([10,10,1])).rotx(90) wall = [tile+[10*i,0,10*j] for i in range(10) for j in range(4)] wrap(wall, round).show() On Fri, Jul 18, 2025 at 5:41 PM Glenn Butcher via Discuss < discuss@lists.openscad.org> wrote: > Regarding texture: That turned into a sub-hobby. I used a "coherent > noise" library, aptly named libnoise, to make a program to generate > texture data. Since I was writing the program, I made an output option > a row-columm text file ingestible by OpenSCAD's surface() operator. > The texture definition is a network of libnoise operators, probably > needs a separate thread to discuss. I did the stones in the render in > two steps: 1) a script to make the separate stones as .stl files, 2) a > script to load them and add the wall foundation, doors, windows, and > corbels. > > Regarding rendering: Just a visceral reaction on my part. The preview > render of the snapshot doesn't navigate as smoothly as the Manifold > render, and preview takes an ungodly long time when I initially open the > script. Has got me thinking about just command-line rendering, just to > keep from waiting for the preview render. > > On 7/18/2025 9:03 AM, Steve Lelievre via Discuss wrote: > > Hi Glenn, > > > > An off-topic reply: I'm quite impressed by your model and particularly > > the uneven texturing used to simulate the faces of the blocks used for > > the walls - just like chiselled granite. How did you achieve that > > texturing? It just so happens that I'm currently looking for a way to > > roughen smooth surfaces. > > > > On 2025-07-18 7:09 a.m., Glenn Butcher via Discuss wrote: > >> I'd say just scrap both preview and CGAL. > > > > Just a casual reaction: Based on execution times alone, I'd probably > > agree. But I like preview because of $preview, which lets me have > > multipart models assembled in preview and broken apart for rendering > > in preparation to3d printing. And, I regularly use the % modifier to > > add guides or diagnostic shapes during development of models. So I'd > > still like to have the preview functionality even if the underlying > > mechanisms were changed. > > > > Cheers, Steve > > > > > > > > _______________________________________________ > > 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 >
JB
Jon Bondy
Fri, Jul 18, 2025 7:53 PM

Guenther:

Your code does not work in OpenSCAD, at least not here.

If you are providing an example that does not work in OpenSCAD (the
language under discussion in this forum), please label it as such.  If
your code requires something other than standard OpenSCAD, please label
it as such.

Thanks

Jon

On 7/18/2025 3:00 PM, Guenther Sohler via Discuss wrote:

from openscad import *

round = circle(r=15)
tile=hull((cube([2,2,4])+[4,4,0]), cube([10,10,1])).rotx(90)

wall = [tile+[10i,0,10j] for i in range(10) for j in range(4)]

wrap(wall, round).show()

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

Guenther: Your code does not work in OpenSCAD, at least not here. If you are providing an example that does not work in OpenSCAD (the language under discussion in this forum), please label it as such.  If your code requires something other than standard OpenSCAD, please label it as such. Thanks Jon On 7/18/2025 3:00 PM, Guenther Sohler via Discuss wrote: > from openscad import * > > round = circle(r=15) > tile=hull((cube([2,2,4])+[4,4,0]), cube([10,10,1])).rotx(90) > > wall = [tile+[10*i,0,10*j] for i in range(10) for j in range(4)] > > wrap(wall, round).show() -- This email has been checked for viruses by AVG antivirus software. www.avg.com