Sphere packing problem: Pyramid design

Sphere packing problems are a maths problems which have been considered over many centuries – they concern the optimal way of packing spheres so that the wasted space is minimised.  You can achieve an average packing density of around 74% when you stack many spheres together, but today I want to explore the packing density of 4 spheres (pictured above) enclosed in a pyramid.

Considering 2 dimensions


First I’m going to consider the 2D cross section of the base 3 spheres.  Each sphere will have a radius of 1.  I will choose A so that it is at the origin.  Using some basic Pythagoras this will give the following coordinates:

Finding the centre


Next I will stack my single sphere on top of these 3, with the centre of this sphere directly in the middle.  Therefore I need to find the coordinate of D.  I can use the fact that ABC is an equilateral triangle and so:

3D coordinates

Next I can convert my 2D coordinates into 3D coordinates.  I define the centre of the 3 base circles to have 0 height, therefore I can add z coordinates of 0.  E will be the coordinate point with the same x and y coordinates as D, but with a height, a, which I don’t yet know:

In order to find I do a quick sketch, seen below:

Here I can see that I can find the length AD using trig, and then the height DE (which is my a value) using Pythagoras:

Drawing spheres

The general equation for spheres with centre coordinate (a,b,c) and radius 1 is:

Therefore the equation of my spheres are:

Plotting these on Geogebra gives:



Drawing a pyramid

Next I want to try to draw a pyramid such that it encloses the spheres.  This is quite difficult to do algebraically – so I’ll use some technology and a bit of trial and error.

First I look at creating a base for my pyramid.  I’ll try and construct an equilateral triangle which is a tangent to the spheres:

This gives me an equilateral triangle with lengths 5.54. I can then find the coordinate points of F,G,H and plot them in 3D.  I’ll choose point E so that it remains in the middle of the shape, and also has a height of 5.54 from the base. This gives the following:

As we can see, this pyramid does not enclose the spheres fully.  So, let’s try again, this time making the base a little bit larger than the 3 spheres:



This gives me an equilateral triangle with lengths 6.6.  Taking the height of the pyramid to also be 6.6 gives the following shape:


This time we can see that it fully encloses the spheres.  So, let’s find the density of this packing.  We have:

Therefore this gives:

and we also have:

Therefore the density of our packaging is:

Given our diagram this looks about right – we are only filling less than half of the available volume with our spheres.

Comparison with real data


[Source: Minimizing the object dimensions in circle and sphere packing problems]

We can see that this task has been attempted before using computational power – the table above shows the average density for a variety of 2D and 3D shapes.  The pyramid here was found to have a density of 46% – so our result of 44% looks pretty close to what we should be able to achieve.  We could tweak our measurements to see if we could improve this density.

So, a nice mixture of geometry, graphical software, and trial and error gives us a nice result.  You could explore the densities for other 2D and 3D shapes and see how close you get to the results in the table.