riemann
An n × n grid of boxes over a rectangle, each as tall as the surface at its sample point — the sum a double integral is the limit of. n is parametised, so a slider re-divides the rectangle. Space only.
riemann

#Attributes
ofThe surface the boxes stand under.
surface-ofAlso written:
underCan be written as shorthand: riemann:valuexThe rectangle along x.
yThe rectangle along y.
nHow many boxes along each side.
Default
4sampleWhere each box reads its height: the middle of its cell, or its lower or upper corner.
midpointlowerupperenumDefault
midpointcolourIts colour — orange when not given. Faces are shaded in steps of the hue by how squarely they face a light fixed to the camera.
bluelight-bluedark-blueredlight-reddark-redorangelight-orangedark-orangeyellowlight-yellowdark-yellowteallight-tealdark-tealgreenlight-greendark-greenpinklight-pinkdark-pinkpurplelight-purpledark-purplegreylight-greydark-greyneutralhex(…)rgb(…)colorDefault
orangeopacityHow solid it is, 0 to 1.
Default
0.85labelWords drawn beside it, over everything.
hiddenDeclared but not drawn — animatable, so
hidden: true !cue.to{false}(at: 2) is its reveal.Default
falselockA reader may not edit it.
Also written:
lockedDefault
falselayerAccepted for parity with the flat marks; in space the paint order is depth.
#Derived attributes
Computed while the element renders — read one with #id.name in attribute position or {{#id.name}} in prose, never set.
valueThe sum of the boxes' volumes. Cite it with
{{#id.value}}.#Examples
![Sixteen boxes under z = 16 − x² − 2y² over [0, 2] × [0, 2], each as tall as the surface at its midpoint, inside the solid they approximate.](/_next/image?url=%2Fmanual-figures%2Fexample-riemann-1.light.jpg&w=3840&q=90)
![Sixteen boxes under z = 16 − x² − 2y² over [0, 2] × [0, 2], each as tall as the surface at its midpoint, inside the solid they approximate.](/_next/image?url=%2Fmanual-figures%2Fexample-riemann-1.dark.jpg&w=3840&q=90)
graph:xyz{
solid(of: 16 - x^2 - 2 * y^2; x: [0, 2]; y: [0, 2]; opacity: 0.2)
riemann(of: 16 - x^2 - 2 * y^2; x: [0, 2]; y: [0, 2]; n: 4)
}(
x domain: [0, 2]
y domain: [0, 2]
z domain: [0, 16]
)

graph:xyz{
surface(expression: 16 - x^2 - 2 * y^2; opacity: 0.3)
riemann(of: 16 - x^2 - 2 * y^2; x: [0, 2]; y: [0, 2]; n: 8; sample: lower; colour: teal)
}(
x domain: [0, 2]
y domain: [0, 2]
z domain: [0, 16]
)