Concrete tetrapods are used to dissipate wave energy in coastal defences.
There’s a bit of a craze for making tetrapod-shaped things: recently I’ve seen people making a plush tetrapod and a tetrapod lamp. So I thought it might be fun to model one.
I found a nice way to describe tetrapods that relies on very few arbitrary aesthetic choices.
Click here to play with an animated tetrapod which I made using three.js. (You can see its source code too.)

background and reference material
There is a patent for tetrapods written by the inventors of the tetrapod, Pierre Danel and Paul Anglès d’Auriac. It says,
The half angle a at the apex of the cone corresponding to one leg is between 9° and 14° while the leg length base width ratio b/c for each leg is between 0.85 and 1.15 and is preferably substantially 1/1.
One manufacturer has a diagram suggesting a taper of 10°.
A lot of pictures of tetrapods (one, two, three) have chunky chamfers at the ends of the legs. In some cases it looked to me like the angle of the chamfer matches the angle of the edges of the tetrahedron that the tetrapod is constructed from, which is the same as the angle of the faces of the cube that enclose the tetrahedron.
a surprising experiment
So I thought I would try constructing a tetrapod from the corners of a cube inwards.
My eyeball guesstimate sketch produced a result that’s amazingly neat. It’s the main reason I’m writing this blog post!
Using build123d and CQ-editor, I started with a cube centred on the origin enclosing a tetrahedron, with a common vertex at (100,100,100). I drew a pair of circles near the common vertex, just touching the faces of the cube and edges of the tetrahedron. These circles outlined where I thought the edges of the chamfer might be.
Using a taper angle of 10°, I found another circle centred on the origin that would be the base of the leg. I drew truncated cones to make the leg and chamfer, and replicated them to the three other axes of the tetrahedron.
With a bit of fettling of the sizes of the first two circles, I had a very plausible tetrapod!
To validate this sketch, I found the diameter of the circle around the leg near the centre of the cube where it just touches the x,y,z axes, and the distance from that circle to the end of the leg.
To my surprise, the width and length of the leg both came out very close to 100!
It’s good that they are about the same, because that’s what the inventors of the tetrapod specified. That means my eyeball guesstimate got the proportions about right. What’s amazing is that they match half the side length of the cube that I started with!
recipe for a tetrapod
You can read the source code for a tetrapod drawn using three.js and play with the resulting animation.
preliminaries
-
Pick a size.
The size is the length and diameter of each tetrapod leg, half the height of the tetrapod as it is constructed balancing on two legs, and a few percent less than half the height of the tetrapod when it’s standing on three legs.
-
The tetrapod is constructed inside a cube centred at the origin, with vertices at (± size, ± size, ± size). Inside the cube is a tetrahedron, and the tetrapod’s legs point towards its vertices.
In the picture above, the cube is shaded green, and the tetrahedron is outlined with straight red lines.
-
We will construct the positive leg along its main axis, the vector from the origin to the common vertex (+size, +size, +size).
The three other legs will be cloned from the positive leg.
-
The leg is constructed from truncated cones.
A cone is described by its taper, r / a = tan(θ), where a is the distance from the apex of the cone, and r is the radius of the circular section of the cone at that distance.
Every cone’s axis is the main axis, but their apex varies.
-
A cone is truncated by a circle with radius r and distance d from the origin along the main axis.
(Note that the apex distance a and origin distance d differ when the apex of the cone is not at the origin.)
-
We need two scaffolding cones.
The axis cone has its apex at the orign and its sides just touch the x,y,z axes.
axis_taper = sqrt(2) derivationz = (0,0,1)
xyz = (1,1,1)
z · xyz = |z| |xyz| cos(θ)
1 = 1 * sqrt(3) * cos(θ)
a / h = cos(θ) = sqrt(1/3)
r² = h² − a² = |z|² − a² = 1 − 1/3
tan(θ) = r / a = sqrt(2/3) / sqrt(1/3) = sqrt(2)
The face cone has its apex at the common vertex. Its sides just touch the faces of the cube along the same lines as the edges of the tetrahedron.
apex_d = size * sqrt(3) face_taper = sqrt(1/2) derivationxy = (1,1,0)
xyz = (1,1,1)
xy · xyz = |xy| |xyz| cos(θ)
2 = sqrt(2) * sqrt(3) * cos(θ)
a / h = cos(θ) = sqrt(2/3)
r² = h² − a² = |xy|² − a² = 2 − 2*2/3
tan(θ) = r / a = sqrt(2/3) / sqrt(4/3) = sqrt(1/2)
circles
The leg is constructed from four circles: waist, thigh, ankle, sole. In the picture above, you can see the thigh, ankle, and sole circles outlined in red. The waist is hidden inside.
As required by the inventors of the tetrapod, our chosen size is equal to the diameter of the thigh, and to the distance between the thigh and the sole.
The foot of the tetrapod, between the ankle and the sole, is the chamfered part. It is a section of the face cone.
The ankle circle is chosen so that the taper of the main part of the leg is about 10°. It turns out that a nice round number, r = size / 3, makes the taper 10.41°.
To fill in the core of the tetrapod, between the thigh circles of the four legs, we will extrapolate the leg taper to find the waist circle whose centre is the origin.
Hence,
-
Locate the thigh circle from its radius in the axis cone
thigh_r = size / 2 thigh_d = 0 + thigh_r / axis_taper -
Locate the ankle circle from its radius in the face cone
ankle_r = size / 3 ankle_d = apex_d - ankle_r / face_taper -
The thigh circle and leg length determine the position of the sole circle, from which we get its radius
sole_d = thigh_d + size sole_r = (apex_d - sole_d) * face_taper -
The thigh and ankle give us the taper of the leg
leg_taper = (thigh_r - ankle_r) / (ankle_d - thigh_d) -
Extrapolate back to the origin to find the radius of the waist
waist_d = 0 waist_r = thigh_r + thigh_d * leg_taper
legs
-
Make the positive leg from two truncated cones:
one between the waist and ankle,
one between the ankle and sole.
-
To make another leg, take a copy of the positive leg and rotate it 180° about the x or y or z axis.
Do this for all three axes to get all of the legs.
The legs overlap where their waists spread out around the origin. Conveniently, the legs meet at planes, so we can clip at these planes to make a model where they don’t overlap.
The positive leg meets the other legs at the three planes through the origin with normals:
(1,1,0) (1,0,1) (0,1,1)epilogue
It almost feels like the shape of the tetrapod was discovered rather than designed.
A tetrahedron nested in a cube is a fun framework for a shape. Using half the cube’s side length to determine the length and width of the legs seems like a natural choice, and a third of the side length for the taper is a plausible option that turns out quite elegant.
Maybe the chamfer at the foot is designed? I like the way it both hints at the cube from which it was constructed, and presumably has good engineering properties such as making the corner less prone to damage and easier to remove from its mould.
One thing I have not yet managed to work out (except by punting the problem to a CAD kernel) is exactly what ellipse is formed where the legs intersect. Investigations continue…
.png)


