The Lego architecture photo blog Archbrick Daily recently featured this Micropolis City Swim Center by Little Brick Root:

Unusually for a Lego model (or for a real world building, for that matter) the structure is at an angle relative to the base. Of course you can do that sort of thing by covering the base with flat tiles, except for one single stud:

Then the structure can be at any angle, rotating around that stud. For that matter you could cover the entire base with flat tiles and just put the structure on top in any position or orientation, but that’s rather susceptible to jostling, isn’t it? So is the single stud connection, though less so.

(There also are Lego pieces with built in angles, such as this one:

But let’s just consider normal rectilinear bricks and plates for now.)

But maybe you want a rigid connection. If you happen to want an angle of, oh, I don’t know, let’s say 36.87°, you can do that, Make a base with two studs three rows and four columns apart:

The distance in stud units between the two studs is $\sqrt{3^2+4^2}=5$, an integer, so for instance a 1 by 6 brick can be placed on the two studs. If you want other angles you can look for other primitive Pythagorean triples to use. (Primitive meaning it’s not just another triple scaled up: (6, 8, 10), for instance, is a triple, but it’s just twice (3, 4, 5), and makes the same angle.)

The angles you get have rational values for their sine, cosine, and tangent. If you want 45°, you’re out of luck; sin(45°) is irrational. You can get pretty close, though, with for instance the triple (20, 21, 29). That gives an angle of 43.60°.

But if you want a small angle, like the Swim Center model, what do you do? Another way to think about it is, you want a triangle where the long side is nearly as long as the hypotenuse. With Pythagorean triples, the best you can get is a hypotenuse 1 unit longer than the long side.

A general formula for triples is $a=v^2-u^2, b=2uv, c=v^2+u^2$ where $u$ and $v>u$ are coprime and opposite parity (one even, one odd). Here obviously the smallest difference between $a$ and $c$ is 2, so we want $c-b = 1 = v^2+u^2-2uv = (v-u)^2$. So $v=u+1$ and $a=2u+1, b=2u^2+2u, c=2u^2+2u+1$. The first several of these are:

 u a b c angle 1 3 4 5 36.87° 2 5 12 13 22.62° 3 7 24 25 16.26° 4 9 40 41 12.68°

You can see you have to make a fairly large model if you want a rigid angle of less than 10° — more than 40 studs wide, if you use conventional plates and bricks. There are “jumper” plates, though, that give access to half integer spacing, meaning you’d need only half the width.

You can get smaller angles by stacking triples. For instance, you can mount a plate at 36.87° to the base using (3, 4, 5), then mount a plate to that at -16.26° using (7, 24, 25), then mount a plate on top of that also at -16.26° giving a net angle of 4.35°. The stacked plates can hide inside the structure so all you see is the base and the structure rotated 4.35°.

The ground floor of the Swim Center is 24 studs wide, meaning the largest distance between stud receivers is 46 half studs, accommodating no triples with angles smaller than 12.68°. The actual angle of the model is about 5°. So maybe Little Brick Root used angled Lego pieces (I don’t know of any with that small an angle, but maybe) or stacked triples, or maybe (mostly likely is my guess) only a single stud connection to the base. But not a rigid connection based on a single triple, that’s for sure.

## One thought on “Skew your Legos”

1. Ironically enough, the (most plausible) actual solution doesn’t require Pythagorean triples at all!

Here’s what you need to do:
1) Place two studs at a distance of N units left to right, with the right stud 1 unit further back
2) Put them into holes N units apart left to right, with the left hole 1 unit further back
3) Enjoy your rigid skew angle of roughly 2/N radians (about 5° if the N is the entire length of the model)

Of course, this would require at least (nearly) 2 studs worth of skew, and I don’t think the skew is large enough in the pictured figure.
But surely there’s a slightly more complicated trick that would work anyway.