JSFiddle - React, Tailwind, and code Playground
HTML
<canvas id="canvas" width="800" height="400"></canvas>
JavaScript
var myEasing = function( k ) {
var t = (k*100);
var d = 100;
var ts=(t/=d)*t;
var tc=ts*t;
return (0.699999999999999*tc*ts + -1.75*ts*ts + 3.9*tc + -4.1*ts + 2.25*t);
};
var stage = new createjs.Stage("canvas");
createjs.Ticker.addEventListener("tick", tick);
createjs.MotionGuidePlugin.install();
var shape1 = new createjs.Shape();
shape1.graphics.f("#000000").dc(0,0,10);
var shape2 = shape1.clone();
var path1 = new createjs.Shape();
path1.graphics.beginStroke("#ff0000").mt(0,100).qt(200,0,400,100);
var path2 = path1.clone();
path2.y = 100;
stage.addChild(path1, path2, shape1, shape2);
createjs.Tween.get(shape1).to({guide:{ path:[0,100, 200,0, 400,100] }},2000, createjs.Ease.cubicInOut);
createjs.Tween.get(shape2).to({guide:{ path:[0,200, 200,100, 400,200] }},2000, myEasing);
function tick(event) {
stage.update();
}