  synthesis_context.stroke();
    synthesis_context.closePath();
    // front
    synthesis_context.beginPath();
    for(var j = 1; j < w; ++j){
        x1 = client_to_x(j-1);
        x2 = client_to_x(j);
        if(x1 > synthesis_xs[1] && x2 < synthesis_xs[2]){
            y1 = polynomial_in_x(X, x1, synthesis_n);
            y2 = polynomial_in_x(X, x2, synthesis_n);
            synthesis_context.moveTo(x_to_client(x1), y_to_client(y1));
            synthesis_context.lineTo(x_to_client(x2), y_to_client(y2)