Animation with slider control

using Makie
 using Colors

 """
 This example is courtesy of @neuralian through the Julia Discourse.
 https://discourse.julialang.org/t/makie-interaction-slider-with-animation/25179/10
 """

 x₀ = -5.0
 #gateState = false
 xRange = 10.0
 #  deflection
 p₀(x) = x/2.0
 # plot
 nPts = 100.0
 x = (x₀ .+ collect((-nPts/2.):(nPts/2.)) / nPts * xRange)
 scene = lines(x,  p₀(x),
          linewidth = 4,
          color = :darkcyan,
          leg = false
     )
 axis = scene[Axis]
 axis[:names][:axisnames] =  ( "x","y")

 D = Node(x₀)
 HC_handle = scatter!(lift(x->[x],  D), [2.0], marker=:circle,
       markersize = 1., color = :red)[end]

 s1 = slider(LinRange(-10.0, 0.0, 101),
   raw = true, camera = campixel!, start = -10.0)
 kx = s1[end][:value]

 scatter!(scene, lift(x->[x; x], kx), lift(x-> [0.5; p₀(x)], kx),
 marker = :hexagon,  color = RGBA(.5,0.,.5,.5),
 markersize = .35, strokewidth = .01, strokecolor = :black)

 S = Scene(resolution = (800, 600))
 hbox(scene, s1; parent = S)
 @async begin
     while !isopen(S) # wait for screen to be open
         sleep(0.01)
     end
     while isopen(S)
         p = p₀((10.0+kx[])/10.)
         gateState = rand(1)[] < p
         HC_handle[:color] = gateState ? :gold1 : :dodgerblue1
         push!(D, -3. + rand(1)[]/5.)
         sleep(0.001)
     end
 end
 RecordEvents(S, "output");