discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Undersized Spheres

JB
Jordan Brown
Thu, Jul 2, 2026 8:18 PM

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.

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.
SP
Sanjeev Prabhakar
Fri, Jul 3, 2026 1:36 AM

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.

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.
RW
Raymond West
Fri, Jul 3, 2026 8:31 AM

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

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
SP
Sanjeev Prabhakar
Sat, Jul 4, 2026 11:16 AM

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

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
SP
Sanjeev Prabhakar
Sat, Jul 4, 2026 11:34 AM

I have attempted the same as well:
[image: Screenshot 2026-07-04 at 5.02.25 PM.png]

I have attempted the same as well: [image: Screenshot 2026-07-04 at 5.02.25 PM.png]
AM
Adrian Mariano
Sat, Jul 4, 2026 4:17 PM

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

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
LM
Leonard Martin Struttmann
Sat, Jul 4, 2026 4:51 PM

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

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
AM
Adrian Mariano
Sat, Jul 4, 2026 5:09 PM

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

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
RW
Raymond West
Sun, Jul 5, 2026 10:37 AM

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

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
LM
Leonard Martin Struttmann
Sun, Jul 5, 2026 11:27 AM

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?

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?