Skip to content
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
  • Drawings
  • Models
  • Texts
  • Formulas
  • Animations
  • 4D / STRINGS
  • KNOTS / DNA
  • FANO / CALABI-YAU
  • Random
  • All
  • Publications
  • IRL
  • About
  • Credits
4D Eye is a project by Gemma Anderson, Alessio Corti, Tom Coates and collaborators at Imperial College.
P = Tope.from_vertices(v_36cell)
P.save_index()
P.cut_2faces_with_hyperplanes(hyperplanes)
#save_nets(P, "figs/4902603", force=True, fmt="svg")
EdgeList = list[np.ndarray] # list of 2xdim arrays
def get_cuts(N: Net) -> EdgeList:
return np.concatenate([N.tope.meta[2][i]["cuts"] for i in range(len(N.
↪facets))])
def get_edges(N: Net) -> EdgeList: # apply to unfolded Net edges = []
for i, vertices in N.facets.items():
facet_template = N.tope.get_face(i) # has correct indices edges.extend((vertices[list(e)] for e in facet_template.faces[1]))
return edges
import itertools
Net2d = None # new format of Net
def iter_edges(N: Net2d) -> Iterable[np.ndarray[2,2]]: # apply to unfolded 2d␣ ↪Net
return N.iter_faces_as_vertices(dim=1)
FacetLabels = list[tuple[str, np.ndarray]] # label, position
def get_facet_labels(N: Net) -> FacetLabels: labels = []
for i, vertices in N.facets.items(): labels.append((N.tope.meta[N.tope.dim-1][i]["index"], vertices.
↪mean(axis=0))) return labels
def iter_facet_labels(N: Net2d, key: str) -> Iterable[str]:
return zip(N.iter_meta(dim=2, key="index"), map(N.cells.values(), lambda x:␣
↪x.vertices.mean(axis=0)))
[20]: save_nets(P, "figs/36-cell-hatch", force=True, fmt="png", hatch=True, dpi=600)
  • Drawings
  • Models
  • Texts
  • Formulas
  • Animations
  • 4D / STRINGS
  • KNOTS / DNA
  • FANO / CALABI-YAU
  • Random
  • All
  • Publications
  • IRL
  • About
  • Credits
For a full experience please visit this website on a large screen device.
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye
4D Eye is a project by Gemma Anderson, Alessio Corti, Tom Coates and collaborators at Imperial College.