Triaxial Weaving

This script allows designers to apply a triaxial weave to any NURBS surface (open, closed, flat or distorted) in 3DSMax to experiment and design efficiently due to the fast output of the code. Due to its triangular geometry, the triaxial weave makes whatever form it is applied to shear resistant and significantly stronger than applying the common biaxial weave.
BSc Year 3
Tutor: Dr. Wassim Jabi

The annotated maxscript can be downloaded and used.


Weaving is "at once a language, a concept and a material thing”.

 Since its invention in 600BC, various weaving patterns and materials have emerged around the globe allowing for different aesthetic and structural outcomes.


Weaving gives us the possibility to create fabric that varies between being opaque and perforated, depending on the width of the warp and weft fibres.


Although the various weaving patterns seem very different, simple biaxial weaves are always composed of a warp thread going one way and weft thread weaving around it in a perpendicular direction.

Triaxial Weaving

  Through researching different weaving patterns, we found that all of the weaving patterns achieved through maxscript were bi-axial weaves, where the warp thread undulated around the weft thread. In order to create a triaxial weave, we needed all three threads to undulate and for them to be at 60° angles to each other.

  • Weave created by and within NURBS surface parameters
  • Tri-axial: interdependent warp, weft and whug
  • Interface Parameters:
    • Select NURBS surface
    • Number of Warp Splines
    • Amplitude
    • Swap UV direction
    • Hide original NURBS surface
  • Change sweep section type and parameters via modify tab
  • Work with open and closed surfaces
weaving history.png

Triaxial Trigonometry

To ensure the knots on each spline were on the intersection points between then splines, we had to calculate the "slope" of the weft and whug splines as dependent onthe warp spline.
h dwarp T1
dwarp x y
h2 y = x = dwarp2 yx tan 60°=√3= x√3=y
T1 = warp period T1 2 = dwarp
Therefore each subsequent knot along the weft and whug spline changes by:
T1 2 on the x-axis T1√3 on the y-axis where T1= (Vmax-Vmin)(warpthreadcount) -1

Developing the Script

Asset 1@3x.png