Cross fingers: If Lewis wins in Mexico today (and the next 2) F1 races - meaning a 8th crown Iâll mail you 10 ultra freaky Surface things (in The Nane of Science AND Sir Lewis).
Iâve replaced your points-to-surfaces-to-meshes script portion with a more efficient and straightforward way that gets you a clean mesh without having to do a manual clean-up in Rhino.
Iâve also gotten rid of the Kangaroo simulation to relax the mesh, and am instead using Catmull-Clark-Subdivision from Weaverbird to smooth it. The result are very similar!
Iâve also included an experimental, pythonic mesh welder component of mine, which seems to work pretty great, even better than the Weaverbird or vanilla Grasshopper ones it seems, which mostly fail to weld radially distributed, adjacent meshes.
The asymptotic curves are simulated with a Kangaroo simulation, similar to what you would do to get geodesic curves between points on a mesh.
Hi @diff-arch,
thanks for your improvements! The weld component works great! Rhino seems to have problems with the radial vertices.
I started with a surface and never changed it to a mesh, which is more straight forward as you mentioned.
Thanks again for showing this way!
You are absolutely right. Since I saw them I was fascinated. But I still need to understand more. Especially the workflow. My final aim was to lasercut the stripes.
As mentioned in the thread you linked, they(Eike and team) use Bowerbird for the generation of the asymptotic curves, which works over surfaces.
Another post I found seems also to work only over surfaces:
That was why I thought I could just subdivide the mesh.
When I use the method you posted in your linked thread(the vertex star def.) the mesh crumples to something unusable:
I searched the web for the formula, but without success. You seem to generate a Schwartz gyroid, if I am not mistaken?
Also do you really mean surface? or a mesh?
The planar vertex star approach should work, but I notice in that screenshot you donât have the boundary restrained at all - thatâs why it is crumpling. Youâd need to keep the boundary curves on their respective planes.
I would suggest though instead of using the planar vertex star definition, to maybe use the other approach shown there with the Koebe polyhedron, which I think should be possible for this periodic surface.
This way you get the discrete minimal surface (which you canât get from isosurfacing, relaxing springs, or a subdivision mesh), and the discrete asymptotic grid (not the same thing as geodesics) at the same time, so you donât need to trace curves across a surface.
The mesh needs to be the diagonal of what you have at the moment though, so the mesh edges will follow the principal curvatures, and the diagonals will be the asymptotics.
BTW!: Thereâs various TPMS (with some freaky names). Shown above a Schoen Gyroid (no copy in Z for clarity) - I have a C# for the Complementary D but I canât remember where it is.
Hi Daniel,
thanks for the explanation!
I took your advices serious and tried my best with the transformation of the Koebe Polyhedra.
As I understand, the overall logic is the following: The 3 surfaces my geometry consists of can be formed with patches which can be obtained from the Polyhedra:
From the other thread, I understand this should be done by Christoffel Transformation, which took me a while to understand. As I understand, the transformation is just from one state into another, exchanging the diagonals. At this part, I donât get how it can convert to the geometry I would like to have.
With your keywords I found a nice diploma tesis(reposiTUm: Ein Beitrag zur Erstellung einer Gitterschale unter der Verwendung asymptotischer Kurven auf Minimalflächen) on this topic, but still I am missing some pieces to understand the workflow.
Maybe you could give me some hints(a few keywords) so I could keep on researching.
Discrete Minimal Surfaces, Koebe Polyhedra, and Alexandrovâs Theorem. Variational Principles, Algorithms, and Implementation. (Diploma Thesis)
Note that this approach works on the principal curvature aligned mesh, then the asymptotic grid would be the diagonals. It looks like what you have is the diagonal grid to start with.
I think I posted on that other thread the definition which takes a starting polyhedron and makes it Koebe, then it has a second stage where you can use the slider to turn one patch of it into the Christoffel dual, which is then discrete minimal.
You can then mirror this patch around to get the rest of the surface by symmetry.
Knowing which polyhedron to use at the start isnât always immediately obvious though. Those for the standard P G and D surfaces are easy enough to find, but others might take a bit more searching.
If you have a good approximation of the minimal surface to start with, you can maybe run the dual operation the other way (again on a single patch), and see the symmetry from that to figure out what the right polyhedron is.
Thereâs probably also some easier way Iâm missing to find it directly from knowing the symmetry of the minimal surface youâre after.
You can also go back to the original source. This page by Alan Schoen isnât the easiest to navigate - itâs all on just one very long page, but wonderfully informative. https://schoengeometry.com/e-tpms.html
He refers to the surface in question there as Cââ(D)
Another way to approach this is to start by modelling the tetrahedral unit cell, then use Mirror and ArrayPolar to extend that.
Hereâs a go at this, using the diagonal grid. complementaryD_mesh.3dm (152.9 KB)
which when relaxed starts looking like something along the right lines:
However, the grid here is still along the diagonals, which is not what we want for the discrete minimal surface.
Taking the diagonalized mesh of this gives the correct grid, but then the problem is that we have triangles along the boundary, which complicate things for further relaxation.
We could chop it along the grid, but would then need to apply appropriate boundary constraints for whatever new repeating cell we had.
I also had a go with the Koebe approach, but didnât find the correct polyhedron yet. I was trying to use the above to deduce which one.
I think it could be one with valence 2 vertices, which I donât think RhinoPolyhedra has many of.
Thanks again for the elaborated answer and the nice pics!
hehe, yes. And it is fun!
I saw his site before and really liked it. Yesterday late night I thought, it would be nice if he would have written down, from which Polyhedra they can be made
So I wrote him and asked, not thinking of getting an answer- 2 minutes later he answered, that he does not know - I was flashed:)
The physical models are divine! the material, the colours! I love them!
This weekend I want to try every polyhedron he mentions on his website. Maybe it is a trace.
I also tried that, without success. Since you introduced me to the Koebe idea I will stick on that track I think⌠Seems to have advantages and it fascinates me. Maybe if I canât get any advance this weekend Iâll change my mind.
For some reason the Koebe defintion from the other thread does not work when I subdivide Polyhedras with both, tri-and quad faces 2 times like in this example: 2021117_Koebe_Tri_Quad.gh (27.9 KB)
Do you know why?
Found also another one which looked at the first glance but wasnât:
Since I could not find a way to make the Koebe definition working on mixed(tri+quad) meshes I couldnât test the polyhedras you were mentioning. So I thought trying the further procedure to begin to make some test (materials,thickness,etc) could be a good idea:
I took the Mesh I most liked from my discrete minimal surfaces collection from last week:
I also had a try on your smoothed mesh with the same procedure, I imagine it requires still the further relaxation you are mentioning, since it is really curvy:
sorry, I did not appreciate the answer last year enough⌠I was young and foolish, now I am old and still silly.
Again I am digging into minimal surfaces(Gyroid this time, thatâs why I remembered) and was searching what I did a year ago and found a script based on some code of you: