diff --git a/Sample/HardParticle/Pyramid6.cpp b/Sample/HardParticle/Pyramid6.cpp
index 5dbfd26040d8bbf699c89b32b59f411780b23687..a06441227ddf7a0e84d1fe46d7f8377a524a1469 100644
--- a/Sample/HardParticle/Pyramid6.cpp
+++ b/Sample/HardParticle/Pyramid6.cpp
@@ -63,7 +63,7 @@ std::string Pyramid6::validate() const
     double bs = b / 2;
     double bc = b * sqrt(3) / 2;
 
-    double zcom = m_height * (.5 - 2 * r / 3 + r * r / 4) / (1 - r + r * r / 3); // center of mass
+    double zcom = m_height / 4 * (a * a + 2 * a * b + 3 * b * b) / (a * a + a * b + b * b);
 
     setPolyhedron(topology, -zcom,
                   {// base: