sage: x_range = (0, 1)
sage: y_range = (0, 1)
sage: in_domain = lambda x, y: 0 < y < x < 1
sage: def f(x, y):
....: if in_domain(x, y):
....: return x^2 + y^2
....: return float('nan')
....:
sage: plot3d(f, x_range, y_range)
sage: plot3d(f, x_range, y_range, viewer="threejs")