Via CellGraph: sampling (sample-function.ts vs sample-surface.ts) and rendering (Canvas2D vs Three.js) differ, but the expression/params/free-var plumbing is the same. A "cross-section y" slider highlights the 3D surface's matching slice in red -- with the default expressions, that slice exactly traces the 2D pane's curve at y=0. "Export video" renders a shareable MP4/GIF of the surface with a full camera orbit, server-side via ecmanim.
Drag to orbit, scroll to zoom.