An extension of Chebfun to two dimensions. Chebfun is an object-oriented system that was designed on MATLAB for efficient handling of univariate scalar functions, and was first presented by Z. Battles and the second author [SIAM J. Sci. Comput. 25, No. 5, 1743–1770 (2004; Zbl 1057.65003)]. In this paper the reader is introduced to Chebfun2, an extension of Chebfun to represent and manipulate scalar-valued functions of two variables (Chebfun2 objects) and vector-valued functions with two components (Chebfun2v objects), all of them defined on rectangles. An essential point of this system is that the scalar functions are represented in terms of sums of functions of the form u(y)v(x) (low rank approximants), where u(y) and v(x) are univariate functions which in turn are represented as Chebfun objects. The so-called low rank approximations are constructed using an iterative algorithm that is, in a sense, equivalent to the Gaussian elimination with full pivoting. According to the authors, the applicability of this approach relies on a practical fact: an important number of functions of two variables is of low rank or can be approximated by one of this type. For example, the global minimum of a complicated function that can be written as one of rank 4 is found. The paper also discusses the role of the Chebfun2 technology in some relevant issues as global optimization, singular value decomposition, root finding, and vector calculus.