This program renders the graph of a user-defined function z = f(x,y) as a 3D surface, with support for parsing arbitrary mathematical expressions via the math.js library. The surface is colored by height and rendered with lighting to emphasize its shape. Users can modify the function definition and domain bounds in real time.
Controls: Click and drag to orbit, scroll to zoom.