Klein bottle

I had a user n the forum talk about voronoi over a klein bottle. the voronoi aside, I have been trying to script a klein bottle in grasshopper quite unsiccessfully, because the surface invert, the “mesh view” breaks spectacularly, to the point where I cannot even grab a screenshot before rhino dies.

How do we handle minimal surface creation in Grasshopper?

(example of the klein bottle in video and the thread it originated in. Any help appreciated. )

https://jewellerspal.com/t/grasshopper-constructs/40/10

1 Like

In the last video on fede139 comment you can see the geometry was divided in more zones.
That is needed if you want to avoid the self-intersection part.
Otherwise you could populate a torus and then translate the UV coordinates to the bottle. (for a start, it wont be perfect)
It could be even scripted to populate the torus, finding rough near point there, but then using the distance of the translated points on the bottle (for each iteration).

For the voronoi part, for each point you could use a small set of points and take only the central cell for each set. The sets should be done/found in the torus shape (or you could use a geodesic/curveonsurface distance/length).

This can be solved probably in many other ways also, it depends your needs.

1 Like

I’m trying to make one surface only which all works fine until it touches itself then all hell breaks loose. I’ll try grab a screenshot with my phone.

1 Like

Can you send us a file that crashes?

2 Likes

Hi All,

I thought I would share this model of a KleinBottle (Klein bottle - Wikipedia) based on a modified template provided by community member Kev.R originally used for the Umbilic Torus.
Thanks @kev.r

I wonder do the coefficients allow for a thicker pipe going into the main section?

Best Regards
Ed

KleinBottle.gh (14.6 KB)

3 Likes

Did you ever manage to tweak the parameters to get a thicker “neck” going into the main section?

I tried scaling the last 15 curves, but that doesn’t work. Scaling them changes both their size and location.

2023-05-09_160738

Looks like the tweak has to be somewhere in all 3 of the function definitions. Those make my eyes glaze over.

1 Like

yes, if you try changing just some of the integer multipliers in those functions you start to get an idea of what’s happening but… glazing…

PRIOR dealing with similar stuff do the Don Julio Tequila (lot’s) thing.

Surface_Klein.gh (118.6 KB)

Well…I liked the first one better because it didn’t close off the intersection junction. Plus I never liked any of the C languages because I can’t understand how anyone could construct syntax like this:

for(double j = 0;j <= 1.001 ;j += 1 / (double) V){
double v = Math.Round(intervV.ParameterAt(j), 3);

Seriously, are humans supposed to know what to do with that?

1 Like

A bit late to the party, fun stuff this Klein Bottle, here I made a Grasshopper version with Sliders. I began with some Rhino drawing to fin a way to model this bottle and translate that in GH.
@PeterFotiadis no C# here for me, I like that but Grasshopper is also very cool, don’t underestimate the power of the little boxes. To my point of view it generates better looking model.




Klein Bottle Laurent Delrieu.gh (29.4 KB)

4 Likes

It’s like riding (fast) a proper Ducati. Most people prefer the Toyota.

1 Like

Ducati no. Ferrari yes.

1 Like

What causes that weird kink…


It was on the original example too.

1 Like

Apparently … the entry level equation used. Anyway I have some other C# with far more elabotated contol(s) and a different equation … but where is it? You tell me.

Get 2 modes (ring/bottle) and some piece/IsoU/V crvs option in order to investigate(?) the mystery(?). But who cares? Why? Not me anyway.

Surface_Klein_V1.gh (126.3 KB)

If you insist … try this:

1 Like

This is really cool. I’ve been thinking about Klein bottle stuff recently and CFD stuff. So I’m necroposting this for fun cause this thread is really cool, and I’m not done checking it out yet :smiley: :grin: :beers:

1 Like