Cubeast - a speedcubing timer for Bluetooth cubes with support for all Bluetooth cubes, all timers and all major solving methods

Hi, I made my next 3bld attempt, unfortunately it was dnf. How can I make cubeast stop and save the solve even when it was dnf? I tried to go to "Log" and the timer stopped, but the solve was not saved. Is there a chance to save dnf solves, even before you add the DNF button?

I've had that on my todo list for a while. It might have to wait until I'm done with my case recognition / exercises update.
 
Screenshot from 2021-06-13 23-07-50.png
 
I've had that on my todo list for a while. It might have to wait until I'm done with my case recognition / exercises update.

Sorry, I don't want to push you. I only thought if there were a workaround that I could use now before your update.

I will try to do something like U4 and then solve the rest of the cube with open eyes. Then I will see in the recognition where I stopped the blindfolded attempt.
 
How do you go about adding support for new cubes? I am curious on the process as I have no idea how to do it, I want to learn from your code but since it is closed source I am unable to do that.

Do you manually decrypt packets coming from the BLE connection? I want to create an application for my GAN, and was looking for an existing library out there. I think only cubeast supports it for now aside from the official GAN apps. I don't mind throwing a few dollars to donate to this project and at the same time learn how it was done.
 
How do you go about adding support for new cubes? I am curious on the process as I have no idea how to do it, I want to learn from your code but since it is closed source I am unable to do that.

Do you manually decrypt packets coming from the BLE connection? I want to create an application for my GAN, and was looking for an existing library out there. I think only cubeast supports it for now aside from the official GAN apps. I don't mind throwing a few dollars to donate to this project and at the same time learn how it was done.

I assume you're talking about the Gan i Carry. The other Gan cubes are supported by csTimer and the cubing.js library. You can find both of their source codes on Github.

In general it's not easy. Gan makes it difficult on purpose. I guess they don't like 3rd party software connecting to their cubes. The i Carry adds another level of complexity when it comes to interacting with it because it uses the device's MAC address to encrypt messages, so the encryption key is different for every cube. I'm willing to share the details of the protocol in private, but it'd take some time for me to write a detailed description. I suggest you first start with other cubes, either Gans or other manufacturers. Once you have that working feel free to reach out.
 
I assume you're talking about the Gan i Carry. The other Gan cubes are supported by csTimer and the cubing.js library. You can find both of their source codes on Github.

In general it's not easy. Gan makes it difficult on purpose. I guess they don't like 3rd party software connecting to their cubes. The i Carry adds another level of complexity when it comes to interacting with it because it uses the device's MAC address to encrypt messages, so the encryption key is different for every cube. I'm willing to share the details of the protocol in private, but it'd take some time for me to write a detailed description. I suggest you first start with other cubes, either Gans or other manufacturers. Once you have that working feel free to reach out.
wow thank God I didn't buy that cube. I got a Giiker, will test it with your app as soon as it arrives
 
I assume you're talking about the Gan i Carry. The other Gan cubes are supported by csTimer and the cubing.js library. You can find both of their source codes on Github.

In general it's not easy. Gan makes it difficult on purpose. I guess they don't like 3rd party software connecting to their cubes. The i Carry adds another level of complexity when it comes to interacting with it because it uses the device's MAC address to encrypt messages, so the encryption key is different for every cube. I'm willing to share the details of the protocol in private, but it'd take some time for me to write a detailed description. I suggest you first start with other cubes, either Gans or other manufacturers. Once you have that working feel free to reach out.

Thanks, they are already discussing it here https://github.com/cubing/cubing.js/issues/118
 
That was fast with Moyu support. Are they sensible and have a public API ? Or do they keep their bad software to themself ?

Another thing, I have never been able to connect (Windows Edge Chromium, iOS Bluefy) to my iCarry by picking it from the list. I ALWAYS have to connect to new cube. It is a small thing, but from what I read on the cubing.js github, it should remember it.
 
That was fast with Moyu support. Are they sensible and have a public API ? Or do they keep their bad software to themself ?

No public API, but the API itself is not encrypted and the nicest and most advanced out of all the manufacturers. They also invited me to their test program knowing fully who I am, so it looks like they're open to 3rd party apps connecting to their cubes.

Another thing, I have never been able to connect (Windows Edge Chromium, iOS Bluefy) to my iCarry by picking it from the list. I ALWAYS have to connect to new cube. It is a small thing, but from what I read on the cubing.js github, it should remember it.

Can you PM me your email that you've signup up with on Cubeast? I'll have a look at your settings.
 
Hi, I have annother little (and not very important) suggestion:
I have a session called "Roux" which is not my main method. So every time I change to that session, I also have to switch the method manually also to Roux. It would be nice if you can use a standard method for each session.
What do you think about that?
 
Hi, I have annother little (and not very important) suggestion:
I have a session called "Roux" which is not my main method. So every time I change to that session, I also have to switch the method manually also to Roux. It would be nice if you can use a standard method for each session.
What do you think about that?

I could add a method field to the session settings. That would force the selection of a given method.
 
I'm looking forward to use this app. My giiker will arrive anytime soon so I can post my first impressions
 
I have already expressed similar sentiment that most settings like timer and method should be per session.
And current session should be a device setting (cookie?) So that I always have phone session active with cube timer on the phone.
 
Thank you for a very nice software. It works for me on both my Android mobile and on the PC. I am using the Moyu AI Cube and have found Cubeast wonderful for aggregating solve stats and for analysis. I have one suggestion for your consideration.

I am learning Roux and I build both blocks at the same time, i.e. not waiting for the first block to finish before adding pairs to the other block if I find a pair (belonging to the other block) that is easy or convenient to do at the time. I noticed that the Cubeast stats for the Left Block is not necessarily for that block, but rather for the First Block. For example, if I finished the Right Block first, I would find the time up to that point reported by Cubeast as the time for the Left Block. If this is indeed the case, then I think it may be good to call the blocks, First Block and Second Block instead of Left Block and Right Block. That means the First Block is the first block that is finished. However, it would be even better, if you can make the software recognise the Left and Right Block pairs as they are being inserted and accumulate the times actually used for building each block. At this time it appears to me, that the time spent building the First Block includes time used to build the second block. That is why, I think, the time for my first block (or Left Block as reported by Cubeast) is almost always significantly more than for the second block. I hope I have described the matter clearly. I am able to check the total time by adding the two times together, and that is helpful. It would be even better I think if there can be more clarity in those two block building time for analytical purposes.

(I always set up both the Blue-White edge piece and the Green-White edge piece on the left and right side respectively, when I start solving, so that I can insert pairs whether they are for the Blue or the Green block without waiting for one block to finish before starting the next.)
 
Last edited:
Thank you for a very nice software. It works for me on both my Android mobile and on the PC. I am using the Moyu AI Cube and have found Cubeast wonderful for aggregating solve stats and for analysis. I have one suggestion for your consideration.

I am learning Roux and I build both blocks at the same time, i.e. not waiting for the first block to finish before adding pairs to the other block if I find a pair (belonging to the other block) that is easy or convenient to do at the time. I noticed that the Cubeast stats for the Left Block is not necessarily for that block, but rather for the First Block. For example, if I finished the Right Block first, I would find the time up to that point reported by Cubeast as the time for the Left Block. If this is indeed the case, then I think it may be good to call the blocks, First Block and Second Block instead of Left Block and Right Block. That means the First Block is the first block that is finished. However, it would be even better, if you can make the software recognise the Left and Right Block pairs as they are being inserted and accumulate the times actually used for building each block. At this time it appears to me, that the time spent building the First Block includes time used to build the second block. That is why, I think, the time for my first block (or Left Block as reported by Cubeast) is almost always significantly more than for the second block. I hope I have described the matter clearly. I am able to check the total time by adding the two times together, and that is helpful. It would be even better I think if there can be more clarity in those two block building time for analytical purposes.

(I always set up both the Blue-White edge piece and the Green-White edge piece on the left and right side respectively, when I start solving, so that I can insert pairs whether they are for the Blue or the Green block without waiting for one block to finish before starting the next.)
I understand what you want me to do, but I'm afraid I'll have to refuse.

First of all what you describe would be more difficult to implement than it seems. What if someone does a couple of turns that solve something in the first and second blocks at the same time? What if someone does turns which for example pair up two pieces, but don't place them in the right position yet and then proceeds to solve some pieces from the other block? The entire thing becomes much more complex than the current analysis.

It'd also require me to spend a good amount of time on it. Sounds like it could be up to few days of work. I currently have a long todo list of things to work on and not as much time as I'd like. I need to select things I'm working on carefully. If your request would be made by the majority of Roux users then I'd seriously consider it, but you're the first person to mention it.

Sorry for my answer being so blunt, but it's honest.
 
Here's a couple more issues I have with Cubeast and I would like to bring to your attention.

1. The video/animation replay feature is great, as I can see where I get bogged down and made mistakes etc. It works fine for normal replays. However, if I rewind and then FF, back and forth a few times, by dragging the blue dot, the slider, sometimes some of the cube pieces displayed would disappear. Maybe their images were not refreshed. See photo attached. Moyu AI Cube and Dell laptop used.

2. This is related to the previous problem I reported about how the step times for Roux block building is inaccurately reported by Cubeast. It happened more than once, and I think I am not the only one experiencing this, as I believe other Roux cubers also do the same thing.

I build a right block on the left and a green one on the right, but often I would ignore the centre pieces of those blocks when building the blocks, since getting them in place would mean more restriction in moves. Then, later, when the blocks are complete except for the blue and green centre pieces, I will do a few easy turns to put those centre pieces in the right place. Of course, being opposite one another, when the blue centre piece is put in the right place, the green centre piece will also be put in at the same time, i.e. both blocks are finished at exactly the same time. Cubeast would put the total time for building both blocks as time used to build the "Left Block". See photo. This looks odd. Also, there is no Recognition time for any of block building steps at all, even though I had lengthy pauses between those execution steps. An easy fix is to give half of the total block building time as the step time for each block, but I am not sure if that is necessary correct and I wonder what your thoughts are if you are already aware of it.

Cubeast image 1.jpg


Cubeast image 2.jpg


Thanks for your attention.
 
Last edited:
Back
Top