Need help with inflating a course Boy's mesh in Kangaroo

Hello,
First time posting so please excuse me if i made any mistakes.
I created a coarse Boy’s Surface based on the images below.
(boycube1 boycube2
Now i am trying to relax it in kangaroo to achieve This final result.
Final result
i have attached my Grasshopper file. any help tips or suggestion would be highly appreciated.
Boy Surface- Kangaroo Update.gh (39.2 KB)

Boy’s surface is an interesting one.
I find Brehm’s polyhedron an easier starting point for a coarse mesh of this.
Using that it is possible to subdivide and relax it in Kangaroo:
boysurf_000
boys_surf.gh (13.8 KB)
It being a non-orientable surface means the normals can’t be unified, which can make the mesh render strangely in Rhino.

I think the Bryant-Kusner parametrization of this surface is particularly nice, and worth looking at as another way of generating it.

5 Likes

wow thank you so much. I did not expect the issue to be in the original coarse mesh.

Hi @DanielPiker and @mohamed.gomaa


indeed the Bryant-Kusner is particularly nice. Once we vuild the surface (via imaginary numbers) we’re struggling with the overlap of certain regions. we’ll clean the file and upload soon.
In the meanwhile, with the mesh we have the question is whether the willmore energy can be minimized with kangaroo .

*really nice rdiscrete eference on topic also (quad based) http://wordpress.discretization.de/ddg2019/2019/05/06/tutorial-4-boys-surface/

1 Like

willmore energy: how much a given surface deviates from a round sphere (wikipedia)
I tried simply adding Hinge goal: gets closer

1 Like

Hi @enriquesoriano - nice work with the Bryant-Kusner.

About the mismatched normals - something I was thinking of adding is a mesh offset component that would work on non-orientable meshes. For each vertex it would have to create a pair of opposing normals and offset along both, then assign these vertices to the 2 directions in a locally consistent way to make the faces. There could also be an option to add faces joining up corresponding naked edges so you can more easily turn open non-orientable surfaces into solids.
I think this sort of double cover (with a zero offset) could even be made to work with Plankton’s half-edge meshes to do better remeshing of non-orientables.

(Talking here about general triangulated meshes, but for the quad parameterization above, I think there should even be a way to generate such an oriented double cover more directly)

Willmore energy is also something I’ve been interested in adding for a while. It could be useful for a number of things, including as a way of fairing meshes while preserving tangency constraints at boundaries.
The energy based on the 1-ring given here should be possible to implement, but maybe a simpler approach is to use the hinge based energy, similiar to what I already have, but with the slight tweak to the weighting given in section 5 of this paper. I’m not yet clear on exactly how these 2 approaches relate though.

I was also looking at the related ‘as-Mobius-as-possible’ energy from Vaxman (see 1,2).

There’s also link between Willmore surfaces and minimal surfaces in the 3-sphere, and I think it could work to stereographically project to S3, minimize area there, and project back. A fun project for the new year perhaps…

2 Likes

About the mismatched normals - something I was thinking of adding is a mesh offset component that would work on non-orientable meshes

that would be holy grail! (i was thinking on interpolating trying to offset to both sides… yes, without an open gap :wink:
@DanielPiker always a couple of step ahead.

I was thinking again about the projective plane the other day, and it reminded me of this old thread.
I realised that at the time I missed a trick and was making things more complicated than they need to be-

Offsetting to make a solid becomes easy if we take the full double cover of the projective plane by the sphere. This is already natural with the Bryant-Kusner parameterization, we just have to start with the full complex plane (by stereographically projecting a sphere) instead of a disk.

Then all we have to do is take a single offset to get our shell!
This way there is also no issue with inconsistent mesh orientations - the solid shell has a clear inside and outside.
It’s also interesting to see the different projections you get by varying the parameter of the Möbius transformation:

There is a 1-to-1 map from the sphere to the outer boundary of this shelled Boy’s surface, with the North and South pole of the sphere going to either side of the top of the shell:
map_000

Here’s the definition if anyone wants to have a play:
bryant_kusner_boys_surface.gh (62.0 KB)

(@enriquesoriano and @maje90 )

8 Likes

This is art!
Thanks!

1 Like

Impressive :slight_smile:

Dear @DanielPiker,
It’s impressively smart.
Very clever projection. I did thought some test prints with the previous model, but it did had an open seam where the normals where flipping.



I will try this new model asap!

4 Likes