Top
Best
New

Posted by chris_overseas 10/31/2025

S.A.R.C.A.S.M: Slightly Annoying Rubik's Cube Automatic Solving Machine(github.com)
278 points | 57 comments
vindar79 11/1/2025|
Hi all. I just found this thread. I'm the creator of SARCASM. Thanks to the OP for sharing. I spent many hours on this build but it was a lot of fun. I'm happy to see that others are enjoying it also :-)

If you're interested in the technical side, I wrote detailed posts on the hardware and software on the Teensy forum: https://forum.pjrc.com/index.php?threads/sarcasm-an-over-eng...

hermitcrab 11/1/2025||
Very cool. I remember being the first kid at school to have a Rubiks cube, in the 70s (I read about it in Omni magazine). I had no idea how to solve it. I sent off for a booklet about solving it. I got back a booklet about group theory, far beyond my teenage brain.
ugh123 11/1/2025|||
I think this is an amazing all around build combining the physical mechanics for solving (a relatively understood problem in rubik's robot solving scene) but along with the graphics integration and some real personality from the bot avatar that gave me quite a few laughs. Well done!
shmeeed 11/1/2025|||
I love how you approached the problem and perfectioned the "product" in all aspects. There's so many playful details that could easily go unnoticed! You're impressively resourceful, and one can tell this was a work of love.

I wish I could buy something like it as a DIY set, just to own it, admire it, show it to people, and have everybody be in awe of your work. What a time to be alive that stuff like this is in reach of a sufficiently dedicated hobbyist!

scrollaway 11/1/2025|||
> I'm the creator of SARCASM.

Glad I’m not the only one who sometimes justifies spending time on project purely because of the name I can give to them.

vindar79 11/1/2025||
hehe, it was indeed a major motivation :-)
ramses0 11/1/2025|||
This makes me want to teleport it back to the 1920s, enclose it in glass and charge people a nickel to use it! You'd be rich!
ewalk153 11/1/2025||
Can you post the STL files for the shell and Arms?

Great project.

vindar79 11/1/2025||
Sure. I will add them on github later today. The repo is currently in a very messy state. I would like to clean it and provide detailled assembly steps but I have to much work currently. Hopefully I can do this in a couple of months.
vindar79 11/1/2025||
Done. Added stl files to the repo.
nneonneo 11/1/2025||
Related - there's a Guinness record for the fastest Rubik's cube solving robot; it stands at 103 milliseconds:

https://www.youtube.com/shorts/ue2gZ2vxs48

https://engineering.purdue.edu/ECE/News/2025/purdue-ece-stud...

adrianN 11/1/2025||
I wonder how many cubes they exploded in the making of that robot
hermitcrab 11/1/2025|||
Impressive and a bit mad.
hammock 11/1/2025||
Robotic solver is more of a physical problem than a mental one. A photo of the cube from top and bottom corners and you can solve it in a nanosecond
teiferer 11/1/2025||
First, you still need to optimize the solution to fit the constraints of mechanical solving. It needs to be as few moves as possible, some of them are parallelizable, etc. Not a trivial problem.

Second, nanosecond? You know that a GHz CPU does a single clock tick in one nanosecond, right?

rossant 11/1/2025|||
Maybe there's a new instruction we don't know about in modern CPUs, like RUBIK_SOLVE or something.
SwiftyBug 11/1/2025||
I mean, we've had RUN_DOOM for many years now, so why not?
amypetrik8 11/2/2025||
yes, in python either 1) "import doom" or 2) "from rubik import cube"
Tempest1981 11/1/2025|||
They probably meant millisecond
derac 11/1/2025||
The aesthetics of this are great. Nice job.

Demo: https://youtube.com/shorts/Xer4mPZZH8E

boneitis 11/1/2025|
This is absolutely the most charming thing I've seen in a hot minute.

For anyone also thoroughly enchanted like me, there is an additional, longer demo:

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

Living in software land, I do wonder how hard is the undertaking to build one of my own.

As a hobbyist cuber, this project reeks of icebreaking potential for the rest of the times I'm not actively solving -- leave it on my desk next to a cube... random coworker walks by, sees and grabs the cube, shuffles it, and chucks it into the SARCASM machine, enjoys a minute of novelty, ????, profit!

noman-land 11/1/2025||
I want an automatic scrambling machine, not an automatic solving machine. Two cubes. While you're solving one, the other one is being scrambled. Cubers spend way more time scrambling than solving. Scrambling is the annoying part that needs automating.
alejo 11/1/2025||
This is in my mind the hardest part as well.

I can solve the cube with the regular “easy” 3-layer approach, but I’d like to solve it faster.

The issue is that the techniques for fast solving require to learn many different patterns to get to the right solution fast.

I don’t know really how ppl that solve it fast accomplish getting to that level, but to me it would be amazing if i could just set the cube in know scrambled states that let me practice and memorize specific algorithms repeatedly until I learn them.

The problem is that I don’t know enough yet to distinguish which are those initial states, let alone setting the cube in that state, so something that could set it up for me to practice would be amazing

0x264 11/1/2025||
> I don’t know really how ppl that solve it fast accomplish getting to that level

Just like everything else in life, they do it really slow and with lots and lots and lots of errors at first, but (and this is where the magic happens) keep doing it, training hours a day or their entire week ends, for years.

LVB 11/1/2025|||
I’m completely not in this space but your comment had me wondering: are there digital cube faces? That is, a real physical cube but with faces that can instantly be set to a given color?
apple1417 11/1/2025|||
They exist, but one of the problems is they're not particularly good cubes. While it might help you learn the basics, not being able to handle it like a speedcube means they're probably not going to help you get faster.

https://m.youtube.com/watch?v=l-TWH5W-1fw

https://exmarscube.com/product/ex-mars-ai-robot-cube/

That being said, while looking up those links, I found out that, since I got out of the hobby, smart cubes have become a thing, and are made by real speedcube manufacturers.

https://www.gancube.com/products/gan-356-i-carry-smart-magic...

This is an easier problem to solve. I'm not sure if you have to solve it first or if it can identify pieces on power up, but after that it's just tracking rotations, which can be done from the (fixed position) centres alone. But if an actual speedcube manufacturer can already fit those electronics in without comprising performance, I can't imagine it's that much harder to fit some addressable LEDs on some slip-ring-esque connections. Must just not be much of a market.

sunnybeetroot 11/1/2025|||
This is a great question! Doesn’t seem like it’d be hard to make if it doesn’t already exist
rplnt 11/1/2025|||
At least until a certain level, scrambling (according to a given "algorithm") is a good way to practice moves. It shouldn't take much longer than a solution either, you are not solving the cube in under 30 moves. And if you don't care about the scramble it's even faster. So I don't think the "way more time" is entirely accurate. It may feel like it though.
dullcrisp 11/1/2025||
Can’t you just run the solving machine in reverse?
schiffern 11/1/2025|||
Yeah, it's just a software change to the existing machine. If you generate a target scrambled state it's literally the solver algorithm in reverse too.

It would be neat if it offered to scramble when you insert an already solved cube (demoed in the video), and maybe have options for the amount of randomness.

Is there an unbiased scrambling (or random generation) algorithm, or is it enough to just generate N random moves?

schiffern 11/1/2025||
To answer my own question, competitive cubing uses unbiased randomization algorithms.[0] To minimize scrambling time, it could fairly generate a random configuration and then optimally scramble the cube in ~18 moves.[1]

TL;DR fair scrambling is exactly as fast (same throughout) as solving random cubes! Neat.

[0] https://www.cubelelo.com/blogs/cubing/how-to-scramble-a-rubi...

[1] https://en.wikipedia.org/wiki/Optimal_solutions_for_the_Rubi...

noman-land 11/1/2025|||
You can but it doesn't need to be smart at all. It doesn't need cameras. It's a much simpler machine.
boneitis 11/1/2025|||
Funny enough, that (e: the shuffle function mentioned in original thread post, just realized my awkward comment placement) sounds like a very reasonable stretch goal/feature add-on, although I'm not sure this particular machine could shuffle quickly enough for speedcuber types.
rplnt 11/1/2025|||
It needs to be somewhat smart, if you want to track your scrambles and times. But yes, it doesn't need cameras if it trusts you.
chris_overseas 11/1/2025||
There's a lot more detail describing the project in a couple of forum posts here: https://forum.pjrc.com/index.php?threads/sarcasm-an-over-eng...
xiaoyu2006 11/1/2025||
I think you built a rubik cube solving machine just to show-case your acronym ;-) Super cool work.
teunlao 11/1/2025||
SARCASM: the only acronym worth building hardware for
klaudioz 11/1/2025||
Cool!!, I've created this one 16 years ago: https://www.youtube.com/watch?v=bkWLQZgi9uE

I can see very similar movements this robot is doing compared to my old robot. I really like the screen outputs of it.

shmeeed 11/1/2025||
This is a hot contender for the Most Awesome Thing I Saw On The Internet In 2025. Incredible work!
zkmon 11/1/2025|
Solving a cube has two parts, determining the moves and making the moves. For humans these two activities happen mostly in parallel. For robots, moves were already determined before the start. So the time taken is merely all about speed of move making.
More comments...