Artwork by Arie Brederode

Nex7 (2,1) [2/3]
Nex49 (5,3) [2/3]
[b]The next challenge is a Nex63 (6,3) [2/3] Nexorade[/b]
Miter Box

Nexorade Grid

[b]Setup[/b][br][br]ft(b,c)= b^2 + b*c + c^2[br][br]Lkit1 = Zip(Zip( If(Mod(ft(b,c),7)==0, (ft(b,c),b,c)), c,0..b), b,1..12)[br]Lkit2 = RemoveUndefined(Flatten(Lkit1))[br]Lkit3 = Sort(Lkit2,x(Lkit2))[br][br]n = Slider(1,20,1, 1,200,false)[br][br]tbc= Lkit3(n)[br]t = x(tbc)[br]b = y(tbc)[br]c = z(tbc)[br]Kitrick = "Nex"+t+"("+b+","+c+")"[br][br]Sgn = If(Mod(3b + 2c, 7) == 0, 1, -1)[br]v = (2b + c, Sgn*sqrt(3)*c)[br]M1 = { {2, -1} , {0, sqrt(3) } }[br]M2 = { {x(v),-y(v)} , {y(v), x(v)} }[br]M3 = Invert(M2) M1[br]tri1 = ApplyMatrix(M3, Polygon({(1,-1), (3,1), (1,1)}))[br]tri2 = Zip(Rotate(tri1, k*60°), k,0..1)[br][br]M4 = M3 { {2,1} , {-1,3} }[br]Lgrid = Flatten(Zip(Zip(M4*(u,v), u,-4..12), v,-4..12))[br]Ltri2 = Zip(translate(tri2,v), v,Lgrid)[br][br]triang = Polygon({ (0,0), (1,0), (0.5,sqrt(3)/2) })[br]M = ( 3, sqrt(3) ) / 6

Icosahedral symmetry

The icosahedral rotation group is of order 60.
This worksheet is a part of [url=https://www.geogebra.org/m/jteesrnb][b][color=#0000ff]Nexorade: work doc[/color][/b][/url][b][br][br]Move the Red point.[/b][br][br][b]Setup[/b][br][br]ϕ = (1+sqrt(5))/2[br][br]# 60 elements of Icosahedral symmetry: 60 Rotation matrices[br]#==========================================================[br]Mrz = {{1,(ϕ-1),0}*sqrt((ϕ+1)/(ϕ+2)),{-(ϕ-1),1,0}*sqrt((ϕ+1)/(ϕ+2)),{0,0,1}}[br]LA3 = zip(Invert(Mrz)*{{1,0,0},{0,cos(α),-sin(α)},{0,sin(α),cos(α)}}*Mrz, α,{1,2,3}*72°)[br]LM3 = {{{1,0,0},{0,1,0},{0,0,1}},{{0,0,1},{1,0,0},{0,1,0}},{{0,1,0},{0,0,1},{1,0,0}}}[br]LM30= Join({LM3, Join(Zip(Join(Zip(LM3*A3, A3,LA3))*M3, M3,LM3))})[br]MrO = {{-1,0,0},{0,-1,0},{0,0,-1}}*Invert(LA3(1))*{{1,0,0},{0,-1,0},{0,0,1}}*LA3(1)[br]LM60= Join({LM30,Reverse(LM30 MrO)})[br][br]# Draw spherical icosaeder[br]#========================================[br]arc = CircularArc((0,0,0), (1,0,ϕ)/sqrt(ϕ+2), (0,ϕ,1)/sqrt(ϕ+2) )[br]tri = Zip(ApplyMatrix(M, arc), M, LM3)[br]icosi = Zip(ApplyMatrix(M, arc), M, LM60)[br][br]O = (0, 0, 0)[br]sph = Sphere(O,1)[br]cX = Circle(O,1,xAxis)[br]cY = Circle(O,1,yAxis)[br]cZ = Circle(O,1,zAxis)[br][br]Mi = (1,1,1)/sqrt(3)[br]M3Axis= Line(O,Mi)[br]Ai = (0,ϕ,1)/sqrt(ϕ+2)[br]Bi = (1,0,ϕ)/sqrt(ϕ+2)[br]Ci = (ϕ,1,0)/sqrt(ϕ+2)[br]A5Axis = Line(O,Ai)[br]B5Axis = Line(O,Bi)[br]C5Axis = Line(O,Ci)[br]a2Axis = Line(O,Midpoint(Bi,Ci))[br]b2Axis = Line(O,Midpoint(Ci,Ai))[br]c2Axis = Line(O,Midpoint(Ai,Bi))[br][br]# Draw test point[br]#========================================[br][br]P = PointIn(Sphere(O,1))[br]P60 = Zip(ApplyMatrix(M, P), M, LM60)[br][br]#========================================================[br]# Settings[br]#========================================================[br][br]SetActiveView(-1)[br]SetBackgroundColor("#F0F0F0")[br]ShowAxes(false)[br]ShowGrid(false)[br]CenterView(O)[br][br]SetActiveView(1)[br]ShowAxes(false)[br]ShowGrid(false)[br]CenterView(O)[br][br]#========================================================[br]# Properties[br]#========================================================[br][br]#--- Visibility ---#[br]List={cX,cY,cZ,tri,M3Axis,A5Axis,B5Axis,C5Axis,a2Axis,b2Axis,c2Axis}[br]onSymm = CheckBox("Symmetry",List)[br]SetValue(onSymm,false)[br][br]List={"Mi","Ai","Bi","Ci","arc"}[br]Execute(Zip("SetConditionToShowObject("+obj+",onSymm)", obj,List))[br]onIcosi= CheckBox("Icosi",{icosi})[br][br]List={"O","Ci","cZ","C5Axis","icosi","P","P60"}[br]Execute(Zip("SetVisibleInView("+obj+",1,false)", obj,List))[br][br]#--- Color, Filling and Label ---#[br]SetColor(sph,"White")[br]SetFilling(sph,1)[br][br]Black="Black"[br]List={"O","Mi","M3Axis","arc","tri","icosi","P60"}[br]Execute(Zip("SetColor("+obj+","+Black+")", obj,List))[br]Execute(Zip("ShowLabel("+obj+",false)", obj,List))[br][br]Red="Red"[br]List={"cX","Ai","A5Axis","a2Axis","P"}[br]Execute(Zip("SetColor("+obj+","+Red+")", obj,List))[br]Execute(Zip("ShowLabel("+obj+",false)", obj,List))[br][br]Green="Green"[br]List={"cY","Bi","B5Axis","b2Axis"}[br]Execute(Zip("SetColor("+obj+","+Green+")", obj,List))[br]Execute(Zip("ShowLabel("+obj+",false)", obj,List))[br][br]Blue="Blue"[br]List={"cZ","Ci","C5Axis","c2Axis"}[br]Execute(Zip("SetColor("+obj+","+Blue+")", obj,List))[br]Execute(Zip("ShowLabel("+obj+",false)", obj,List))[br][br]#--- LineThickness ---#[br]List={"cX","cY","cZ","M3Axis","a2Axis","b2Axis","c2Axis","A5Axis","B5Axis","C5Axis"}[br]Execute(Zip("SetLineThickness("+obj+",3)", obj,List))[br]List={"arc","tri","icosi"}[br]Execute(Zip("SetLineThickness("+obj+",2)", obj,List))[br][br]#--- PointSize ---#[br]List={"O","Mi","Ai","Bi","Ci","P60"}[br]Execute(Zip("SetPointSize("+obj+",2)", obj,List))[br][br]List={"Black","Red","Green","Blue","List"}[br]Execute(Zip("Delete("+obj+")", obj,List))

Nex7 (2,1) - Do it yourself

[size=100][size=150][b]Move the Red points and create a rotegrity yourself.[br][/b][b]Or use a button to let geogebra do the work for you.[/b][/size][/size]
This worksheet is part of the book in progress: [url=https://www.geogebra.org/m/jteesrnb][color=#0000ff][b]Nexorade: work doc[/b][/color][/url]

Nex21 (4,1) [1/3] - Solve

Source Code
#------------------------------------------------------[br]# Construct red and green bands (given red)[br]# The center of the green band is halfway[br]# along the edge of the icosihedron.[br]#------------------------------------------------------[br][br]O = (0,0,0)[br]sph = Sphere(O,1)[br]Rcenter = (1,0,0)[br][br]red = 10.61369513431076°[br][br]γ = atand(tan(red) / cos(54°))[br][br]R01 = (cos(γ), 0, sin(γ))[br]R03 = Rotate(R01, -72°, xAxis)[br]axisR = Line(O, Vector(Vector(O, R01) ⊗ Vector(O, R03)))[br]R02 = Rotate(R01, red, axisR)[br]R04 = Rotate(R01, 3*red, axisR)[br][br]G01 = Rotate(R02, -72°, xAxis)[br]G02 = R04[br]green = Angle(G01, O, G02)[br]axisG = Line(O, Vector(Vector(O, G01) ⊗ Vector(O, G02)))[br]Gmid = Rotate(G01, 1.5*green, axisG)[br]G04 = Rotate(G01, 3*green, axisG)[br][br]Rarc = CircularArc(O, R01, R04, Plane(O, R01, R04))[br]Rarc5= Zip(Rotate(Rarc, k * 72°, xAxis), k, 0..4)[br]Garc = CircularArc(O, G01, G04, Plane(O, G01, G04))[br][br]# α is 2*distance Rcenter Gmid[br]#---------------------------------- [br]α = 2*Angle(Rcenter, O, Gmid)[br][br]# β is edge of the icosihedron[br]#---------------------------------- [br]β = acosd(sqrt(1/5))[br][br]# If red is correct,[br]# the difference should be 0[br]#---------------------------------- [br]δ = α - β[br][br]#------------------------------------------------------[br]# Compare [1/3] with [2/3][br]#------------------------------------------------------[br]red23 = 14.495596141331275°[br]green23 = 16.289240170644682°[br][br]factRed = red / red23[br]factGreen = green / green23[br][br]
TaffGoch (12 dec 2016)
The rotegrity "straps" (of the same color) are the same length/width[br](but bent to different radii, of course, producing different-size spheres.)[br][br]In 3D-modeling, I refer to the two different size rotegrities as "greater" and "lesser",[br]to keep my model files organized. Technically, they are, both, Class-II, 2v rotegrities.[br][br]The ratio of sphere radii is about 1:¾[br]
Thijs (18 jun 2023)
The rotegrity "straps" (of the same color) are NOT the same length/width[br][br]red [1/3] : red [2/3] = 0.732201[br]green [1/3] : green[2/3] = 0.762272

Nex21 (4,1) [2/3] - Diagram

I tried to calculate the strut lengths using Nsolve.[br]Unfortunately, Geogebra does not come up with a solution.[br]I therefore use Chris Kitrick's calculations.[br][br][url=https://groups.google.com/g/geodesichelp/c/RFBZ6uFmsjU/m/QfiMqboLBAAJ][b][color=#0000ff]New Nexorade/Rotegrity project[/color][/b][/url] : 19 jan 2019 18:58:43[br][br][b]Chris Kitrick,[/b][br][br]I will explain the solution to the next simplest nexorage: nex21 (4,1) [Taff's 2v{1,1}].[br][br]A diagram that illustrates the spherical triangle composition is attached.[br]Now there are six (6) unique spherical triangles to consider.[br]Due to symmetry triangle 0 is a right triangle at the pentagonal vertex[br](same as the first case).[br]Triangle 1 is an isosceles spherical triangle with side a equal to side b.[br]There are two large blue dots indicating the two unique places[br]where the joining corners of spherical triangles must add up to 180 (π).[br]Keeping the 1/3 arc division you see there are only two arcs[br]one composed of (3x) and the other (3y).[br]Even though we now have two unknowns (x,y) there is really only one[br]unknown (x), since (y) has a direct relationship to (x).[br][br]Vertex (0) will sum up to 180 (π) degrees by default based on construction.[br]The highlighted blue and red colors at vertex (1) must sum to 180 (π).[br]Essentially the three red corners must sum to the complement of the blue corner. [br][br]Here are the angular relationships:[br][br]Since the right spherical triangle 0 is at the pentagon,[br]the B face angle is always 36 degrees.[br]Solve a right spherical triangle with one edge and opposing face angle.[br][br] b0 = x / 2[br] B0 = 36[br] solve triangle 0[br] [br]Triangle 1 is isosceles and the 'C' angle is the complement[br]of the pentagon corner that sums to 180 (pi).[br]Solve a spherical triangle with two edges and included face angle.[br][br] a1 = b1 = 2x[br] C1 = 180 - A0 * 2[br] solve triangle 1[br] y = c1 / 2 [br] [br]Since triangle 1 is isosceles the resultant face angles A and B will be the same.[br][br]Construct spherical triangles 2, 3, and 4 which are identical.[br][br] a2 = a3 = a4 = y ( = green_x ) [br] b2 = b3 = b4 = x ( = red )[br] C2 = C3 = C4 = 180 - A1[br] solve triangle 2, 3, 4[br][br]cos(c) = cos(a)*cos(b) + sin(a)*sin(b)*cos(C)[br]cos(C) = (cos(c) - cos(a)*cos(b))/( sin(a)*sin(b) )[br] [br]Finish spherical triangle 5 which is equilateral:[br][br] a5 = c2[br] b5 = c3[br] c5 = c4[br] solve triangle 5 (three edges known)[br] [br]Finally the summation of face angles at vertex 1 must be 180 (pi).[br][br] B1 + A4 + B5 + B2 == 180[br] [br] or[br] [br] B1 - ( A4 + B5 + B2 ) == 0[br][br]NSolve(sum_x(x) - 180° = 0, x = 14°)[br] [br]Now the only question is what is the value of the edge angle x such that the summation at vertex 1 is 180.[br]By simply iterating the edge angle x and solving the spherical triangles to solve the 180 degree requirement at the blue vertex 1 you arrive at the value. Remember the value of edge y is not independent.[br][br]Here are the final spherical angle values for the two triangles:[br][br]x 14.495596141331275 0.252995879705616[br]y 16.289240170644682 0.284300873625873[br][br]TRI a b c[br]00 10.081227058633685 7.247798070665638 12.394269914560871[br]01 28.991192282662553 28.991192282662553 32.578480341289364[br]02 16.289240170644682 14.495596141331276 26.839102797641246[br]03 16.289240170644682 14.495596141331276 26.839102797641246[br]04 16.289240170644682 14.495596141331276 26.839102797641246[br]05 26.839102797641246 26.839102797641246 26.839102797641246[br] [br]TRI A B C[br]00 54.640124510181501 36.000000000000000 90.000000000000000[br]01 58.172482483059767 58.172482483059767 70.719750979636999[br]02 31.859581862437821 28.102009218011407 121.827517516940247[br]03 31.859581862437821 28.102009218011407 121.827517516940247[br]04 31.859581862437821 28.102009218011407 121.827517516940247[br]05 61.865926436490909 61.865926436490909 61.865926436490909[br][br]You'll notice the geometrically derived numbers differ slightly from Taff's. [br][br]Cheers, Chris

Nex63 (6,3) - Diagram

nex63 (6,3) diagram

Nex63 - The making of

[size=150]The wood has arrived.[br]This is where math meets craftsmanship.[/size]
Step 1) Make 270 struts
[size=150]I'm getting little nervous now.[br]Were all calculations correct?[br]What accuracy in sawing is needed[br]to obtain a stable nexorade?[/size]
Step 2) Saw 540 notches
[size=150]Well, just let Arie do his thing.[br]Everything will be okay in the end.[br]If it's not okay, it's not the end.[/size]
Step 3) Assemble the nexorade
[size=150]We are out of rubber bands!!![br]So work has come to a standstill.[br][br]When all the struts are in the right place[br]then the rubber bands are removed.[br]The struts will support each other[br]without the use of rubber bands or glue.[/size]
Until next time...
This worksheet is a part of [url=https://www.geogebra.org/m/jteesrnb][b][color=#0000ff]Nexorade: work doc[/color][/b][/url]

Links

[br][br]Visual Polyhedra (http://dmccooey.com/)[br][br][list][*][url=http://dmccooey.com/polyhedra/index.html][color=#0000ff]Index[/color][/url][/*][*][url=http://dmccooey.com/polyhedra/DualGeodesicIcosahedron4.html][color=#0000ff]Dual Geodesic Icosahedronl[/color][/url][/*][/list][br]TaffGoch Physicist/geometer[br][br][list][*][url=https://www.deviantart.com/taffgoch/gallery][color=#0000ff]Gallery[/color][/url][/*][*][url=https://groups.google.com/g/geodesichelp/c/RFBZ6uFmsjU/m/QfiMqboLBAAJ][color=#0000ff]New Nexorade/Rotegrity project[/color][/url][/*][/list][br]Timber reciprocal frame structures[br]Eindhoven University of Technology[br]Godthelp, T.S. MASTER Award date: 2019[br][br][list][*][url=https://research.tue.nl/en/studentTheses/timber-reciprocal-frame-structures][color=#0000ff]timber reciprocal frame structures[br][/color][/url][/*][*][color=#0000ff][url=https://pure.tue.nl/ws/portalfiles/portal/131842016/Godthelp_0946277.pdf]Godthelp_0946277.pdf[/url][/color][/*][*][color=#0000ff][url=https://pure.tue.nl/ws/portalfiles/portal/131842016/Godthelp_0946277.pdf][/url][/color][url=https://www.youtube.com/watch?v=Oh8_AX_hzoo][color=#0000ff]How to design a Timber Reciprocal Frame Structure: A computational approach[/color][/url][br][/*][/list][br]Reciprocal Frame STructures Made Easy[br]Peng Song, Chi-Wing Fu, Prashant Goswami, Jiamin, Niloy Mitra and Daniel Cohen-Or[br]ACM Transactions on Graphics (Proceedings of SIGGRAPH) 2013 [br][br][list][*][url=https://www.youtube.com/watch?v=GcMyQsdCQ_w][color=#0000ff]Reciprocal frames SIGGRAGH 2013[/color][/url][br][/*][/list][br]Thesis Portfolio. Final Project:[br]Alfredo Salgado Ferrer & Fabrizio Tozzoli Design for manufacture [br]The Bartlett School of Architecture University College London (UCL)[br][br][list][*][url=https://issuu.com/alfredosalgadoib/docs/portfolio.final][color=#0000ff]Digital Timber Reciprocity[/color][/url][/*][/list][br]

Information