Lego Loop Limits

How can we make a circular loop out of lego bricks? For simplicity, we’ll use 2×1 bricks. The dimensions of a 2×1 brick are shown below in millimetres.
We’ll define some variables using these dimensions:
Clearance per brick end: \epsilon = 0.1 mm
Distance between pegs: m = 8.0 mm
Width: w = m - 2 \epsilon = 7.8 mm
Length: l = 2m - 2 \epsilon = 15.8 mm

If bricks are assembled in a “running bond” style, two adjacent bricks can rotate maximally by using all the available clearance space. This means that if we build a wall long enough, it can be wrapped around into a loop. The question now is, what is the minimum number of bricks we need to do this? (The figure below exaggerates this rotation.)
For any regular polygon with n sides, angles A and B are already known (see next figure below).
Center angle A is just a circle (2\pi) divided by the number of sides.
Any triangle’s angles add up to \pi.
\pi = A + 2B
Combining these equations, inner angle B is then defined in terms of the number of sides:
B = \pi/2 - \pi/n
Angle B is related to angle \theta (shown in the figure below) by:
\pi = B + \pi/4 + \theta
(The space between B and \theta is \pi/4 since the peg is centered such that it’s equidistant from the lengthwise edges and the nearest width-wise edge of the brick.)
Angle \theta can be expressed in terms of brick width w and clearance \epsilon.
In the figure below, the distance between the red point and blue point is w/\sqrt{2}, and the shortest distance from the blue point to the dashed line of symmetry is w/2 + \epsilon. So the angle \theta can be expressed as:
\text{sin}\theta = \frac{w/2+\epsilon}{w/\sqrt{2}}
\theta = \text{arcsin}(1/\sqrt{2} + \sqrt{2} \epsilon/w)
Angle B is then:
B = 3\pi/4 - \text{arcsin}(1/\sqrt{2} + \sqrt{2} \epsilon/w)

Plugging the earlier polygon formula into this equation gives a formula for n in terms of brick width and clearance:
n = \frac{\pi}{\text{arcsin}(1/\sqrt{2} + \sqrt{2} \epsilon/w)-\pi/4}

Plugging in the dimensions, we get a minimum number of sides to make a loop:
n \approx 121
and since at least 3 layers are needed to create a secure running bond, the minimum number of bricks needed is 363.
This has a corresponding angle:
\theta = 0.81136
and acute angle between bricks:
\delta = 2(\theta - \pi/4) = 0.051928

Trying this in real life, I was able to get a loop with 110 sides (330 bricks).
n_R = 110
\theta_R = 0.81396
\delta_R = 0.057120
The theoretical calculation done above only assumes a perfectly rigid lego brick.
So the difference in n may be accounted for by tolerances on the lego brick (stretching and squashing) and asymmetric angles, allowing for tighter inner angles.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s