This honeycomb by Roice Nelson lives in a curved 3-dimensional space called hyperbolic space.
Originally shared by American Mathematical Society
This honeycomb by Roice Nelson lives in a curved 3-dimensional space called hyperbolic space. John Baez explains, on the Visual Insight Blog at http://bit.ly/2h2ATe5.
http://bit.ly/2h2to71
This honeycomb by Roice Nelson lives in a curved 3-dimensional space called hyperbolic space. John Baez explains, on the Visual Insight Blog at http://bit.ly/2h2ATe5.
http://bit.ly/2h2to71
So beautiful! I wanna learn this !!!!!!
ReplyDeleteReally, really a masterpiece. Is this rendered with your github honeycomb code?
ReplyDeleteHi Liang Zhao, I'm really glad you like the honeycomb images :)
ReplyDeleteYes, these are made with the github honeycomb code, along with POV-Ray (www.povray.org). There is a download in the github project with the program and a sample POV-Ray file. Check out the POV-Ray instructions in the readme to get started. It's not user friendly software, so feel free to send questions!
Yeah, I will learn C# first and look at you code later. I had a question here: the group that controls the symmetry of
ReplyDelete2D Poincare hyperbolic tilings and 3D hyperbolic honeycombs are all Coxeter groups. What if one could list all elements in this group?I know there is an algorithm (by Howlett and Brigitte Brink) that can output the word representations of all elements up to any given length (without repeat or omit ) in a Coxeter group . With this algorithm in hand one just draw the fundamental domain (or cell in 3D) and then transform this domain by each word previously generated. This way gives one's full control on which, and how many cells to draw. I haven't look deep into your code and can't tell which is better.
Finally, how did you rendered this soap bubble here? Can the code also be published (like github)? :P
http://roice3.blogspot.com/2008/10/soap-bubbles.html
Liang Zhao, the code uses a couple of different approaches depending on the context, but they all are effectively doing something similar... calculating Coxeter group words. My code produces shortlex words, which you get by listing the words out breadth first, generators always in same order, culling the repeats.
ReplyDeleteThe "UHS boundary image" code won't avoid omits, since it calculates from pixels back to the fundamental domain. The POV-Ray code works from the fundamental domain outward and will avoid omits. It uses hash tables to avoid storing repeat items. That works well in practice even though it is surely different than the algorithm you mention, which I'm betting has algorithmic smarts to avoid the duplicates. It does have one nice advantage for drawing images though - it can partially enumerate group members of a given length. Since the number of words of a given length grows very fast, it would be limiting to only be able to enumerate all or none of a specific length. It keeps the words in memory, so could easily be altered to output word tables.
About the soap image, I've had a lot of folks ask about that image over the years, so I've had a chance to write up an explanation of it with tips for drawing soap bubbles. If you shoot me an email (roice3 "at" gmail), I'll send that to you along with the POV-Ray files for it. One bad thing is that POV-Ray completely reworked their thin film interference engine in version 3.7, so the files don't render exactly the same in the latest version. You can install v3.6. Otherwise, it will take some tweaking to reproduce similar results.