LEGO-Bench

A benchmark for assembling LEGO sets in CAD from the official building instructions.

Preliminary · results not yet published

Procedure

1
A parts sheet picturing every part file with its quantity

Inputs

The official building instructions, a STEP file for each distinct piece, and a parts sheet that pairs every file with a picture and a quantity.

2
A submitted assembly of the F1 race car, rendered in grey

Assembly in CadQuery

The model under test follows the instructions, writes code that places each piece, and renders its own intermediate results. It is given a single attempt.

3
The reference F1 race car in colour

Comparison with the reference

The exported STEP file is compared against the original CAD model of the set according to which pieces are in contact.

Scoring

Comparing the positions of pieces directly would penalise a correctly built model whenever a hinge, wheel or boom happens to be set at a different angle from the reference. Lego-Bench instead records which pieces are in contact with one another. This can be drawn as a diagram in which every piece is a dot and every pair of touching pieces is joined by a line, and the submission is scored by how closely its diagram matches that of the reference.

Reference

ABCDEF

Submission

ABCDEF
5 correct contacts 1 missing (F should rest on C) 1 extra (F rests on D)
score = max( correct / expected − λ · extra , 0 ) expected is the number of contacts in the reference, correct the number the submission reproduces, and extra the number it contains that the reference does not. λ is the penalty per extra contact, currently 1 / expected. A perfect build scores 1.

Leaderboard

Self submission coming soon

Results from the runs completed so far. Each row is a single attempt by one model on one set, scored as described above. The protocol is still being refined, and these figures should be read as early observations rather than final rankings.

ModelSetCorrect contactsExtra contactsScoreTimeCost
gpt-6-luna · max reasoning60464 City F1 Race Car37 / 954080.0064 min$4.94
gpt-6-luna · high reasoning30465 Technic Helicopter33 / 1292010.0012 min$0.14
gpt-6-luna · high reasoning60464 City F1 Race Car17 / 95290.0046 min$1.89
gpt-5-mini · high reasoning60464 City F1 Race Car0 / 9500.009 min$0.19

Correct contacts are counted out of the contacts in the reference. The score subtracts one expected contact for every extra contact, so a submission with many pieces passing through one another scores zero even when some of its contacts are correct.

Sets

The benchmark currently contains twelve sets, ranging from 53 to 1,608 pieces. Further sets are being prepared.

6046453 piecesCity F1 Race Car
3046570 piecesTechnic Helicopter
41597106 piecesBrickHeadz Go Brick Me
42101116 piecesTechnic Buggy
42004246 piecesTechnic Mini Backhoe Loader
42061259 piecesTechnic Telehandler
42022413 piecesTechnic Hot Rod
21368876 piecesIdeas Snoopy
42235607 piecesTechnic Ferrari 488 Pista
763441,266 piecesMarvel Iron Man Figure
80531,287 piecesTechnic Mobile Crane
420301,608 piecesTechnic Volvo L350F Wheel Loader
EasyMediumHard