# Easing Previously, we use [Timer](https://docs.rs/bevy/latest/bevy/time/struct.Timer.html)s to move a shape smoothly (or periodically). Sometimes, we need the movement to speed up or slow down. This is often called *easing*. A famous technique to perform easing is [Bezier curve](https://en.wikipedia.org/wiki/B%C3%A9zier_curve). In the following example, we make a circle going up quickly and then going down slowly. This is done by [CubicCurve](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html). We create a resource `MyCurve` that contains [CubicCurve](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html)<[Vec3](https://docs.rs/bevy/latest/bevy/math/struct.Vec3.html)>. ```rust #[derive(Resource)] struct MyCurve(CubicCurve); impl Default for MyCurve { fn default() -> Self { let points = [ [ vec3(0., -100., 0.), vec3(0., 200., 0.), vec3(0., 50., 0.), vec3(0., -100., 0.), ] ]; let curve = CubicBezier::new(points).to_curve(); Self(curve) } } ``` To construct a [CubicCurve](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html), we first initialize a [CubicBezier](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicBezier.html) and then turn the [CubicBezier](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicBezier.html) (by its method [to_curve()](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicBezier.html#method.to_curve)) to [CubicCurve](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html). The [CubicBezier](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicBezier.html) takes an array of sets of points in its initialization (`CubicBezier::new(points)` here). Note that the variable `points` is an array of arrays, which means an array of point sets. Each set of points should contain four points. For simplicity, we use only one set of points here. Next, we use the method [position](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html#method.position)\(`t`) of [CubicCurve](https://docs.rs/bevy/latest/bevy/math/cubic_splines/struct.CubicCurve.html) to help us computing the actual position of the shape at time `t`. Since we only have one set of points, the range of `t` is between 0 and 1. ```rust fn circle_moves( time: Res