  We provide a new method to approximate a (possibly discontinuous) function
using Christoffel-Darboux kernels. Our knowledge about the unknown multivariate
function is in terms of finitely many moments of the Young measure supported on
the graph of the function. Such an input is available when approximating weak
(or measure-valued) solution of optimal control problems, entropy solutions to
non-linear hyperbolic PDEs, or using numerical integration from finitely many
evaluations of the function. While most of the existing methods construct a
piecewise polynomial approximation, we construct a semi-algebraic approximation
whose estimation and evaluation can be performed efficiently. An appealing
feature of this method is that it deals with non-smoothness implicitly so that
a single scheme can be used to treat smooth or non-smooth functions without any
prior knowledge. On the theoretical side, we prove pointwise convergence almost
everywhere as well as convergence in the Lebesgue one norm under broad
assumptions. Using more restrictive assumptions, we obtain explicit convergence
rates. We illustrate our approach on various examples from control and
approximation. In particular we observe empirically that our method does not
suffer from the the Gibbs phenomenon when approximating discontinuous
functions.
