ALGEBRAIC FORMATIONS

These explorations mainly focus on 2 main areas, formations and transformations. Formation is considered as a whole created through aggregation of small entities - in this case, I am using a sine wave pattern as the basic description of all the surfaces. Patterns can be layered, and their formation becomes complex as layers build up. In the first part of this series, I will mainly focus on various pattern making techniques and layering techniques.

Transformations, as we look beyond the buttons in our 3D software, is described mathematically as an equation, such as x'=Sx*x, y'=Sy*y for scaling or x'=x*cos(a)+y*sin(a), y'=y*cos(a)-x*sin(a) for rotation. In the later part of the series of, transformations are applied algebraically at various levels of complexities, from turning a surface into a sinuous form, to embedding multiple ripples onto a spherical form.

The study itself is ongoing, and I will keep updating it as much as I can.

*special thanks to Jess Märtterer for all his help on scripting.

001

[base]



parametric form :    
	n/a
transformation form :
	x = xt
	y = yt
	z = zt
            
002

[cosine]



parametric form :    
	a*cos(t)
transformation form :    
	x = xt
	y = yt*cos(xt/8)
	z = zt
            
003

[exponential]



parametric form :    
	a*x^b
transformation form :    
	x = xt
	y = (xt^2+yt^2)/32
	z = zt
            
004

[square roots]



parametric form :    
	a*sqr(x)
transformation form :   
	x = xt
	y = yt+xt
	z = sqr(zt^2+xt^2)
            
005

[multiplication]



parametric form :    
	a*x*y
transformation form :    
	x = xt
	y = yt*xt/16
	z = zt
            
006

[arctangent]



parametric form :    
	a*atn(t)
transformation form :    
	x = xt
	y = 4*atn(yt^4/xt^4)
	z = zt
            
007

[helix no.1]



parametric form :    
	x=a*cos(t),y=a*sin(t),z=b*t
transformation form :    
	x = (2*xt+100)*cos(yt*Pi/24)
	y = (2*xt+100)*sin(yt*Pi/24)
	z = zt
            

008

[helix no.2]



parametric form :    
	x=a*cos(t),y=a*sin(t),z=b*t
transformation form :    
	x=(4*xt+100)*cos(zt*Pi/24)
	y=(4*xt+100)*sin(yt*Pi/24)
	z=zt
            

009

[helix no.3]



parametric form :    
	x=a*cos(t),y=a*sin(t),z=b*t
transformation form :    
	x=(2*xt+100)*cos(yt*Pi/24)
	y=(2*xt+100)*sin(sin(sin(yt*
    	Pi/24)))
	z=zt
            
010

[ripple]



parametric form :    
	a*cos(sqr((x-u)^2+(y-v)^2))
    	/sqr((x-u)^2+(y-v)^2)
transformation form :    
	x=xt
	y=yt
	z=10*cos(Sqr(xt^2+(zt-24)^2))
    	/Sqr(xt^2+(zt-24)^2+2)
        
        
        
            
011

[ripple x 2]



parametric form :    
   a*cos(sqr((x-u)^2+(y-v)^2))
   /sqr((x-u)^2+(y-v)^2)
transformation form :    
   a=10*cos(Sqr((xt)^2+(zt-24)^2))
     /Sqr((xt-0)^2+(zt-24)^2+2)
   b=10*cos(Sqr((xt-16)^2+(zt-12)^2))
     /Sqr((xt-16)^2+(zt-12)^2+2)
   x=xt
   y=yt
   z=a+b
            
012

[ripple + sine]



parametric form :    
   a*cos(sqr((x-u)^2+(y-v)^2))
transformation form :    
   x=xt + Sin(Sqr(xt^2+(yt-24)^2)+Pi)
   y=yt
   z=0
        
        
        
        
        
            

FAMOUS CURVES

This series transforms the sinusoidal surface into curve shapes described by the famous curves index .

013

[cycloid]



parametric form :    
	x=a*t-h*sin(t)
	y=a-h*cos(t)
transformation form :    
	a = 10
	b = 1
	x = a*xt-(b*yt*sin(xt/3)/2)
	y = a-(b*yt*cos(xt/3)/2)
	z = zt*5
    
    
    
            
014

[epicycloid]



parametric form :    
    x=(a+b)*cos(t)-b*cos((a/b+1)*t)
    y=(a+b)*sin(t)-b*sin((a/b+1)*t)
transformation form :    
    a=5
    b=3
    m=5
    x=((a+b)*yt*cos(xt/16)
      -m*yt*cos((a/b+1)*xt/16))/10
    y =((a+b)*yt*sin(xt/16)
      -m*yt*sin((a/b+1)*xt/16))/10
    z= zt*2-50
            
015

[limacon of pascal]



polar form :    
    r=b+2*a*cos(t)
transformation form :    
    a = 2
    b = 10
    m = 2
    r = (a*(yt/2)*Cos(m*xt/12))+yt+b
    x = r*cos(xt/12)
    y = r*sin(xt/12)
    z = zt
    
    
            
016

[lissajous]



parametric form :    
    x=a*sin(n*t+c)
    y=b*sin(t)
transformation form :    
    a = 5
    b = 2
    x = 10*yt*cos(a*xt/48)
    y = 10*yt*sin(b*xt/48)
    z = zt*5
            
017

[nephroid]



parametric form :    
    x=a*(3*cos(t)-cos(3*t))
    y=a*(3*sin(t)-sin(3*t))
transformation form :    
    a = 1
    x = a*yt*(3*cos(xt/48)-cos(3*xt/48))
    y = a*yt*(3*sin(xt/48)-sin(3*xt/48))
    z = -zt
    
            
018

[equiangular spiral]



polar form :    
    r=a*exp(t*cot(b))
transformation form :    
    a = 5
    b = 7*Pi/16
    r = a*yt*exp(xt/12*(1/tan(b)))
    x = r*cos(xt/12)
    y = r*sin(xt/12)
    z = zt*4	
            

3D SHAPES

This series transforms the sinusoidal surface into familiar 3D objects.

019

[sinusoidal cylinder]



parametric form :    
cylinder
   x=a*cos(u)
   y=a*sin(u)
   z=b*v
transformation form :    
   x=m*Cos(xt/maxU)
   y=m*Sin(xt/maxU)
   z=n*yt*(k*Pi/maxV)
    
    
    
    
   
   
   
   
    
    
    
    
    
            
020

[sinusoidal cylinder + ripple]



parametric form :    
ripple
R=a*cos(sqr((x-u)^2+(y-v)^2))
/sqr((x-u)^2+(y-v)^2+1)
cylinder
x=a*cos(u)*(R+1)
y=a*sin(u)*(R+1)
z=b*v
transformation form :    
a=0.5*Cos(1*Sqr((xt-0)^2+(zt-(maxV/2))^2))
/(Sqr((xt-0)^2+(zt-(maxV/2))^2)+1)
m=4
n=3
x=m*Cos(xt/maxU)*(a+1)
y=m*Sin(xt/maxU)*(a+1)
z=n*yt*(k*Pi/maxV)
    
    
    
    
    
    
            
021

[sinusoidal cylinder + ripplex2]



parametric form :    
ripple
    R1=a*cos(sqr((x-u)^2+(y-v)^2))
       /sqr((x-u)^2+(y-v)^2+1)
    R2=a*cos(sqr((x-u)^2+(y-v)^2))
       /sqr((x-u)^2+(y-v)^2+1)
cylinder
    x=a*cos(u)*(R1*R2+1)
    y=a*sin(u)*(R1*R2+1)
    z=b*v
transformation form :    
    a=0.5*Cos(1*Sqr((xt-0)^2
      +(zt-(maxV/2))^2))/(Sqr((xt-0)^2
      +(zt-(maxV/2))^2)+1)
    b=0.5*Cos(1*Sqr((xt-5)^2+(zt
      -(maxV/2)-5)^2))/(Sqr((xt-5)^2
      +(zt-(maxV/2)-5)^2)+1)
    m=4
    n=3
    x=m*Cos(xt/maxU)*(a+b+1)
    y=m*Sin(xt/maxU)*(a+b+1)
    z=n*yt*(k*Pi/maxV)
            
022

[sinusoidal sphere]



parametric form :    
sphere
   x=a*cos(u)*sin(v)
   y=a*sin(u)*sin(v)
   z=a*cos(v)
transformation form :    
   a=5
   x=a*Cos(xt/maxU)*Sin(yt*(k*Pi/maxV))
   y=a*Sin(xt/maxU)*Sin(yt*(k*Pi/maxV))
   z=a*Cos(yt*(k*Pi/maxV))
    
    
    
    
    
    
    
    
    
    
    
    
023

[sinusoidal sphere + ripple]



parametric form :    
ripple
R=a*cos(sqr((x-u)^2+(y-v)^2))
/sqr((x-u)^2+(y-v)^2+1)
sphere
x=a*cos(u)*sin(v)*(R+1)
y=a*sin(u)*sin(v)*(R+1)
z=a*cos(v)*(R+1)
transformation form :
a=0.5*Cos(Sqr((xt-0)^2+(zt-(maxV/2))^2))
(Sqr((xt-0)^2+(zt-(maxV/2))^2)+1)
x=5*Cos(xt/maxU)*Sin(yt*(k*Pi/maxV))*(a+1)
y=5*Sin(xt/maxU)*Sin(yt*(k*Pi/maxV))*(a+1)
z=5*Cos(yt*(k*Pi/maxV))*(a+1)
    
    
    
    
    
    
    
    
024

[sinusoidal sphere + ripplex2]



parametric form :    
ripple
    R1=a*cos(sqr((x-u)^2+(y-v)^2))
       /sqr((x-u)^2+(y-v)^2+1)
    R2=a*cos(sqr((x-u)^2+(y-v)^2))
       /sqr((x-u)^2+(y-v)^2+1)
sphere
    x=a*cos(u)*sin(v)*(R1*R2+1)
    y=a*sin(u)*sin(v)*(R1*R2+1)
    z=a*cos(v)*(R1*R2+1)
transformation form :    
    a=0.5*Cos(Sqr((xt-0)^2+(zt-(maxV/2))^2))
      /(Sqr((xt-0)^2+(zt-(maxV/2))^2)+1)
    b=0.5*Cos(Sqr((xt-(maxU*3*Pi/4))^2
      +(zt-(maxV/2)+15)^2))
      /(Sqr((xt-(maxU*3*Pi/4))^2
      +(zt-(maxV/2)+15)^2)+1)
    x=5*Cos(xt/maxU)*Sin(yt*(k*Pi/maxV))
      *(a+b+1)
    y=5*Sin(xt/maxU)*Sin(yt*(k*Pi/maxV))
      *(a+b+1)
    z=5*Cos(yt*(k*Pi/maxV))*(a+b+1)
025

[sinusoidal torus]



parametric form :    
torus
    x=(R+r*cos(v))*cos(u)
    y=(R+r*cos(v))*sin(u)
    z=r*sin(v)
transformation form :    
    a=5
    b=10
    x=(b+a*cos(yt*(k*Pi/maxV)))*cos(xt/maxU)
    y=(b+a*cos(yt*(k*Pi/maxV)))*sin(xt/maxU)
    z=a*sin(yt*(k*Pi/maxV))
    
    
    
    
    
    
    
    
    
    
    
    
    
026

[sinusoidal torus + ripple]



parametric form :    
ripple
    R=a*cos(sqr((x-u)^2+(y-v)^2))
      /sqr((x-u)^2+(y-v)^2+1)
torus
    x=(R+r*cos(v))*cos(u)*(R+1)
    y=(c+a*cos(v))*sin(u)*(R+1)
    z=z*sin(v)*(R+1)
transformation form :    
    m=0.5*Cos(Sqr((xt-0)^2+(zt-(maxV/2))^2))
      /(Sqr((xt-0)^2+(zt-(maxV/2))^2)+1)
    a=-5
    b=10
    x=(b+a*cos(yt*(k*Pi/maxV)))*cos(xt/maxU)
      *(m+1)
    y=(b+a*cos(yt*(k*Pi/maxV)))*sin(xt/maxU)
      *(m+1)
    z=a*sin(yt*(k*Pi/maxV))*(pi*m+1)
    
    
    
    
    
    
027

[sinusoidal torus + ripplex2]



parametric form :
ripple
    R1=a*cos(sqr((x-u)^2+(y-v)^2))
       /sqr((x-u)^2+(y-v)^2+1)
    R2=a*cos(sqr((x-u)^2+(y-v)^2))
       /sqr((x-u)^2+(y-v)^2+1)
torus
    x=(c+a*cos(v))*cos(u)*(R1*R2+1)
    y=(c+a*cos(v))*sin(u)*(R1*R2+1)
    z=z*sin(v)*(R1*R2+1)
transformation form :    
    m=0.5*Cos(Sqr((xt-0)^2+(zt-(maxV/2))^2))
      /(Sqr((xt-0)^2+(zt-(maxV/2))^2)+1)
    n=0.5*Cos(Sqr((xt-(maxU*3*Pi/4))^2
      +(zt-(maxV/2)-12)^2))
      /(Sqr((xt-(maxU*3*Pi/4))^2
      +(zt-(maxV/2)-12)^2)+1)
    a=-5
    b=10
    x=(b+a*cos(yt*(k*Pi/maxV)))*cos(xt/maxU)
      *(m+n+1)
    y=(b+a*cos(yt*(k*Pi/maxV)))*sin(xt/maxU)
      *(m+n+1)
    z=a*sin(yt*(k*Pi/maxV))*(3*(m+n)+1)

SUPERFORMULA / SUPERSHAPE

Proposed by Johan Gielis in the American Journal of Botany titled "A generic geometric transformation that unifies a wide range of natural and abstract shapes".

Here's an abstract of the paper .
"To study forms in plants and other living organisms, several mathematical tools are available, most of which are general tools that do not take into account valuable biological information. In this report I present a new geometrical approach for modeling and understanding various abstract, natural, and man-made shapes. Starting from the concept of the circle, I show that a large variety of shapes can be described by a single and simple geometrical equation, the Superformula. Modification of the parameters permits the generation of various natural polygons. For example, applying the equation to logarithmic or trigonometric functions modifies the metrics of these functions and all associated graphs. As a unifying framework, all these shapes are proven to be circles in their internal metrics, and the Superformula provides the precise mathematical relation between Euclidean measurements and the internal non-Euclidean metrics of shapes. Looking beyond Euclidean circles and Pythagorean measures reveals a novel and powerful way to study natural forms and phenomena."

Johan Gielis's superformula describes a 2 dimensional curve given by the following equation:

The equation is based on 6 variables, m, n1, n2, n3, a, and b, and this is where the morphological magic happens. Paul Bourke has written the code to create superformula in 3D, or supershape, and I have ported the code into rhinoscript for further experimentation.

Since Gielis's version is based on a circle and an ellipse, the 3D version extends that to base the shapes on a sphere and a torus, given by the following equations:







and,





In its 3D form, the supershape3D is controlled by 2 sets of superformula, R1 and R2. Therefore, in the following examples, I will only post the 6 variables for shape1 and shape2, as they are the only factors driving the morphological variations.

028

[4-pedal surface]


toroidal mapping : maxU=60 maxV=20 vCyc=0.5 uCyc=1 R1=3 R2=6 x=Cos(xt/maxU)*(R1*SuperRad1(xt/maxU) +R2*SuperRad2(yt*vCyc*Pi/maxV) *Cos(yt*vCyc*Pi/maxV)) y=Sin(xt/maxU)*(R1*SuperRad1(xt/maxU) +R2*SuperRad2(yt*vCyc*Pi/maxV) *Cos(yt*vCyc*Pi/maxV)) z=R2*SuperRad2(yt*vCyc*Pi/maxV) *Sin(yt*vCyc*Pi/maxV) parameters

shape1 shape2
n1=0.17 n1=30.83
n2=-0.61 n2=-1.81
n3=-0.66 n3=87.44
m=4 m=7
a=0.1 a=1.14
b=0.24 b=1.83
029

[3-pedal surface]


toroidal mapping : maxU=30 maxV=24 vCyc=0.75 uCyc=2 R1=18 R2=6 x=Cos(xt/maxU)*(R1*SuperRad1(xt/maxU) +R2*SuperRad2(yt*vCyc*Pi/maxV) *Cos(yt*vCyc*Pi/maxV)) y=Sin(xt/maxU)*(R1*SuperRad1(xt/maxU) +R2*SuperRad2(yt*vCyc*Pi/maxV) *Cos(yt*vCyc*Pi/maxV)) z=R2*SuperRad2(yt*vCyc*Pi/maxV) *Sin(yt*vCyc*Pi/maxV)/1.5 parameters

shape1 shape2
n1=0.95 n1=0.95
n2=3.76 n2=3.76
n3=10 n3=10
m=3 m=3
a=0.8 a=0.8
b=0.8 b=0.8
030

[4-pedal surface]


toroidal mapping : maxU=30 maxV=40 vCyc=1.0 uCyc=1.0 R1=18 R2=8 x=Cos(xt/maxU)*(R1*SuperRad1(xt/maxU) +R2*SuperRad2(yt*vCyc*Pi/maxV) *Cos(yt*vCyc*Pi/maxV)) y=Sin(xt/maxU)*(R1*SuperRad1(xt/maxU) +R2*SuperRad2(yt*vCyc*Pi/maxV) *Cos(yt*vCyc*Pi/maxV)) z=R2*SuperRad2(yt*vCyc*Pi/maxV) *Sin(yt*vCyc*Pi/maxV)*2.0 parameters

shape1 shape2
n1=0.15 n1=0.2
n2=1.9 n2=1.9
n3=1.6 n3=1.9
m=4 m=5
a=1 a=1
b=1 b=1
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License .