Question: Let's say we have a 3D spherical shell specified by the command:

```
Regionplot3D[1/2<x^2+y^2+z^2<1,{x,-2,2},{y,-2,2},{z,-2,2},BoxRatios->Automatic]

```

When looking at this manifold from the outside, we see a sphere. Even projections of a sphere on a plane will not give information that this is not a sphere, but a spherical shell with a certain thickness of the shell.

I became interested in the most convenient way to display the internal structure of this manifold. It comes to mind to use `ContourSlice`. But the graph, even with the number of slices for each of the planes $=3$, can look very cumbersome and unreadable. `ScatterPlot` does not display information about the internal structure of the manifold.

Are there any special projections, plots, commands, or other ways to display the internal structure of a three-dimensional manifold in most convenient way?

Answer: 
Instead of using a predicate you could use a binary function and either "SliceDensityPlot3D" or "SliceContourPlot3D":

```
SliceContourPlot3D[
 If[1/2 < x^2 + y^2 + z^2 < 1, 1, 0], {x, -2, 2}, {y, -2, 2}, {z, -2, 
  2}, BoxRatios -> Automatic, PlotPoints -> 80]

```

[![enter image description here](https://i.stack.imgur.com/Z8hSL.png)](https://i.stack.imgur.com/Z8hSL.png)
* For arbitary 3D object,we can use `Show`+`ClipPlanes` to cut the 3D object and view it's internal.

```
Clear[plot];
plot = RegionPlot3D[
   1/2 <= x^2 + y^2 + z^2 <= 1, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}];
Manipulate[
 Show[plot, ClipPlanes -> {-1, -1, -1, c}, 
  ViewPoint -> {2, 1, 1}], {c, 0, 3}]

```

[![enter image description here](https://i.stack.imgur.com/mhDkI.gif)](https://i.stack.imgur.com/mhDkI.gif)

* 3D object define by `ParametricPlot3D`.

```
Clear[plot];
plot = ParametricPlot3D[{Cos[u], Sin[u] + Cos[v], Sin[v]}, {u, 0, 
    2 π}, {v, -π, π}];
Manipulate[
 Show[plot, ClipPlanes -> {-1, -1, -1, c}, 
  ViewPoint -> {2, 1, 1}], {c, -1, 3}]

```

[![enter image description here](https://i.stack.imgur.com/n2n5A.gif)](https://i.stack.imgur.com/n2n5A.gif)

* Another example which define by region.

```
Clear[reg];
reg = MengerMesh[2, 3];
Manipulate[
 Show[reg, ClipPlanes -> {-1, -1, -1, c}, ViewPoint -> {2, 1, 1}], {c,
   1, 3}]

```

[![enter image description here](https://i.stack.imgur.com/rNVcD.gif)](https://i.stack.imgur.com/rNVcD.gif)