radius =  
theta = °
radius = 
thetaStart = °
thetaEnd = 
thetaStep = °
numPoints = 
slopeAngle = °
tangentAngle = °
growthFactor = 
growthAngle = °
 
Logarithmic Spirals
r = 40*phi^(theta/(2pi)) Animate / Tangent 0 - 8pi growthFactor = phi
growthAngle = 2pi
r = 40*e^(theta*tan(6pi/180)) Animate / Tangent 0 - 8pi slopeAngle = 6°
r = 40*e^(theta/tan(84pi/180)) Animate / Tangent 0 - 8pi tangentAngle = 84°
Roses
r = 200*cos(4/9*theta) Animate / Tangent 0 - 18pi thetaStep = 1°
r = 200*cos(5*theta) + 60 Animate / Tangent 0 - 2pi thetaStep = 1°
r = 200*cos(pi*theta) Animate / Tangent 0 - 32pi thetaStep = 1°
r = 200*cos(e*theta) Animate / Tangent 0 - 32pi thetaStep = 1°
r = 200*cos(theta) + 100 Animate / Tangent 0 - 2pi Limaçon
Archimedean Spirals
r = 12*theta Animate / Tangent 0 - 8pi  
r = 40*sqrt(theta) Animate / Tangent 0 - 16pi Fermat's spiral
r = 400/theta Animate / Tangent pi/4 - 16pi Hyperbolic spiral
r = 240/sqrt(theta) Animate / Tangent pi/12 - 32pi Lituus
Sinusoidal Spirals
r = 10/cos(−theta/3)^3 Animate / Tangent −5pi/4 - 5pi/4 Tschirnhausen cubic
thetaStep = 0.5°
r = 400*cos(theta/3)^3 Animate / Tangent 0 - 3pi Cayley's sextic
thetaStep = 1°
r = 400*sqrt(cos(2*theta)) Animate / Tangent 0 - 2pi Lemniscate of Bernoulli
thetaStep = 0.01°
Other Curves
r = 9*sin(theta)*theta Animate / Tangent 0 - 12pi  
r = 400*sin(theta)/theta Animate / Tangent −12pi - 12pi Cochleoid
thetaStep = 0.25°
r = 4*theta + 56*cos(3*e*theta) + 56 Animate / Tangent 0 - 16pi  
r = 200*sin(5*theta)*cos(theta) + 200 Animate / Tangent 0 - 2pi  
r = 9*theta
    + 36*sin(5pi*theta)
    + 7*cos(5pi*theta) + 60
Animate / Tangent 0 - 25pi/2  
Morphs
r = scale * cos(k*theta) + offset
k =
e →
e+2
scale =
100 →
300
offset =
−100 →
100
0 - 32pi thetaStep = 1°
morphSteps = 200
morphDelay = 100ms
r = 100 * cos(4/9 * theta) + offset
offset =
−220 →
220
0 - 18pi thetaStep = 1°
morphSteps = 440
morphDelay = 20ms
r = 100 * cos(5 * theta) + offset
offset =
−250 →
250
0 - 2pi thetaStep = 1°
morphSteps = 500
morphDelay = 20ms
r = scale * cos(k * theta)
k =
pi−1 →
pi+1
scale =
200 →
340
0 - 32pi thetaStep = 1°
morphSteps = 200
morphDelay = 200ms
r = 10 * theta 0 - 16pi
numPoints =
20 →
280
morphSteps = 130
morphDelay = 200ms
r = 6 * theta  
thetaStep =
pi/360 →
pi/2
numPoints = 80
morphSteps = 179
morphDelay = 100ms
r = 6 * theta  
thetaStep =
pi/2 →
pi
numPoints = 120
morphSteps = 180
morphDelay = 100ms
r = 9*sin(b*theta)*theta + c
b =
1 →
17
c =
0 →
17
0 - 12pi thetaStep = 0.5°
morphSteps = 400
morphDelay = 100ms
r = −200*sin(b*theta)*cos(theta) + 200
b =
−40 →
40
0 - 2pi thetaStep = 0.25°
morphSteps = 80
morphDelay = 100ms
r = −320*sin(b*theta)*cos(c*theta) + 200
b =
0.14 →
5.14
c =
1.14 →
6.14
0 - 50pi morphSteps = 100
morphDelay = 100ms
r = a*sin(0.14*theta)*cos(1.14*theta) + 200
a =
−400 →
400
0 - 50pi morphSteps = 200
morphDelay = 100ms
r = 9*theta
    + 36*sin(2pi*theta)
    + c*cos(2pi*theta)
c =
−360 →
360
0 - 24pi morphSteps = 120
morphDelay = 50ms
r = 9*theta
    + 27*sin(8*theta)
    − 99*cos(8*theta) + d
d =
−720 →
120
0 - 32pi morphSteps = 210
morphDelay = 40ms

URL Parameters
anim= [step],[delay] Run the curve drawing animation.
Draw [step] points per frame of the animation.
Pause [delay] milliseconds between each frame of the animation.
animtan= [step],[delay] Run the tangent line animation.
Move [step] points per frame of the animation.
Pause [delay] milliseconds between each frame of the animation.
center= [offsetX],[offsetY] Specify the offset of the origin from the center of the graph.
h= [height] Set the height of the graph in pixels.
logspiral= [initialRadius]
,[slopeAngle],[tangentAngle]
,[growthFactor],[growthAngle]
Angles are expected in radians.
If [slopeAngle] is specified:
r = [initialRadius] * e ^ (theta * tan([slopeAngle]))
Otherwise, if [tangentAngle] is specified:
r = [initialRadius] * e ^ (theta / tan([tangentAngle]))
Otherwise:
r = [initialRadius] * [growthFactor] ^ (theta / [growthAngle])
morph= [numSteps],[delay]
,[curveParam1]:[beginValue1]:[endValue1]
,[curveParam2]:[beginValue2]:[endValue2]
...
Redraw the curve every [delay] milliseconds.
On each iteration, each [curveParam] will be changed by
([endValue] - [beginValue]) / [numSteps]
points= [numPoints] Set the number of points for the curve.
r= [curve],[param1Value],[param2Value] ...
Curve Parameters
a*sin(b*t)*t+c a, b, c
a*sin(b*t)/t+c a, b, c
a*sin(b*t)*cos(c*t)+d a, b, c, d
a*t+b*cos(c*t)+d a, b, c, d
a*t+b*sin(bt*t)+c*cos(ct*t)+d a, b, c, d, bt, ct
rose= [scale],[k],[offset] r = [scale] * cos([k] * theta) + [offset]
sinspiral= [a],[n],[b] r = [a] * cos([n] * theta) ^ (1 / [n]) + [b]
spiral= [a],[b],[c] r = [a] + [b] * theta ^ (1 / [c])
stroke= [color],[width] Set the stroke color and/or width.
theta= [start],[end],[step] Set the start angle, end angle, and/or angular step in radians.
[start] is the angle for the first point of the curve.
[end] is the angle for the last point of the curve.
w= [width] Set the width of the graph in pixels.

Code & design by Pius Fischer
Additional design input by Dancin' Angie
Default color gradient adapted from Nadieh Bremer via Mike Bostock