drawChildren(oldProps, newProps, ctx) {
    const {
      children,
      innerHeight,
      innerWidth,
      marginBottom,
      marginLeft,
      marginRight,
      marginTop
    } = newProps;
    if (!ctx) {
      return;
    }

    const childrenShouldAnimate = children.find(child => child.props.animation);

    const height = innerHeight + marginTop + marginBottom;
    const width = innerWidth + marginLeft + marginRight;
    const layers = buildLayers(
      newProps.children,
      oldProps ? oldProps.children : []
    );
    // if we don't need to be animating, dont! cut short
    if (!childrenShouldAnimate) {
      drawLayers(ctx, height, width, layers);
      return;
    }

    engageDrawLoop(ctx, height, width, layers);
  }
Check that we can and should be animating, then kick off animations as apporpriate
@param {Object} newProps the new props to be interpolated to
@param {Object} oldProps the old props to be interpolated against
@param {DomRef} ctx the canvas context to be drawn on.
@returns {Array} Object for rendering