Strange Gravity es-419 Explainer

Explicador de Gravedad extraña

Objetivo de este acertijo: Hacer que el objeto azul regular caiga como el objeto verde extraño.
Tutorial de la solución: Si te dieran 1 minuto para mover tu teléfono de un lado de la habitación al otro, podrías hacerlo de muchas maneras: moverlo ahí muy rápido y luego esperar, moverlo suave y lentamente a lo largo, comenzar lentamente y acelerar la velocidad a medida que se agota el tiempo o incluso, dos pasos hacia delante y un paso hacia atrás todo el trayecto. Todas esas formas diferentes para moverse por la habitación son como la aceleración de tu transición. La llamada de aceleración toma un argumento: una función de la biblioteca d3. d3.easeQuadIn comienza lento y acelera, al igual que la gravedad en la Tierra, mientras que d3.easeCubicOut comienza rápido y luego baja la velocidad. Para resolver el acertijo, debes reemplazar la función de aceleración para blueCircle con la misma función de aceleración que greenCircle.
Solución del código de ejemplo:
(Pulsa a continuación para revelar)

function drop() {
  blueCircle.transition()
    .duration(1000)
    .attr('cy', 180)
    .ease(d3.easeCubicOut);
  greenCircle.transition()
    .duration(1000)
    .attr('cy', 180)
    .ease(d3.easeCubicOut);
}
d3.selectAll('circle')
  .on('click',drop);

Conceptos de JavaScript: bloque de código (función), expresión de miembro, identificadores
Conceptos de D3: .transition(), .duration(), .attr(‘cy’,), .ease()
Código adicional (código oculto que se ejecuta antes del código del acertijo):

var floor = svg.append('rect').attr('fill','slategrey').attr('x',0).attr('y',205).attr('width',300).attr('height',50);
var blueCircle = svg.append('circle').attr('fill','aqua').attr('r',25).attr('cx',100).attr('cy',30);
var greenCircle = svg.append('circle').attr('fill','limegreen').attr('stroke','lime').attr('stroke-width',3).attr('r',25).attr('cx',175).attr('cy',30);