Variational algorithms that control the lengths of grid lines, cell areas, and the orthogonality of grid lines can be used for generating boundary-conforming grids on surfaces. Additional geometric control is provided by using a reference grid, while solution adaptivity is achieved by using weights. In a typical application, the reference grid can be used to produce an exponential compression of the grid at a boundary, while the solution adaptive weights are used to make the grid spacing inversely proportional to the gradient (when the gradient is large) of some solution being computed on the grid. The grid is adapted on both the interior and boundary of the surface. The algorithm performs these tasks with exceptional precision, as demonstrated in the examples presented here. © 1992.