init = { time = 0 } type Msg = Tick Float GetKeyState update msg model = case msg of Tick t _ -> { model | time = t } fun t x = let angle = sin (0.1 * t) * x * 2 * pi / (toFloat numCircles) in circle 5 |> filled (hsl angle 1 0.5) |> move (50 * sin angle,50 * cos angle) numCircles : Int numCircles = 20 myShapes model = List.range 0 numCircles |> List.map toFloat |> List.map (fun model.time)