{
  "capability_id": "math.geometry.solid",
  "tool_id": "solid-geometry",
  "engine": "solid-geometry",
  "calculation_version": "1.18.2",
  "generated_at": "2026-10-29T07:58:56.685Z",
  "engine_build": "2026-10-20",
  "test_count": 118,
  "passed": 115,
  "failed": 3,
  "tests_summary": {
    "golden": {
      "passed": 43,
      "total": 43
    },
    "boundary": {
      "passed": 25,
      "total": 25
    },
    "property": {
      "passed": 47,
      "total": 50
    }
  },
  "engine_tested": false,
  "expert_reviewed": false,
  "internally_reviewed": false,
  "review_kind": null,
  "source_checked": true,
  "reviewed_by": null,
  "reviewer_role": null,
  "last_reviewed": null,
  "expert_review": {
    "status": "optional_not_performed",
    "reviewer": null,
    "scope": [
      "formula",
      "input semantics",
      "assumptions",
      "limitations",
      "sources",
      "tests"
    ],
    "note": "Domain expert review is optional under CVP (CVP-EXP-01). Absence does not block CVP Verified. See Review policy for supplemental domain assurance."
  },
  "internal_review": {
    "status": "not_applicable",
    "reviewer": null
  },
  "page": "https://www.calculatorx.com/calc/math/solid-geometry",
  "api": "https://www.calculatorx.com/api/v1/calc/solid-geometry",
  "schema_input": "https://www.calculatorx.com/schemas/math.geometry.solid.input.json",
  "schema_output": "https://www.calculatorx.com/schemas/math.geometry.solid.output.json",
  "assumptions": [
    "Euclidean 3-space",
    "The Result Card includes an engine-linked 2-D generating section or silhouette of the published lengths. Not a 3-D mesh. Same pack as REST/MCP.",
    "Right solids; not oblique",
    "Ring torus R > r",
    "Not the circle-only page",
    "Not a vector",
    "Not ISO 5167-5",
    "Not a sphere page for ellipsoid",
    "Not CAS"
  ],
  "limitations": [
    "Right solids only; not oblique",
    "Not the circle-only page — 2-D circle stays on math.geometry.circle",
    "Not a vector — math.vector is R²/R³ algebra",
    "Not ISO 5167-5 cone meter (physics.fluid.iso_cone)",
    "Torus is a ring torus: major R > tube r; horn/spindle out of scope",
    "Right circular frustum needs R,r,h>0; r=R recovers a cylinder; not a cone page",
    "Right rectangular prism needs a,b,h>0; a=b=h is a cube; not a frustum page",
    "Right rectangular pyramid needs a,b,h>0; V=abh/3; apex above the base center; a=b is a square base; not a prism page",
    "Regular tetrahedron needs a>0; V=a³√2/12, A=a²√3; not a rectangular pyramid page",
    "Regular octahedron needs a>0; V=(√2/3)a³, A=2√3 a²; not a tetrahedron page",
    "Regular icosahedron needs a>0; V=(5/12)(3+√5)a³, A=5√3 a²; not an octahedron page",
    "Regular dodecahedron needs a>0; V=(1/4)(15+7√5)a³, A=3√(25+10√5) a²; not an icosahedron page",
    "Regular n-gon prism needs integer n≥3 and s,h>0; base from math.geometry.plane; n=4 matches a square rectangular prism; not /prism; not an n-gon pyramid",
    "Regular n-gon pyramid needs integer n≥3 and s,h>0; V=A h/3 with A from math.geometry.plane; n=4 matches a square rectangular pyramid; not /pyramid; not a tetrahedron; not /regular-frustum",
    "Regular n-gon frustum needs integer n≥3 and s,t,h>0; V=h/3(A+a+√(Aa)) with A,a from math.geometry.plane; s=t recovers a regular prism; lateral faces from the plane isosceles trapezoid; not /frustum; not /regular-pyramid",
    "Ellipsoid needs a,b,c>0; V=4/3 πabc; surface is the exact elliptic-integral / spheroid model numerically evaluated (modulus k, not m=k²); axes sorted internally; a=b=c is a sphere; not /sphere; not the 2-D ellipse",
    "Spherical cap needs r>0 and 0<h≤2r; V=(1/3)πh²(3r−h); h=r is a hemisphere; h=2r is a sphere; not /sphere; not a spherical zone",
    "Spherical zone needs a,b,h>0; V=(πh/6)(3a²+3b²+h²); r recovered; a=b is symmetric; not /spherical-cap; not /sphere; not a spherical wedge",
    "Spherical wedge needs r>0 and 0<θ≤360°; V=(2/3)r³θ with θ in radians; θ=180° is a hemisphere; θ=360° is a sphere; not /spherical-cap; not /spherical-zone; not /sphere; not a spherical lune",
    "Spherical lune needs r>0 and 0<θ≤360°; A=2r²θ with θ in radians; θ=180° is a hemisphere surface; θ=360° is a sphere; not /spherical-wedge; not /spherical-cap; not /spherical-zone; not /sphere; not a spherical sector",
    "Spherical sector needs r>0 and 0<h≤2r; V=(2/3)πr²h; a=√(h(2r−h)); A=πr(2h+a); h=r is a hemisphere; h=2r is a sphere; not /spherical-cap; not /cone; not /sphere; not /spherical-wedge; not /spherical-lune",
    "unknown mode (including cas, vector, iso-cone) → INVALID_MODE"
  ],
  "boundary_conditions": [
    "r ≤ 0 or h ≤ 0 or R ≤ 0 or a ≤ 0 or b ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "torus R ≤ r → INVALID_INPUT",
    "frustum R ≤ 0 or r ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "prism a ≤ 0 or b ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "pyramid a ≤ 0 or b ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "tetrahedron a ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "octahedron a ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "icosahedron a ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "dodecahedron a ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "regular_prism n < 3 → INVALID_INPUT",
    "regular_prism s ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "regular_pyramid n < 3 → INVALID_INPUT",
    "regular_pyramid s ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "regular_frustum n < 3 → INVALID_INPUT",
    "regular_frustum s ≤ 0 or t ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "ellipsoid a ≤ 0 or b ≤ 0 or c ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "spherical_cap h > 2r → INVALID_INPUT",
    "spherical_zone a ≤ 0 or b ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "spherical_wedge r ≤ 0 or θ ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "spherical_wedge θ > 360° → INVALID_INPUT",
    "spherical_lune r ≤ 0 or θ ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "spherical_lune θ > 360° → INVALID_INPUT",
    "spherical_sector r ≤ 0 or h ≤ 0 → VALUE_MUST_BE_POSITIVE",
    "spherical_sector h > 2r → INVALID_INPUT",
    "unknown mode → INVALID_MODE"
  ],
  "sources": [
    {
      "title": "ISO 80000-2:2019 Quantities and units — Mathematics",
      "url": "https://www.iso.org/standard/64973.html",
      "supports": "Mathematical symbols and notation. This standard is not numerical verification or an endorsement of this implementation.",
      "kind": "standard",
      "publisher": "International Organization for Standardization",
      "reference_scope": "all"
    },
    {
      "title": "NIST DLMF §19.2 Incomplete elliptic integrals",
      "section": "19.2(ii) Legendre’s integrals F(φ,k) and E(φ,k)",
      "url": "https://dlmf.nist.gov/19.2",
      "supports": "Ellipsoid triaxial surface uses incomplete F and E with modulus k, not parameter m = k²",
      "kind": "reference",
      "accessed": "2026-09-21",
      "publisher": "National Institute of Standards and Technology",
      "reference_scope": "numerical_behavior",
      "oracle_class": "O1"
    },
    {
      "title": "Euclid’s Elements — XIII.13: Tetrahedron",
      "url": "https://mathcs.clarku.edu/~djoyce/elements/bookXIII/propXIII13.html",
      "supports": "Construction and edge-to-circumsphere geometry of the regular tetrahedron. Face areas are obtained from triangle or regular-pentagon geometry; volume is the sum of pyramids from the center to the faces. These area and volume expressions are derived from the construction and the separately cited pyramid-volume method. Mathematical reference only; not validation or endorsement of this implementation.",
      "kind": "reference",
      "publisher": "Clark University, David E. Joyce edition"
    },
    {
      "title": "Euclid’s Elements — XIII.14: Octahedron",
      "url": "https://mathcs.clarku.edu/~djoyce/elements/bookXIII/propXIII14.html",
      "supports": "Construction and edge-to-circumsphere geometry of the regular octahedron. Face areas are obtained from triangle or regular-pentagon geometry; volume is the sum of pyramids from the center to the faces. These area and volume expressions are derived from the construction and the separately cited pyramid-volume method. Mathematical reference only; not validation or endorsement of this implementation.",
      "kind": "reference",
      "publisher": "Clark University, David E. Joyce edition"
    },
    {
      "title": "Euclid’s Elements — XIII.16: Icosahedron",
      "url": "https://mathcs.clarku.edu/~djoyce/elements/bookXIII/propXIII16.html",
      "supports": "Construction and edge-to-circumsphere geometry of the regular icosahedron. Face areas are obtained from triangle or regular-pentagon geometry; volume is the sum of pyramids from the center to the faces. These area and volume expressions are derived from the construction and the separately cited pyramid-volume method. Mathematical reference only; not validation or endorsement of this implementation.",
      "kind": "reference",
      "publisher": "Clark University, David E. Joyce edition"
    },
    {
      "title": "Euclid’s Elements — XIII.17: Dodecahedron",
      "url": "https://mathcs.clarku.edu/~djoyce/elements/bookXIII/propXIII17.html",
      "supports": "Construction and edge-to-circumsphere geometry of the regular dodecahedron. Face areas are obtained from triangle or regular-pentagon geometry; volume is the sum of pyramids from the center to the faces. These area and volume expressions are derived from the construction and the separately cited pyramid-volume method. Mathematical reference only; not validation or endorsement of this implementation.",
      "kind": "reference",
      "publisher": "Clark University, David E. Joyce edition"
    },
    {
      "title": "NIST DLMF — 19.33 Triaxial Ellipsoids",
      "section": "19.33(i), equations 19.33.1–19.33.3",
      "url": "https://dlmf.nist.gov/19.33",
      "supports": "Ellipsoid volume V = 4πabc/3 and exact surface-area expressions in symmetric and Legendre elliptic integrals. An approximate displayed area, where offered, must be distinguished from these exact identities. Mathematical reference only; not validation or endorsement of this implementation.",
      "kind": "reference",
      "publisher": "National Institute of Standards and Technology"
    },
    {
      "title": "Gilbert Strang, Calculus — Chapter 8: Applications of the Integral (MIT OpenCourseWare)",
      "section": "§§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §8.5 Masses and Moments, exercises 24–29 §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area §§8.1–8.3 Areas and Volumes by Slices, Curve Length and Surface Area",
      "url": "https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/mitres_18_001_f17_ch08.pdf",
      "supports": "Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Pappus’s volume and surface-area theorems, with a torus volume exercise. For a disk of radius r whose center is distance R>r from the axis, V = 2π²Rr²; for its boundary circle the surface theorem gives S = 4π²Rr². These expressions apply the stated centroid theorems. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX. Cross-section integration V = ∫A(z) dz and the surface-of-revolution integral ∫2πf(x)sqrt(1+f′(x)²) dx, with sphere, cone and cylinder applications. Constant sections give prism volume; similar sections give pyramid/frustum volume; integrating a circular profile gives cap area and volume, and differences of caps give spherical zones. Flat end faces are added separately where specified. These composite formulas are derived applications, not individually tabulated implementation checks. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "Wellesley-Cambridge Press; hosted by MIT OpenCourseWare"
    },
    {
      "title": "Gilbert Strang, Calculus — Chapter 1: Introduction to Calculus (MIT OpenCourseWare)",
      "section": "§1.5 A Review of Trigonometry",
      "url": "https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/mitres_18_001_f17_ch01.pdf",
      "supports": "Right-triangle definitions of sine, cosine and tangent, the sine/cosine identities, and the law-of-cosines and parallelogram exercises 31–32. Chord length follows by bisecting the radii triangle. Regular-polygon apothems and areas follow by splitting the polygon into equal triangles. The law of sines follows by equating a triangle’s altitude computed from either adjacent side; SSA can give two triangles. These applications are derived from the stated relations. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "Wellesley-Cambridge Press; hosted by MIT OpenCourseWare"
    },
    {
      "title": "Gilbert Strang, Calculus — Chapter 14: Multiple Integrals (MIT OpenCourseWare)",
      "section": "§14.4 Cylindrical and Spherical Coordinates",
      "url": "https://ocw.mit.edu/courses/res-18-001-calculus-fall-2023/mitres_18_001_f17_ch14.pdf",
      "supports": "Spherical coordinates and volume element ρ² sin(φ) dρ dφ dθ. Restricting azimuth to α gives a wedge α/(2π) of a ball and the corresponding surface lune. Radial integration to r with polar angle φ₀ and h=r(1−cos φ₀) gives spherical-sector volume 2πr²h/3. These formulas are derived applications; cap and cone surfaces use the separate surface reference. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.",
      "kind": "reference",
      "publisher": "Wellesley-Cambridge Press; hosted by MIT OpenCourseWare"
    }
  ],
  "methods": [
    "Right solids: closed Euclidean identities in IEEE-754 binary64",
    "Ellipsoid exactness: volume closed identity; surface exact elliptic-integral / spheroid model, numerically evaluated",
    "Ellipsoid algorithm: sort p≥q≥r; sphere 4πp²; oblate artanh; prolate arcsin; else Carlson RF/RD → F(φ,k), E(φ,k) with modulus k",
    "Ellipsoid singularity_policy: a=b=c uses 4πa² so 1/sinφ is never evaluated at φ=0",
    "Ellipsoid independent_oracle: 2-D parametric surface quadrature (O2) plus Legendre-integrand F,E for the k vs m convention"
  ],
  "fingerprint": "sha256:208608ac89909b87aa07967b9e518ab8a6872a461cc1b76f992a0c8cb301c365",
  "tier": "candidate",
  "verification": {
    "tests": {
      "passed": 115,
      "total": 118,
      "golden": 43,
      "boundary": 25,
      "property": 50
    },
    "contract_checks": {
      "passed": 5,
      "total": 5
    }
  },
  "evidence_core_generated_at": "2026-10-20T09:27:20.912Z",
  "rendered_at": "2026-10-29T07:58:56.685Z",
  "release_integrity": {
    "status": "verified",
    "scope": "workspace",
    "production_attestation_required": true,
    "calculation_version": "1.18.2",
    "artifacts": {
      "engine": "1.18.2",
      "page": "1.18.2",
      "capability": "1.18.2",
      "evidence": "1.18.2",
      "input_schema": "1.18.2",
      "output_schema": "1.18.2",
      "mcp_contract": "1.18.2"
    },
    "digests": {
      "input_schema_sha256": "db19d6c257ee1123c2d46840211c026635821090f00e0d6c78169f6dec34f0b2",
      "output_schema_sha256": "4f0be3ad1c62cb01970b4a71e161a88087355b79c68af1d651fd99d1e74ff069",
      "evidence_sha256": "4c2ca2cc91df756e89e03a0a3af0fcdd1effa36f1b77ed312bd0278e831a5162",
      "evidence_core_sha256": "4c2ca2cc91df756e89e03a0a3af0fcdd1effa36f1b77ed312bd0278e831a5162",
      "capability_sha256": "c652c5012f23f7424b338e0d95d53cd5644c09771acf72d98d7ea106bb1d7a2c",
      "engine_sha256": "c6ebd8436f08b413e1ac6317b2d48550f2e6639a90dff254244e3aa562158b8d",
      "mcp_contract_sha256": "a7e9b259b340e28a7f3f67b87f47d3ec9c44f27cd2956b43765dcb3344452a32"
    },
    "contract_checks": {
      "total": 5,
      "passed": 5,
      "failed": 0,
      "items": [
        {
          "id": "release-artifacts-aligned",
          "status": "pass",
          "detail": "1.18.2"
        },
        {
          "id": "schema-output-required-declared",
          "status": "pass"
        },
        {
          "id": "schema-valid-input-executes",
          "status": "pass"
        },
        {
          "id": "engine-success-output-validates-schema",
          "status": "pass"
        },
        {
          "id": "rest-success-payload-validates-schema",
          "status": "pass"
        }
      ]
    },
    "report": "https://www.calculatorx.com/.well-known/calculatorx-release-integrity.json"
  },
  "tests": [],
  "disclosure": {
    "policy": "calculatorx-public-evidence-v1",
    "full_validation": "private",
    "representation": "summary"
  }
}
