Hi Paolo,
That doesn't totally accomplish your goal though, you still want to perform some math with the vertices of those shapes to get the centroids of the ridges. It can be useful to plug the voronoi polytope information into a different library that is made to do calculations with shapes. I can recommend the `coxeter` package (
https://coxeter.readthedocs.io/en/latest/package-shapes.html) for working with shapes. Here is a simplified example of a script that uses `coxeter` to do something close to what I think you want:
```
import freud
import coxeter
voro = freud.locality.Voronoi()
voro.compute(system) # I'm assuming you've defined your system already
list_voronoi_vertices = voro.polytopes
### Now use coxeter to compute the ridge centroids ###
ridge_centroids = []
for shape_vertices in list_voronoi_vertices:
# make the 3D voronoi shape
shape = coxeter.shapes.ConvexPolyhedron(shape_vertices)
list_face_vertices = shape.faces
# on each 3D shape, get the 2D shape defining the ridge between the neighbors
for face_vertices in list_face_vertices:
ridge_shape = coxeter.shapes.ConvexPolygon(face_vertices)
ridge_centroids.append(ridge_shape.centroid)
```
Hope this helps, let me know if you have any more questions about the `Voronoi` class or need help using `coxeter`.
Best,
Tommy