+0.23 Show HN: Sorting Two Metric Tons of Lego (jacquesmattheij.com S:+0.20 )
1264 points by jacquesm 3228 days ago | 211 comments on HN | Mild positive Editorial · v3.7 · 2026-02-28 08:09:13 0
Summary Technology & Entrepreneurship Acknowledges
This technical blog post describes an automated LEGO sorting machine project, demonstrating freedom of expression through open publication, educational access through technical knowledge sharing, entrepreneurial freedom through business development, and participation in scientific culture. While the content does not explicitly advocate for human rights, it naturally embodies and practices several UDHR provisions including free expression (Article 19), right to work (Article 23), and right to education (Article 26).
Article Heatmap
Preamble: +0.20 — Preamble P Article 1: ND — Freedom, Equality, Brotherhood Article 1: No Data — Freedom, Equality, Brotherhood 1 Article 2: ND — Non-Discrimination Article 2: No Data — Non-Discrimination 2 Article 3: ND — Life, Liberty, Security Article 3: No Data — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: ND — Equality Before Law Article 7: No Data — Equality Before Law 7 Article 8: ND — Right to Remedy Article 8: No Data — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: ND — Privacy Article 12: No Data — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: +0.10 — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.36 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: +0.20 — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: ND — Standard of Living Article 25: No Data — Standard of Living 25 Article 26: +0.30 — Education 26 Article 27: +0.16 — Cultural Participation 27 Article 28: ND — Social & International Order Article 28: No Data — Social & International Order 28 Article 29: ND — Duties to Community Article 29: No Data — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Editorial Mean +0.23 Structural Mean +0.20
Weighted Mean +0.23 Unweighted Mean +0.22
Max +0.36 Article 19 Min +0.10 Article 17
Signal 6 No Data 25
Volatility 0.09 (Low)
Negative 0 Channels E: 0.6 S: 0.4
SETL +0.06 Editorial-dominant
FW Ratio 60% 18 facts · 12 inferences
Evidence 14% coverage
2H 4M 25 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.20 (1 articles) Security: 0.00 (0 articles) Legal: 0.00 (0 articles) Privacy & Movement: 0.00 (0 articles) Personal: 0.10 (1 articles) Expression: 0.36 (1 articles) Economic & Social: 0.20 (1 articles) Cultural: 0.23 (2 articles) Order & Duties: 0.00 (0 articles)
HN Discussion 20 top-level · 25 replies
tomcam 2017-04-29 16:40 UTC link
Fascinating. It touches on the discolored and counterfeit parts but doesn't say how they are detected – I assume there was a lot of manual training of the neural net?
phil21 2017-04-29 17:10 UTC link
How do you deal with parts that are stuck together? I actually noticed one in your demo video, and was curious. This seems like it would be very difficult to classify, even in a sense to sort them into a "take these apart" bin.

This is really amazing, awesome work!

tomovo 2017-04-29 17:11 UTC link
Awesome. Do you have a video of it running at full speed? Also, the bin at the end is for all the pieces save the fake/discolored/technic ones & see statistics on the PC or is there a more elaborate sorting scheme? Watching the belt go I was kind of expecting the pieces to be sorted by color or something, which would look neat but isn't very practical, I assume.
samcheng 2017-04-29 17:24 UTC link
There are a few businesses that buy (unsorted, bulk) legos and then sell sets or sorted bulk legos.

Here's a fun one in Taipei: http://www.brickfinder.net/2017/03/22/taiwan-lego-store-visi...

(They also custom print on the surface of the parts; I saw an awesome Trump Lego man there complete with red hat.)

I bet these people would love to talk about this machine!

dxbydt 2017-04-29 17:31 UTC link
Can you publish the details of the h/w-s/w interface...the only piece I grokked was the vgg classifier. How do you go from a physical Lego on the hopper to jpg to class label to the lego in the correct physical bin ? I'd like to do this myself. I don't have 2 tons but definitely some 10k pieces. Thanks.
yourapostasy 2017-04-29 17:32 UTC link
Thanks for sharing such a cool build and helping keep alive a hope of mine. I dream of a day I have enough time/capital to build/buy a Lego sorter, a robotic Lego brick separator (perhaps using high-resolution ultrasound/radar to detect where to insert the separator and where to push), pair that with an automated storage system in a subterranean vertical tunnel with robot arms similar to a robotic tape library keeping track of all detected parts and minifigs according to BrickLink categorization. Let the system keep it all organized (for example, bin overflows into multiple bins are automatically tracked as a single part and color combination), and I even have the choice to have it dump a random assortment into a big laundry-size bin, and build like a kid again, yet have it clean up after itself once I'm done.
jawns 2017-04-29 17:35 UTC link
I would imagine that this is a hobby project and you're losing cash on it. But what would be the parameters of a profitable business? At what level of scale (if any) would it have to operate? And is there a lot of competition in this space?
SimonPStevens 2017-04-29 18:09 UTC link
Really awesome. What Im dying to know though is some stats on the profitability. On average what sort of groupings of parts do you get from the bulk Lego and what do they sell for vs what you paid for them? Is there a variance is the quality of the bulk lots? I presume once you've sorted out the rare Lego you could just resell the common stuff as another bulk lot, but if everyone does that how do you avoid buying stuff that has already had the rare pieces filtered out?
AlexDanger 2017-04-29 18:15 UTC link
Incredible Machine!

Question: Were you able to utilise any data about Lego parts from Lego's own catalogues (current and historal) or technical specifications? It sounds like you trained the classifier manually. I imagine if you want to sort into sets you need to know what makes up a particular set.....does Lego provide an API or anything regarding parts/sets?

Further to that, if you have pricing data on sets you have a nice little optimisation problem - given my metric ton of parts, what are the most valuable complete sets I can make?

fest 2017-04-29 19:21 UTC link
Cool build! I'm really interested in the classification process:

1) What's the input image resolution?

2) How many classes you have?

3) How many samples per class did you need to achieve acceptable accuracy?

4) How long did the training take? How many epochs did it require?

tuna-piano 2017-04-29 19:45 UTC link
Thank you very much for this fascinating post, nice work.

Did you use any other resources to learn about deep learning besides http://course.fast.ai/? I'm looking to get started learning, and wondered what the best way forward would be.

ChuckMcM 2017-04-29 20:00 UTC link
Heh, that looks like a ton of fun, sorry you lost your van though! Also interesting to know that the pile of Lego Technic parts I've got from my lego bot building days actually might have some resale value :-).

Lots of interesting questions come to mind though, in that if you have two bits of Lego that are attached, what bin do you put them into? And have you looked at ways to automatically disassemble Legos? And did any of your purchases have Legos that were superglued together? (as is done in some displays.)

ben1040 2017-04-29 20:03 UTC link
My wife and I are in the process of packing up our house to move, and we are cursing our five year old kid's collection of Lego right now.

This was perfect timing for a good laugh from the title and an interesting read. Thanks!

katelynsills 2017-04-29 21:27 UTC link
I work for a mill that cleans and sorts grains and beans (taking the rocks out, stems out, etc.), and it's fascinating to see the parallel invention of something really similar! We have a bunch of different steps:

1) Air is blown through the product and any dust is taken out. 2) The product is run through a bunch of screens that take out anything too big or too small. 3) The product is put through a gravity separator to separate based on mass. 4) Finally, the product is put through an optical sorter (https://www.youtube.com/watch?v=O0gWUeqzk_o) which uses blasts of air to push out unwanted materials from a stream of falling product.

I'm sure you could use the same process for Legos. Not sure about how to distinguish between branded and unbranded Legos though.

tuna-piano 2017-04-30 03:04 UTC link
One thought: I'd think creating a similar solution would make an amazing semester course for University students.

Maybe you package stuff up nicely and give it away as a course, or try and sell the plans as a course to one of the coding schools or large Education companies?

garply 2017-04-30 06:07 UTC link
Lots of comments on here about the software, but I'm really fascinated by the hardware. Where did you get the conveyor belts and how much did they cost?

For the belt that lifts item up out of the hopper, I notice there's a little white hook (or platform, not sure what to call that) jutting out that does the actual lifting of the legos. How did you get the size of that right? Did you install that jutting-out part, or did it come pre-attached to the belt?

What tools are you using to make a computer do the actual belt rotation? I'm wondering how low-level it is - are you spinning the steppers directly or did the conveyor belts come with some kind of API? I'm guessing the belts don't have a USB port for easy control.

paulkrush 2017-04-30 06:17 UTC link
Bootstrapting rocks to speed manual labeling. I got to full unsupervised on coin designs and angles by augmenting with many different lighting angles with ws8211 led strips and correlating the angles. I almost can with the dates, but it's so easy to finish with bootstrapping. See http://www.GemHunt.com/dates for the 100% unsupervised classes.
wintersFright 2017-04-30 07:31 UTC link
My 9yo son is willing to give you his life savings of $41.56 to have an at home kit of this machine :)

I've played with OpenCV and tried for fun to train a HAAR cascade classifier to recognise a minifigure. It didn't work which made me realise one has to really understand under the hood of machine learning like this in order to give it good training data.

Kudos. Very, very impressive.

PhasmaFelis 2017-04-30 09:09 UTC link
This is really cool.

I am kinda boggled that you thought "Huh, Lego, think I'll get into that" and immediately ordered two metric tons of Lego. o_O

I get that you thought (for some reason) that you would only win some small fraction of your bids, but ordering, say, a quarter-ton of Lego at a go isn't reasonable either. The whole episode is pretty hilarious.

Fiahil 2017-04-30 10:08 UTC link
This is amazing ! I am currently struggling to sort properly a few Technic sets (roughly equivalent to 5-6 shoeboxes), and one of the biggest challenge besides sorting, is to find boxes that are large enough to store the individual types of pieces. Any ideas ?
jacquesm 2017-04-29 16:43 UTC link
It's basically bootstrapped. Use the machine to sort a few kilos, pick out the mistakes, update the training set, let it train overnight, rinse, repeat. After many such cycles it is getting pretty good. The best part is when I think it has made a mistake but actually it is right and I'm wrong :)
jacquesm 2017-04-29 17:11 UTC link
They have a category all by themselves, get taken apart after the first run and then simply made to go through again in the next batch. The neural net is surprisingly good at classifying 'mess' as a category!
jacquesm 2017-04-29 17:15 UTC link
Sorting by color is useless unless you want to go and sort directly into sets (it can do that too but that's very much experimental, also it would take lots of bins and there are some details that are important to get right that are almost invisible to the camera).

A full speed video is super hard to shoot because you can't follow the parts as they move, they basically disappear because of the air puff being so short that a part is there one frame and gone the next. Right now classification takes about 30 ms, that's the limiting factor because that belt keeps moving during that 30 ms so you need to be 'back' at the camera before it moves so far that you can't stitch the next image to the previous one.

Another limiting factor is the relationship between the two belts, the second belt can only go so fast before the precision of the puffers starts to be insufficient to aim the parts into the right bin, they also carry too much forward momentum, and the second belt needs to go many times faster than the first in order to spread out the parts sufficiently. Yet another problem related to that: if you look at the video you'll notice that one of the little parts grabbers on the belt can push ahead of it quite a bit of stuff, if fortune is against you all of that lands on the belt in one go. By making that belt go slow it creates just enough pause between parts to be able to separate them with air without pushing the wrong part off the belt. It pays off to leave some safety margin there so I tend to set the second belt a bit faster than optimum and the first one a bit slower. That way the accuracy goes up quite a bit.

It took lots of experimenting and tweaking to get to this stage.

About 1 part per second is a practical upper limit right now, it can go way faster than that but then it starts dumping stuff all over the room :)

I'll see if I can shoot a video at a higher speed than the one in the post right now.

jacquesm 2017-04-29 17:38 UTC link
Well, yes. It is definitely not going to make money if I count my time. But I learned an awful lot about machine learning and the present state of computer vision, far more than if I had tried to do that on something abstract. And when I look at the Lego bought-and-sold it seems to work out ok.

As for competition, yes, plenty, but all manual. Scaling up now that I have the software working is definitely an option but I have a good set of very well paying customers and not much can compete with that.

jacquesm 2017-04-29 17:48 UTC link
Hopper belt to camera belt is just a speed difference that causes the parts to become nicely spread out (at least, you hope so!), the camera stitches together frames to scan the part so a part larger than a frame can be scanned. Once the end of the part is detected it gets fed into the classifier which returns part id, category and color. Depending on what sort is set up a part then gets pushed into one of 7 bins, these periodically are emptied into larger bins and bags.

If necessary a lot can be pushed through the machine twice for instance to sort parts by length or to pick out sets (that last bit works in theory but in practice there are a lot of problems to overcome because of the limited number of bins to deposit into).

As for the hardware, there is a nifty little camera with a macro lens that connects to the USB port (noname Asian stuff), it has a 10x magnifying lens, a pololu servo/gpio to USB card to drive the relays and a Sainsmart 16 port relay board to drive the solenoids for the air valves.

The software is all in python with a generous amount of help from the people who wrote numpy, opencv, keras and theano.

The error rate is between 3 and 5% depending on how fast I set the machine, there are a number of sources for the errors, obviously classification errors, also sometimes two parts are too close to each other and even if the classifier got them right the airpuff for one pushes the other of the belt as well. To minimize this effect I keep the airpuff super short, on the order of 10 ms, which is about as fast as the solenoids can open and close reliably, but it does mean that if it misses even by a bit there is nothing to be done about it and that part will land in the 'other' bin.

That error rate is still too high but with every run the classification errors go down and that's the main component.

One nasty little problem was that I spaced the puffers too regular in the first iteration which meant that sometimes the parts would line up just so in the order in which they came under the camera so that more than one puffer would be active at once leading to a reduction on pressure and no parts would be pushed off the belt. That was a tricky one!

jacquesm 2017-04-29 18:29 UTC link
If I count my time the project is not profitable (that's because I've long ago moved to hourly rates that make competing with that hard).

But if you're making some regular wage then you could easily live of this.

jacquesm 2017-04-29 18:32 UTC link
> Were you able to utilise any data about Lego parts from Lego's own catalogues (current and historal) or technical specifications?

I tried, but in the end a straight up train-correct-retrain loop took care of all the edge cases much quicker and much more reliable than any feature engineering and database correlation that I tried before. This is roughly the fourth incarnation of the software and by far the most clean and effective. HN pointed me in the direction of Keras a few weeks ago, that coupled with Jeremy Howard's course gave me the keys to finally crack the software in a decisive way.

> It sounds like you trained the classifier manually.

Only the first batch, after that it was mostly corrections. What it does is while it classifies one batch it saves a log which gives me more data to feed the classifier with for the next training session. There are so few errors now that I can add another 4K images to the training set in half an hour or so.

> Further to that, if you have pricing data on sets you have a nice little optimisation problem - given my metric ton of parts, what are the most valuable complete sets I can make?

I'm on that one :) And a few others that are not so obvious. There is a lot to know about lego. Far more than you'd think at first glance.

jacquesm 2017-04-29 19:30 UTC link
1) 640x242

2) the 1000 most common lego parts, 'other' and 'mess'. In the end the idea is to get to 20K classes and to sort directly into sets. This is very much a pipe dream at the moment but I think it is doable given a large enough set of samples. The problem is that you have to see all those parts at least a hundred times or so before it gets detected reliably.

3) too little :( The training data is still woefully insufficient but it is now good enough to bootstrap the rest. This took a while to achieve because without any sorted lego to begin with you have nothing to train with. So the first 20Kg or so were sorted by hand and imaged on the sorter without any actual sorting happening (everything into the run-off bin), then labeling the results by hand until the accuracy of the test set (500 parts or so) went over 80%. That was a week ago and since then it's been improving steadily day-by-day.

4) one training run per night, typically a few 100 epochs on the current set but, this will change soon. The machine is now expanding the training set rapidly with associated improvement in accuracy. This means that the training sessions are taking longer and longer but I'll be running fewer of them. What I'll probably do is offload training to one machine which will drop off a new set once per week or so and inference on another which is doing the sorting and capturing the new training data.

Checking the logged images for errors still takes up a bit of time though, but with the current error rate that is very well manageable. (Before it was an endless nightmare).

jacquesm 2017-04-29 19:50 UTC link
That was my starting point but I'd already played with neural nets when they first came out so that helped and I also did a lot of opencv stuff without any neural nets.

After that it was mostly googling each and every term that I didn't understand until it all started to make sense.

course.fast.ai is probably the fastest way to get something concrete going which is very useful if you need that instant gratification kick to keep going.

bonzini 2017-04-29 19:56 UTC link
There are a lot. There are two main specialized marketplaces, Bricklink and Brickowl, with hundreds of sellers (most of them operate on both sites). Most sellers also have a brick and mortar shop, others only operate online.
jacquesm 2017-04-29 20:14 UTC link
> Heh, that looks like a ton of fun

Most fun I've had programming in years. Finally something where I don't have to worry right from the get-go if it is secure or not.

> sorry you lost your van though!

So am I. I had a ton of work in that thing and even if the insurance covered the value they did not give me back the many weeks I spent building it.

> Also interesting to know that the pile of Lego Technic parts I've got from my lego bot building days actually might have some resale value :-).

It'd be better if you had some really nice boxed sets from the 60's ;)

> if you have two bits of Lego that are attached, what bin do you put them into?

'Other', then pick them apart and run them through again

> And have you looked at ways to automatically disassemble Legos?

Yes, but this is very hard to do without damage.

> And did any of your purchases have Legos that were superglued together?

I've seen a few bit here and there but for the most part that doesn't happen. Kids are pretty destructive though so you have to count with a good %age of damaged / unusable parts.

jacquesm 2017-04-29 20:14 UTC link
I can send you some more if you want?
jacquesm 2017-04-29 20:46 UTC link
Ok, this is a lot faster and still slow enough that you can see what's going on:

https://www.youtube.com/watch?v=klLscxJbayI

I tried faster but then it is pointless you simply can't track the camera fast enough from the hopper to the bin where it will end up. Hope that is satisfactory :)

jacquesm 2017-04-29 21:34 UTC link
(4), That's a very neat machine!

What is the %age by weight of 'trash' versus 'good stuff' for such a sorter?

I do use screens for various pre-sorting stages, not shown in the article. The sorter is only good for parts up to 40 mm and anything that isn't a wheel or round so it will roll away while being imaged.

That's by far the bulk though so for me if it does that part well it is already more than worth it.

Branded/unbranded: spectrum is different (far more different than you would say by looking at it with the naked eye), weight does not match for the part (though this can be very close with really good fakes), logo on the studs is different.

I've been thinking about doing that gravity thing, but a bit more fancy, rather than just a binary sort to shoot parts in several directions, an alternative is a spiral slide under a steep angle where parts are fed in at the top and ejected when they reach the right bin.

That's a lot more complicated to make than what I have right now mechanically and also the time available for a classification operation would be much shorter, but it would allow for a much larger number of output bins without taking up a whole lot of space. So maybe a next generation, if I still need it (this one is going through piles of lego now).

unityByFreedom 2017-04-29 22:57 UTC link
I think you two need to make a trip to a Lego factory together. And film it. For science.
jacquesm 2017-04-30 04:34 UTC link
I'd be happy to give them away, but I don't think any university students will learn much that is useful from my tinkering.
Baeocystin 2017-04-30 08:53 UTC link
High-speed optical sorters are the sort of behind-the-scenes tech that make me feel like I'm living in the future. I have vivid memories as a child watching people winnow rice by hand using wide, flat bamboo baskets.

Had I seen something like the optical sorter back then, I would have thought it (Arthur C. Clarkeian) magic!

jacquesm 2017-04-30 12:05 UTC link
Where do you live? I'll send you some lego!
jacquesm 2017-04-30 12:08 UTC link
The belts are industrial surplus.

If you look closely at the belt you can see the traces of many failed experiments before I found a shape that worked without accidentally getting stuck on a part.

It is attached with super glue to the belt. I use the narrowest parts because that way it doesn't end up fighting with the curvature of the belt when it goes over the roller.

The belt rotation is done with a 3 phase AC motor hooked up to an inverter for the vertical belt, the camera belt is driven by a DC motor hooked up to a variable power supply.

So no steppers, that would have made life a bit easier because then I'd know (modulo some slippage) where the belt is positioned. So now I have to reconstruct that optically, hence the wavy line on the belt.

jacquesm 2017-04-30 12:17 UTC link
Every collector of Lego sooner or later becomes a collector of storage systems :) (Don't ask me how I know that...).

I use some relatively cheap plastic sliders stacked 10 high, parts go by length from the top down and by width left to right. Then there are departments for minifigs and associated parts as well as irregular stuff like base-plates and so on. Storage could easily be another blog post all by itself! It's a crazy problem.

For technic, which is many small parts I use small bins and bags inside the larger bins, but you probably could use a raaco rack or equivalent if you don't have too much of it.

jacquesm 2017-04-30 12:23 UTC link
Live and learn :)

You should have seen my face. Also, try to explain to your s.o. that you're about to buy an extra garage solely to house something that you have no idea how it will all work out and when - and if - it will ever go away again. And that was two years ago.

It really is hilarious. For me it's more or less business as usual though, I take lots of chances. Some work out and some don't. This one is still undecided.

tudorw 2017-04-30 13:09 UTC link
L(ego)S(sorting)ASAS would be very popular with the families I know, a little van that pulls up outside, dump the lot in and get back the bits sorted by kits :)
bigger_cheese 2017-05-01 00:27 UTC link
I work in a steel mill we use a similar setup with an optical camera to size streams of Ore and Coke particles. One thing you could look into is using a vibrating feeder (sometimes called a 'vibro') this is what we use to stop screens from 'pegging' - similar issue to the bridging problem mentioned in the article.
scoot 2017-05-01 12:08 UTC link
> it's fascinating to see the parallel invention of something really similar!

This isn't parallel invention - the principal of optical sorting and air ejection are well known and understood. (Which is not to lessen the achievement in building this, but building and inventing are not the same thing.)

nommm-nommm 2017-05-02 14:54 UTC link
Dunno who here is old enough to remember but back in the day every bag of chips used to contain a few burnt chips. Well, thanks to those computer vision air blasting sorting machines theres no more burnt ones in the bag! They all get air blasted out and now chips are uniform.
Editorial Channel
What the content says
+0.40
Article 19 Freedom of Expression
High Practice Advocacy
Editorial
+0.40
SETL
+0.20

Entire blog post is an exercise of freedom of expression, sharing personal technical knowledge openly without apparent restriction or censorship.

+0.30
Article 26 Education
High Practice Advocacy
Editorial
+0.30
SETL
0.00

Content is educational, sharing technical knowledge about machine learning, image processing, and problem-solving methodology. Freely accessible technical education.

+0.20
Preamble Preamble
Medium Practice Advocacy
Editorial
+0.20
SETL
0.00

Content embodies freedom through open technical expression and sharing of knowledge without apparent restriction or censorship.

+0.20
Article 23 Work & Equal Pay
Medium Practice Advocacy
Editorial
+0.20
SETL
0.00

Content describes building an automated business venture, representing self-directed entrepreneurship and freedom to choose and pursue work.

+0.20
Article 27 Cultural Participation
Medium Practice Advocacy
Editorial
+0.20
SETL
+0.14

Content describes participation in technical and engineering culture, shares scientific knowledge about machine learning and computer vision, contributing to scientific advancement.

+0.10
Article 17 Property
Medium Practice
Editorial
+0.10
SETL
0.00

Content describes buying and selling LEGO as commercial property. Discussion is factual, neutral, demonstrating property rights exercise.

ND
Article 1 Freedom, Equality, Brotherhood

Article 1 addresses equal dignity and rights. Content does not address equality or universal dignity principles.

ND
Article 2 Non-Discrimination

No content addressing non-discrimination.

ND
Article 3 Life, Liberty, Security

No content addressing life, liberty, or security of person.

ND
Article 4 No Slavery

No content addressing slavery or servitude.

ND
Article 5 No Torture

No content addressing torture or cruel treatment.

ND
Article 6 Legal Personhood

No content addressing personhood or legal recognition.

ND
Article 7 Equality Before Law

No content addressing equality before law.

ND
Article 8 Right to Remedy

No content addressing right to remedy.

ND
Article 9 No Arbitrary Detention

No content addressing arrest or detention.

ND
Article 10 Fair Hearing

No content addressing fair trial.

ND
Article 11 Presumption of Innocence

No content addressing presumption of innocence.

ND
Article 12 Privacy

No content addressing privacy rights.

ND
Article 13 Freedom of Movement

No content addressing freedom of movement.

ND
Article 14 Asylum

No content addressing asylum.

ND
Article 15 Nationality

No content addressing nationality.

ND
Article 16 Marriage & Family

Post mentions family members contextually but does not address marriage or family rights.

ND
Article 18 Freedom of Thought

No content addressing freedom of thought, conscience, or religion.

ND
Article 20 Assembly & Association

No content addressing freedom of assembly or association.

ND
Article 21 Political Participation

No content addressing participation in governance.

ND
Article 22 Social Security

No content addressing social security or welfare.

ND
Article 24 Rest & Leisure

Post mentions childhood play and describes work as 'fun' but does not address workers' rights to rest and leisure.

ND
Article 25 Standard of Living

No content addressing adequate standard of living.

ND
Article 28 Social & International Order

No content addressing social and international order.

ND
Article 29 Duties to Community

While content implicitly contributes to community through knowledge sharing, Article 29 is not directly addressed.

ND
Article 30 No Destruction of Rights

No content addressing prohibition of destruction of rights.

Structural Channel
What the site does
+0.30
Article 19 Freedom of Expression
High Practice Advocacy
Structural
+0.30
Context Modifier
ND
SETL
+0.20

Site provides platform for free publication; content is publicly accessible with no barriers or apparent editorial control.

+0.30
Article 26 Education
High Practice Advocacy
Structural
+0.30
Context Modifier
ND
SETL
0.00

Blog provides freely accessible educational content; no barriers to learning technical knowledge.

+0.20
Preamble Preamble
Medium Practice Advocacy
Structural
+0.20
Context Modifier
ND
SETL
0.00

Blog is freely accessible without paywalls or barriers, structurally supporting open expression and human dignity.

+0.20
Article 23 Work & Equal Pay
Medium Practice Advocacy
Structural
+0.20
Context Modifier
ND
SETL
0.00

Site supports documentation and discussion of self-employment and business development.

+0.10
Article 17 Property
Medium Practice
Structural
+0.10
Context Modifier
ND
SETL
0.00

Site exists within framework supporting property rights and commerce; no barriers to discussing property transactions.

+0.10
Article 27 Cultural Participation
Medium Practice Advocacy
Structural
+0.10
Context Modifier
ND
SETL
+0.14

Site supports sharing of technical and scientific knowledge.

ND
Article 1 Freedom, Equality, Brotherhood

No structural signals regarding equal dignity.

ND
Article 2 Non-Discrimination

No structural signals.

ND
Article 3 Life, Liberty, Security

No structural signals.

ND
Article 4 No Slavery

No structural signals.

ND
Article 5 No Torture

No structural signals.

ND
Article 6 Legal Personhood

No structural signals.

ND
Article 7 Equality Before Law

No structural signals.

ND
Article 8 Right to Remedy

No structural signals.

ND
Article 9 No Arbitrary Detention

No structural signals.

ND
Article 10 Fair Hearing

No structural signals.

ND
Article 11 Presumption of Innocence

No structural signals.

ND
Article 12 Privacy

No privacy violations or privacy-related signals.

ND
Article 13 Freedom of Movement

No structural signals.

ND
Article 14 Asylum

No structural signals.

ND
Article 15 Nationality

No structural signals.

ND
Article 16 Marriage & Family

No structural signals regarding family or marriage.

ND
Article 18 Freedom of Thought

No structural signals.

ND
Article 20 Assembly & Association

No structural signals.

ND
Article 21 Political Participation

No structural signals.

ND
Article 22 Social Security

No structural signals.

ND
Article 24 Rest & Leisure

No structural signals regarding workplace rest or leisure.

ND
Article 25 Standard of Living

No structural signals.

ND
Article 28 Social & International Order

No structural signals.

ND
Article 29 Duties to Community

No structural signals.

ND
Article 30 No Destruction of Rights

No structural signals.

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.70 medium claims
Sources
0.7
Evidence
0.8
Uncertainty
0.6
Purpose
0.8
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
hopeful
Valence
+0.6
Arousal
0.6
Dominance
0.5
Transparency
Does the content identify its author and disclose interests?
1.00
✓ Author
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.82 solution oriented
Reader Agency
0.7
Stakeholder Voice
Whose perspectives are represented in this content?
0.40 2 perspectives
Speaks: individuals
About: individuals
Temporal Framing
Is this content looking backward, at the present, or forward?
retrospective historical
Geographic Scope
What geographic area does this content cover?
local
Denmark
Complexity
How accessible is this content to a general audience?
moderate medium jargon domain specific
Longitudinal · 8 evals
+1 0 −1 HN
Audit Trail 23 entries
2026-02-28 10:54 rater_validation_warn Lite validation warnings for model llama-3.3-70b-wai: 0W 1R - -
2026-02-28 10:54 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 10:54 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral) 0.00
reasoning
tech tutorial no rights stance
2026-02-28 10:49 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 10:49 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral) 0.00
reasoning
Editorial about sorting Lego, no human rights content
2026-02-28 10:49 rater_validation_warn Lite validation warnings for model llama-4-scout-wai: 0W 1R - -
2026-02-28 10:48 eval_success Lite evaluated: Neutral (0.00) - -
2026-02-28 10:48 rater_validation_warn Lite validation warnings for model llama-3.3-70b-wai: 0W 1R - -
2026-02-28 10:48 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral) 0.00
reasoning
tech tutorial no rights stance
2026-02-28 08:09 eval Evaluated by claude-haiku-4-5-20251001: +0.23 (Mild positive)
2026-02-28 00:27 eval_success Light evaluated: Neutral (0.00) - -
2026-02-28 00:27 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral)
reasoning
tech tutorial no rights stance
2026-02-28 00:16 eval_skip Skipped: no readable text in HTML (likely JS-rendered SPA) - -
2026-02-28 00:01 eval_skip Skipped: no readable text in HTML (likely JS-rendered SPA) - -
2026-02-27 22:57 eval_success Evaluated: Neutral (0.02) - -
2026-02-27 22:57 eval Evaluated by deepseek-v3.2: +0.02 (Neutral) 22,142 tokens
2026-02-27 22:45 dlq Dead-lettered after 1 attempts: Show HN: Sorting Two Metric Tons of Lego - -
2026-02-27 22:43 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-27 22:42 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-27 22:41 eval_success Light evaluated: Neutral (0.00) - -
2026-02-27 22:41 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral)
reasoning
Editorial about sorting Lego, no human rights content
2026-02-27 22:41 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-27 22:27 eval Evaluated by claude-haiku-4-5: 0.00 (Neutral)