Zero does not mean empty.
On [−2, 2] × [−2, 2], the saddle f(x, y) = x² − y² has equal positive and negative contributions. Its signed integral is 0, but its absolute volume is 64/3 ≈ 21.3333.
Signed: ∬ f(x, y) dA
Absolute: ∬ |f(x, y)| dA
The absolute value of an integral is not the integral of the absolute value. Change to the bowl and the cancellation disappears.
A gradient you can inspect.
At (a, b), the engine differentiates the expression tree using the product, quotient and chain rules. It does not estimate the gradient from pixels.
∇f = (∂f/∂x, ∂f/∂y)
T(x,y) = f(a,b) + fₓ(a,b)(x−a) + fᵧ(a,b)(y−b)
For x² − y² at (0.5, 0.5), the gradient is (1, −1) and the tangent is z = x − y. At a detected cusp or singular derivative, we withhold the tangent patch.
A numerical estimate, checked twice.
The tool applies composite Simpson integration along both axes at N and 2N cells, then compares a midpoint estimate. Each comparison is shown, not hidden behind a confidence score.
Mean f = ∬ f dA ÷ rectangle area
Differences are not rigorous error bounds. Even matching grids can miss narrow peaks or rapidly oscillating functions. Increase resolution, change bounds and check against an analytic case. Tiny floating-point cancellation residuals may display as zero; JSON retains the computed values.
A small, predictable language.
Variables: x, y. Constants: pi, e. Operators: + − * / ^ and parentheses. Functions: sin, cos, exp, ln, sqrt, abs.
Powers use literal integers from −8 to 8: x^-2. Write sqrt(x), not x^0.5. All angle functions use radians. -x^2 means -(x^2). Use * explicitly; implicit multiplication and chained powers are unsupported.
No JavaScript, assignment, properties, custom functions or arbitrary code is executed.
Domain checks are conservative.
The entire rectangle is checked with interval arithmetic before sampling. A possible zero denominator or invalid log/square-root argument stops the calculation and locks exports.
Intervals may reject a valid expression such as 1/(x-x+1) because repeated variables lose their dependency. Simplify it to 1. Finite grids are not proofs of extrema, smoothness or integral accuracy.
Bounds: ±1,000; minimum span: 0.001. Expressions: 240 characters / 160 tokens. Intermediate values: ±1,000,000. Maximum mesh: 6,561 points; integration uses up to 25,921 grid points plus 6,400 midpoint evaluations.
Take the data, not a screenshot.
CSV contains the current mesh’s x, y and z samples. JSON records the expression, domain, integration estimates, refinement differences and probe. Units are abstract; no physical scale is inferred.
Everything is calculated locally. No expressions or points are uploaded or stored. The 3D view is optional: numerical results, slice charts and downloads continue if WebGL is unavailable.
Method references: OpenStax: gradients and double integrals over rectangles.
Choose your direction, not just an axis.
For the plane 2*x+3*y+1, the gradient is (2, 3). A direction of (3, 4) has unit vector (0.6, 0.8), so the directional derivative is 2 × 0.6 + 3 × 0.8 = 3.6. Reversing the direction changes the sign; multiplying both components by a positive number does not change the answer.
u = d / |d|
Dᵤf = ∇f · u
The zero vector has no direction. This only invalidates the directional result; the surface, integral and current slice CSV remain available. The dot-product rule assumes differentiability at the probe. A detected unsupported derivative is withheld.
Read height like a contour map.
Contour lines connect equal z values on the sampled triangle mesh. Nine interior levels are drawn, with z = 0 added when the surface crosses zero. A constant sampled surface has no isolated contour curves. Choose Top in the view controls to inspect the pattern.
These are piecewise-linear approximations, not symbolic solutions of f(x,y) = c. Changing resolution can change their shape. Sign colors separate negative blue, zero teal and positive gold; the two sides use their own sampled ranges.
The current-slices CSV contains 81 points along x and 81 along y, with the probe coordinates recorded on every row. It matches the current applied expression and probe.
Educational exploration, not a symbolic proof, certified engineering calculation or global optimizer. Sampled minima/maxima are not guaranteed extrema. Designed and maintained by FastTool · Method reviewed October 14, 2026 · Report an issue