Creating Reuleaux Triangle in Grasshopper

Hi, i am Adlin. I just successfully created Reuleaux Triangle in my own way after several attemps. But my question is, is it possible to simplify my script or maybe there are other alternative or shortcut that i don’t discover yet?


reuleaux triangle.gh (23.4 KB)
reuleaux triangle.3dm (257.0 KB)

you might try full solid boolean into something like this?

Reuleaux_tetrahedron_booleans.gh (9.0 KB)

4 Likes

HI! Thank you for smart solution. After studying your script, I think i understand your workflow! so basically the vertices of the polygon will be the center for sphere and taking the intersection between 3 sphere. That’s cool! Thank you soo much for new tips and knowledge :smile:

1 Like

on a similar logic, this -poor- Python code fakes mass intersection by iterating over a List of Breps

it’s a fake mass intersection because it just keeps intersecting 2 Breps each time, but it’s sort of masked under a thin hood :slight_smile: indeed in this case the 4 spheres are all created beforehand

Reuleaux_tetrahedron_fake_mass_intersection.gh (10.4 KB)

2 Likes

Practicing your coding skills?

I wouldn’t call them “skill”… let’s say I’m practicing typing :smiley:

so that is why i see three times of intersection an first script! While this second script is more like let the code do itself :joy:. Thank youu for both solution! I can see what other potential thing i can do with both these technique :smiley:

I attempted to generalize for any of the platonic solids. Unfortunately you cannot simply chain the intersection of spheres as with the tetrahedron. I did manage to get a simpler creation of the spheres for the tetrahedral case though, given that its dual is a cube:


Reuleaux_tetrahedron_vr1.gh (42.1 KB)

Edit:
A tetrahedron is self-dual. I don’t think you can even do this vertice opposing a face thing with any of the other platonic solids?

1 Like

Reuleaux_tetrahedron_vr2.gh (45.9 KB)
Don’t know how to get the sphere patches to bulge or flatten. These are projections of platonic solids on a sphere.

how about this:

adjustablecurvature.gh (27.6 KB)

1 Like

I don’t know? I mean, I think so? When I open the file, it asks to download the ShapeDiver plug-in, which it doesn’t seem to need to execute the script. The platonic solid definately reacts to the slider. I don’t know how it’s working. You’re finding points offseted to the center of the faces, measuring the distance between those points and a corner of the face, then create spheres centered on the face-centered offsets that touch the corners of the polygon faces. I don’t know how to read the Python code.

The python just loops through boolean intersecting all the spheres, doesn’t it…

the other slider changes the radius of the sphere.
wasn´t that the question to change the bulge of the surfaces or to flatten them?

1 Like

Yes, yes. I was just trying to figure out how it works.

The slider had me a little confused. I thought at 0, the spheres would have centers on the centers of the platonic face centers, and that increasing values in the positive or negative would move and scale the spheres along the axis running through the center of the solid.

Here are “Reuleaux” platonic solids:
Reuleaux_platonics_vr3.gh (33.1 KB)

My mistake was following @inno too closely. The construction of these Platonic solids (with spheric patches) relies on spheres constructed with centers on the intersection of the projection of the platonic face centers to the opposite side of the circumscribing sphere of the platonic solid. With the tetrahedron, that just happens to be the corner not part of the face you’re constructing a sphere patch for. But not for the other platonics. Before, I was blindly and incorrectly placing the spheres on the corners. That mistake became clear to me when looking at @Jakob_v_Schirmeister 's script.

These aren’t really “Reuleaux” Platonics. Only the tetrahedron is based on a Reuleaux triangle. But the method by which these solids are made does create a Reuleaux Tetrahedron. I used Anemone to loop the solid intersecting and RhinoPolyhedra for the platonic solids. Maybe later I will internalize the vectors for the Platonic solids and standardize them to a drawing unit cube. That way, you won’t need RhinoPolyhedra. And maybe with surface-splitting I could avoid Anemone too? I don’t know.

…ok. but that defines the radius. no change of bulge or flattening the surface?
but still we can intersect without looping.:
“Reuleaux” Platonics-WITHOUTloop.gh (40.7 KB)

1 Like

I know. I was looking for some constant to define the series of solids. The variable bulge was a seperate request to help me understand how things worked generally. Thank you for helping me with that.

Edit:
Wow. The definition is super slow compared to the looping one. Is that just the nature of what happens when you get rid of the loop? That’s clever at the end with project point to find the index of the surface split fragment you want to keep!