WOLFRAM

Enable JavaScript to interact with content and submit forms on Wolfram websites. Learn how
Wolfram Language & System Documentation Center

SphericalShell [c,{rinner,router}]

represents a filled spherical shell centered at c with inner radius rinner and outer radius router.

Details and Options
Details and Options Details and Options
Examples  
Basic Examples  
Scope  
Graphics  
Specification  
Styling  
Coordinates  
Regions  
Applications  
Properties & Relations  
Neat Examples  
See Also
Related Guides
History
Cite this Page

SphericalShell [c,{rinner,router}]

represents a filled spherical shell centered at c with inner radius rinner and outer radius router.

Details and Options

Examples

open all close all

Basic Examples  (2)

The standard spherical shell at the origin:

Wolfram Language code: SphericalShell[]
Wolfram Language code: Graphics3D[{Opacity[0.5], %}]

Volume and centroid:

Wolfram Language code: Volume[SphericalShell[{0, 0, 0}, {Subscript[r, inner], Subscript[r, outer]}]]
Wolfram Language code: RegionCentroid[SphericalShell[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3]}, {Subscript[r, inner], Subscript[r, outer]}]]

Scope  (20)

Graphics  (10)

Specification  (5)

The standard spherical shell:

Wolfram Language code: Graphics3D[{Opacity[0.5], SphericalShell[{0, 0, 0}, {1 / 2, 1}]}]

Spherical shells with different outer radii:

Wolfram Language code: Graphics3D[{Opacity[0.5], SphericalShell[{0, 0, 0}, {1 / 2, 1}], SphericalShell[{3, 0, 0}, {1 / 2, 2}]}]

Spherical shells with different inner radii:

Wolfram Language code: Graphics3D[{FaceForm[Yellow, Blue], SphericalShell[{0, 0, 0}, {1 / 2, 1}], FaceForm[Yellow, Blue], SphericalShell[{2, 0, 0}, {1 / 4, 1}]}, PlotRange -> {{-1, 3}, {-.2, 1}, {-1, 1}}]

Short form for a spherical shell with radii at the origin:

Wolfram Language code: Graphics3D[{Opacity[0.5], SphericalShell[]}, Axes -> True]

Short form for a spherical shell with radii at the origin:

Wolfram Language code: Graphics3D[{Opacity[0.5], SphericalShell[4]}, Axes -> True]

Styling  (4)

Colored spherical shells:

Wolfram Language code: Table[Graphics3D[{Opacity[0.5], c, SphericalShell[]}], {c, {Red, Green, Blue, Yellow}}]

Different properties can be specified for the front and back of faces using FaceForm :

Wolfram Language code: Graphics3D[{FaceForm[Yellow, Blue], SphericalShell[]}, PlotRange -> {{-1, 1}, {-.3, 1}, {-1, 1}}]

Spherical shells with different specular exponents:

Wolfram Language code: Table[Graphics3D[{Orange, Specularity[White, n], Opacity[0.5], SphericalShell[]}], {n, {5, 20, 100}}]

White spherical shell that glows red:

Wolfram Language code: Graphics3D[{Glow[Red], White, Opacity[0.5], SphericalShell[]}]

Opacity specifies the face opacity:

Wolfram Language code: Table[Graphics3D[{Opacity[o], SphericalShell[]}], {o, {0.3, 0.5, 0.9}}]

Coordinates  (1)

Points can be Dynamic :

Wolfram Language code: DynamicModule[{x}, {Slider[Dynamic[x], {-0.5, 0.5}], Graphics3D[{SphericalShell[], SphericalShell[Dynamic[{x, 1, 1}], 1 / 4]}]}]

Regions  (10)

Embedding dimension is the dimension of the space in which the spherical shell lives:

Wolfram Language code: RegionEmbeddingDimension[SphericalShell[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3]}, {Subscript[``r``, ``inner``], Subscript[``r``, ``outer``]}]]

Geometric dimension is the dimension of the shape itself:

Wolfram Language code: RegionDimension[SphericalShell[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3]}, {Subscript[``r``, ``inner``], Subscript[``r``, ``outer``]}]]

Membership testing:

Wolfram Language code: ℛ = SphericalShell[{0, 0, 0}, 1];
Wolfram Language code: {RegionMember[ℛ, {1, 0, 0}], RegionMember[ℛ, {0, 0, 0}], RegionMember[ℛ, {1, 1, 1}]}

Get conditions for point membership:

Wolfram Language code: RegionMember[SphericalShell[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3]}, r], {x, y, z}]

Volume:

Wolfram Language code: ℛ = SphericalShell[{0, 0, 0}, 1];
Wolfram Language code: {Volume[ℛ], RegionMeasure[ℛ]}

Centroid:

Wolfram Language code: c = RegionCentroid[ℛ]
Wolfram Language code: Graphics3D[{{Opacity[0.5], LightBlue, ℛ}, {PointSize[Large], Red, Point[c]}}]

Distance from a point:

Wolfram Language code: ℛ = SphericalShell[{0, 0, 0}, {3 / 4, 1}];
Wolfram Language code: {RegionDistance[ℛ, {1, 0, 0}], RegionDistance[ℛ, {0, 0, 0}], RegionDistance[ℛ, {1, 1, 1}]}

The equidistance contours for a spherical shell:

Wolfram Language code: ContourPlot3D[Evaluate@RegionDistance[ℛ, {x, y, z}], {x, -2, 2}, {y, 0, 2}, {z, -2, 2}, Mesh -> None, Contours -> {0.25, 0.5, 1}, BoxRatios -> Automatic]

Signed distance from a point:

Wolfram Language code: ℛ = SphericalShell[{0, 0, 0}, 1];
Wolfram Language code: {SignedRegionDistance[ℛ, {1, 0, 0}], SignedRegionDistance[ℛ, {1 / 2, 1 / 2, 1 / 2}], SignedRegionDistance[ℛ, {1, 1, 1}]}

Nearest point in the region:

Wolfram Language code: ℛ = SphericalShell[{0, 0, 0}, 1];
Wolfram Language code: {RegionNearest[ℛ, {1, 0, 0}], RegionNearest[ℛ, {1 / 2, 1 / 2, 1 / 2}]}

Nearest points to an enclosing sphere:

Wolfram Language code: spherePoints[{n_, m_}, c_, r_] := Flatten[Table[c + r{Cos[k 2π / n]Sin[l π / m], Sin[k 2π / n]Sin[l π / m], Cos[l π / m]}, {k, 0., n - 1}, {l, 0., m - 1}], 1];
Wolfram Language code: pl = spherePoints[{16, 8}, RegionCentroid[ℛ], 2]; npl = Table[RegionNearest[ℛ, p], {p, pl}];
Wolfram Language code: Legended[Graphics3D[{ℛ, {Thin, Gray, Line[Transpose[{pl, npl}]]}, {Red, Point[pl]}, {PointSize[Medium], Blue, Point[npl]}}, Lighting -> "Neutral", Boxed -> False], PointLegend[{Red, Blue}, {"start", "nearest"}]]

A spherical shell is bounded:

Wolfram Language code: BoundedRegionQ[SphericalShell[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3]}, r]]
Wolfram Language code: RegionBounds[SphericalShell[{0, 0, 0}, r]]
Wolfram Language code: ℛ = SphericalShell[{0, 0, 0}, 1];
Wolfram Language code: BoundedRegionQ[ℛ]

Find its range:

Wolfram Language code: b = RegionBounds[ℛ]
Wolfram Language code: Graphics3D[{{EdgeForm[White], Opacity[0.2, Yellow], Cuboid@@Transpose[b]}, ℛ}, Boxed -> False]

Integrate over a spherical shell region:

Wolfram Language code: ℛ = SphericalShell[{Subscript[c, 1], Subscript[c, 2], Subscript[c, 3]}, r];
Wolfram Language code: Integrate[x y z, {x, y, z}∈ℛ]

Optimize over a spherical shell region:

Wolfram Language code: ℛ = SphericalShell[{1, 2, 3}, 4];
Wolfram Language code: MinValue[{x y z - x y, {x, y, z}∈ℛ}, {x, y, z}]

Solve equations in a spherical shell region:

Wolfram Language code: ℛ = SphericalShell[{1, 2, 3}, 3];
Wolfram Language code: Reduce[x^2 + y^2 + z^2 == 1 && x - y - z == -(1/2) && z^2 == x y + (1/4) && {x, y, z}∈ℛ, {x, y, z}]

Applications  (5)

A standard Ping-Pong ball, a spherical shell, has a mass of 2.7 grams and an outer radius of 40 millimeters:

Wolfram Language code: outerradius = Quantity[40, "Millimeters"]; mass = Quantity[2.7, "Grams"];

It is made of celluloid, which has a density of . Knowing that , find the inner radius of a Ping-Pong ball:

Wolfram Language code: density = Quantity[1.4*^3, "Kilograms" / "Meters" ^ 3];
Wolfram Language code: {sol} = Solve[Volume[SphericalShell[{innerradius, outerradius}]] * density == mass, innerradius, Reals]

The thickness is the difference between the inner and outer radius:

Wolfram Language code: thickness = outerradius - innerradius /. sol

It was once believed that the universe was a system of concentric celestial spheres. At the center of the universe was Earth, and surrounding it were the spherical shells for the planets and the Sun. There was disagreement about the exact order of the planets and the Sun. Plato and Ptolemy ordered the celestial spheres differently:

Wolfram Language code: universeaccordingtoplato = {"Earth", "Moon", "Sun", "Mercury", "Venus", "Mars", "Jupiter", "Saturn"}; universeaccordingtoptolemy = {"Earth", "Moon", "Mercury", "Venus", "Sun", "Mars", "Jupiter", "Saturn"};

Visualize and compare the two philosophers' universes using a set of labeled spherical shells:

Wolfram Language code: celestialSphericalShellls = {Ball[], SphericalShell[{1, 2}], SphericalShell[{2, 3}], SphericalShell[{3, 4}], SphericalShell[{4, 5}], SphericalShell[{5, 6}], SphericalShell[{6, 7}], SphericalShell[{7, 8}]};
Wolfram Language code: Row[Graphics3D[Table[{Hue[i / 16], celestialSphericalShellls[[i]], Text[#[[i]], {0, 0, i - .5}]}, {i, 8}], PlotRange -> {{-9, 9}, {0, 9}, {-9, 9}}, ViewPoint -> Front]& /@ {universeaccordingtoplato, universeaccordingtoptolemy}]

A pearl is formed, layer by layer, by a mollusk. The pearl's optical properties come from light reflecting off many translucent layers, as opposed to only an opaque surface layer. The difference that translucent layers make can be seen by creating two sets of nested spherical shells that differ in opacity:

Wolfram Language code: layers = 30;pearl = Table[{Specularity[.3, 100], Opacity[.2], SphericalShell[{0, 0, 0}, {Sqrt[i], Sqrt[i + 1]}]}, {i, layers}]; nonpearl = Table[{Specularity[.3, 100], Opacity[1], SphericalShell[{0, 0, 0}, {Sqrt[i], Sqrt[i + 1]}]}, {i, layers}];
Wolfram Language code: Row[Graphics3D[#, PlotRange -> Sqrt[layers + 1] * {{-1, 1}, {-1, .1}, {-1, 1}}, ViewPoint -> Back]& /@ {pearl, nonpearl}]

Golf balls have multiple layers, the outer, dimpled shell, and one or more inner layers. Model the outer layer as the RegionDifference between a spherical shell and a collection of balls. Get a distribution for the dimples using the MeshCoordinates of a sphere's mesh:

Wolfram Language code: points = MeshCoordinates@DiscretizeRegion[Sphere[], MaxCellMeasure -> .02];

Discretize the region over an interval to get a "cut-away" view of half of it:

Wolfram Language code: outershell = BoundaryDiscretizeRegion[RegionDifference[SphericalShell[{0, 0, 0}, {.7, 1}], Ball[points, .1]], {{-1, 0}, {-1, 1}, {-1, 1}}, MaxCellMeasure -> .01];

Finally, make a ball for the inner core of the golf ball, offset from the center to get a visual separation of layers:

Wolfram Language code: innercore = Graphics3D[{Gray, Ball[{0.3, 0, 0}, .7]}];
Wolfram Language code: Show[outershell, innercore]

A balloon can be approximated as a spherical shell. Suppose the balloon is made of 10 units of material. Find out how the thickness depends on the outer radius of the balloon:

Wolfram Language code: t = ϵ /. First@Solve[Volume[SphericalShell[{ρ - ϵ, ρ}]] == 10, ϵ, Reals]
Wolfram Language code: Plot[t, {ρ, 1, 10}, PlotRange -> All, ImageSize -> Small, AxesOrigin -> {0, 0}]

Suppose the material is such that under the given conditions it will break if it has thickness less than . Find the largest possible outer radius balloon given that constraint:

Wolfram Language code: MaxValue[{ρ, t ≥ 0.1}, ρ]

Here are some different cases of the solution visualized:

Wolfram Language code: Graphics3D[{FaceForm[Red, Blue], Table[SphericalShell[{ρ - t, ρ}], {ρ, {2, 3, 4}}]}, PlotRange -> {All, All, {-4, 0}}]

Properties & Relations  (4)

A Ball is the limit of SphericalShell as approaches 0:

Wolfram Language code: Manipulate[Graphics3D[{FaceForm[Yellow, Blue], Ball[], SphericalShell[{2, 0, 0}, {ri, 1}]}, PlotRange -> {{-1, 3}, {0, 1}, {-1, 1}}, ImageSize -> Small], {{ri, .5}, .5, .00001}]

A Sphere is the limit of SphericalShell as goes to :

Wolfram Language code: Manipulate[Graphics3D[{Yellow, Sphere[], FaceForm[Yellow, Blue], SphericalShell[{2, 0, 0}, {ri, 1}]}, PlotRange -> {{-1, 3}, {0, 1}, {-1, 1}}, ImageSize -> Small], {{ri, .5}, .5, .9999}]

A SphericalShell is the closure of RegionDifference between two concentric Ball regions:

Wolfram Language code: Subscript[ℛ, 1] = RegionUnion[RegionDifference[Ball[{0, 0, 0}, 2], Ball[{0, 0, 0}, 1]], Sphere[{0, 0, 0}, 1]]; Subscript[ℛ, 2] = SphericalShell[{0, 0, 0}, {1, 2}];
Wolfram Language code: RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]

SphericalShell is all points less than from a sphere of radius :

Wolfram Language code: Subscript[ℛ, 1] = Sphere[{a, b, c}, (Subscript[r, o] + Subscript[r, i]) / 2]; Subscript[ℛ, 2] = SphericalShell[{a, b, c}, {Subscript[r, i], Subscript[r, o]}];
Wolfram Language code: Reduce[Subscript[∀, {Subscript[r, i], Subscript[r, o]}, 0 < Subscript[r, i] < Subscript[r, o]](RegionDistance[Subscript[ℛ, 1], {x, y, z}] ≤ (1/2) (Subscript[r, o] - Subscript[r, i])⧦RegionMember[Subscript[ℛ, 2], {x, y, z}]), {x, y, z}, Reals]

Neat Examples  (3)

Random spherical shell collections:

Wolfram Language code: Graphics3D[Table[{Opacity[.5, Hue[RandomReal[]]], SphericalShell[RandomReal[1, {3}], RandomReal[1]]}, {50}]]

Corkscrewing spherical shells:

Wolfram Language code: Graphics3D[Table[{Opacity[.5, Hue[i / 20]], SphericalShell[{2Cos[i * Pi / 5], 2Sin[i * Pi / 5], i}, 1]}, {i, 1, 20}]]

Nested spherical shells:

Wolfram Language code: Graphics3D[Table[{Opacity[.15, Hue[i / 3]], SphericalShell[{0, 0, 0}, {3i, 3i + 1}]}, {i, 1, 5}]]

See Also

Annulus   Ball   Circle   Sphere   ShellRegion

Wolfram Research (2015), SphericalShell, Wolfram Language function, https://reference.wolfram.com/language/ref/SphericalShell.html.

Text

Wolfram Research (2015), SphericalShell, Wolfram Language function, https://reference.wolfram.com/language/ref/SphericalShell.html.

CMS

Wolfram Language. 2015. "SphericalShell." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SphericalShell.html.

APA

Wolfram Language. (2015). SphericalShell. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SphericalShell.html

BibTeX

@misc{reference.wolfram_2026_sphericalshell, author="Wolfram Research", title="{SphericalShell}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/SphericalShell.html}", note=[Accessed: 12-June-2026]}

BibLaTeX

@online{reference.wolfram_2026_sphericalshell, organization={Wolfram Research}, title={SphericalShell}, year={2015}, url={https://reference.wolfram.com/language/ref/SphericalShell.html}, note=[Accessed: 12-June-2026]}

Top [フレーム]

AltStyle によって変換されたページ (->オリジナル) /