Code for visualizing spherical, euclidean, and hyperbolic honeycombs in various ways
C# POV-Ray SDL
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
code
povray/wikipedia
.gitattributes
.gitignore
LICENSE
README.md

README.md

Honeycombs

Code for visualizing spherical, euclidean, and hyperbolic honeycombs in various ways:

  • Upper half space boundary images for hyperideal honeycombs
  • POV-Ray definition files for rendering
  • STL models for Shapeways

This code is a companion to the paper "Visualizing Hyperbolic Honeycombs" by Roice Nelson and Henry Segerman (http://arxiv.org/abs/1511.02851). The code itself was authored by Roice. Images generated by this software are available for bulk download at www.hyperbolichoneycombs.org.

How to generate UHS boundary images

Run the latest released Windows binary, and by default it will generate a 1200x1200 boundary image of the {3,3,7} honeycomb.

There is an editable "settings_UHS.xml" file in the same directory which can be used to change the honeycomb and some other settings (image size and bounds). I attempted to make the format self-explanatory. I can add support for more settings (say coloring, transformations, etc.) if there is interest.

How to generate POV-Ray images

Run the latest released Windows binary, and by default it will generate a large (~250MB) POV-Ray definition file for the 4333-0001 uniform honeycomb, composed of octahedra and tetrahedra, see: https://en.wikipedia.org/wiki/Hyperbolic_tetrahedral-octahedral_honeycomb. You will then be able to render the resulting geometry by running the H3_sample.pov file in POV-Ray.

There is an editable "settings_PovRay.xml" file in the same directory which can be used to change the honeycomb and some other settings. Again, I attempted to make the format self-explanatory and can add support for more settings if there is interest.

I used this example because it was requested specifically, but it also demonstrates how to configure all 6 angles of the fundamental simplex for honeycombs with loop and branched Coxeter graphs. However, this "Goursat tetrahedron" feature only works for honeycombs with finite vertices. For linear Coxeter graphs, you can also specify just 3 numbers for the dihedral angles as in the UHS sample above. Linear graphs will work for paracompact honeycombs as well. They even work for some hyperideal honeycombs, but not all yet, so venture into that world at your own risk. Note that the 4333-0100, 4333-0010, and 4333-0001 are all the same honeycomb, just from different viewing perspectives.

A final note: Resolution of the edges is something I always seem to have to tweak (POV-Ray's sphere_sweep primitive is finicky), and I'm still trying to decide the best way to expose this.

How to generate STL models for Shapeways

Abandon all hope, ye who enter here. I'm not planning to make this friendly, so for now folks will be stuck digging into the code.

A quick pointer to some of the important functions for working with H^3

I wrote up the following doc for someone who had questions on the code base. Hope it can be helpful for others.

https://docs.google.com/document/d/1vUQPHvO4zOy5S1fyQIWMcy7vyzTvu5OYrUI6jmjpG90/edit?usp=sharing

Dependencies

MathNet.Numerics (though this dependency could be easily removed).

Disclaimer

Some areas are an overgrown garden in need of weeding, i.e. refactoring/reorganization, but I still wanted to publish it along with our paper for any who might like to try to recreate calculations we've done. There is no UI, and I made use of commenting in some files to control particular outputs I was going for. Furthermore, the R3.Core library contains code not related to honeycombs - that library was mainly developed as part of the MagicTile project, but I haven't cleaned it up here.