All Models of 2x4 LEGO Bricks - Findings

Introduction

This page contains a detailed breakdown of the findings from the main page. You can go directly to the models and SCC pages if you prefer. Before going into details of the findings, we briefly present the theory behind the results.

We want to count the number of models of up to six bricks. Our approach to this counting problem is to construct all possible configurations and count the models. Our solution is made possible by considering configurations as being constructed by a special kind of rectilinear configurations called SCC's. The counting problem is thus transformed into many smaller problems where combinations of SCC's are considered.

The remainder of this page is structured as follows. First we extend upon the terminology introduced on the main page in order to cover the terms used on this page. This includes the precise definition of SCC's. This is followed by an overview of the findings where we provide some intuition into the way that models are found, as well as insight into the software and its current limitations. In the remaining sections we present the raw data of our current findings.

Terminology (extended)

This section extends the terminology of the main page.

Overview of the findings

The table from the main page can be extended with the number of SCC's of different sizes.

Number of bricks 1 2 3 4 5 6
RC's (previous results) 1 24 1.560 119.580 10.166.403 915.103.765
SCC's (intermediate results) 1 20 1.004 58.862 3.817.291 261.534.637
Models (our main results) 0 0 0 1.144213.221*26.417.316*

For a given combination type our software tries out all combinations and reports the models that are found by connecting the SCC's of a combination at the connection points in any way possible. The results of these findings are presented in the sections below.

The software currently has two limitations:

  1. For some combination types the search space is too large for the program to handle. In these cases a lower bound on the number of models is found and the results are marked with an asterix (*).
  2. When finding models with three or more SCC's there are some special cases where the software can not properly identify models due to the granularity of angles which are considered. These cases are identified by the software and require human interaction (manual attention) in order to be properly counted.

We are currently working on improving upon these limitations.

Findings for 4 bricks

For configurations of size 4 the problem space is small enough for our software to find all models and report the cases that require manual attention. These cases arise from the combination types 2/1/1 and 1/1/1/1 and there are 33 cases in total. We dedicate a section for explaining how our software finds these cases, as well as a section for presenting each of the cases.

Combination type RC's (excluding SCC's) Models found by the software Cases requiring manual attention Manually added models Total models
1/1/1/1912114272116
2/1/111.98450862510
2/214.22639000390
3/133.57612800128
Totals60.6981.1403341.144

Findings for 5 bricks

For configurations of size 5 our software is simply not fast enough to compute the number of models with 4 or more SCC's. This is why we resort to a simpler piece of software which finds a lower bound on the number of models by considering far fewer angles of which the SCC's are connected at their connection points.

The cases that require manual attention are far more numerous than for configurations of size 4. We have not provided insight into the cases that require manual attention as we expect time is better spent on improving the software to significantly reduce the number of cases.

Combination type RC's (excluding SCC's) Models found by the software Cases requiring manual attention Manually added models Total models
1/1/1/1/116.260*2.436*002.436*
2/1/1/1284.320*22.447*0022.447*
2/2/1797.87659.4391.799059.439
3/1/1928.02245.2091.018045.209
3/21.873.11465.6060065.606
4/12.449.52018.0840018.084
Totals6.349.112213.221*2.8170213.221*

* These numbers are not final. The number of models represent the currently best known lower bounds.

Findings for 6 bricks

For configurations of size 6 there still are a lot of combination types for which we currently don't have the correct number of models. The problems for configurations of size 5 are only exagerated with the addition of an extra brick.

Combination type RC's (excluding SCC's) Models found by the software Cases requiring manual attention Manually added models Total models
1/1/1/1/1/1306.674*81.413*0081.413*
2/1/1/1/16.723.860*1.102.133*001.102.133*
2/2/1/131.077.959*3.140.371*003.140.371*
2/2/216.739.546*1.118.024*001.118.024*
3/1/1/123.909.698*2.048.104*002.048.104*
3/2/1117.998.790*6.124.628*006.124.628*
3/360.608.2812.789.290002.789.290
4/1/176.051.344*2.700.811*002.700.811*
4/2133.642.7565.706.242005.706.242
5/1186.510.2201.606.300001.606.300
Totals653.569.12826.417.316*0026.417.316*

* These numbers are not final. The number of models represent the currently best known lower bounds.

Cases requiring manual attention

Our software is currently only able to consider exact geometry for configurations with a single connection. This is why our results are reported as being correct for combination types for configurations with two SCC's (such as combination types 2/1, 3/3, and 5/1).

When a configuration consists of more than two SCC's, then a different algorithm is used to find models. The possible angles of a connection is divided up into a number of angles. If two configurations for neighboring angles are realizable, then the algorithm assumes that any configuration for angles between the two angles, are realizable, and thus belong to the same model. This assumption can fail by both allowing too many configurations, and too few. It is when this assumtion fails, that configurations have to be handled manually. We attempt to provide intuition for these failures, and how they are detected, in the two sections below.

When the assumption allows too much

Consider the exagerated example below where a yellow brick is connected to a red brick at two "neighboring angles" (This example is for illustrative purposes; The actual difference between angles is much, much, smaller). The algorithm will incorrectly assume that the configuration is realizable if the yellow brick is connected at any angle between the two angles shown.

Two neighboring angles for the yellow brick. The intersection with the blue brick can go unnoticed.
The figure shows two configurations: One for each angle of the connection between the red and the yellow brick. Assume that the blue brick is also connected to the configurations in some way. Assume that the two angles are neighboring. The algorithm is unable to detect that the blue brick should prevent the two configurations from belonging to the same model.

The algorithm detects cases like this by repeating the construction of configurations for bricks that are slightly larger. Informally, bricks are enlarged by an amount that is greater than the maximal difference in position for two neighboring angles. This ensures that if this case arises, then at least one of the configurations for the neighboring angles is not be realizable for the enlarged bricks. The models found for the normal sized and enlarged bricks will now differ, and the program will report the case for manual verification.

When the assumption allows too little

Consider now the opposite case where two neighboring angles do not result in realizable ocnfigurations as illustrated in the figura below. The algorithm will not detect the realizable configurations with angles between the two angles shown.

Two neighboring angles for the yellow brick. Configurations are incorrectly not detected.
The figure shows two configurations: One for each angle of the connection between the red and the yellow brick. Assume that the blue bricks are also connected to the configurations in some way. Assume that the two angles are neighboring. The algorithm is unable to detect that there are realizable configurations where the angle between the yellow and the red brick is between the two angles shown.

The algorithm detects cases like this by repeating the construction of configurations for bricks that are slightly smaller. This ensures that if this case arises, then at least one of the configurations for the neighboring angles is realizable for the smaller bricks. The models found for the normal sized and smaller bricks will now differ, and the program will report the case for manual verification.

Cases requiring manual attention for configurations of size 4

In this section we present all the cases which require manual attention. Use the table below for quick navigation. The cases which result in new models are highlighted.

#1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11
#12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #22
#23 #24 #25 #26 #27 #28 #29 #30 #31 #32 #33

Case #1

Identifier0_0_0_0_cc1082724547_angles_0_0_0
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1082724547.mpd
Technical dataThis configuration represents M-island 1/2. There are 1 L-islands in this M-island
New model identifiedNo

This configuration is rectilinear. Since a model can, by definition, not contain a rectilinear configuration, this configuration does not belong to a model. Now why would the software be confused by a configuration like this which is obviously not a model? The answer is that Case #2 was wrongfully disconnected from the set of configurations that includes this one.

Click to view 3D model

The configuration for case #1 (0_0_0_0_cc1082724547_angles_0_0_0).

Case #2

Identifier0_0_0_0_cc1082724547_angles_370_-203_-10000
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1082724547.mpd
Technical dataThis configuration represents M-island 2/2. There are 0 L-islands in this M-island
New model identifiedNo

This configuration belongs to the same set of configurations as Case #1.

Click to view 3D model

The configuration for case #2 (0_0_0_0_cc1082724547_angles_370_-203_-10000).

Case #3

Identifier0_0_0_0_cc1086860483_angles_24_-105_-7562
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1086860483.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from a larger model.

Click to view 3D model

The configuration for case #3 (0_0_0_0_cc1086860483_angles_24_-105_-7562).

Case #4

Identifier0_0_0_0_cc1095315619_angles_136_536_-9917
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataThis configuration represents M-island 1/5. There are 5 L-islands in this M-island
New model identifiedYes

This configuration belongs to the same model as the 6 other reported configurations of Case #5, Case #6, Case #7, Case #8, Case #9, and Case #10.

Click to view 3D model

The configuration for case #4 (0_0_0_0_cc1095315619_angles_136_536_-9917).

Case #5

Identifier0_0_0_0_cc1095315619_angles_169_526_8953
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataThis configuration represents M-island 2/5. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #4.

Click to view 3D model

The configuration for case #5 (0_0_0_0_cc1095315619_angles_169_526_8953).

Case #6

Identifier0_0_0_0_cc1095315619_angles_175_520_9268
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataThis configuration represents M-island 3/5. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #4.

Click to view 3D model

The configuration for case #6 (0_0_0_0_cc1095315619_angles_175_520_9268).

Case #7

Identifier0_0_0_0_cc1095315619_angles_179_517_9502
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataThis configuration represents M-island 4/5. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #4.

Click to view 3D model

The configuration for case #7 (0_0_0_0_cc1095315619_angles_179_517_9502).

Case #8

Identifier0_0_0_0_cc1095315619_angles_185_514_9882
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataThis configuration represents M-island 5/5. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #4.

Click to view 3D model

The configuration for case #8 (0_0_0_0_cc1095315619_angles_185_514_9882).

Case #9

Identifier0_0_0_0_cc1095315619_angles_172_532_9530
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #4.

Click to view 3D model

The configuration for case #9 (0_0_0_0_cc1095315619_angles_172_532_9530).

Case #10

Identifier0_0_0_0_cc1095315619_angles_178_529_9920
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1095315619.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #4.

Click to view 3D model

The configuration for case #10 (0_0_0_0_cc1095315619_angles_178_529_9920).

Case #11

Identifier0_0_0_0_cc1111569523_angles_-370_136_9640
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataThis configuration represents M-island 1/6. There are 6 L-islands in this M-island
New model identifiedYes

This configuration belongs to the same model as the 8 other reported configurations of Case #12, Case #13, Case #14, Case #15, Case #16, Case #17, Case #18, and Case #19.

Click to view 3D model

The configuration for case #11 (0_0_0_0_cc1111569523_angles_-370_136_9640).

Case #12

Identifier0_0_0_0_cc1111569523_angles_-357_176_-9320
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataThis configuration represents M-island 2/6. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #12 (0_0_0_0_cc1111569523_angles_-357_176_-9320).

Case #13

Identifier0_0_0_0_cc1111569523_angles_-356_178_-9440
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataThis configuration represents M-island 3/6. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #13 (0_0_0_0_cc1111569523_angles_-356_178_-9440).

Case #14

Identifier0_0_0_0_cc1111569523_angles_-355_180_-9552
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataThis configuration represents M-island 4/6. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #14 (0_0_0_0_cc1111569523_angles_-355_180_-9552).

Case #15

Identifier0_0_0_0_cc1111569523_angles_-354_183_-9745
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataThis configuration represents M-island 5/6. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #15 (0_0_0_0_cc1111569523_angles_-354_183_-9745).

Case #16

Identifier0_0_0_0_cc1111569523_angles_-353_186_-9934
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataThis configuration represents M-island 6/6. There are 0 L-islands in this M-island
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #16 (0_0_0_0_cc1111569523_angles_-353_186_-9934).

Case #17

Identifier0_0_0_0_cc1111569523_angles_-368_168_-9291
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #17 (0_0_0_0_cc1111569523_angles_-368_168_-9291).

Case #18

Identifier0_0_0_0_cc1111569523_angles_-365_174_-9652
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #18 (0_0_0_0_cc1111569523_angles_-365_174_-9652).

Case #19

Identifier0_0_0_0_cc1111569523_angles_-364_177_-9845
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1111569523.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from the model of Case #11.

Click to view 3D model

The configuration for case #19 (0_0_0_0_cc1111569523_angles_-364_177_-9845).

Case #20

Identifier0_0_0_0_cc1107767475_angles_-18_-157_-7453
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1107767475.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from a larger model similarly to Case #3.

Click to view 3D model

The configuration for case #20 (0_0_0_0_cc1107767475_angles_-18_-157_-7453).

Case #21

Identifier0_0_0_0_cc1107767475_angles_-17_-158_-7433
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1107767475.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from a larger model similarly to Case #3.

Click to view 3D model

The configuration for case #21 (0_0_0_0_cc1107767475_angles_-17_-158_-7433).

Case #22

Identifier0_0_0_0_cc1351161027_angles_0_0_0
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1351161027.mpd
Technical dataThis configuration represents M-island 1/2. There are 1 L-islands in this M-island
New model identifiedNo

This configuration is rectilinear similarly to Case #1.

Click to view 3D model

The configuration for case #22 (0_0_0_0_cc1351161027_angles_0_0_0).

Case #23

Identifier0_0_0_0_cc1351161027_angles_370_-203_-10000
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1351161027.mpd
Technical dataThis configuration represents M-island 2/2. There are 0 L-islands in this M-island
New model identifiedNo

This configuration belongs to the same set of configurations as the rectilinear configuration of Case #22.

Click to view 3D model

The configuration for case #23 (0_0_0_0_cc1351161027_angles_370_-203_-10000).

Case #24

Identifier0_0_0_0_cc1355356371_angles_146_-112_-935
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc1355356371.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration can not be constructed using real bricks.

Click to view 3D model

The configuration for case #24 (0_0_0_0_cc1355356371_angles_146_-112_-935).

Case #25

Identifier0_0_0_0_cc18283508915_angles_-149_-157_-1308
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc18283508915.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration is incorrectly disconnected from a larger model similarly to Case #3.

Click to view 3D model

The configuration for case #25 (0_0_0_0_cc18283508915_angles_-149_-157_-1308).

Case #26

Identifier0_0_0_0_cc18535224531_angles_0_0_0
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc18535224531.mpd
Technical dataThis configuration represents M-island 1/2. There are 1 L-islands in this M-island
New model identifiedNo

This configuration is rectilinear similarly to Case #1.

Click to view 3D model

The configuration for case #26 (0_0_0_0_cc18535224531_angles_0_0_0).

Case #27

Identifier0_0_0_0_cc18535224531_angles_370_-203_-10000
Download 3D modelsize4_sccs4_sccsizes_1_1_1_1_sccindices_0_0_0_0_cc18535224531.mpd
Technical dataThis configuration represents M-island 2/2. There are 0 L-islands in this M-island
New model identifiedNo

This configuration belongs to the same set of configurations as the rectilinear configuration of Case #26.

Click to view 3D model

The configuration for case #27 (0_0_0_0_cc18535224531_angles_370_-203_-10000).

Case #28

Identifier12_0_0_cc29896882_angles_-32768_-811
Download 3D modelsize4_sccs3_sccsizes_2_1_1_sccindices_12_0_0_cc29896882.mpd
Technical dataThis configuration represents M-island 1/1. There are 2 L-islands in this M-island
New model identifiedYes

This configuration can be built using real LEGO bricks and the model should be counted.

Click to view 3D model

The configuration for case #28 (12_0_0_cc29896882_angles_-32768_-811).

Case #29

Identifier13_0_0_cc29896882_angles_28536_2086
Download 3D modelsize4_sccs3_sccsizes_2_1_1_sccindices_13_0_0_cc29896882.mpd
Technical dataThis configuration represents M-island 1/1. There are 2 L-islands in this M-island
New model identifiedNo

After testing with real LEGO bricks, it is determined that this configuration does not belongs to a model because the model would contain a rectilinear configuration.

Click to view 3D model

The configuration for case #29 (13_0_0_cc29896882_angles_28536_2086).

Case #30

Identifier15_0_0_cc25769122_angles_32091_1063
Download 3D modelsize4_sccs3_sccsizes_2_1_1_sccindices_15_0_0_cc25769122.mpd
Technical dataThis configuration represents M-island 1/1. There are 2 L-islands in this M-island
New model identifiedNo

After testing with real LEGO bricks, it is determined that this configuration does not belongs to a model because the model would contain a rectilinear configuration. This configuration is a mirror of Case #29.

Click to view 3D model

The configuration for case #30 (15_0_0_cc25769122_angles_32091_1063).

Case #31

Identifier16_0_0_cc25769122_angles_32091_1063
Download 3D modelsize4_sccs3_sccsizes_2_1_1_sccindices_16_0_0_cc25769122.mpd
Technical dataThis configuration represents M-island 1/1. There are 2 L-islands in this M-island
New model identifiedYes

This configuration can be built using real LEGO bricks and the model should be counted. This configuration is a mirror of Case #28.

Click to view 3D model

The configuration for case #31 (16_0_0_cc25769122_angles_32091_1063).

Case #32

Identifier17_0_0_cc4730946_angles_-2719_3708
Download 3D modelsize4_sccs3_sccsizes_2_1_1_sccindices_17_0_0_cc4730946.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration does not belongs to a model because the model would contain a rectilinear configuration.

Click to view 3D model

The configuration for case #32 (17_0_0_cc4730946_angles_-2719_3708).

Case #33

Identifier19_0_0_cc8991826_angles_2719_-3708
Download 3D modelsize4_sccs3_sccsizes_2_1_1_sccindices_19_0_0_cc8991826.mpd
Technical dataS islands without M-islands inside!
New model identifiedNo

This configuration does not belongs to a model because the model would contain a rectilinear configuration. This configuration is a mirror of Case #32.

Click to view 3D model

The configuration for case #33 (19_0_0_cc8991826_angles_2719_-3708).

Credits

The 3D-models are powered by brigl by Nicola MSX Lugato.

Contact

Lasse Deleuran can be contacted at e-mail lassedeleuran@gmail.com. For any issues with the code, please use the issue list on GitHub.