# Software: kubesolver - easy algorithm generator for 3x3x3

#### kubesolver

Ok, thanks, but how long would it take to setup the input data on each solver?
If you already are a proficient computer user and understand a cubing notation and are familiar with kubesolver a little then setting something like "generate all RUD G-pemrs" is maybe one minute of work. Then usually less than a minute to generate more algs that you can ever dream to evaluate.

The bottleneck of a process of alg generation will be drilling hundreds of algs to figure out which ones are good.

#### WarriorCatCuber

##### Member
Is it possible to ignore other parts of the cube, like, say, solving corners of the last layer while ignoring the E-slice edges, the U edges and the DF edge?

#### kubesolver

Is it possible to ignore other parts of the cube, like, say, solving corners of the last layer while ignoring the E-slice edges, the U edges and the DF edge?
Yes, please see the readme. There are quite some examples. In particular you can do something like
Code:
init_empty_cube
...
...
to add those edges and corners that have to solved and the rest can be ignored.
For example solving an x-cross can be done be specifying 5 edges and 1 corner like this:
Code:
init_empty_cube
<scramble>
solve

#### WarriorCatCuber

##### Member
Yes, please see the readme. There are quite some examples. In particular you can do something like
Code:
init_empty_cube
...
...
to add those edges and corners that have to solved and the rest can be ignored.
For example solving an x-cross can be done be specifying 5 edges and 1 corner like this:
Code:
init_empty_cube
<scramble>
solve
Ok, nice I understand better now. One last question: Does it gen algs with Slice moves and Wide moves?

#### kubesolver

You have to specify it with a command set_gen. Examples:
Code:
set_gen MU
set_gen RrU

#### WarriorCatCuber

##### Member
You have to specify it with a command set_gen. Examples:
Code:
set_gen MU
set_gen RrU
Ah ok thanks a lot. I'll probably download this if I can convince my parents it doesn't contain a virus.

#### qwr

##### Member
A lot of this confusion could be solved by releasing the source code

I've downloaded it on my Mac, but I'm confused how to gen algs. The readme references a "in.txt" file, where is that file supposed to be located and what exactly should I be typing in it?
I haven't used the program but it reads from STDIN and outputs to STDOUT and likely the same across all platforms
kubesolver.exe < in.txt > out.txt

so run it from command line in the directory with the solver and input file

#### kubesolver

A lot of this confusion could be solved by releasing the source code
I honestly don't see how. The sources and build file are on github. search in Google 'github kubesolver'.

've downloaded it on my Mac, but I'm confused how to gen algs. The readme references a "in.txt" file, where is that file supposed to be located and what exactly should I be typing in it?
@ProStar

Did you REALLY read instructions for mac?

##### Member
Is it also possible to launch on OS X 10.13.6? I mean, when I try to execute some simple example, it says that it was built for 10.15 or something higher. Would there be drastic changes in code?

#### kubesolver

I don't know. If you have some basic understanding of programming you might try to build the sources on your machine. I guess it would just work.

#### brododragon

##### Member
Are you thinking of adding a function that takes the colors to figure out how to optimally solve the cube?

Here's how I might do it to make it simple (example is H perm):
> reconstruct color
U FACE:
> W9
L FACE:
> ORO7
F FACE:
> GBG7
R FACE:
> ROR7
B FACE:
> BGB7
D FACE:
> Y7
(Gens algs here)
Should be pretty straight forward, but here's an expanation anyway. First, you call reconstruct color to start it off (configuration can of course be done before that). It gives you the first face to define (face order is ULFRBD), which you define with WOGRBY, top to bottom, left to right. To make things easier, you can use numbers to say how many times you want something to be repeated. WWWWWWWWW = W9 (solid face). That's pretty much it.

More ideas:
A command to define a case but without a few pieces, to which the program would gen algs for all possible cases. I might write a seudo-interface later.

Here's a simple one: make a -d switch that only does optimal. Something like:
> -d optimal
Also, you could make it so you could set the ceiling a few higher than optimal:
> -d optimal 2
Does 2 over optimal.

Anyway, I don't know how hard these would be, but I would love to see these features. Could I mess around with the code?

#### kubesolver

Are you thinking of adding a function that takes the colors to figure out how to optimally solve the cube?
I thought about but thought that it's useless for my desired audience as for speedcubers it takes less time to find a setup to their desired position than to write stickers colors one by one.

A command to define a case but without a few pieces, to which the program would gen algs for all possible cases. I might write a seudo-interface later.
I think it's already there, but maybe I don't understand what you mean.

Also, you could make it so you could set the ceiling a few higher than optimal:
> -d optimal 2
yes, I plan to add this switch as I also think it's useful
Could I mess around with the code?
You can find it on github if you google "kubesolver". I don't advertise it as it's the raw code without much explanaition.

#### brododragon

##### Member
I thought about but thought that it's useless for my desired audience as for speedcubers it takes less time to find a setup to their desired position than to write stickers colors one by one.
That's the point of the numbering part (put numbers by a color to repeat it x number of times). Also, despite the fact that finding a setup could be faster, it would be long and extremely tedious to write out. The H perm took me ~5 minutes and that included some of the inventing of the system.
I think it's already there, but maybe I don't understand what you mean.
I could give a scramble, ignore UL, UF, UR, and UB, then it would generate all of ELL.
You can find it on github if you google "kubesolver". I don't advertise it as it's the raw code without much explanaition.
Thanks!

#### kubesolver

The H perm took me ~5 minutes and that included some of the inventing of the system.
Setting up H-perm in kubesolver took you 5 minutes?
Even if you don't know H-perm by heart you can:
copy/paste into kubesolver setup.
Like this you can find MU Hperms. (it took me 15 seconds to set it up)
Code:
set_gen MU
R U2 R' U' R' U' R2 U' R2 U2 R2 U2 R' U
solve

OUTPUT:
(...)
INFO: Searching 7 move solutions...
M2 U M2 U2 M2 U M2
M2 U' M2 U2 M2 U' M2
(...) ..
anyway - I have done some dirty tricks to fit the cube state in 128 bits that prevent me from easily accepting user to set arbitrary color stickers on a cube.

I could give a scramble, ignore UL, UF, UR, and UB, then it would generate all of ELL.
See the readme. This already works. However instead of removing the pieces you have to add them all to an empty cube (for some reasons I don't want to dwelve into)

For the example you provided when you want to solve all except of U layer edges you can write this:
Code:
init_empty_cube
add_corners

#### brododragon

##### Member
See the readme. This already works. However instead of removing the pieces you have to add them all to an empty cube (for some reasons I don't want to dwelve into)
Thanks!
EDIT: sorry I meant that it gives all algs for all possible states.
I did:
set_gen RU
M2 U2 M2 U2
reconstruct
and it gave me sequences that just solve the cube from a solved state.

Also, I'm having trouble with the -n and -d switch. Whenever I try calling it, the program quits.

EDIT 2: Figured it out. Call it from cmd. Is there a simpler way?

EDIT 3: You can brick you computer by first adding F2L, EO, an. CO, then solving a PLL.

Sorry for all the updates and suggestions, it's probably getting quite annoying.

Last edited:

#### kubesolver

There is a new update 1.0.5. It addressees some of the suggestions. Also there is a new website address kubesolver.com

- Fix a problem when some sequences were not printed. (sequences that had equivalent partial sequences to some other sequences)
- Fix a problem with moves that don't change cube state
- Add new option max-depth-after-first-match (da)
- Add option to set all options as commands rather than commmand line argument. Now it's possible to set max nunber of moves or depth in config.
Example:
set n 10 - print first 10 sequences found
set da 1 - only searcg sequences at most 1 move longer than the shortest sequence found
set d 14 - only search sequences at most 14 moves long.

@brododragon. Sorry I missed your previous post somehow. Yes, the program can brick your computer if you try to calculate a full cube from the beginning. The program isn't meant for that honestly. You can use a the solve_two_phase command for that. But it should rather be used for cases which can be solved either in a small number of moves or with small number of generators.

set_gen RU
M2 U2 M2 U2
You can;t solve that case with RU because it affects edges in D layer. My program isn't designed to gracefully fail on impossible inputs.

#### N's-cvt

##### Member
Unfortunately I can't access the zip file becuase of this:

Apache Server at kubesolver.com Port 443

#### kubesolver

Unfortunately I can't access the zip file becuase of this: