       @animTime
       @pulse
       @color
-      @motionCurve
       @lightenOnNudge
       @lightRingSpeeds
       @lightRingWidths
     } = @gyro
 
+    @rotation.x = 90.degToRad
     @rotation.z = @gyro.fanAngle * @ringIndex
 
     thicknessMix = @gyro.thicknessCurve(@ringIndex / 3)

      THREE.Math.randFloat(0.5, 1)
    )

    @motionCurve = [
      TWEEN.Easing.Elastic.Out
      TWEEN.Easing.Back.Out
      TWEEN.Easing.Exponential.Out
    ].random()

    @lightRingWidths = []
    @lightRingSpeeds = []
    for i in [1..3]
      @lightRingWidths.push THREE.Math.randFloat(0.03, 0.15)
      @lightRingSpeeds.push THREE.Math.randFloat(0.25, 0.75) * [1, -1].random()

    # Elastic curve is steeper, it needs more time to keep from being jarring.
    @animTime *= 1.5 if @motionCurve is TWEEN.Easing.Elastic.Out

    @fanAngle = THREE.Math.randFloat(10, 45).degToRad


    )


  onBeat: (beat) ->
    layer = @stack.layers[@currentRing]
    @add layer
    layer.nudge beat.duration

    @currentRing += @direction
    @currentRing = 0 if @currentRing >= @stack.layers.length
