# Weaire–Phelan structure in mathematica

Posted 4 years ago
8537 Views
|
7 Replies
|
5 Total Likes
|
 Hello friends I hope you are well, I tell them the reason why today I write, after seeing a video where they explain some things about the Weaire–Phelan structure, I wonder, can be such a structure in mathematica?, I search on wolfram alpha on the Weaire–Phelan structure, but I got nothing, maybe introduced it evil in that search engine , if someone can tell me how to make that structure in mathematica is grateful, I intend to do something further along with this structure, greetings to all.
7 Replies
Sort By:
Posted 4 years ago
 Interesting I haven't realized before that an idealized foam of equal-sized bubbles has a name in geometry - namely the Weaire–Phelan structure. MathWorld has a note on this: Kelvin's Conjecture. Interesting to know that Beijing National Aquatics Center (built for the swimming competitions of the 2008 Summer Olympics) has the outer wall based on the Weaire–Phelan structure devised from the natural pattern of bubbles in soap lather. I agree it would be interesting to have this in Wolfram Language, perhaps as built in computable geometry structure.
Posted 4 years ago
 In a general form those structures should be the result of VoronoiMesh for the 3D case. The documentation ("Details and Options") says: The cells will be intervals in 1D, convex polygons in 2D, and convex polyhedra in 3D. Consequently the 3D case should be feasible, but I could not make that work. I defininitely would like to know how to do that.Regards -- Henrik
Posted 4 years ago
 Hello again, researching on the internet about this structure, I found the following page that I amusing my own structure because I believe that it contains information that is useful for me,Wearie-Phelan BubblesI share the link, i would like to take this opportunity to share the winners acoount video where it is possible to appreciate the structure of Phelam, don't know if you can do something similar in Mathematica, https://vimeo.com/31101841greetings to all.
Posted 4 years ago
 After trying to build the structure of weire and phelam following some steps that i invented based on the page that i shared earlier, I have to say clearly that I am not very happy with the results obtained, by which i went back to search again on the internet for some new idea and I was pleasantly surprised to see that the structure is made in grasshopper as you can see on the following link, weaire phelan using grasshopperyou will recall that there is a video where Cris Carlson shows that you can use Mathematica and grasshopper together, the problem is that I do not know if there is a file of grasshopper that contains information on how to make this structure and if someone can help me do that in Mathematica. Waiting for any kind of help on your part,I say goodbye wishing him all an excellent day.
Posted 4 years ago
 Cannot you get somewhere the data on types of polyhedra and vertex coordinates and attempt to build it from scratch? Using built-in PolyhedronData for example: x = PolyhedronData["Dodecahedron"] and also just mesh primitives if you know all coordinates, like: vertexes = N[x[[1, 1]]]; faces = x[[1, 2]]; MeshRegion[vertexes, faces] and also shifts, rotations, etc. with RotationTransform function? It looks a bit tedious but the basic unit is not that big and there is no fundamental difficulty in building it.If you ever do it please come back and post your result here, it would be great to have.
 How far did you proceed, Luis?In case you want a job list, here it is. Co-ordinates come from the citation you gave Wearie-Phelan Bubbles  (* Dodecahedron *) ddh = Partition[{3.1498, 0, 6.2996, -3.1498, 0, 6.2996, 4.1997, 4.1997, 4.1997, 0, 6.2996, 3.1498, -4.1997, 4.1997, 4.1997, -4.1997, -4.1997, 4.1997, 0, -6.2996, 3.1498, 4.1997, -4.1997, 4.1997, 6.2996, 3.1498, 0, -6.2996, 3.1498, 0, -6.2996, -3.1498, 0, 6.2996, -3.1498, 0, 4.1997, 4.1997, -4.1997, 0, 6.2996, -3.1498, -4.1997, 4.1997, -4.1997, -4.1997, -4.1997, -4.1997, 0, -6.2996, -3.1498, 4.1997, -4.1997, -4.1997, 3.1498, 0, -6.2996, -3.1498, 0, -6.2996}, 3] (* Tetrakaidecahedron *) tkh = Partition[{3.14980, 3.70039, 5, -3.14980, 3.70039, 5, -5, 0, 5, -3.14980, -3.70039, 5, 3.14980, -3.70039, 5, 5, 0, 5, 4.19974, 5.80026, 0.80026, -4.19974, 5.80026, 0.80026, -6.85020, 0, 1.29961, -4.19974, -5.80026, 0.80026, 4.19974, -5.80026, 0.80026, 6.85020, 0, 1.29961, 5.80026, 4.19974, -0.80026, 0, 6.85020, -1.29961, -5.80026, 4.19974, -0.80026, -5.80026, -4.19974, -0.80026, 0, -6.85020, -1.29961, 5.80026, -4.19974, -0.80026, 3.70039, 3.14980, -5, 0, 5, -5, -3.70039, 3.14980, -5, -3.70039, -3.14980, -5, 0, -5, -5, 3.70039, -3.14980, -5}, 3] display them with ConvexHullMesh[ddh] ConvexHullMesh[tkh] visit elements (2-faces, 1-faces (edges), 0-faces (points)) MeshCells[ConvexHullMesh[ddh], 2] MeshCells[ConvexHullMesh[tkh], 1] Now have list of faces of the ddh and a list of faces of tkh which fit together to make up the bubble have a list of glueing faces of the bubble (face and what fits to it) take one (a ddh or a tkh) as starting polyhedron of the bubble select one of the glueing faces by random use FindGeometricTransform to bring the next polyhedron (of the fitting type) into fitting position update the list of glueing faces of the bubble repeat the last three steps as long as it pleases you don't forget to rotate the bubble (and the corresponding lists) mind a bit about data structures (otherwise it can become rather painful) Written that way it will possibly not flow like a movie because of the continous use of FindGeometricTransform, but that's it already. Later on you can replace FindGeometricTransform with a set of explicit translations and rotations for the cases at hand.It will be quite a bit harder to let the next polyhedron fly from a store at a fixed place into fitting position on the rotating bubble.