• Welcome to the Speedsolving.com, home of the web's largest puzzle community!
    You are currently viewing our forum as a guest which gives you limited access to join discussions and access our other features.

    Registration is fast, simple and absolutely free so please, join our community of 40,000+ people from around the world today!

    If you are already a member, simply login to hide this message and begin participating in the community!

Better way of maintaining super big alg sheets

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
In my opinion, cube images are not necessary for the UF5 alg set. Every person interested in these types of algs (even 3-Style) should be able to know what happens to the cube when we use the UF-UR-LB 3-cycle for example, without visualization.
So you're posting in a thread to help someone by saying that what they are specifically asking for isn't necessary? How is that help? Your posts so far seem more of advertising your software which you happened to be working on before this thread existed. I advised to start your own thread to do just that: advertise it.

But the OP defined the image generation as one of the main problems,
Housing a lot of images was the problem, not generating them. Perhaps if the images are put into a folder which is linked to a FREE spreadsheet software (like Open Office) such that the images are loaded into view as the user scrolls down the spreadsheet, this could be another solution. But the images you show don't show edge DB. @abunickabhi wants to see all piece stickers.

and for big alg sets in general this is a valid assumption, which is why I wanted to share my approach here, especially after reading about images generated from an array of colored excel cells, etc..
We are not short of software to create cube images. The point of this is to be able to house the images. Yes, a PDF is the best option to hold the images, but it's not user-friendly to search it.

My approach is platform-independent, it doesn't require commercial software,
The most basic versions of Microsoft Office all include Excel. If someone doesn't have any version of Microsoft Excel in 2021 (my software can probably work on Excel 2003), I don't think they have an internet connection, to be quite frank.

and it doesn't depend on external tools. It is reasonable to expect that python and latex are still available in a couple of years.
I don't disagree with you there. But Microsoft is like Coca Cola. They are definitely not going anywhere (unless we enter another ice age).
 

qwr

Member
Joined
Jul 24, 2019
Messages
2,727
YouTube
Visit Channel
The most basic versions of Microsoft Office all include Excel. If someone doesn't have any version of Microsoft Excel in 2021 (my software can probably work on Excel 2003), I don't think they have an internet connection, to be quite frank.
I use Ubuntu on my main laptop and I don't have Excel because I don't need to use Excel for anything I do on a daily basis. In 2021 I think a lot of people have actually moved away from MS Office to online tools like Google Sheets or viable alternatives like Libre Office or whatever Mac users use.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
@qwr, what's with the nitpicking? What is your objective? Is it just your hobby to debate with people? And I'm not just talking about this reply. You seem to do this everywhere.

(But back to this topic: Sure, they're exceptions to the rule, but no, unless I get an un-biased statistic convincing me that the majority of the younger generation doesn't have Office, I'm not convinced.) And Microsoft Office is available on Mac.)
 
Last edited:

Habsen

Member
Joined
Dec 10, 2019
Messages
73
WCA
2020HABE01
So you're posting in a thread to help someone by saying that what they are specifically asking for isn't necessary? How is that help? Your posts so far seem more of advertising your software which you happened to be working on before this thread existed. I advised to start your own thread to do just that: advertise it.

The most basic versions of Microsoft Office all include Excel. If someone doesn't have any version of Microsoft Excel in 2021 (my software can probably work on Excel 2003), I don't think they have an internet connection, to be quite frank.

I don't disagree with you there. But Microsoft is like Coca Cola. They are definitely not going anywhere (unless we enter another ice age).

I said that images are not necessary for the UF5 alg set (which is the main project of the OP), but as the thread is about big alg sets in general, images are definitely required. And this is where I offered to help.

I am not interested in advertising my software. I am developing it for myself to build alg sheets that I couldn't find anywhere else. And I know that publishing software to the community involves a lot of additional work, e.g. for ensuring that it runs on different platforms, checking user inputs that I would never do, etc..

And finally, your opinion about the availabilty of Microsoft Office is super annoying. There are many people that don't want to use Microsoft Windows, myself included.
 

qwr

Member
Joined
Jul 24, 2019
Messages
2,727
YouTube
Visit Channel
It's not nitpicking. I believe a platform independent solution that doesn't depend on commercial software is an important consideration. I also believe that a solution with MS Office does not scale on a fundamental level (my experience with opening a giant excel spreadsheet, created by people who only know excel). Bear in mind, many users here are programmers and students who use Linux or Mac regularly. However, since you've made good progress on the VBA solution, I'm not going to tell you to stop or discourage you or post any more about it.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
I finished the image generator in Microsoft Excel yesterday. It consists of several parts. Here is a video demonstrating it. If there is still interest in me continuing with this project, let me know and I can try to increase the speed some more if I can. (But I have to take a break from this until the weekend, as I have other programming to do.)

EDIT:
I mentioned in a previous post that I was using conditional formatting to dynamically color the cells for each scramble, but it turns out that the convert_cells_to_image functionality in Excel (via copy and paste) made the program slow when combined with copying cells that are not actually the color that you see that they are (conditional formatting). So I was looking for a workaround, but didn't find one anywhere. But I figured out one for myself. Point being, I saw this post in one of the threads I was hoping to find a solution. (It was about 2 side PLL recognition! It's a small world!)
 
Last edited:

abunickabhi

Member
Joined
Jan 9, 2014
Messages
3,347
Location
Yo
WCA
2013GHOD01
YouTube
Visit Channel
I finished the image generator in Microsoft Excel yesterday. It consists of several parts. Here is a video demonstrating it. If there is still interest in me continuing with this project, let me know and I can try to increase the speed some more if I can. (But I have to take a break from this until the weekend, as I have other programming to do.)

EDIT:
I mentioned in a previous post that I was using conditional formatting to dynamically color the cells for each scramble, but it turns out that the convert_cells_to_image functionality in Excel (via copy and paste) made the program slow when combined with copying cells that are not actually the color that you see that they are (conditional formatting). So I was looking for a workaround, but didn't find one anywhere. But I figured out one for myself. Point being, I saw this post in one of the threads I was hoping to find a solution. (It was about 2 side PLL recognition! It's a small world!)
Hello,

The image generator in Micosoft Excel looks good. It is fine with 6 colours, the back stickers are distinguishable to a trained eye, no need of having 8 or more colours to represent the image.

Speeding up for longer algorithms is not necessary, since it will be a search engine based excel sheet, so only one case will be shown at a time, right?

Thanks for all the time and effort you have spent over the past 2 weeks, Chris, this problem I could never find a solution for many months. I just pasted cube images manually into cells, which also made the spreadsheet big.

Its fine if you take a break, I will be continuing this project for a while, and I have a couple of big algsets that I want to complete, so there is no short time deadline that I have.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
The image generator in Micosoft Excel looks good. It is fine with 6 colours, the back stickers are distinguishable to a trained eye, no need of having 8 or more colours to represent the image.
Oh, okay. After I mentioned that in the video, I think that can be taken care of even by making the background color darker (whereby I would then make the default D face color exactly RGB(255,255,255) -- pure white). But it's definitely a relief that you're okay with that!

If for any reason you want to have the ability to create your own cube image template (pixilized cube), I have a part of that already done. (But it's just 3x3x3 only right now.)

Speeding up for longer algorithms is not necessary, since it will be a search engine based excel sheet, so only one case will be shown at a time, right?
Correct. And I actually made two "mistakes" before I filmed that video. The first is that I didn't have "Application.ScreenUpdating = False". That speeds up the program AND I wrote two completely different subroutines to apply the sticker colors. The one I happened to use in the video is the slower of the two! So with these two changes, it's about 15% faster now (at least).

Thanks for all the time and effort you have spent over the past 2 weeks, Chris, this problem I could never find a solution for many months. I just pasted cube images manually into cells, which also made the spreadsheet big.
Oh, this is fun! Roughly 2,000 lines of code for everything so far. (Probably won't get much larger . . . unless I decide to do the 4x4x4 and up. (Another advantage to pulling up one case at a time is to be able to zoom in on the image as much as possible . . . this allows for viewing very large cubes . . . and this zoom can be done automatically for you!)

Its fine if you take a break, I will be continuing this project for a while, and I have a couple of big algsets that I want to complete, so there is no short time deadline that I have.
Oh, okay. I will do what I can to fulfill my promise and post a video presenting it when it's done.

But I have a few questions:
  • Do you want the program to also complete the Cube Target and Speffz columns for you too? (Very easy to do in comparison to what I did with the images, especially that that's dependent on an algorithm parser.)
  • I already know that you want it to be able to convert to Yo Notation and to Singmaster (both directions). That is, if you feel like typing in an algorithm in either notation, the sheet will automatically write the algorithm in the other notation.
  • Alg Count column is very easy to do also (because I was lazy and implemented my algorithm parser to just break algorithms up into quarter turns. So if you type in the move "F2", it will literally do the move F twice. So it's easy to count the number of turns. If you would like this in different move metrics, state which ones you like. (But if you're wondering what's the easiest, STM for sure, because it's just counting spaces between moves . . . assuming that the algorithms are typed correctly, not like F F R2 B' B.)
 
Last edited:

abunickabhi

Member
Joined
Jan 9, 2014
Messages
3,347
Location
Yo
WCA
2013GHOD01
YouTube
Visit Channel
Correct. And I actually made two "mistakes" before I filed that video. The first is that I didn't have "Application.ScreenUpdating = False". That speeds up the program AND I wrote two completely different subroutines to apply the sticker colors. The one I happened to use in the video is the slower of the two! So with these two changes, it's about 15% faster now (at least).
Good to hear about the speedup. I have a silly question. Does the execution of the code that makes the image depend on the RAM capacity? I do have 16GB RAM, but I was just curious to see if RAM capacity can optimize the problem.

Oh, this is fun! Roughly 2,000 lines of code for everything so far. (Probably won't get much larger . . . unless I decide to do the 4x4x4 and up. (Another advantage to pulling up one case at a time is to be able to zoom in on the image as much as possible . . . this allows for viewing very large cubes!)
Woah 2k lines of code is a lot. Do you have any personal projects of yours where you will be requiring a 4x4 cube image to be drawn in excel. For me, a 3x3 cube image will suffice.

  • Do you want the program to also complete the Cube Target and Speffz columns for you too? (Very easy to do in comparison to what I did with the images, especially that that's dependent on an algorithm parser.)
It will be good if the VBA code does the Cube Target and Speffz column as well. Although I am fine just pasting values in the column, and after them via the substitute formula

  • I already know that you want it to be able to convert to Yo Notation and to Singmaster (both directions). That is, if you feel like typing in an algorithm in either notation, the sheet will automatically write the algorithm in the other notation.
I tried to do a bit yesterday in excel, using the REGEXEXTRACT formula, I would like to figure that problem on my own I guess. On the other hand, typing the Yo notation is super fast for me, and it is revision for me as well, so I do not mind if they are not automatically generated.

  • Alg Count column is very easy to do also (because I was lazy and implemented my algorithm parser to just break algorithms up into quarter turns. So if you type in the move "F2", it will literally do the move F twice. So it's easy to count the number of turns. If you would like this in different move metrics, state which ones you like. (But if you're wondering what's the easiest, STM for sure, because it's just counting spaces between moves.)
I prefer the STM metric for sure. The algorithm length is 10.58 STM for the current algset. I am with the STM metric of expression.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Good to hear about the speedup. I have a silly question. Does the execution of the code that makes the image depend on the RAM capacity? I do have 16GB RAM, but I was just curious to see if RAM capacity can optimize the problem.
See this screen recording of my Windows Task Manager during program execution. So it looks like it's not a RAM issue. I actually took care of what could have been a RAM issue by choosing to create a pre-defined table of sticker pixel cell address (as opposed to using conditional formatting to find them), because when I broke the program into two pieces (everything but the last part, where the last part was literally just copying and pasting the cells as an image), if executed separately, both were completed very fast. But when together, it was literally like 15 seconds for one image! I just timed the program (with the first 5 scrambles from the other video) with "exact timing code". Video. (And yeah, my screen is dim. It's late!)

Do you have any personal projects of yours where you will be requiring a 4x4 cube image to be drawn in excel.
Probably not.

It will be good if the VBA code does the Cube Target and Speffz column as well. Although I am fine just pasting values in the column, and after them via the substitute formula
VBA can automatically (like I mentioned in that 17 minute video, I believe) apply that formula for you. (If you meant that, I apologize.) But it's really not a big deal.

But I noticed something when looking at your Cube Target column. Regarding how you write UL somettimes and then LU. I pulled out my "Handbook of Cubik Math" by Singmaster himself, and he mentioned that you call them by how they are positioned relative to the cube slot that they are in. Is that what you're doing? Or are you assuming that UL is oriented (because U is first, not because of how it is positioned in the slot that it's in) and LU is not? Because if so (I really don't care either way, but I want to code this to your preference!), I am confused about the two bold abbreviations I put under the unoriented column. (You assigned those two abbreviations in some rows to edges that were both unoriented.)
OrientedUnoriented
ULLU
URRU
UBBU
FDDF
BDDB
LFFL
RBBR
FR
RF

I tried to do a bit yesterday in excel, using the REGEXEXTRACT formula, I would like to figure that problem on my own I guess.
I wrote a commutator and conjugate expander in Excel in 2013. (Which also finds inverses, by definition.) Would you like that integrated into your sheet? I never did (nor do I think anyone has done the reverse . . . expressing an algorithm as a commutator), but if you're interested for me to try to write a function that does that, let me know. (The function probably will come up with more than one representation for longer sequences which are not clearly commutators at first without cyclic shifts and extra/redundant turns introduced, but I can't help that. I will just have to tell it which of the choices to display to the user/put in the cell.)

On the other hand, typing the Yo notation is super fast for me, and it is revision for me as well, so I do not mind if they are not automatically generated.
Okay. What I can do is code it in, but add some more buttons in the Settings tab for you to turn these things off or on as you please. (What I showed with the Settings is just the start.)

I prefer the STM metric for sure. The algorithm length is 10.58 STM for the current algset. I am with the STM metric of expression.
Okay. I probably still need to use the algorithm parser to count the moves + an algorithm simplification program (which I have written in another language -- Mathematica. So if time permits, I can translate that into VBA and use it to guarantee that more move counts are accurate.)

--------------------------
Lastly, I know we talked about this before, but you want to have three additional columns for mirrors and inverses? (And for VBA code to find them if you type in the algorithm into any one of the four columns?) If so, to make it simple for me, you want me to just "learn from" Lucas Garrons ACN regarding mirroring about M and S (and of course, along with inverses)?
 
Last edited:

abunickabhi

Member
Joined
Jan 9, 2014
Messages
3,347
Location
Yo
WCA
2013GHOD01
YouTube
Visit Channel
But I noticed something when looking at your Cube Target column. Regarding how you write UL somettimes and then LU. I pulled out my "Handbook of Cubik Math" by Singmaster himself, and he mentioned that you call them by how they are positioned relative to the cube slot that they are in. Is that what you're doing? Or are you assuming that UL is oriented (because U is first, not because of how it is position in the slot that it's in) and LU is not? Because if so (I really don't care either way, but I want to code this to your preference!), I am confused about the two bold abbreviations I put under the unoriented column. (You assigned those two abbreviations in some rows to edges that were both unoriented.)
In blindsolving, the target stickers imply a different case, so the alg to shoot to LU will be different for the alg used to shoot to UL, so there are 22 possible targets that the edge piece can be shot to, (12x2 -2(excluding the buffers)). So there is no concept of orientated and unorientated in modern day blindsolving, it is all about target stickers, and UL and LU are different targets and hence different cases.


I wrote a commutator and conjugate expander in Excel in 2013. (Which also finds inverses, by definition.) Would you like that integrated into your sheet? I never did (nor do I think anyone has done the reverse . . . expressing an algorithm as a commutator), but if you're interested for me to try to write a function that does that, let me know. (The function probably will come up with more than one representation for longer sequences which are not clearly commutators at first without cyclic shifts and extra/redundant turns introduced, but I can't help that. I will just have to tell it which of the choices to display to the user/put in the cell.)
Interesting. All the algorithms in the sheet do not have square brackets and are not in commutator form, so I think it will not be used for this sheet, as there are no algs expressed within square brackets.

Okay. What I can do is code it in, but add some more buttons in the Settings tab for you to turn these things off or on as you please. (What I showed with the Settings is just the start.)
Okay. I probably still need to use the algorithm parser to count the moves + an algorithm simplification program (which I have written in another language -- Mathematica. So if time permits, I can translate that into VBA and use it to guarantee that more move counts are accurate.)
Okay cool.

Lastly, I know we talked about this before, but you want to have three additional columns for mirrors and inverses? (And for VBA code to find them if you type in the algorithm into any one of the four columns?) If so, to make it simple for me, you want me to just "learn from" Lucas Garrons ACN regarding mirroring about M and S (and of course, along with inverses)?
I would love if the mirrors and inverses are also added up as extra columns. The mirror along the M slice is only relevant, as the mirrors across S slices are not fingertrickable.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Okay, I think this 25 sec video shows my progress. I think it is now how fast I hoped it would be! The same 10 images/algorithms. (And this time I have the program read the algorithms that are in the cell -- as it will be "in practice".):)

I actually have a faster version of it (image #2 is slightly over a second and the others are about 0.90 of a second), but it's unstable. Excel will sometimes give an error that the image couldn't be copied. But this code hasn't tripped up yet.

EDIT:
I noticed that there is a bug. (The sticker colors aren't correct with some of the images.) I will fix it tomorrow.
 
Last edited:

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Hopefully this is the last post about the cube images, but in short:
  • It runs a little faster than the last video presentation,
  • The images are now probably at maximum resolution,
  • The sticker (algorithm parser, really, the stickers and coloring the stickers was just fine) bug is fixed.
For convenience, I have created an (unlisted) YouTube playlist of all of the videos I uploaded about this project so far (and I will of course continue to add any future videos to it as well). But this is the latest video (1 minute 50 seconds) of me showing it create images for the same 10 algorithms, along with a few last layer cases and a long algorithm (with every type of move and with some moves not perfectly spaced out) to show it off.

And for those who commented on my previous videos, I am going to reply to your comments after I post this!

Also, if there is interest, I can explain (in more detail) of how I did this. (But if so, please just comment in the videos to keep this thread on topic.) If there is interest, I can upload a video explaining precisely how I did this. (Explain all software modules, as well as show all of the Excel supporter sheets, explain how I made the pixilized 3x3x3 (step-by-step), etc.)

EDIT:
And it appears that its speed depends on how large you have your Excel window. (Annoying, but it is what it is.) So it ran a little faster than what I show in the above video when I just made the window enclose those two columns.
 
Last edited:

abunickabhi

Member
Joined
Jan 9, 2014
Messages
3,347
Location
Yo
WCA
2013GHOD01
YouTube
Visit Channel
Hopefully this is the last post about the cube images, but in short:
  • It runs a little faster than the last video presentation,
  • The images are now probably at maximum resolution,
  • The sticker (algorithm parser, really, the stickers and coloring the stickers was just fine) bug is fixed.
For convenience, I have created an (unlisted) YouTube playlist of all of the videos I uploaded about this project so far (and I will of course continue to add any future videos to it as well). But this is the latest video (1 minute 50 seconds) of me showing it create images for the same 10 algorithms, along with a few last layer cases and a long algorithm (with every type of move and with some moves not perfectly spaced out) to show it off.

And for those who commented on my previous videos, I am going to reply to your comments after I post this!

Also, if there is interest, I can explain (in more detail) of how I did this. (But if so, please just comment in the videos to keep this thread on topic.) If there is interest, I can upload a video explaining precisely how I did this. (Explain all software modules, as well as show all of the Excel supporter sheets, explain how I made the pixilized 3x3x3 (step-by-step), etc.)

EDIT:
And it appears that its speed depends on how large you have your Excel window. (Annoying, but it is what it is.) So it ran a little faster than what I show in the above video when I just made the window enclose those two columns.

Hello Chris, thanks for your time and energy. Good that you have made a Youtube playlist of all the videos and the progression. 5AlgSolve, CubeLang, BlindfoldChess, AbhiGo are all me, who were there in the comments section.

Yes, I would love to see how the sheet exactly works with all the software modules, and background about VBA and its potential. As you said, "VBA has a bad reputation in the software developer community, but I think it's pretty good if you accumulate a library of functions which do ONE THING each (and "forget everything you learned from recorded macros from the developer tab!)". I hope VBA can be used for more cubing projects in the future.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Hello Chris, thanks for your time and energy. Good that you have made a Youtube playlist of all the videos and the progression. 5AlgSolve, CubeLang, BlindfoldChess, AbhiGo are all me, who were there in the comments section.
You're very welcome. And it's now down to 0.85 seconds average per picture (the long alg took 1.39 seconds, but the others were fixed around 0.85), completely stable (it's no longer dependent on the window size), and has the high picture resolution. (I have three different approaches for the copy&paste portion of the image generation now!)

Yes, I would love to see how the sheet exactly works with all the software modules, and background about VBA and its potential. As you said, "VBA has a bad reputation in the software developer community, but I think it's pretty good if you accumulate a library of functions which do ONE THING each (and "forget everything you learned from recorded macros from the developer tab!)". I hope VBA can be used for more cubing projects in the future.
VBA isn't for everyone. But if you come from a background like me (starting with the TI-84 plus graphing calculator with programming), most of the cons of VBA are like that of TI-BASIC. Hardly any documentation, no API, etc. But there is a lot of help online.
 
Last edited:

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Okay. This is on a completely different note, as I investigated what I proposed as an alternate solution to generating the images in Excel. I am speaking of what I wrote here. (Although I did it in Microsoft Excel).
Perhaps if the images are put into a folder which is linked to a FREE spreadsheet software (like Open Office) such that the images are loaded into view as the user scrolls down the spreadsheet, this could be another solution.
Here is a < 4 minute video showcasing this idea. In it, I explain the disadvantages and the scope of how we can use it. So it's your call. What I said before about using a search engine in the sheet can still apply here. It just will pull up images from a file (from a file path of your choice) instead of generating them. But if you are set on pulling up one image at a time, the previous idea would of course work as well.

But what I forgot to mention is that as you arrow down (or up), the previous image is deleted. So the spreadsheet will only have that one image (or 7-10 images) in it at all times. And of course another disavatange is that you have to generate the images somehow too. If @Habsen's software can generate the type of images you want, we can combine both of our software's capabilities to give you what you really want. (You can use my software to create images, but it will be about 8 times slower than @Habsen's (since he estimated that it takes a few hours to generate 100k images . . . where I take "few" to be 3 hours . . . hence an image every 0.1 seconds instead of mine which is one image every 0.85 seconds.)

Lastly, I don't know how fast scrolling up and down a sheet with this new idea will be (speaking in terms of displaying, say, 7 rows = 7 pictures to be inserted (and 7 images to be deleted) upon each keypress). I assume it will be fast enough, even though it should be slower than running down a spreadsheet without code parsing upon every row change via a keyboard keypress. (But it will certainly be faster than running down a page with 10 images in it instead of 100k images in it!)

(In short, you can do A LOT with VBA. And this was just a few dozen lines of code total to do!)

EDIT:
Regarding what I said in the video that it would be "hard" to keep the images from the folder to correspond to the row that the algorithm is in, there are ways to do that programmatically -- keeping a table of two columns, where one column contains the images' names (the images in the folder/the source images) and the other column being a primary key of some kind -- perhaps the Cube Target column which is in the spreadsheet.

But even with that, there's always a risk. But here's an idea of how to make it work (with little to no risk). (This is sort of how telephone numbers, vehicle license plates, etc. are indexed.) Think of the full primary color palette. There are 0 to 255 for Red, Blue, and Green.
  • I have VBA code which can pixelize an image into an Excel spreadsheet. (Not my own.) It's very slow though. (Again, I didn't use it to pixelize the cube image that I used. I used the online software that I linked to, as it was instant.)
  • However, the cube images can be generated so that just the top-left pixel is a specific RGB color shade.
  • So I run the software to pixelize a cube image, but stop it as soon as it draws the first pixel (that is, gets the top-left pixel from the image from the source file). Then we have a hidden column (or maybe three columns) in the spreadsheet which holds the RGB value. So each row has a different (unique) RGB value associated with it that corresponds to its image.
  • This way you can literally re-order the images, and or remove cases, and NEVER have to worry about renumbering the cases as images come in. (This is assuming that you keep the image assoicated with a case.) Reason: There are 256^3 = 16,777,216 possible RGB shades. So you can assign a unique shade to each image and can literally afford to redo the entire set of 100k algs 167 times if need be (where I don't think you would have to redo even the full set once . . . it doesn't make sense that you would) and still have a primary key number for "each image to case connection".
  • The two-column table index of the primary key can be run to "re-calibrate" the images with the data once in a while, but it certainly doesn't need to be done while viewing the images with the interface I proposed above. (And this is something that only you have to do, not your audience.)
  • I don't know exactly how stable the image-to-pixel VBA software code I have is (or how long it will take to get the top-left/first pixel of an image), but if it's reliable, then this could be an approach to doing "the impossible".
 
Last edited:

abunickabhi

Member
Joined
Jan 9, 2014
Messages
3,347
Location
Yo
WCA
2013GHOD01
YouTube
Visit Channel
forgot to mention is that as you arrow down (or up), the previous image is deleted. So the spreadsheet will only have that one image (or 7-10 images) in it at all times. And of course another disadvatange is that you have to generate the i
Sorry for being late in replying. I missed the post notification.

With your 4 minute video, only a few images will be called at once to the sheet, and then will be deleted when they disappear from the cells, right?

Also Habsen software runs on Latex code, where your software serves spreadsheets and Excel, so I am not sure how both the solutions can be combined. I will have to think about it.

I do not scroll through big algsheets, I try to use an advanced search, which finds the required case or algorithm in a specific range, and is quite fast to navigate. For example, to find case xyz in 100k rows, its takes me about a minute using a scroll button which is slow, on the other hand, what I usually do is that I have a control or match case function, that searches the alg within a second, and I can navigate the sheet easily.

Yes the cube target value from the column can be programmatically linked to the images in the folder.

I am not sure about the RGB indexing and how it works. I will have to read a bit more about it.
Keep us posted if there are any new tries in image-to-pixel VBA software code that you are currently fine-tuning.

Again, sorry for the late reply. I thought you were off on a short break, as you were focusing more on other programming projects.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Sorry for being late in replying. I missed the post notification.

With your 4 minute video, only a few images will be called at once to the sheet, and then will be deleted when they disappear from the cells, right?
Yes. It can be 1 if you want. (That's easiest for me to implement.) But I would say we could show 5-10 at a time if you prefer. (But any more than what the user can see on their screen at a close zoom would defeat the purpose of what we are trying to do. It would slow down the sheet. Again, one at a time would be lightning fast for sure, as you saw it in the 4 minute video.)

Also Habsen software runs on Latex code, where your software serves spreadsheets and Excel, so I am not sure how both the solutions can be combined. I will have to think about it.
I meant that the output of his software (the pictures) can be pulled into your sheet by my spreadsheet. (There is no actual combining of the software.) It's just that his software will have to name the images.

And about the image tagging proposal. If I generate the images with Excel, I can very easily tag them. (And, as I mentioned to you on Discord, you can literally run multiple instances of Excel at a time, and therefore reduce the required time my software takes by at least by a factor of 5. So it's a more comparable time with Habsen's software's speed.)

I do not scroll through big algsheets, I try to use an advanced search, which finds the required case or algorithm in a specific range, and is quite fast to navigate. For example, to find case xyz in 100k rows, its takes me about a minute using a scroll button which is slow, on the other hand, what I usually do is that I have a control or match case function, that searches the alg within a second, and I can navigate the sheet easily.
The way it sounds, you look for one case at a time. So, really, we can generate the image "on demand" with my first idea if you want. (Or, like I just said, we can pull in one image (and delete the image prior to that one) at a time.)

Yes the cube target value from the column can be programmatically linked to the images in the folder.
Again, this is a great idea because every cube target is different (and therefore all images will not be mistaken for another case). But since you want to do the cube targets by hand (and not with my software), if you make an error, the wrong image will pop up for its "corresponding algorithm". And if you change your mind about how you want to represent the cube target, then that throws everything off too. (Both of these "warnings" are for when you want to pull in -- rather than "generate on demand" -- the images for a case into the sheet.)

I am not sure about the RGB indexing and how it works. I will have to read a bit more about it.
I didn't read up about it anywhere. This was my own solution just in case something that you do from your end messes up the initial "link"/association that we create to get the spreadsheet to recognize which image to pull in. (But this doesn't apply to when images are "generated on demand". That's a fool proof way of guaranteeing that the image you see in the row represents what the algorithm that you see in the row generates on the cube.)

Keep us posted if there are any new tries in image-to-pixel VBA software code that you are currently fine-tuning.
There is nothing more I need to say. (Please reread what I wrote you on Discord. Maybe it will make more sense after reading these last two posts of mine in this thread.) Then decide on what you want to do.

Again, sorry for the late reply. I thought you were off on a short break, as you were focusing more on other programming projects.
I am taking a break. (But you also said that you were not in a rush . . . and now I am glad that I waited, because you weren't "up-to-date" with your options anyway.)
 

abunickabhi

Member
Joined
Jan 9, 2014
Messages
3,347
Location
Yo
WCA
2013GHOD01
YouTube
Visit Channel
To summarise this thread, a lot of things have been thought out, and new ideas of having cube images in excel have been thought (at least new for me!). Also representing and referencing the algsheet via the cube targets, algorithms, specific translations of the algorithms were seen.

The idea of having move counter (in quarter turn or slice turn) from the Singmaster alg value in the excel was thought out. Till now, the move count was counted from the Yo notation. The implementation of inverses and mirrors of the alg in the algsheet itself was thought of, in the same column or in different column.

Decomposing the UF5 algs into shorter forms is an idea being explored. Integrating latex and excel sheet, to get quick PDFs was also thought of. The timing of generating of cube images was also seen and tried to be optimized by Chris. The algs were mainly for BLDers but many other big algsets like LSLL and 1LLL can also follow the same style of excel sheet as the one discussed in this thread.
 

Christopher Mowla

Premium Member
Joined
Sep 17, 2009
Messages
1,104
Location
Earth
YouTube
Visit Channel
Decomposing the UF5 algs into shorter forms is an idea being explored.
For those who are curious of why I am doing this, in @abunickabhi 's Yo Notation PDF, look at point 2. on page 6.

As of right now, it can decompose a cyclically-shifted (single) commutator which was then conjugated (with additional moves) afterwards. (And all simpler cases which an algorithm can be in in this circumstance.)

Example:
Input
: F B L R2 M' D U2 R U2 D' R' F U2 R' U2 F' R L' R2 M F' B'
Output: [F B L R2 M' D: [U2 R U2, D' R' F]]

The commutator was cyclically shifted once in this case, but it can be cyclically shifted any number of times (and there can be any number of outer setup moves and the order of the setup moves about the same axis does not matter -- the program will recognize them).

So the point of this is to express algorithms which are already expanded into their decomposed form to then make the shortcut expression. (There will be a column next to the column with the algorithm. This column will contain such shortcut expressions for the users who prefer to memorize the shortcut versions of the algorithms.

(I know the example above shows a commutator in which both its X and its Y are more than one move, which kind of is overkill for @abunickabhi 's shortcut from my understanding (because he assumes either X or Y will be one move), but it was no additional effort to program it for the general case when X and Y can both be more than one move.)
 
Top