ORIGINAL ARTICLE: Duston Wetzel, Paul Gailiunas, Moses Gaither-Ganim, and William Holt (2024), Triply Periodic Helical Weaves, arXiv:2402.07849. https://doi.org/10.48550/arXiv.2402.07849
Article Abstract: Weaving typically involves forming a surface by interlacing fibers into a mechanically stable arrangement, effectively making a two-dimensional object out of one-dimensional objects. Moorish Fretwork involves interweaving solid helical elements into mechanically stable two-dimensional arrangements by exploiting the helices’ screw symmetry. A three-dimensional extension of this idea was demonstrated by Alexandru Usineviciu at Bridges in 2015. Here we expand the idea further by considering cases informed by invariant cylindrical rod packing, and cases related to geodesics of the gyroid. Simulations and/or physical models of nineteen triply periodic arrangements of interwoven helices are shown, with physical models demonstrated for eight.
Introduction
Introduction
Triply periodic helical weaves constitute three-dimensional materials composed of periodically arranged helical elements, which are effectively one-dimensional. I discovered my first triply periodic helical weave in 2019 while attempting to physically model the geodesics of Schoen's gyroid, a famous triply periodic minimal surface. The gyroid surface appears to have approximately circular tunnels going both in the directions parallel to the edges of a cubic boundary (〈100〉) and in the directions of the body diagonals of a cubic boundary (〈111〉) (Miller index notation). The idealized version of these tunnels are called Laves graphs. The lines on the surface closest to these tunnels are called geodesics, and are approximately helical. Through mathematical modeling I was able to conclude that my first triply periodic helical weave (〈100〉 trefoil Laves weave, a.k.a. "wiroid"), was related to a rotation of some of the geodesics of the gyroid. After coding the position, radii, and phase of three rotationally symmetric arrays of helices (approximate gyroid geodesics) in Mathematica, it was simple to change some of these parameters to explore new type of triply periodic helical weaves. Here I share the code I used to generate images of about half of the triply periodic helical weaves discussed in the paper. The other images were generated by Paul Gailiunas in Rhino.
General Program
General Program
The first program I wrote was general. It allowed me to change parameters such as position, phase, and radius, as well as color. "n" corresponds to the number of unit cells shown in each direction. First we must parametrically define the helices in each of three perpendicular directions. Notice the repetition in the rotationally symmetric set. After that, a unit cell of twelve one-period helices are defined. The unit cell is repeated n x n x n times later on by the Table function. The general program uses lines because they are drawn faster than tubes.
Try setting rad=0.125 and phase=0 or Pi. If phase = Pi, try making all the right handed helices transparent.
Try setting rad=0.125 and phase=0 or Pi. If phase = Pi, try making all the right handed helices transparent.
In[]:=
(*Definesrotationallysymmetricsetofperpendicularhelices*)color:={Black,Transparent,White,Red,Orange,Yellow,Green,Cyan,Blue,Purple,Magenta};xhelix[chirality_,ioffset_,joffset_,phase_,radius_,color_,n_]:=ParametricPlot3D[{(t/(2Pi)),(radiuschiralitySin[t+phase]+ioffset),(radiusCos[t+phase]+joffset)},{t,0,n*2Pi},PlotStyleRGBColor[color]];yhelix[chirality_,ioffset_,joffset_,phase_,radius_,color_,n_]:=ParametricPlot3D[{(radiusCos[t+phase]+joffset),(t/(2Pi)),(radiuschiralitySin[t+phase]+ioffset)},{t,0,n*2Pi},PlotStyleRGBColor[color]];zhelix[chirality_,ioffset_,joffset_,phase_,radius_,color_,n_]:=ParametricPlot3D[{(radiuschiralitySin[t+phase]+ioffset),(radiusCos[t+phase]+joffset),(t/(2Pi))},{t,0,n*2Pi},PlotStyleRGBColor[color]];(*Definestwelvehelixunitcell*)generalunitcell[Ti_,Tj_,ph_,n_,rad_,xL1_,xL2_,xR1_,xR2_,yL1_,yL2_,yR1_,yR2_,zL1_,zL2_,zR1_,zR2_]:={xhelix[1,0+Ti,0.25+Tj,-Pi/2+ph,rad,xL1,n],yhelix[1,0+Ti,0.25+Tj,-Pi/2+ph,rad,yL1,n],zhelix[1,0+Ti,0.25+Tj,-Pi/2+ph,rad,zL1,n],xhelix[1,0.5+Ti,0.75+Tj,Pi/2+ph,rad,xL2,n],yhelix[1,0.5+Ti,0.75+Tj,Pi/2+ph,rad,yL2,n],zhelix[1,0.5+Ti,0.75+Tj,Pi/2+ph,rad,zL2,n],xhelix[-1,0+Ti,0.75+Tj,-Pi/2+ph,rad,xR1,n],yhelix[-1,0+Ti,0.75+Tj,-Pi/2+ph,rad,yR1,n],zhelix[-1,0+Ti,0.75+Tj,-Pi/2+ph,rad,zR1,n],xhelix[-1,0.5+Ti,0.25+Tj,Pi/2+ph,rad,xR2,n],yhelix[-1,0.5+Ti,0.25+Tj,Pi/2+ph,rad,yR2,n],zhelix[-1,0.5+Ti,0.25+Tj,Pi/2+ph,rad,zR2,n]}(*3Dparametricplot*)Manipulate[Show[ParametricPlot3D[{{t,0,0},{0,t,0},{0,0,t}},{t,-.125,n+0.125}],Table[generalunitcell[Ti,Tj,ph,n,rad,xL1,xL2,xR1,xR2,yL1,yL2,yR1,yR2,zL1,zL2,zR1,zR2],{Ti,0,n-1},{Tj,0,n-1}],ViewProjection"Orthographic",BackgroundLightGray],{n,1,5,0.5},{rad,0,1,0.005},{ph,0,2Pi,Pi/6},{xL1,color},{xL2,color},{xR1,color},{xR2,color},{yL1,color},{yL2,color},{yR1,color},{yR2,color},{zL1,color},{zL2,color},{zR1,color},{zR2,color},SaveDefinitions->True]
Out[]=
Images from the Paper
Images from the Paper
For the images in the paper, I used tubes rather than lines. This is slower but easier to see.
Gyroid Surface with 〈100〉 Geodesics
Gyroid Surface with 〈100〉 Geodesics
d:=0.01n:=2ph:=0rad:=0.125xhelix[chirality_,ioffset_,joffset_,phase_,radius_,color_,n_]:=ParametricPlot3D[{(t/(2Pi)),(radiuschiralitySin[t+phase]+ioffset),(radiusCos[t+phase]+joffset)},{t,-Pi/4,2*n*Pi+Pi/4},PlotStyleDirective[color,Tube[d]]];yhelix[chirality_,ioffset_,joffset_,phase_,radius_,color_,n_]:=ParametricPlot3D[{(radiusCos[t+phase]+joffset),(t/(2Pi)),(radiuschiralitySin[t+phase]+ioffset)},{t,-Pi/4,2*n*Pi+Pi/4},PlotStyleDirective[color,Tube[d]]];zhelix[chirality_,ioffset_,joffset_,phase_,radius_,color_,n_]:=ParametricPlot3D[{(radiuschiralitySin[t+phase]+ioffset),(radiusCos[t+phase]+joffset),(t/(2Pi))},{t,-Pi/4,2*n*Pi+Pi/4},PlotStyleDirective[color,Tube[d]]];unitcell[Ti_,Tj_,ph_,n_,rad_,xL1_,xL2_,xR1_,xR2_,yL1_,yL2_,yR1_,yR2_,zL1_,zL2_,zR1_,zR2_]:={xhelix[1,0+Ti,0.25+Tj,-Pi/2+ph,rad,xL1,n],yhelix[1,0+Ti,0.25+Tj,-Pi/2+ph,rad,yL1,n],zhelix[1,0+Ti,0.25+Tj,-Pi/2+ph,rad,zL1,n],xhelix[1,0.5+Ti,0.75+Tj,Pi/2+ph,rad,xL2,n],yhelix[1,0.5+Ti,0.75+Tj,Pi/2+ph,rad,yL2,n],zhelix[1,0.5+Ti,0.75+Tj,Pi/2+ph,rad,zL2,n],xhelix[-1,0+Ti,0.75+Tj,-Pi/2+ph,rad,xR1,n],yhelix[-1,0+Ti,0.75+Tj,-Pi/2+ph,rad,yR1,n],zhelix[-1,0+Ti,0.75+Tj,-Pi/2+ph,rad,zR1,n],xhelix[-1,0.5+Ti,0.25+Tj,Pi/2+ph,rad,xR2,n],yhelix[-1,0.5+Ti,0.25+Tj,Pi/2+ph,rad,yR2,n],zhelix[-1,0.5+Ti,0.25+Tj,Pi/2+ph,rad,zR2,n]};xL1:=BluexL2:=BlueyL1:=RedyL2:=RedzL1:=YellowzL2:=YellowxR1:=BluexR2:=BlueyR1:=RedyR2:=RedzR1:=YellowzR2:=YellowShow[ContourPlot3D[Cos[2Pix]Sin[2Piy]+Cos[2Piy]Sin[2Piz]+Cos[2Piz]Sin[2Pix]0,{x,0,1},{y,0,1},{z,0,1},ContourStyleDirective[Gray,Opacity[1]]],ParametricPlot3D[{{t,0,0},{0,t,0},{0,0,t}},{t,-0.15,n+0.15},PlotStyleRGBColor[Transparent]],Table[unitcell[Ti,Tj,ph,n,rad,xL1,xL2,xR1,xR2,yL1,yL2,yR1,yR2,zL1,zL2,zR1,zR2],{Ti,0,n-1},{Tj,0,n-1}],BackgroundWhite,BoxedFalse,ViewPointFront,AxesFalse]
〈100〉 Gyroid Weave
〈100〉 Gyroid Weave
Here I omit the gyroid surface and expand the radii of the helices and the tubes. This is in figure 7 of the paper.
〈100〉 Laves Series
〈100〉 Laves Series
Four triply periodic helical weaves correspond to 180° rotations of 〈100〉 gyroid geodesics with progressively expanded radii. They share positions and phases. These are in figure 6 in the paper.
〈100〉 Trigonal Laves Weave
〈100〉 Trigonal Laves Weave
〈100〉 Trefoil Laves Weave
〈100〉 Trefoil Laves Weave
〈100〉 Braid Laves Weave
〈100〉 Braid Laves Weave
〈100〉 Triple Laves Weave
〈100〉 Triple Laves Weave
〈100〉 Simple Weaves
〈100〉 Simple Weaves
These three triply periodic helical weaves each have one type of crossing with the same orientation which repeat in a simple cubic lattice. A unit cell is just three perpendicular helices. These are also in figure 6 of the paper.
〈100〉 Simple Annular Weave
〈100〉 Simple Annular Weave
〈100〉 Simple Trefoil Weave
〈100〉 Simple Trefoil Weave
〈100〉 Simple Trio Weave
〈100〉 Simple Trio Weave
Conclusion
Conclusion
In summary, this notebook contains the code I used to generate about half of the images in the associated paper. Triply periodic helical weaves constitute methods for creating three-dimensional materials out of one-dimensional elements, like a chain-link fence or a normal textile are two-dimensional materials formed by periodically arranged one-dimensional elements. My initial inspiration was the set of 〈100〉 geodesics of the gyroid. After coding these geodesics, it was simple to change some of the parameters to explore more triply periodic helical weaves associated with the Pi rod packings.
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Triply Periodic Helical Weaves
by Duston Wetzel, Paul Gailiunas, Moses Gaither-Ganim, and William Holt
Wolfram Community, STAFF PICKS, February 19, 2024
https://community.wolfram.com/groups/-/m/t/3126212
by Duston Wetzel, Paul Gailiunas, Moses Gaither-Ganim, and William Holt
Wolfram Community, STAFF PICKS, February 19, 2024
https://community.wolfram.com/groups/-/m/t/3126212

