Hacker News new | ask | show | jobs
by jacquesm 3422 days ago
What a nice job this person did.

Coincidentially I'm working on something similar at the moment only with an order of complexity that is several magnitudes larger than the one on display here (39000 different shapes, several 10's of possible colors). But my contraption doesn't nearly look as nice as this one and definitely is not ready for any kind of production.

I've been working on this for the last two years or so, it has just about every bit of my skills exercised (optical, mechanical, software, electronics) and every time there is a minor breakthrough I feel like throwing a party.

Likely this piece of gear will never see the light of day in a commercial setting but it's the most fun I've had in a long long time.

Disillusioned with web programming (security really spoiled the fun I used to have making web stuff) I figured I should do something that will make programming fun again and at least on that count I have succeeded.

And on another note, I've gained a lot of respect for the visual cortex and it's preprocessing capabilities.

3 comments

> [...] and every time there is a minor breakthrough I feel like throwing a party

Yes!

It's become a deliberate strategy of mine to set the subgoal complexity in my personal projects such that I get a small "yes! it works!"-rush about once per week or so. It's what keeps me going on larger projects, even if occasionally some part takes longer to do.

Just remember that the moment you stick an Ethernet port or WiFi connection on it, security becomes just as important again.
Networking this particular device is useless so not planning on that, but yes, you're 100% right. Many producers of SCADA stuff and industrial controllers that worked just fine as long as they were isolated have found this out the hard way over the last couple of years. And I don't doubt that there are many still to come, insecure protocols, world-open ports whose only protection is that probably nobody knows what sits behind that port.
If you can share: what are you working on, out of interest?
Sorting large volumes of Lego ... call me crazy :) (several metric tons worth)
I was hoping it was Lego sorting! Every kid's dream machine. I got to talk with Nathan Sawaya at an event where he brought boxes of mixed Lego for us to play with. (including some of the giant Lego boulder from the Mythbusters episode) He said paying his assistants to sort bulk used Lego was more expensive than ordering new bricks en masse. (In the context of his sculpture projects at least)
> He said paying his assistants to sort bulk used Lego was more expensive than ordering new bricks en masse.

That's roughly the economics of it. There is a cottage industry where people will sort lego in bulk by hand, effectively it's probably better to flip burgers on a $/hr base.

I thought it was Lego at first, but 39000 shapes seemed a bit much. I thought there were only 8-10k shapes?

  mysql> select count(*) from parts;
  +----------+
  | count(*) |
  +----------+
  |    38516 |
  +----------+
  1 row in set (0.00 sec)
Though I'm sure there is some overlap it's definitely not 70%.
That's really shapes and not counting colors/prints multiple times? (Not that it really matters to the scope of the problem ;))
No, if you multiply by colors it gets much worse. 100's of thousands of possibilities...

Of course not all parts exist in all colors so that helps (a bit), but it is quite an interesting problem to work on. Every assumption you make will be challenged.

Prints and stickers are counted separately but that's not a really huge number and they should be correctly identified (so the surface decoration matters as well in the classification).

Nice project idea. After you do that have a go at sorting out the Lego Mindstorms bits and pieces!
Already part of it. It's all lego pieces, not just the bricks, basically any part lego ever produced (hence the approximately 39k shapes).

The problem is anything but trivial but I'm making good headway, proof of concept took a few months and for the last year or so I've been slowly making progress with a more robust and capable version.

It's a superficially trivial idea, any toddler could do it but to have a machine that does this with any degree of reliability is fairly complex.

If anybody is ever going to try something like this I'd give you just one piece of advice: control your inputs.

Anything you have to deal with in software can eat up capacity very fast so by conditioning your inputs the software can get simpler in ways that really matter.

cool! So why are you doing this? to sell them? and where did you get metric tons of lego?
> So why are you doing this?

Excellent question :) Because I'm mad ;)

> and where did you get metric tons of lego?

Auctions.