Golf ball? Evenly spaced points on a sphere?

I’m afraid you’ll have to check with the manufacturer of “MaxFli DDH” for your curiosity. Their interests don’t seem to be in perfect circle packing.
According to the video, they seem to care about “Large dimples for more distance, small dimples for more control”.

I’m asking about your model/suggestion @HS_Kim, not Maxfli’s implementation? They don’t look the same to my eye.

That Maxfli video looks pretty dated. I’d be curious to know if they still place dimples on balls like that, or if it’s better to pack them tighter. There sure does look to be a lot of space between the dimples on that Maxfli ball.

The Titleist Pro V1 has very tight spacing.

About my suggestion , did you investigate aerodynamic riblets?
Here is a link
https://www.google.com/search?q=aerodynamic+riblets&newwindow=1&safe=active&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjM_eSFq-DjAhWwK7kGHSt3BMsQ_AUIESgB&biw=1729&bih=1769

In few words, the hole size , the distance in between and how deep they are depends on (speed, size, etc) Re numbers. There is a formula for riblets.

I think part of why the Maxfli used that configuration was that it combines icosahedral symmetry with a mold parting line (since these were made with 2 part molds) along a great circle (so it divides the sphere into 2 equal sized pieces) that doesn’t pass through any of the dimples


Maybe the way they do the molds has changed since then, since modern golf balls don’t appear to have this clear equator.

The Titleist Pro V1 and V1X look like they have tetrahedral symmetry instead:

1 Like

Their packing still didn’t look quite optimal to me, so I modelled something with the same connectivity as the V1X then optimised for tangency, and was able to improve the packing a fair bit.
Maybe I should give Titleist a call :thinking:


14 Likes

Does it have correct rotational symmetry? Possibly any asymmetry would cause the ball to not fly straight?

Yes, it has the same tetrahedral symmetry as the original

Just had a look at aTitleist Velocity where the pattern is irregular (and to the eye utilises at least four dimple sizes).

Claim: “to generate extremely low spin and even more distance. It produces high flight on all shots to enhance distance and help stop the ball on the green.”

The Velocity appears to use the same 328 dimple tetrahedrally symmetric arrangement as the V1X
It’s not dead easy to spot, but the pair of adjacent valence 5 nodes at the middle of each edge of the tetrahedron give it away:
image

You can use the Transformation constraint together with collisions in Kangaroo to find circle packings with prescribed symmetry:

7 Likes

Closer examination of my golfing friend’s old balls will have to wait for the weekend.

But I want to take the opportunity to commend your outstanding image - educational and elegant. Thanks

any chanche you can share this definition?
thanks

Icosahedral:


Cubic:
Tetrahedral:

symmetric_circle_pack_spherical.gh (24.0 KB)

It uses @dale’s Rhino Polyhedra to generate the starting polyhedron, distributes a chosen number of points on one segment of one face, and then packs these with all the necessary symmetry constraints.
Sometimes you can get a nicer looking pattern by increasing the radius to the point where the circles overlap slightly, and scaling down the output - there’s a slider for this.
Also included is a toggle for whether to include the vertices of the original polyedron as fixed circles.
For example, you probably do want this on for icosahedral symmetry, otherwise you get 5 circles around a gap at the corners.
If you find it is slowing down with a lot of circles, disable the mesh components on the output.

5 Likes

Looks nice. Rhino 6 only?

missing

Can’t find ‘GhPolyhedra’? As before, installing this has no noticeable effect for me:

From what I can tell, there is no way to set a minimum size circle? Or to specify a list of circle sizes? Like the earlier code in this thread, circles (dimples) vary in size depending on how their respective Length(Line) varies? And dimple depth then varies too?

Rhino 6 and Rhino 7 WIP, yes.

– Dale

I think the most relevant polyhedra for this are just the tetrahedron and icosahedron. There are lots of ways of modelling these - Weaverbird, Lunchbox, or just make them manually in Rhino.
Once you have the polyhedron, it uses the polylines bounding each face, and the mesh:

Yes- this definition is about distributing equal sized circles, but could be adapted for different radii.
If you wanted to set specific radii for specific points as input, you could use the Collider component. This probably wouldn’t be very good for getting tight packings though, since the size and number of neighbours should be connected -generally ones surrounded by <6 will tend to be smaller, and those surrounded by >6 will be larger.
Alternatively you can use the point distribution from the relaxation with equal circles above, and then assign radii based on distance to neighbours (using proximity3d):
symmetric_circle_pack_spherical_sizes.gh (29.3 KB)
Another way which I used in my example with the exact tangency several posts up is to get the convex hull of the points as a mesh, then run a second optimisation on that with the TangentIncircles goal.

5 Likes

Thanks for the definitions, wanted to apply some of my “dual mesh bump”.



Zoom on the mesh

Same number of holes but different logics

10 Likes

I have talked about how to create a golf ball in the most optimized way in this video tutorial https://www.youtube.com/watch?v=OgG0tYzrfcw&t=856s

I hope it helps!

3 Likes

Hi Daniel

Great stuff all this and directly useful for something we are working on.
While extensive rhino users we do not use Grasshopper, so I have a couple of questions which I am afraid are rather banal:

How do you change the size of the sphere?
I do not see any units i.e mm or cm, is this possible to define?
Is it possible to define size of circles on the sphere?

Basically we want to distribute 20000+ discs on a 15m sphere.

Thank you!

Rolf

Hi @rolf1,

All Grasshopper definitions use the unit system of the Rhino file you open them with.
So if your Rhino file units are set to metres, and you specify a radius as a number in Grasshopper, that object when baked into Rhino will have that radius in metres.