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?
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 :-)
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!
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.
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.
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!
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.
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
> 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.
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?
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.
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.
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.
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.
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?
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.
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.
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.
I've started with a solved cube, then turned 2 sides sharing an edge, alternatively (same direction) expecting the cube to get messed up but then returning to its solved state.
It never got solved! Maybe i didn't do it enough (i did it hundreds of times i think). Has anyone got an explanation?
The cyclic group generated by e.g. RU has order 105 (so 210 total turns or 105 of each side, alternated). If you have some math know-how, check out [1]. If you don't, take my word for it: when I was a teenager playing around with cubes, I once had a similar experience trying to do the same thing you did - when I went relatively quickly it never returned to the solved state, but when I was very deliberate about each turn, I got the 105 result (not by counting back then, but by rough time estimate given the figure I just looked up). Both you and I probably accidentally threw in one or more double-turns (like a U2) in there, or undercounted and gave up well before the cycle had completed (I, too, had thought I'd made "hundreds" of moves).
The personality of creator really shines through in the software. Douglas Adams would be pleased, I hope loads of hackers will be inspired to make more 'Adamsian' robots.
Western cubes always have white opposite yellow. Japanese cubes always have white opposite blue. (The center piece on each side can be considered "fixed" relative to all moves.)
whats the point?
rubicubes are for hoomans
got one when I was 12, solved the next day, couldn't tell you how,got better, got fast, got bored, never touched one again.
but this much....not knowing and solving as an unconsious process is
likely to be the advantage
or to put it another way, knowing is limmiting and constrains doing.
hooman thing.right
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...
I wonder how many cubes they exploded in the making of that robot
Impressive and a bit mad.
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
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?
Maybe there's a new instruction we don't know about in modern CPUs, like RUBIK_SOLVE or something.
I mean, we've had RUN_DOOM for many years now, so why not?
They probably meant millisecond
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...
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!
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.
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!
Can you post the STL files for the shell and Arms?
Great project.
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.
Done. Added stl files to the repo.
> 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.
hehe, it was indeed a major motivation :-)
The aesthetics of this are great. Nice job.
Demo: https://youtube.com/shorts/Xer4mPZZH8E
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!
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.
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
> 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.
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?
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.
This is a great question! Doesn’t seem like it’d be hard to make if it doesn’t already exist
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.
Can’t you just run the solving machine in reverse?
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?
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...
You can but it doesn't need to be smart at all. It doesn't need cameras. It's a much simpler machine.
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.
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.
I built a cubotino a few years ago, similar mechanism, see https://github.com/AndreaFavero71/cubotino
Uses a rpi 2 w, works well, can solve and scramble 3x3x3 cubes, using just 2 servo motors.
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.
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...
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.
This looks like a good place to ask HN:
I've started with a solved cube, then turned 2 sides sharing an edge, alternatively (same direction) expecting the cube to get messed up but then returning to its solved state.
It never got solved! Maybe i didn't do it enough (i did it hundreds of times i think). Has anyone got an explanation?
The cyclic group generated by e.g. RU has order 105 (so 210 total turns or 105 of each side, alternated). If you have some math know-how, check out [1]. If you don't, take my word for it: when I was a teenager playing around with cubes, I once had a similar experience trying to do the same thing you did - when I went relatively quickly it never returned to the solved state, but when I was very deliberate about each turn, I got the 105 result (not by counting back then, but by rough time estimate given the figure I just looked up). Both you and I probably accidentally threw in one or more double-turns (like a U2) in there, or undercounted and gave up well before the cycle had completed (I, too, had thought I'd made "hundreds" of moves).
[1] https://faculty.etsu.edu/gardnerr/4127/algebra-club/rubik-ta... - slide 41
It should take 105 repetitions:
https://alpha.twizzle.net/explore/?alg=%28U+R%29105
Unless by "same direction" you mean "opposite direction", in which case 63 works:
https://alpha.twizzle.net/explore/?alg=%28U+R%27%2963
I think you built a rubik cube solving machine just to show-case your acronym ;-) Super cool work.
The personality of creator really shines through in the software. Douglas Adams would be pleased, I hope loads of hackers will be inspired to make more 'Adamsian' robots.
I'm looking forward to more genuine people personalities from Unsirious Cybernetics.
SARCASM: the only acronym worth building hardware for
This is a hot contender for the Most Awesome Thing I Saw On The Internet In 2025. Incredible work!
The screen ui aestetic and audio (specifically the dubbing) remind me of the silver case series, may be a total reach, nice touches none the less!
https://en.wikipedia.org/wiki/The_Silver_Case
Impressive work. Curious to how many hours of labor what the development path was. Several man-years possibly?
This is fantastic, how did it not get confused by the blue logo on the cube in the video?
Western cubes always have white opposite yellow. Japanese cubes always have white opposite blue. (The center piece on each side can be considered "fixed" relative to all moves.)
Ahh right, I forgot the center piece defines the face color, thanks.
This is one of the best arguments for purchasing a 3D printer
It's a cool project, but also they're really underselling the amount of work put in to make it annoying.
whats the point? rubicubes are for hoomans got one when I was 12, solved the next day, couldn't tell you how,got better, got fast, got bored, never touched one again. but this much....not knowing and solving as an unconsious process is likely to be the advantage or to put it another way, knowing is limmiting and constrains doing. hooman thing.right
Pedantic pet peeve: it'd be S.A.R.C.A.S.M. or SARCASM but not S.A.R.C.A.S.M
You are missing the last full stop, unless your project is actually meant to be called "S.A.R.C.A.S. M"
An initialism either uses full stops after all letters or none of them.