discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

roof() (was: Re: Re: rounded/beveled raised text)

F
frechefuchs
Sat, Nov 22, 2025 1:06 PM

This example code crashes OpenSCAD for me:

roof()
difference() {
square(20, center=true);
circle(d = 20);
}

Well, I have an idea why the code is problematic, but a crash is
certainly unexpected behaviour.

Regards,
frechefuchs

$ openscad-nightly --enable roof -o test-roof.png test-roof.scad
Segmentation fault (core dumped)
$ openscad-nightly --version
OpenSCAD version 2025.11.01.snap
$ lsb_release -ri
No LSB modules are available.
Distributor ID: Ubuntu
Release: 24.04
$ uname -rs
Linux 6.8.0-62-generic

This example code crashes OpenSCAD for me: roof() difference() { square(20, center=true); circle(d = 20); } Well, I have an idea why the code is problematic, but a crash is certainly unexpected behaviour. Regards, frechefuchs $ openscad-nightly --enable roof -o test-roof.png test-roof.scad Segmentation fault (core dumped) $ openscad-nightly --version OpenSCAD version 2025.11.01.snap $ lsb_release -ri No LSB modules are available. Distributor ID: Ubuntu Release: 24.04 $ uname -rs Linux 6.8.0-62-generic
LM
Leonard Martin Struttmann
Sat, Nov 22, 2025 2:25 PM

If it helps, here's the crash report that MacOS gave me when I tried to run
it.

On Sat, Nov 22, 2025 at 7:06 AM frechefuchs via Discuss <
discuss@lists.openscad.org> wrote:

This example code crashes OpenSCAD for me:

roof()
difference() {
square(20, center=true);
circle(d = 20);
}

Well, I have an idea why the code is problematic, but a crash is
certainly unexpected behaviour.

Regards,
frechefuchs

$ openscad-nightly --enable roof -o test-roof.png test-roof.scad
Segmentation fault (core dumped)
$ openscad-nightly --version
OpenSCAD version 2025.11.01.snap
$ lsb_release -ri
No LSB modules are available.
Distributor ID: Ubuntu
Release:        24.04
$ uname -rs
Linux 6.8.0-62-generic


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

If it helps, here's the crash report that MacOS gave me when I tried to run it. On Sat, Nov 22, 2025 at 7:06 AM frechefuchs via Discuss < discuss@lists.openscad.org> wrote: > This example code crashes OpenSCAD for me: > > roof() > difference() { > square(20, center=true); > circle(d = 20); > } > > Well, I have an idea why the code is problematic, but a crash is > certainly unexpected behaviour. > > Regards, > frechefuchs > > $ openscad-nightly --enable roof -o test-roof.png test-roof.scad > Segmentation fault (core dumped) > $ openscad-nightly --version > OpenSCAD version 2025.11.01.snap > $ lsb_release -ri > No LSB modules are available. > Distributor ID: Ubuntu > Release: 24.04 > $ uname -rs > Linux 6.8.0-62-generic > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org >
MK
Marius Kintel
Sat, Nov 22, 2025 4:35 PM

roof() has a number of known issues, including crashes.
If your issue fits any of the existing issues, feel free to add to that if you think it may help track it down:
https://github.com/openscad/openscad/issues?q=state%3Aopen%20label%3A%22Feature%3A%20Roof%22

..but most of all, roof() as an experimental feature needs a new owner since the original author dropped off at some point.

-Marius

On Nov 22, 2025, at 09:25, Leonard Martin Struttmann via Discuss discuss@lists.openscad.org wrote:

If it helps, here's the crash report that MacOS gave me when I tried to run it.

On Sat, Nov 22, 2025 at 7:06 AM frechefuchs via Discuss <discuss@lists.openscad.org mailto:discuss@lists.openscad.org> wrote:

This example code crashes OpenSCAD for me:

roof()
difference() {
square(20, center=true);
circle(d = 20);
}

Well, I have an idea why the code is problematic, but a crash is
certainly unexpected behaviour.

Regards,
frechefuchs

$ openscad-nightly --enable roof -o test-roof.png test-roof.scad
Segmentation fault (core dumped)
$ openscad-nightly --version
OpenSCAD version 2025.11.01.snap
$ lsb_release -ri
No LSB modules are available.
Distributor ID: Ubuntu
Release:        24.04
$ uname -rs
Linux 6.8.0-62-generic


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

<OpenSCADCrashReport.txt>_______________________________________________
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

roof() has a number of known issues, including crashes. If your issue fits any of the existing issues, feel free to add to that if you think it may help track it down: https://github.com/openscad/openscad/issues?q=state%3Aopen%20label%3A%22Feature%3A%20Roof%22 ..but most of all, roof() as an experimental feature needs a new owner since the original author dropped off at some point. -Marius > On Nov 22, 2025, at 09:25, Leonard Martin Struttmann via Discuss <discuss@lists.openscad.org> wrote: > > If it helps, here's the crash report that MacOS gave me when I tried to run it. > > > > On Sat, Nov 22, 2025 at 7:06 AM frechefuchs via Discuss <discuss@lists.openscad.org <mailto:discuss@lists.openscad.org>> wrote: >> This example code crashes OpenSCAD for me: >> >> roof() >> difference() { >> square(20, center=true); >> circle(d = 20); >> } >> >> Well, I have an idea why the code is problematic, but a crash is >> certainly unexpected behaviour. >> >> Regards, >> frechefuchs >> >> $ openscad-nightly --enable roof -o test-roof.png test-roof.scad >> Segmentation fault (core dumped) >> $ openscad-nightly --version >> OpenSCAD version 2025.11.01.snap >> $ lsb_release -ri >> No LSB modules are available. >> Distributor ID: Ubuntu >> Release: 24.04 >> $ uname -rs >> Linux 6.8.0-62-generic >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org <mailto:discuss-leave@lists.openscad.org> > <OpenSCADCrashReport.txt>_______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
CC
Cory Cross
Sat, Nov 22, 2025 4:38 PM

I have a fix for this which just merged. Also there's already a github issue on it.

On November 22, 2025 6:25:17 AM PST, Leonard Martin Struttmann via Discuss discuss@lists.openscad.org wrote:

If it helps, here's the crash report that MacOS gave me when I tried to run
it.

On Sat, Nov 22, 2025 at 7:06 AM frechefuchs via Discuss <
discuss@lists.openscad.org> wrote:

This example code crashes OpenSCAD for me:

roof()
difference() {
square(20, center=true);
circle(d = 20);
}

Well, I have an idea why the code is problematic, but a crash is
certainly unexpected behaviour.

Regards,
frechefuchs

$ openscad-nightly --enable roof -o test-roof.png test-roof.scad
Segmentation fault (core dumped)
$ openscad-nightly --version
OpenSCAD version 2025.11.01.snap
$ lsb_release -ri
No LSB modules are available.
Distributor ID: Ubuntu
Release:        24.04
$ uname -rs
Linux 6.8.0-62-generic


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

I have a fix for this which just merged. Also there's already a github issue on it. On November 22, 2025 6:25:17 AM PST, Leonard Martin Struttmann via Discuss <discuss@lists.openscad.org> wrote: >If it helps, here's the crash report that MacOS gave me when I tried to run >it. > > > >On Sat, Nov 22, 2025 at 7:06 AM frechefuchs via Discuss < >discuss@lists.openscad.org> wrote: > >> This example code crashes OpenSCAD for me: >> >> roof() >> difference() { >> square(20, center=true); >> circle(d = 20); >> } >> >> Well, I have an idea why the code is problematic, but a crash is >> certainly unexpected behaviour. >> >> Regards, >> frechefuchs >> >> $ openscad-nightly --enable roof -o test-roof.png test-roof.scad >> Segmentation fault (core dumped) >> $ openscad-nightly --version >> OpenSCAD version 2025.11.01.snap >> $ lsb_release -ri >> No LSB modules are available. >> Distributor ID: Ubuntu >> Release: 24.04 >> $ uname -rs >> Linux 6.8.0-62-generic >> _______________________________________________ >> OpenSCAD mailing list >> To unsubscribe send an email to discuss-leave@lists.openscad.org >>
F
frechefuchs
Sat, Nov 22, 2025 5:55 PM

Am 22.11.25 um 17:38 schrieb Cory Cross via Discuss:

I have a fix for this which just merged.

Thanks, looking forward to this!

Also there's already a github issue on it.

Actually, I did skim through the first page of open and closed github
issues, resp., before posting the issue, thinking roof() being a
relatively new feature.  I did find the other bug reports in the mean
time and learnt that work on roof() started five year ago.

The reason I dropped a quick bug report is that I did some roof shape
related stuff manually, recently (in the context of chamfering of
course).  My modules have roof related names, too.  Now, re-thinking
this, in a CSG software, a primitive like "roof()" stands out.  Since
the input of the current roof() implementation is a 2D shape, returning
a 3D shape, isn't the operation in fact another kind of extrusion?  So
let me throw a new primitive name like bevel_extrude() into the ring.
Even if that opens just another round of bike-shedding ...  At least
that name immediately suggests where to put the documentation.

Regards,
frechefuchs

Am 22.11.25 um 17:38 schrieb Cory Cross via Discuss: > I have a fix for this which just merged. Thanks, looking forward to this! > Also there's already a github issue on it. Actually, I did skim through the first page of open and closed github issues, resp., before posting the issue, thinking roof() being a relatively new feature. I did find the other bug reports in the mean time and learnt that work on roof() started five year ago. The reason I dropped a quick bug report is that I did some roof shape related stuff manually, recently (in the context of chamfering of course). My modules have roof related names, too. Now, re-thinking this, in a CSG software, a primitive like "roof()" stands out. Since the input of the current roof() implementation is a 2D shape, returning a 3D shape, isn't the operation in fact another kind of extrusion? So let me throw a new primitive name like bevel_extrude() into the ring. Even if that opens just another round of bike-shedding ... At least that name immediately suggests where to put the documentation. Regards, frechefuchs