On 7/2/2026 1:03 PM, larry via Discuss wrote:
I have definitely seen centring problems in the Y axis, though it isn't
nearly as obvious as your three-sided circle. The difference is usually
something small, say something like this (didn't look any up, just a
approximation to show the amount). Ymax: 104.83 Ymin: 105.00
I don't think that can happen. See if you can come up with an example,
please. The +Y and -Y sides of a circle should be identical, no matter
how many sides the circle has.
Thanks Revar
I adjusted the sphere
My revised logic is below:
[image: Screenshot 2026-07-03 at 7.00.52 AM.png]
On Thu, 2 Jul 2026 at 23:22, Revar Desmera via Discuss <
discuss@lists.openscad.org> wrote:
Maybe it's just the orientation of your screenshot, but those triangle
faces look oddly proportioned. For reference, here's what the BOSL2 code
generates. We're fairly sure this is the optimal vertex placement, because
the faces on the complete sphere look identical from the Top, Left, and
Front views.
Here is some results for a manifold sphere.
The bounding box is correct, unless the sphere is rotated, of course.
The surface area is a pretty good indicator of profile accuracy. 32
segments is generally good enough. It only creates spheres with
segments a multiple of four, similar to the circle I mentioned b4
segments: 4.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 1333.333374 surface area: 692.820312
segments: 6.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 2942.808350 surface area: 1041.774780
segments: 8.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 2942.808350 surface area: 1041.774780
segments: 10.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3577.351807 surface area: 1154.198242
segments: 12.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3577.351807 surface area: 1154.198242
segments: 14.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3830.314453 surface area: 1197.276611
segments: 16.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3830.314453 surface area: 1197.276611
segments: 18.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3954.620605 surface area: 1218.078247
segments: 20.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3954.620605 surface area: 1218.078247
segments: 22.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4024.326904 surface area: 1229.642944
segments: 24.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4024.326904 surface area: 1229.642944
segments: 26.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4067.120850 surface area: 1236.705933
segments: 28.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4067.120850 surface area: 1236.705933
segments: 30.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4095.216309 surface area: 1241.327393
segments: 32.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4095.216309 surface area: 1241.327393
segments: 34.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4114.624512 surface area: 1244.512817
segments: 36.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4114.624512 surface area: 1244.512817
segments: 38.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4128.575195 surface area: 1246.801636
segments: 40.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4128.575195 surface area: 1246.801636
segments: 42.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4138.948730 surface area: 1248.498901
segments: 44.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4138.948730 surface area: 1248.498901
segments: 46.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4146.874512 surface area: 1249.793701
segments: 48.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4146.874512 surface area: 1249.793701
segments: 50.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4153.025391 surface area: 1250.806641
segments: 52.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4153.025391 surface area: 1250.806641
segments: 54.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4157.926758 surface area: 1251.600708
segments: 56.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4157.926758 surface area: 1251.600708
segments: 58.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4161.892578 surface area: 1252.246948
segments: 60.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4161.892578 surface area: 1252.246948
segments: 62.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4165.128906 surface area: 1252.781250
segments: 64.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4165.128906 surface area: 1252.781250
segments: 66.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4167.810547 surface area: 1253.215942
segments: 68.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4167.810547 surface area: 1253.215942
segments: 70.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4170.080566 surface area: 1253.582153
segments: 72.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4170.080566 surface area: 1253.582153
segments: 74.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4171.985840 surface area: 1253.897949
segments: 76.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4171.985840 surface area: 1253.897949
segments: 78.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4173.656250 surface area: 1254.170044
segments: 80.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4173.656250 surface area: 1254.170044
segments: 82.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4175.043945 surface area: 1254.399292
segments: 84.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4175.043945 surface area: 1254.399292
segments: 86.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4176.277344 surface area: 1254.590698
segments: 88.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4176.277344 surface area: 1254.590698
segments: 90.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4177.318359 surface area: 1254.764648
segments: 92.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4177.318359 surface area: 1254.764648
segments: 94.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4178.274902 surface area: 1254.919678
segments: 96.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4178.274902 surface area: 1254.919678
segments: 98.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4179.082031 surface area: 1255.048096
segments: 100.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4179.082031 surface area: 1255.048096
segments: 1000.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4188.216309 surface area: 1256.570679
but then...
segments: 10000.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 2048.000000 surface area: 787.910950
probably because some vertices are calculated in the same position/tris
are zero/whatever.
On 03/07/2026 02:36, Sanjeev Prabhakar via Discuss wrote:
Thanks Revar
I adjusted the sphere
My revised logic is below:
Screenshot 2026-07-03 at 7.00.52 AM.png
On Thu, 2 Jul 2026 at 23:22, Revar Desmera via Discuss
discuss@lists.openscad.org wrote:
Maybe it's just the orientation of your screenshot, but those
triangle faces look oddly proportioned. For reference, here's
what the BOSL2 code generates. We're fairly sure this is the
optimal vertex placement, because the faces on the complete sphere
look identical from the Top, Left, and Front views.
OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org
Hi Raymond
According to me the regular sphere is good enough with simpler logic as
shared by Len.
The discussion seems to be more on aesthetics. The sphere shared by Revar
is definitely great to look at.
On Fri, 3 Jul 2026 at 14:02, Raymond West via Discuss <
discuss@lists.openscad.org> wrote:
Here is some results for a manifold sphere.
The bounding box is correct, unless the sphere is rotated, of course. The
surface area is a pretty good indicator of profile accuracy. 32 segments is
generally good enough. It only creates spheres with segments a multiple of
four, similar to the circle I mentioned b4
segments: 4.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 1333.333374 surface area: 692.820312
segments: 6.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 2942.808350 surface area: 1041.774780
segments: 8.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 2942.808350 surface area: 1041.774780
segments: 10.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3577.351807 surface area: 1154.198242
segments: 12.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3577.351807 surface area: 1154.198242
segments: 14.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3830.314453 surface area: 1197.276611
segments: 16.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3830.314453 surface area: 1197.276611
segments: 18.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3954.620605 surface area: 1218.078247
segments: 20.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 3954.620605 surface area: 1218.078247
segments: 22.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4024.326904 surface area: 1229.642944
segments: 24.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4024.326904 surface area: 1229.642944
segments: 26.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4067.120850 surface area: 1236.705933
segments: 28.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4067.120850 surface area: 1236.705933
segments: 30.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4095.216309 surface area: 1241.327393
segments: 32.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4095.216309 surface area: 1241.327393
segments: 34.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4114.624512 surface area: 1244.512817
segments: 36.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4114.624512 surface area: 1244.512817
segments: 38.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4128.575195 surface area: 1246.801636
segments: 40.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4128.575195 surface area: 1246.801636
segments: 42.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4138.948730 surface area: 1248.498901
segments: 44.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4138.948730 surface area: 1248.498901
segments: 46.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4146.874512 surface area: 1249.793701
segments: 48.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4146.874512 surface area: 1249.793701
segments: 50.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4153.025391 surface area: 1250.806641
segments: 52.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4153.025391 surface area: 1250.806641
segments: 54.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4157.926758 surface area: 1251.600708
segments: 56.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4157.926758 surface area: 1251.600708
segments: 58.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4161.892578 surface area: 1252.246948
segments: 60.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4161.892578 surface area: 1252.246948
segments: 62.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4165.128906 surface area: 1252.781250
segments: 64.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4165.128906 surface area: 1252.781250
segments: 66.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4167.810547 surface area: 1253.215942
segments: 68.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4167.810547 surface area: 1253.215942
segments: 70.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4170.080566 surface area: 1253.582153
segments: 72.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4170.080566 surface area: 1253.582153
segments: 74.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4171.985840 surface area: 1253.897949
segments: 76.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4171.985840 surface area: 1253.897949
segments: 78.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4173.656250 surface area: 1254.170044
segments: 80.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4173.656250 surface area: 1254.170044
segments: 82.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4175.043945 surface area: 1254.399292
segments: 84.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4175.043945 surface area: 1254.399292
segments: 86.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4176.277344 surface area: 1254.590698
segments: 88.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4176.277344 surface area: 1254.590698
segments: 90.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4177.318359 surface area: 1254.764648
segments: 92.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4177.318359 surface area: 1254.764648
segments: 94.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4178.274902 surface area: 1254.919678
segments: 96.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4178.274902 surface area: 1254.919678
segments: 98.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4179.082031 surface area: 1255.048096
segments: 100.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4179.082031 surface area: 1255.048096
segments: 1000.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 4188.216309 surface area: 1256.570679
but then...
segments: 10000.000000
bounding box: 10.000000 -10.000000 10.000000
volume: 2048.000000 surface area: 787.910950
probably because some vertices are calculated in the same position/tris
are zero/whatever.
On 03/07/2026 02:36, Sanjeev Prabhakar via Discuss wrote:
Thanks Revar
I adjusted the sphere
My revised logic is below:
[image: Screenshot 2026-07-03 at 7.00.52 AM.png]
On Thu, 2 Jul 2026 at 23:22, Revar Desmera via Discuss <
discuss@lists.openscad.org> wrote:
Maybe it's just the orientation of your screenshot, but those triangle
faces look oddly proportioned. For reference, here's what the BOSL2 code
generates. We're fairly sure this is the optimal vertex placement, because
the faces on the complete sphere look identical from the Top, Left, and
Front views.
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
I have attempted the same as well:
[image: Screenshot 2026-07-04 at 5.02.25 PM.png]
I guess there's always the question of what matters in terms of small
artifacts, and how high the facet count will be. But the octahedron sphere
mates neatly with a cylinder along any axis, which is not true for the
other spheres. For the sphere made by rotate_extrude applied to a
semicircle we get this:
[image: image.png]
The native sphere:
[image: image.png]
The octa sphere:
[image: image.png]
I suppose also the dual of the octa sphere mates neatly with a cylinder
along any axis. It's kinda weird looking: you get this in BOSL2 if you ask
for a sphere that circumscribes rather than inscribing the ideal sphere:
[image: image.png]
On Sat, Jul 4, 2026 at 7:35 AM Sanjeev Prabhakar via Discuss <
discuss@lists.openscad.org> wrote:
I have attempted the same as well:
[image: Screenshot 2026-07-04 at 5.02.25 PM.png]
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
Adrian,
I can match my sphere to cylinders, I just need to be mindful of the $fn
that I choose for both:
[image: Screenshot 2026-07-04 at 11.44.21.png]
[image: Screenshot 2026-07-04 at 11.48.04.png]
Len
Ah, sorry, you're right. I neglected to specify $fn correctly to the
rotate_extrude.
On Sat, Jul 4, 2026 at 12:51 PM Leonard Martin Struttmann via Discuss <
discuss@lists.openscad.org> wrote:
Adrian,
I can match my sphere to cylinders, I just need to be mindful of the $fn
that I choose for both:
[image: Screenshot 2026-07-04 at 11.44.21.png]
[image: Screenshot 2026-07-04 at 11.48.04.png]
Len
OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org
What happens if you add another cylinder at a different angle? Depending
on the number of segments and the angle, it may all match up nicely, (90
degree is OK for manifold) but, afaik, there is no general solution,
unless near enough is good enough. (angle= 120 deg for image below)
On 04/07/2026 18:09, Adrian Mariano via Discuss wrote:
Ah, sorry, you're right. I neglected to specify $fn correctly to the
rotate_extrude.
On Sat, Jul 4, 2026 at 12:51 PM Leonard Martin Struttmann via Discuss
discuss@lists.openscad.org wrote:
Adrian,
I can match my sphere to cylinders, I just need to be mindful of
the $fn that I choose for both:
Screenshot 2026-07-04 at 11.44.21.png
Screenshot 2026-07-04 at 11.48.04.png
Len
_______________________________________________
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
When I use rotate_extruded spheres, and then hull() each sphere-cylinder
combination, I get a "reasonably" good transition:
[image: Screenshot 2026-07-05 at 06.15.28.png]
However, I agree with Raymond. Since OpenSCAD approximates arcs with
segments, I doubt that there is a general solution. We could "What if..."
this to death.
Which begs the question: Could there ever be an evolutionary change to
OpenSCAD to optionally allow for purely mathematically derived arcs?
SIDE QUESTIONS PROBABLY APPROPRIATE FOR ANOTHER FORUM
Are there other serious CAD programs that use purely mathematically derived
arcs? I imagine that there are. Once I found OpenSCAD I stopped looking at
other programs.
Are there CNC machines that use smooth motion motors (rather than stepper
motors) that could realize such models?