# alg.cubing.net



## Lucas Garron (Feb 23, 2014)

It's time to follow up alg.garron.us with:


http://alg.cubing.net/


​
There are a few reasons for this. The main one is that alg.garron.us is based on Java applets, which many browsers (rightfully) refuse to run these days.
2.5 years ago I started writing twisty.js to handle the animations, and have recently gotten alg.cubing.net to the "beta" stage. There are still a few visual glitches, and it's a little inefficient right now, but it's pretty much working. The wiki alg links already point to alg.cubing.net, and eventually all alg.garron.us URLs will be rerouted.

A few benefits over alg.garron.us include:


 The view updates automatically (no need to press a "View" button).
 Continuous playback (you can grab the slider and stop halfway through a move!)
 A larger display and fullscreen mode.
 Support for larger cubes. (More puzzles are coming.)
 Move counts and a few alg manipulation tools.
 It works on your smartphone!
 Plans to support alg/reconstruction playbacks inside Twizzle link tags on speedsolving.com
[*] [URL="https://github.com/cubing/alg.cubing.net"]Open source[/URL]! I want to make it easy for other people to add features (e.g. new puzzles).
[/LIST]

I thought I'd start there. Is there anything you'd like to see? Anything badly broken? Any cool ideas I haven't thought about?


----------



## Lucas Garron (Feb 23, 2014)

Some sample links:


----------



## RageCuber (Feb 23, 2014)

PERFECT! I'm sure this will help!


----------



## cubernya (Feb 23, 2014)

Looks great! Quick question, do the URLs have the same syntax as alg.garron.us? Just wondering, since I can update RPG. 

Another bonus: works on phones


----------



## Lucas Garron (Feb 23, 2014)

theZcuber said:


> Looks great! Quick question, do the URLs have the same syntax as alg.garron.us? Just wondering, since I can update RPG.


Nope, some parameters were renamed. I haven't written coded the exact remapping yet, but you can see a translation here.

In any case, I hope to have full functionality to supersede RPG stats some day. ;-)


----------



## cubernya (Feb 23, 2014)

Lucas Garron said:


> Nope, some parameters were renamed. I haven't written coded the exact remapping yet, but you can see a translation here.
> 
> In any case, I hope to have full functionality to supersede RPG stats some day. ;-)



What are you planning on doing/making? Feel free to rip code if you want (it isn't the prettiest, but it works)


----------



## Bhargav777 (Feb 23, 2014)

Awesome. Works smooth on smart phones too! Thanks Lucas!!


----------



## stoic (Feb 23, 2014)

Looks amazing. And it works on iOS which is awesome. 
Oh, and...17x17x17?!!
Gj


----------



## EMI (Feb 23, 2014)

That's good, my browser also refused Java. I already saw Brest use it for the 8x8, and I tried it out for my own 4x4 reconstruction. The only thing I didn't quite like is that double turns seem a bit fast. Other than that, it's really awesome.


----------



## Renslay (Feb 23, 2014)

If I write:
[R, U]

Then the play button does R U reset R U reset R U reset... continuously. The "expand" button solves it (replace it with R U R' U'), but I fail to see why couldn't it work in a proper way.
The same with [R: U].


----------



## Tao Yu (Feb 23, 2014)

This is really nice. I like the move counts and the "End Solved" setting.



Renslay said:


> If I write:
> [R, U]
> 
> Then the play button does R U reset R U reset R U reset... continuously. The "expand" button solves it (replace it with R U R' U'), but I fail to see why couldn't it work in a proper way.
> The same with [R: U].



Same also happens with stuff like (R U)6.


----------



## Lucas Garron (Feb 23, 2014)

theZcuber said:


> What are you planning on doing/making? Feel free to rip code if you want (it isn't the prettiest, but it works)





EMI said:


> The only thing I didn't quite like is that double turns seem a bit fast. Other than that, it's really awesome.



Both of these have the same answer. Support for move timing!


```
x y' // inspection
F R D L F // cross
U R U' R' d R' U R @1.53s // 1st pair
y U2' R' U' R // 2nd pair
U L U' L' d R U' R' // 3rd pair
y' U' R U R' U R U' R' @3.69s // 4th pair (OLS)
R2' U' R' U' R U R U R U' R U2' @5.22s // PLL
```

If there are timing marks, this will scale the total animation length of each segment.
Within those, longer turns will animate slower.



Renslay said:


> If I write:
> [R, U]
> 
> Then the play button does R U reset R U reset R U reset... continuously. The "expand" button solves it (replace it with R U R' U'), but I fail to see why couldn't it work in a proper way.
> The same with [R: U].



I'm trying to do something fancy with playback (the actual input is highlighted during animation), but it's currently not perfect. I've gone ahead and disabled it for algs with commutators until I figure out something better.


----------



## cubernya (Feb 23, 2014)

Lucas Garron said:


> Both of these have the same answer. Support for move timing!
> 
> 
> ```
> ...



Interesting. So this would allow us to (basically) have reconstructions shown at full speed?
And by the way: I'm sure I can incorporate that into RPG


----------



## AmazingCuber (Feb 23, 2014)

Great job Lucas! This is great, thanks!


----------



## TDM (Feb 27, 2014)

Is there a way of using WCA notation for 4x4? (Or am I just being stupid and not seeing something obvious?)


----------



## Lucas Garron (Feb 27, 2014)

TDM said:


> Is there a way of using WCA notation for 4x4? (Or am I just being stupid and not seeing something obvious?)



Well, depends what you mean.

Apart from bracketed rotations, alg.cubing.net is fully compatible with the current WCA notation because it accepts Rw as an alias for r: Rw U2 x Rw U2 Rw U2Rw' U2 Lw U2 Rw' U2Rw U2 Rw' U2 Rw'

However, the "old" WCA notation from alg.garron.us is no longer supported. The old notation had one main difference: lowercase moves exist, and _have a different meaning from SiGN_ (r in old WCA notation in means 2R in SiGN). While this can be convenient for writing 4x4x4 algs with slice moves, this makes *any* big cube alg ambiguous if it contains lowercase moves, which is just confusing for everyone.

The last Regulations with that notation were in 2010. Lowercase moves didn't really have an official use, so we removed them in the 2013 Regulations. (We kept wide turns with a "w" at the end because this explicitly avoids any ambiguity.) This had the benefit of making it compatible with SiGN, which the community is fortunately moving towards.

So: yes, alg.cubing.net supports WCA notation, but it does not support the old notation.

(Anyone could easily create a version that does, but I would consider it counter-productive.)

Also: Once alg.garron.us starts redirecting to alg.cubing.net, old "WCA notation" algs will be translated to SiGN.


----------



## TDM (Feb 28, 2014)

Lucas Garron said:


> Well, depends what you mean.
> 
> Apart from bracketed rotations, alg.cubing.net is fully compatible with the current WCA notation because it accepts Rw as an alias for r: Rw U2 x Rw U2 Rw U2Rw' U2 Lw U2 Rw' U2Rw U2 Rw' U2 Rw'
> 
> ...


I see. I just hate SiGN notation  I guess I'll just have to learn/deal with it.


----------



## unsolved (Mar 18, 2014)

Is there a catalog of algos, like the 4x4x4 parity wiki with so many presolved, ready-to-run links?


----------



## IQubic (Mar 19, 2014)

unsolved said:


> Is there a catalog of algos, like the 4x4x4 parity wiki with so many presolved, ready-to-run links?


Not that I am aware of.

-IQubic


----------



## Renslay (Mar 25, 2014)

The more I use it, the more memory it consumes. So if I put there some scramble, a solution in the move section, another scramble, different solutions, etc. (playing arond with FMC), the physical memory usage always increases, but never decreases (only if I close the webpage).

I use Win7, Chrome 33.0.1750.154 m

Funny that it did that in Firefox too with the same rate of memory consuming (Firefox 27.0.1), but it never refreshes the big screen. Normally, in Chrome, when I click somewhere in the scramble or the move section, it shows the current cube state. But in Firefox it remains the same (like it is freezed). But the play button and the other buttons work properly and shows the animation.


----------



## Stefan (Mar 25, 2014)

Renslay said:


> The more I use it, the more memory it consumes.



Maybe this does tell Lucas something, but my question to statements like that is always: *But is it a problem?*

Because in general, it can be quite *normal* to not free memory as soon as possible. Garbage collection can get off its lazy ass and get to work whenever it feels it's appropriate. Surely you have a trash can inside your house, right? Do you take it out as soon as you put one thing into it? Or do you wait, put more and more things into it, and only take it out when it's (almost) full or you for some reason feel like it (like you having nothing better to do)? So unless it's actually a problem, like you getting full-memory errors, everything might just be going according to plan.

That said, if I'm wrong and misjudge the technology and such increasing memory consumption likely does indicate a real problem, please let me know.


----------



## Renslay (Mar 25, 2014)

Stefan said:


> Maybe this does tell Lucas something, but my question to statements like that is always: *But is it a problem?*
> 
> Because in general, it can be quite *normal* to not free memory as soon as possible. Garbage collection can get off its lazy ass and get to work whenever it feels it's appropriate. Surely you have a trash can inside your house, right? Do you take it out as soon as you put one thing into it? Or do you wait, put more and more things into it, and only take it out when it's (almost) full or you for some reason feel like it (like you having nothing better to do)? So unless it's actually a problem, like you getting full-memory errors, everything might just be going according to plan.
> 
> That said, if I'm wrong and misjudge the technology and such increasing memory consumption likely does indicate a real problem, please let me know.



Well, yeterday after an hour or two of playing around with alg cubing net (doing some FMC), my 4 GB memory became full, and everything was like frozen. I was able to move the mouse, but every single click (or button press) had a minute(!) long reaction time. It was annoying and frustrating. *So yes, I call it a problem*, because if you don't watch about it, eventually it becomes almost like a blue death.

Applying your trash can analogy: not just your trash can, but your enitre house gets full of trash, and you only notice that when you can't even move.

Moreover, alg.garron.us don't have this problem. I know that it works differently, but this problem forces me to use alg.garron.us, while alg.cubing.net should be the superior page if I understand well.


----------



## Christopher Mowla (Mar 25, 2014)

Renslay said:


> Applying your trash can analogy: not just your trash can, but your entire house gets full of trash, and you only notice that when you can't even move.


LOL. I nominate this as one of the funniest phrases this year so far!



Renslay said:


> Moreover, alg.garron.us don't have this problem. I know that it works differently, but this problem forces me to use alg.garron.us, while alg.cubing.net should be the superior page if I understand well.


Apart from the ability to have cubes larger than the 7x7x7, I find that alg.garron.us is more user-friendly (and simple) to use overall (no offense Lucas). If it confused me when I first saw it, how can we expect beginners to be more comfortable using it than alg.garron.us (apart from the fact that it is not built to rely on Java)? Also, Lucas, when my mouse pointer is in the cube window, and I accidentally touch the scroll dial on my mouse, the cube disappears.


----------



## Lucas Garron (Mar 25, 2014)

Renslay said:


> The more I use it, the more memory it consumes. So if I put there some scramble, a solution in the move section, another scramble, different solutions, etc. (playing arond with FMC), the physical memory usage always increases, but never decreases (only if I close the webpage).



The current internals are extremely inefficient right now; an entirely new cube is constructed for every letter you type.
I'm going to rewrite the internals soon, and this will become a lot more efficient as a side effect (it should be able to reuse the same cube every time). It just hasn't been a priority because modern browsers can handle the current situation for most users.

As a simple workaround, you highlight your browser's URL bar and hit Enter to reload the page; memory usage will start from scratch with your current state.



cmowla said:


> Apart from the ability to have cubes larger than the 7x7x7, I find that alg.garron.us is more user-friendly (and simple) to use overall (no offense Lucas). If it confused me when I first saw it, how can we expect beginners to be more comfortable using it than alg.garron.us (apart from the fact that it is not built to rely on Java)?


That isn't very specific, but I'm always happy to hear feedback; can you point to specific things that were user-friendly, and that are not anymore?

I'm focused on features right now, but I eventually want it to be just as useful for alg.garron.us for everything. (However, playback mode is already meant to make viewing algs as simple as possible, by hiding all the input controls.)



cmowla said:


> Also, Lucas, when my mouse pointer is in the cube window, and I accidentally touch the scroll dial on my mouse, the cube disappears.


The cube should change orientation by a bit, but it should remain visible.
Does it ever reappear? Do you see any error messages in the browser console?
What is your OS/browser?
(Perhaps the scroll event triggers and exception, causing everything not to be drawn. I don't usually test on IE because I work on OSX.)


----------



## Erikdekamps (Apr 10, 2014)

This is great to use to be able to make notes of algorithms to use and practice! =D


----------



## 10461394944000 (Apr 14, 2014)

I think a supercube setting would be pretty useful. I just generated some algs for 4x4 <2R, U> and I had to do this to see how the centres moved around



Spoiler


----------



## Petro Leum (Jun 17, 2014)

I have a few suggestions for additional features:

1. a tool (a button) to count the moves after each line of solve and add them like (moves of the step/total moves) at the end of the line
2. make the visual cube like a sim (is that hard to do?) so you can do the same process the other way round: make moves on the visual cube and the script then writes them down properly.
3. along with the simplify/expand/invert/image buttons there could be a "remove rotations" button, that does what it says: removes all x/y/z/ or even x/y/z/M/E/S/Uw/Dw/Bw/Fw/Rw/Lw moves from the algorithm like this:

R U' z U R z' R' U' z R' U R -> "remove rotations" -> R U' L' U R' U' L U

4. just like 3. it would then be cool to be able to add a cube rotation in the algorithm, not just adding it in between the moves, but so that the program then changes the remaining moves of the algorithm accordingly, like this:

R U' L' U R' U' L U
->"add rotation"
-> chose "z"
-> chose a spot, for this example between L' and U
-> R U' L' z R D' R' U R

Now, this is alot and i have no idea if its even possible in the way alg.cubing.net works, but i'd certainly appreciate those features.


----------



## Lucas Garron (Jun 17, 2014)

Petro Leum said:


> I have a few suggestions for additional features:



Those are all good suggestions! In fact, my plan is to support all of them eventually – roughly in the order you listed.
It's also great to hear explicit feature requests. I honestly don't have much time to work on this, but if I know people want something I can give it higher priority.

One reason I implemented to cubing.net/touch recently is so that I can support both keyboard and mobile input.

If someone wants to work on something that can remove rotations or add rotations, it should be easy to work on alg.js if you know Javascript. I'd be happy happy to expose contributions as features in alg.cubing.net.


----------



## Renslay (Jun 17, 2014)

Lucas Garron said:


> Those are all good suggestions! In fact, my plan is to support all of them eventually – roughly in the order you listed.
> It's also great to hear explicit feature requests. I honestly don't have much time to work on this, but if I know people want something I can give it higher priority.



I also find those suggestions very helpful!


----------



## cubernya (Jun 17, 2014)

Lucas Garron said:


> Those are all good suggestions! In fact, my plan is to support all of them eventually – roughly in the order you listed.
> It's also great to hear explicit feature requests. I honestly don't have much time to work on this, but if I know people want something I can give it higher priority.
> 
> One reason I implemented to cubing.net/touch recently is so that I can support both keyboard and mobile input.
> ...



This already has a way to manipulate algs in different ways. You should message him to see if you can rip some code.


----------



## Lucas Garron (Jun 17, 2014)

theZcuber said:


> This already has a way to manipulate algs in different ways. You should message him to see if you can rip some code.



Yeah, I'm aware. It's a good place to look at. Unfortunately, the problem isn't really figuring out how to implement it. It's the time to make it work in a way that can be reused and adapted with twisty.js.


----------



## naliuj (Jun 17, 2014)

Maybe add a "Mirror" button? It would turn L to R', U to U', etc... I don't think it would be too difficult to do.


----------



## Lucas Garron (Jun 17, 2014)

naliuj said:


> Maybe add a "Mirror" button? It would turn L to R', U to U', etc... I don't think it would be too difficult to do.



Easy enough: done.


----------



## Petro Leum (Jun 17, 2014)

Lucas Garron said:


> Easy enough: done.


that was fast.

button doesnt work for me though.

am i dumb?


----------



## Jakube (Jun 17, 2014)

Petro Leum said:


> that was fast.
> 
> button doesnt work for me though.
> 
> am i dumb?



It only mirrors the Moves, not the scramble. This should be corrected.


----------



## Lucas Garron (Jun 17, 2014)

Jakube said:


> It only mirrors the Moves, not the scramble. This should be corrected.



Maybe not. None of the tools affect the setup right now, and there is no way to guess what the user wants in general.
I can think of use cases for mirroring with either behaviour for the setup. I'm going to leave it unaffected for now. It's at least possible to copy the setup into the moves field to mirror it.


----------



## 10461394944000 (Jun 17, 2014)

what about a check box so you can disable live updating? it runs really slowly for me because of that

also bump in case you never saw this before



10461394944000 said:


> I think a supercube setting would be pretty useful. I just generated some algs for 4x4 <2R, U> and I had to do this to see how the centres moved around
> 
> 
> 
> Spoiler


----------



## Petro Leum (Jun 17, 2014)

Jakube said:


> It only mirrors the Moves, not the scramble. This should be corrected.



it doesnt mirror the moves for me though


----------



## Lucas Garron (Jun 18, 2014)

By popular demand: 1x1x1 support!
Inverses also work better now: [F: [R, U]] is inverted to [F: [U, R]].



10461394944000 said:


> what about a check box so you can disable live updating? it runs really slowly for me because of that


Efficiency rewrites are the next big thing.

I could probably introduce a small delay (so that it waits to re-render if you type a few things in a row), but angular.js makes that a bit annoying.



> Supercube stuff


I plan to support custom stickers/supercubes, but it's not a huge priority. You can fiddle with the three.js code if you want to hack together something quick.


----------



## naliuj (Jun 18, 2014)

The cube isn't showing up on screen for me anymore. I don't know if that's an issue on my side or not. May as well tell you though.

Edit: I refreshed it a bunch of times and it finally showed up.


----------



## Lucas Garron (Jun 20, 2014)

Jakube said:


> It only mirrors the Moves, not the scramble. This should be corrected.


The jury's still out on the right behaviour, but I've actually changed my mind and implemented mirroring both together for now. Try mirroring the WR, for example.



10461394944000 said:


> what about a check box so you can disable live updating? it runs really slowly for me because of that


I still don't want to disable this, because there are quit few interrelated parts, but I've implemented "debouncing".
If you make one change, it will happen immediately. If you quickly do a few more, if will wait until you've finished.



Petro Leum said:


> it doesnt mirror the moves for me though


If it still doesn't work, could you post your OS/browser?
If you can access the console, I could also use any error messages you get.


----------



## Petro Leum (Jun 20, 2014)

Lucas Garron said:


> If it still doesn't work, could you post your OS/browser?
> If you can access the console, I could also use any error messages you get.



it does work by now (miraculously without having changed anything)


----------



## Renslay (Jun 20, 2014)

Am I right that there is a new feature? I mean, when the cursor is before a turn, in the cube it shows that turn with a slight movement.

Since I noticed this update, the site (the update of the animation) became really slow. I have to wait half or 1 second for every movement I just type in, which is really annoying. Especially when I type a longer sequence, it can freeze for seconds.

(I have Windows 7, Chrome 35.0.1916.153 m)


----------



## Lucas Garron (Jun 22, 2014)

Renslay said:


> Am I right that there is a new feature? I mean, when the cursor is before a turn, in the cube it shows that turn with a slight movement.



I suppose it's a feature. This was a tiny thing I added when I restored some of the move highlighting tracking. 



Renslay said:


> Since I noticed this update, the site (the update of the animation) became really slow. I have to wait half or 1 second for every movement I just type in, which is really annoying.


This was sad to read, because one recent change was supposed to reduce the amount of slow things in basically every situation. :-(

I've tried fix that a bit more. Nothing should get updated until 1 second after you've stopped typing.
Let me know if that's not the case, or if it's still really slow for some other reason.


----------



## 10461394944000 (Jun 22, 2014)

adding a new line doesn't automatically add a pause anymore, is this a feature or a bug? I preferred it with the pause.


----------



## Lucas Garron (Jun 22, 2014)

10461394944000 said:


> adding a new line doesn't automatically add a pause anymore, is this a feature or a bug? I preferred it with the pause.



More of a bug. I didn't even realize anyone noticed it was a feature before. I'll add it back in.

EDIT: Fixed. It'll highlight the end of the line while pausing, until I think of something better.


----------



## Christopher Mowla (Jul 7, 2014)

I'm going to link the 4x4x4 parity algorithms wiki page to alg.cubing.net, but I just wanted to know what the parameter names are for controlling whether the hint stickers and hollow cube options are turned on or off. (I want to have hint stickers turned off when an algorithm link is clicked, as I don't think they are necessary for 4x4x4 algorithms).


----------



## Lucas Garron (Jul 7, 2014)

cmowla said:


> I'm going to link the 4x4x4 parity algorithms wiki page to alg.cubing.net, but I just wanted to know what the parameter names are for controlling whether the hint stickers and hollow cube options are turned on or off. (I want to have hint stickers turned off when an algorithm link is clicked, as I don't think they are necessary for 4x4x4 algorithms).



Not yet. I want to find a way to let everyone choose personal settings for these (possibly depending on the cube size), but this is not the case for now.

If you want "stage" settings (like PLL or OLL stickerings), I can implement them soon. Feel free to post suggestions; if it's very clear how to implement it, I should be able to do so soon.


----------



## Christopher Mowla (Jul 7, 2014)

Lucas Garron said:


> Not yet. I want to find a way to let everyone choose personal settings for these (possibly depending on the cube size), but this is not the case for now.


Oh, okay. I'll wait. I thought that I was a little behind with linking template Alg4 to alg.cubing.net, so I mentioned it.

I plan to change the notation of all algorithms on that page to SiGN, and I have made the decision to write all algorithms from now on in SiGN notation (the stubborn cmowla has been broken!), using r as Rw and not 2r (since that is what the majority of people agree with, I can't dispute it). So just let me know when it's time, and I will modify all algorithms on that page so that you don't have to.



Lucas Garron said:


> If you want "stage" settings (like PLL or OLL stickerings), I can implement them soon. Feel free to post suggestions suggestions; if it's very clear how to implement it, I should be able to do so soon.


Perhaps PLL and OLL stickerings would be eventually nice to be implemented for those who would possibly want it for 4x4x4 PLL parity cases, 4x4x4 OLLs and K4 OLLs, but I don't think it should be a priority right now.

As far as suggestions in general, I think the default speed is too fast. Can the default speed for x1 be changed at least to the current .5? I can't see how the current speed setting is suitable for the majority of users. In addition, as I mentioned, a parameter option (in the url code) to turn hint stickers and hollow on and off should be made available.

However everything else looks great. I also noticed that your program is on cube20.org now. I'm glad to see that.


----------



## Lucas Garron (Jul 16, 2014)

General stuff: I've changed the progress bar and redid the right panels, so everything should look a little bit nicer now. Still not great, but hopefully it works better for everyone.

I've also moved metrics to the right of the header for the solve/alg/moves, although I still need to make sure it displays in the correct location at all times.









cmowla said:


> I plan to change the notation of all algorithms on that page to SiGN, and I have made the decision to write all algorithms from now on in SiGN notation (the stubborn cmowla has been broken!), using r as Rw and not 2r (since that is what the majority of people agree with, I can't dispute it).



Awesome! I know you weren't a big fan, but I'm glad to see everyone converging on a standard.
Any time you want to change over is probably good.



cmowla said:


> As far as suggestions in general, I think the default speed is too fast. Can the default speed for x1 be changed at least to the current .5? I can't see how the current speed setting is suitable for the majority of users.



The original speed was a balance between going slow enough to keep up with, but fast enough to feel "real-time". But I've thought about it, and I think you're right; it makes sense for the default to be slower. I've slowed it down to be half the original speed.

For actual "real-time" reconstructions, I will have a different timing mechanism anyhow.



cmowla said:


> In addition, as I mentioned, a parameter option (in the url code) to turn hint stickers and hollow on and off should be made available.



Don't hold your breath on this one. For most cases, I believe that this should be a user preference. I don't want to make something a URL parameter if it isn't really needed.

Some day I will probably implement user preferences, but it isn't a high priority.
(If someone is interested, it should be easy to take the source and modify the checkboxes to be persisted to localStorage. But 1) I'd like this to be integrated with angular.js, and 2) I don't want this to confuse/annoy users any more than the current setup.)


----------



## Renslay (Jul 16, 2014)

A few things:

1a) The move counts are originally in the line of the Solve line. However, when I scroll the window, it keeps its relative position. It's a bit weird. (Or did you mean this as a problem when you said "although I still need to make sure it displays in the correct location at all times" ?)

1b) The scroll bar overlaps the last bracelet of the move counts. Should move it little to the left. (I use Chrome 35.0.1916.153 m, Win7 if that counts.)

2) The right panel has a default background color (the color behind the text "alg.cubing.net [beta]". This color changes in the header lines ("Setup" text line, "Solves" text line, etc). This should not be a problem on its own, however...
The place where you actually type texts (the actual setups and the solves below the header lines) has also background color.
This confuses me all the time, because normally (in a web page for example) the place where you enter texts has the different color (like the search field). I always click on the "setup" and the "moves" textline to enter my moves, because I always have the impression those are the fields where I should type, because of the colors. Moreover, the dark, thin line between the two colors also make the impression that the text line "Setup" and "Moves" are a bit deeper, making the false assumption "click here to type".

I know there is a text "click here to add (...)", but this still bothers me a little. Moreover, I am not sure what would be a good solution. Maybe put a white box where you can type, similar to the scroll lists in the settings (size of cube, Color scheme, etc). Also maybe you should put a triangle (pointing down) in the right side of the scroll list, showing they are actual scroll lists.

EDIT:
3) If I click on the "image", an image of the cube appears. But when I click it on again, it does not disappear (I suspects it would.)

~~~~~~~~~~~~~~~~~~~~~~~

And finally, let me clear that I love this little(?) site, I use it daily, and I am extremely grateful for all the efforts you put in there to make it better and better! :tu


----------



## Lucas Garron (Jul 16, 2014)

Renslay said:


> 1a) The move counts are originally in the line of the Solve line. However, when I scroll the window, it keeps its relative position. It's a bit weird. (Or did you mean this as a problem when you said "although I still need to make sure it displays in the correct location at all times" ?)


Yeah. This and 1b were caused by the same thing. Your post encouraged me to fix this sooner rather than later, and it turned out to be very simple. Let me know if you still have problems after a hard refresh.



Renslay said:


> 2) The right panel has a default background color (the color behind the text "alg.cubing.net [beta]". This color changes in the header lines ("Setup" text line, "Solves" text line, etc). This should not be a problem on its own, however...



I'm not completely sure what to do about this. I've put in a lot of affordances on the text areas, including a white color when you hover or type, and highlighting the moves/alg/solve textarea by default. 
However, when you're not manipulating them, I *do* want the textarea to blend passively into the background.

Does anyone else have similar issues? If it affects multiple people, then 1) I'll definitely want to consider changing something, and 2) I might know better what to change.



Renslay said:


> 3) If I click on the "image", an image of the cube appears. But when I click it on again, it does not disappear (I suspects it would.)



Every time you click it, you get an image of the current state. For example, try clicking repeatedly while the alg is animating.

I suppose I could add a button to hide it, but it's not a priority. (You can just refresh the page to reset anything you tinkered with.)
Anyone is welcome to add that button, though. ;-)


----------



## Renslay (Jul 16, 2014)

Issue 1a) and 1b) are fixed, thank you!

Issue 2) is just a minor thing. I just described it; newcomers might find that strange (if not, my apology). But I won't complain if you decide to keep it this way.

Issue 3) is again a minor thing. I wasn't sure if "the image won't disappear" is a feature or a bug. I just assumed that clicking once generates an image, and clicking second times hides it (clicking third times re-generates, etc.) If you think about it, it might be a bit weird that some feature appears after pressing a button, and it won't disappear unless you reload the whole page. But again, this is a very minor thing, and honestly, I never used that button before. 

Thank you again for all the effort and creating this marvelous toolkit!


----------



## Christopher Mowla (Jul 20, 2014)

Lucas,

I noticed that you didn't implement a move to move just the central slice with a letter m.

Obviously right now we can just use a coefficient in front of the letters R or L. \( \left( \frac{n+1}{2} \right)\text{R} \)

Do you intend to leave it like this?


----------



## Lucas Garron (Jul 20, 2014)

cmowla said:


> Lucas,
> 
> I noticed that you didn't implement a move to move just the central slice with a letter m.
> 
> ...



M slices on big cubes are unclear.

I think an uppercase letter should always be a single slice by default, but that only works well for odd cubes..
qq thinks M should be everything but the outer layers, so that uppercase 3x3x3 algs will still work on a big cube (with solved centers and edges, e.g. after reduction). I somewhat agree that outer-layer algs shouldn't need to use centered slice moves in lower case to keep the correct semantic meaning for big cubes.

Personally, I think the latter is a good use for m, but it's unclear for the time being. There are also no "popular" conventions, so we'd just be picking something based on what we *think* people want or find useful... and cubing is full of mistakes where someone made a choice that seemed sensible based on the available information, but might not be so good in retrospect. (My least favorite: the direction of M, allowing +2 for misalignments, and allowing inspection time in competitions.)

Since there is nothing obviously correct, I'm keeping things as canonical as possible on alg.cubing.net. I've got too many things to do – resolving this is not a priority, but I want it to have a good solution some day.


----------



## Hypocrism (Jul 20, 2014)

Lucas Garron said:


> M slices on big cubes are unclear.
> 
> I think an uppercase letter should always be a single slice by default, but that only works well for odd cubes..
> qq thinks M should be everything but the outer layers, so that uppercase 3x3x3 algs will still work on a big cube (with solved centers and edges, e.g. after reduction). I somewhat agree that outer-layer algs shouldn't need to use centered slice moves in lower case to keep the correct semantic meaning for big cubes.
> ...



Just out of curiosity, why don't you agree with inspection time?


----------



## Renslay (Jul 24, 2014)

I have another idea:

1) A button that transforms the movement rotations into outer layer only rotations, removing cube turns also.
So, before:
x y M U2 x M L2 S Rw

After:
U D' L2 U D' D2 F' B R (z2 x)

I don't think it would take much effort, effectively you have to cascade the cube rotations through (and changing the middle layer turns and wide turns), for examle the steps inside:
x y M U2 x M L2 S Rw
x y M U2 x M L2 S *L x*
x y M U2 x M L2 *F' B z* L x
x y M U2 x M L2 F' B *D z* x
x y M U2 x *R L' x'* L2 F' B D z x
x y M U2 x R L' *L2 x'* F' B D z x
x y M U2 x R L' L2 *U' x'* B D z x
x y M U2 x R L' L2 U' *D x'* D z x
x y M U2 x R L' L2 U' D *F x'* z x
x y M U2 *R x *L' L2 U' D F x' z x
...
U D' L2 U D' D2 F' B R (/* bunch of cube rotations here */)
U D' L2 U D' D2 F' B R (z2 x)


----------



## Lucas Garron (Jul 24, 2014)

Renslay said:


> I have another idea:


Yep: also see Petro Leum's post for a more general idea.

The current traversal mechanism should be powerful enough, and I maintain that anyone who's willing to get their hands a little bit dirty in Javascript can implement this easily, if they want to see it sooner. (alg.js is even in its own project as of two days ago.)

(A slight problem is deciding what to do with commutators: I don't see a great way of "removing rotations" from [R, U z] without expanding it. Expanding it is definitely an easy way to do it, though.)


----------



## inteli5 (Aug 14, 2014)

*a few suggestion*

hi, Lucas, Thank you so much for this awesome job. I have been using it for a couple of month.
I have a few suggestions and issues to the project. All my comments are based on the current webpage on alg.cubing.net

(1) parameter in URL: please add speed and hint sticker. 
(2) Let users have an interface to define the stage, through a file or through a URL parameter like stage=111111111222222222333333333444444444555555555666666666. So that we can demonstrate algs of cross etc. For larger cubes, we can do it through a text file.
(3) when I change the color scheme to custom and type in my color scheme. it does not change anything.
(4) can you add a move like SR in superset ENG notation. SR=R+L' SU=U+D' etc, if letter S is used for slice move. we can do another letter like Q. or if two move is included in {} and they do not conflict you can let them move together.


----------



## cubernya (Aug 14, 2014)

inteli5 said:


> hi, Lucas, Thank you so much for this awesome job. I have been using it for a couple of month.
> I have a few suggestions and issues to the project. All my comments are based on the current webpage on alg.cubing.net
> 
> (1) parameter in URL: please add speed and hint sticker.
> ...



2) You can add comments at the end of a line by adding // before the comment
4) I've never seen this done. ATM exists, but that isn't used to often (and is not supported in alg.cubing.net). And yes, S is used for a slice
I also believe he wants to make it so if two moves are on the same axis, they turn at the same time.


----------



## Lucas Garron (Aug 19, 2014)

inteli5 said:


> hi, Lucas, Thank you so much for this awesome job. I have been using it for a couple of month.
> I have a few suggestions and issues to the project. All my comments are based on the current webpage on alg.cubing.net


Thanks! It seems you made an account just to post about this, so I appreciate you taking the time.



inteli5 said:


> (1) parameter in URL: please add speed and hint sticker.


I think I've talked about this earlier in the thread. For the time being, I believe this should be a (persistent) *user* option. 

I can't think of many cases where it's important to be able to specify this in the URL. In some cases (e.g. PLLs), perhaps it might be sensible to use a default based on other parameters, but in general I think a user option is still the best.



inteli5 said:


> (2) Let users have an interface to define the stage, through a file or through a URL parameter like stage=111111111222222222333333333444444444555555555666666666. So that we can demonstrate algs of cross etc. For larger cubes, we can do it through a text file.
> (3) when I change the color scheme to custom and type in my color scheme. it does not change anything.



Unfortunately, color schemes are (the only thing that) don't work properly yet.

I do want to support this, but I also want something that scales to different cube sizes and puzzles. Roofpig's Cubexps are a start, but I haven't had time to work on this.



inteli5 said:


> (4) can you add a move like SR in superset ENG notation. SR=R+L' SU=U+D' etc, if letter S is used for slice move. we can do another letter like Q. or if two move is included in {} and they do not conflict you can let them move together.



I want to keep things as simple as possible, so the only notation right now is SiGN (with wide turns).
I've considered adding slice turns like Rs (or even antislice turns Ra), but these are used infrequently.

However, I am considering your last suggestion with parentheses: (R L') would animate as one move by default.


----------



## Christopher Mowla (Aug 23, 2014)

Hey Lucas,

I was just wondering if a button for "remove comments" can be added.

That is, once the button is clicked, alg.cubing.net will clear all comments on every line of the inputted algorithm string.


----------



## Renslay (Aug 23, 2014)

cmowla said:


> Hey Lucas,
> 
> I was just wondering if a button for "remove comments" can be added.
> 
> That is, once the button is clicked, alg.cubing.net will clear all comments on every line of the inputted algorithm string.



I like the idea.

Also: deleting not just the comments, but every gibberish the site cannot handle.
For example, lot of people write the length of the segments without slashes, something like this:
U R F2 B R (5)
R U R' U2 R U2 R' (7)
L' U2 L (3)
...
and so on. Deleting those one by one can be a bit frustrating.


----------



## Lucas Garron (Aug 24, 2014)

cmowla said:


> I was just wondering if a button for "remove comments" can be added.



Done.



Renslay said:


> Also: deleting not just the comments, but every gibberish the site cannot handle.



Unfortunately, I don't know a magical way to do this. I'd rather do transformations that can be exactly defined.
However, I *could* show the location of the first error, which I plan to implement some time.

In your example, the first closing parenthesis would actually be the first invalid character, because "(5" could actually be part of a valid alg, e.g. "(5R)".


----------



## Christopher Mowla (Aug 24, 2014)

Thanks Lucas! I thought it would be pretty easy to implement!


----------



## naliuj (Aug 28, 2014)

Can the comments be a different colour than the algorithm? I'm using the site for a text ZZ tutorial I'm making. When I have something like this, it would be nice to have the two different colours.


----------



## Lucas Garron (Aug 28, 2014)

naliuj said:


> Can the comments be a different colour than the algorithm? I'm using the site for a text ZZ tutorial I'm making. When I have something like this, it would be nice to have the two different colours.



Hopefully someday.


----------



## Christopher Mowla (Sep 10, 2014)

Bug report.

Try the simplify feature on the move sequence " 2L L' ". It deletes them when it should obviously not make any change. This is the only error I know of regarding move cancelling, but I guess it wouldn't hurt to check all related possibilities.


----------



## Lucas Garron (Sep 10, 2014)

cmowla said:


> Bug report.
> 
> Try the simplify feature on the move sequence " 2L L' ". It deletes them when it should obviously not make any change. This is the only error I know of regarding move cancelling, but I guess it wouldn't hurt to check all related possibilities.



Good catch! The simplify function assumes an older version of the parsed alg format.
The resulting behaviour is simply incorrect, so I'll fix it right now.

EDIT: Fixed.


----------



## porkynator (Sep 12, 2014)

I don't know if this has already been reported, but R2 L2 is counted as 2 STM; shouldn't it be 1?
same thing for any other slice move written as 2 outer layer moves.


----------



## Stefan (Sep 12, 2014)

porkynator said:


> I don't know if this has already been reported, but R2 L2 is counted as 2 STM; shouldn't it be 1?
> same thing for any other slice move written as 2 outer layer moves.


No, it's two moves. Just like (R U R' U')6 is 24 moves, not zero.


----------



## porkynator (Sep 12, 2014)

Stefan said:


> No, it's two moves. Just like (R U R' U')6 is 24 moves, not zero.


I'm afraid I can't see the analogy with your example.
I have specified STM. Is R2 L2 2 STM as well?
Also, I may not be as smart as you, but I'm sure I can count to 2.


----------



## cubizh (Sep 12, 2014)

I think the STM implementation of alg.cubing.net follows the wiki definition, more speficially in this particular example, the first paragraph.


----------



## Stefan (Sep 12, 2014)

porkynator said:


> I'm afraid I can't see the analogy with your example.
> I have specified STM. Is R2 L2 2 STM as well?
> Also, I may not be as smart as you, but I'm sure I can count to 2.



It counts the moves, not some possible replacement for them. Maybe a better analogy would have been R R', which is correctly counted as 2 moves in every metric.

R2 is one move, L2 is a second move. You did *not* write M2 (and that doesn't even have the same effect, as it's off by a cube rotation).

You even said it yourself: "written as *2* outer layer moves".


----------



## porkynator (Sep 12, 2014)

Stefan said:


> It counts the moves, not some possible replacement for them. Maybe a better analogy would have been R R', which is correctly counted as 2 moves in every metric.
> 
> R2 is one move, L2 is a second move. You did *not* write M2 (and that doesn't even have the same effect, as it's off by a cube rotation).
> 
> You even said it yourself: "written as *2* outer layer moves".



That's a better reply, thanks.
I was expecting a different behaviour because I have used it a few times for posting solutions in The "Example Solve" Game: sometimes I try corners first solving focusing on HTM efficiency, but after writing the solution down I would also like to know how long the solution is in STM (but cancelling R2 L2 into M2, for example).


----------



## Stefan (Sep 12, 2014)

porkynator said:


> I would also like to know how long the solution is in STM (but cancelling R2 L2 into M2, for example).



I'd consider it wrong for the program to do automatic "canceling" there, but it could be offered as another "simplify" functionality. I did this for 4x4 to optimize my solutions for Tom's 4x4x4 FMC, code is here but it's a hack:
https://gist.github.com/pochmann/d79d582724e96a5d3add


----------



## Lucas Garron (Sep 13, 2014)

Stefan said:


> It counts the moves, not some possible replacement for them.





Stefan said:


> I'd consider it wrong for the program to do automatic "canceling" there, but it could be offered as another "simplify" functionality.



Exactly my sentiments. I believe that metrics should be context-free: you count up each move, double everything in a commutator, etc. But nothing should depend on other parts of the algorithm that you're not looking at. This is easier because it leads to fewer subjective disagreements, and is easy to understand/implement in code.

For example, this allows me to calculate the move count of an alg very easily and efficiently, no matter how many nested conjugates/commutator/move groups there are.
Some day, alg.cubing.net could easily support algs that have nested conjgates and commutators with millions of total moves. The alg parser and the move counter would have no problem with this (but the animation needs to be updated).

In addition R2 L2, I can think of many algs that have a *single* canceling slice, let alone a whole bunch on the same axis:
[R, U] [U, R]
R2 U2 U U R
R x l'
(R U)2 U' L
[R U R2, R U R']
[R2: F2] x2 [M D2, L2]'

I think it would be a bad idea to try to define a clever way to calculate the "most efficient" move count for each of these, and then insist that we should use this by default. As Stefan suggests, the move count of the alg should be the total of all the moves *as written*. If you want to show that an alg has a lower move count when you write it another way, write it that other way.

I actually take this to an extreme in one particular case: 3r counts as 1 move on 3x3x3. While I was originally leaning towards counting this as 0 moves (except for ETM), I think it's fair to call this 1 move on every cube size. This has the benefit that *all* algs have the same metrics on all cube sizes, and that more of the metrics make sense if we move to other puzzles (teraminx?). If you mean a rotation, you should write it as a *semantic* rotation (x), not as a wide turn.


That said, I'd be happy to add a button to alg.cubing.net for "minimizing" algs in particular metrics.
I don't have time, but if Stefan or anyone else wants to implement this, alg.js should make it easier to do this. (It would also be a lot more robust.)


----------



## primarycuber (Nov 12, 2014)

Question: is there some special notation for 4x4 for turning only the inner slices (r/l)? r and l seem to be working like Rw and Lw.
Do I have to write lL' for example or is there some other way?


----------



## Stefan (Nov 12, 2014)

primarycuber said:


> Question: is there some special notation for 4x4 for turning only the inner slices (r/l)? r and l seem to be working like Rw and Lw.
> Do I have to write lL' for example or is there some other way?



2L

And click "Notation" in the examples section for more.


----------



## Christopher Mowla (Nov 15, 2014)

Hey Lucas,

I appreciate that you have started this project and have considered my suggestions in the past. 

I have yet another suggestion. I'm not sure if this was intentional or not, but did you intend your inverse function to do Inverse["F2"] = "F2'" instead of simply "F2"?

I'm not asking you to change this, but, for the use of Cube Explorer, it doesn't recognize "F2'" as F2, for example.

Therefore, if only it makes no difference to you, then could you just simply add a string replace command "2'"->"2" at the end of your inverse function?


----------



## Lucas Garron (Nov 16, 2014)

cmowla said:


> I have yet another suggestion. I'm not sure if this was intentional or not, but did you intend your inverse function to do Inverse["F2"] = "F2'" instead of simply "F2"?
> 
> I'm not asking you to change this, but, for the use of Cube Explorer, it doesn't recognize "F2'" as F2, for example.
> 
> Therefore, if only it makes no difference to you, then could you just simply add a string replace command "2'"->"2" at the end of your inverse function?



It is definitely intentional. Because alg.cubing.net is built primarily for cubers, I consider direction to be an important property of a move. I always type out my algs and reconstructions with deliberate directions for double turns, and write my code to make sure all the transformations honor directions.

I don't want to add a button specifically for your requested transformation, unless others would also find it very useful. Perhaps there is a way to generalize it to something to something that is general enough to warrant a button for it, but I'd rather leave it out unless we think of one.

But just to make this easier on you for now, here's some simple code that has the desired effect:


```
var positiveDoubleTurns = alg.cube.makeAlgTraversal();
positiveDoubleTurns.move = function(move) {
  if (move.amount < -1) {
    var newMove = alg.cube.cloneMove(move);
    newMove.amount = newMove.amount + 4;
    return newMove;
  }
  else {
    return move;
  }
};
var oldAlgString = $("#algorithm").val();
var newAlgString = positiveDoubleTurns(oldAlgString);
$("#algorithm").val(newAlgString);
```

Run it in the Javascript console or create a bookmarklet from it.
If you also want to convert F' into F3, just change the comparison on line 4 into (move.amount < 0).

In any case, you might want to ask Herbert Kociemba if he would adapt his parser to treat 2' as 2.


----------



## Renslay (Feb 18, 2015)

I have the following issue:

Using Chrome, when I enter some movements, and I click in the middle of the movement (so the cursor jumps there), the image on the left shows the cube with only the movements before the cursor. For example, my movements are R U F2 B, and the cursor is between U and F2, then the animated cube shows R U. This seems a useful and normal function.

However, using Firefox, this doesn't seem to work. It's like jammed, and shows the end of the movements (most of the time). If I enter something there (e.g. a space), sometimes it works because of the refresh, sometimes not.

See this: http://postimg.org/image/96aeuqsmv/
Notice the strange orange color, which I assume should show the current turn.

Chrome 40.0.2214.111 m
Firefox 35.0.1


----------



## Lucas Garron (Feb 18, 2015)

Renslay said:


> However, using Firefox, this doesn't seem to work. It's like jammed, and shows the end of the movements (most of the time). If I enter something there (e.g. a space), sometimes it works because of the refresh, sometimes not.



You're right, this seems to be a bug now!
I don't have time right now, but I've made a note to look into it.


----------



## minime12358 (Feb 18, 2015)

Hey, I wanted to let you know of a possible other bug, while you already don't have time to solve this last one 

It doesn't appear that the custom color scheme is working right now, confirmed by another. I hit custom, enter in a string, and the color scheme will not change.


----------



## Lucas Garron (Feb 18, 2015)

minime12358 said:


> It doesn't appear that the custom color scheme is working right now, confirmed by another. I hit custom, enter in a string, and the color scheme will not change.



Yeah, unfortunately that's the main broken feature right now. :-(
It will take some work, so you should probably not rely on it for the time being.

(But if a bunch of people really want this, speak up and I can prioritize it.)


----------



## minime12358 (Feb 18, 2015)

Ah, my bad. The biggest reason I would like the feature is so that I can hit the OLL button and have it highlight a color other than Yellow---unless I missed an option, it appeared that the only way would be to define the color scheme to put it on top.


----------



## Lucas Garron (Feb 19, 2015)

minime12358 said:


> Ah, my bad. The biggest reason I would like the feature is so that I can hit the OLL button and have it highlight a color other than Yellow---unless I missed an option, it appeared that the only way would be to define the color scheme to put it on top.



Yeah, that's the case right now. Not really your bad. :-(

Of course, anyone is welcome to implement it if they want to see it sooner. ;-)


----------



## unsolved (Mar 21, 2015)

*5x5x5 Alg.Cubing.Net Bug??*

When I run up this sequence of moves...

https://alg.cubing.net/?title=alg.garron.us&puzzle=5x5x5&view=playback&alg=R2_U_2F2_U2_2B_U2_2F-_U2_2B-_R2_U-_2F-_3R2_U2_3R_U-_R2_U_3R_U2_3R2_2F_U-_2F2_U-_R2%0A%0A

... I get the centers solved and a tredge inverted with one middle edge inverted. But, on the Alg.Cubing.Net site it shows a different position.

I am hoping I am just doing something wrong. Any 5x5x5 cubers want to manually do this sequence on their cubes and make sure I am not losing my mind?


----------



## Stefan (Mar 21, 2015)

You can 100% see what ACN is doing. So why don't you just tell us the first move that ACN does differently from you?

Edit: I think we should have a Zero-Answers Question Forum for stuff like this (i.e., questions that people should obviously just answer themselves). Admins could move threads there and only the asker would be allowed (and requested) to reply


----------



## unsolved (Mar 21, 2015)

Stefan said:


> You can 100% see what ACN is doing. So why don't you just tell us the first move that ACN does differently from you?
> 
> Edit: I think we should have a Zero-Answers Question Forum for stuff like this (i.e., questions that people should obviously just answer themselves). Admins could move threads there and only the asker would be allowed (and requested) to reply



I am testing something from my 5x5x5 Brute Force Solver and I am not 100% sure I am converting my notation into SiGN and I do not have a 5x5x5 cube to check the results. That's why I posted.






*Solving 3 edges using SiGN: pretty sure this worked.*





*Solving centers with my notation. 
r+ = 2R 
r- = 2R'
T+ = U
y+ = 3R
y- = 3R'
T- = U'
F+ = F
L- = L
K- = B
z+ = 3U
K+ = B'
b+ = 2D'
y2 = 3R2*

And I think we need less arrogance and more help from the people who respond. Maybe the admins could inject something into different brain centers of people such as yourself to stimulate the development of social skills.

See, I can make an arrogant post too. Did it help? No. Understand now why someone might not like to see a smug reply?


----------



## Stefan (Mar 21, 2015)

You don't need a real cube to see which of ACN's turns surprises you.

You make zero sense.


----------



## unsolved (Mar 21, 2015)

Stefan said:


> You don't need a real cube to see which of ACN's turns surprises you.



My program produces this position from the same set of moves.






So that tells me I entered one of the moves incorrectly on the website, or there is a bug with the website. I am not sure which move is incorrect that I entered, which is why I posed the question.

*Edit: And it looks like the 3R should have been replaced by 3R' so I did translate the position from my notation into SiGN incorrectly.*

https://alg.cubing.net/?title=alg.garron.us&puzzle=5x5x5&view=playback&alg=R2_U_2F2_U2_2B_U2_2F-_U2_2B-_R2_U-_2F-_3R2_U2_3R_U-_R2_U_3R-_U2_3R2_2F_U-_2F2_U-_R2


----------



## Lucas Garron (May 6, 2015)

I've replaced the copy button (on the line that says "Forum Link") with new code that should work better where it's supported.

At the moment, it should work in Chrome and Internet Explorer.


----------



## Lucas Garron (Jun 4, 2015)

I've implemented offline support, which already works in Chrome and Opera, and is coming to Firefox soon (you can enable experimental support).
If you click on the "Offline" button under "TOOLS", the button should change to a checkmark, and all links to alg.cubing.net should continue to work even when you're offline.
For example, you could download the PLL wiki page and click on the animation links even if you go offline.

For those of you who are curious about the details, there are two technologies for offline websites.
The first one was called AppCache, and it had many flaws (for example, even if you go back online, you may still see the old version of the website), so I disabled it after testing it on alg.cubing.net.
Service workers are the replacement, but they are just being finalized, and not all browsers have support yet.

(Side note: If you want to use or modify alg.cubing.net locally, the "Download" button still gives you a file you can unzip and use on your computer – but you won't be able to use it by visiting the normal URL.)

Service workers are brand-new, so I'd love for people to test this. Let me know if you run into any issues while you're offline.


----------



## josh42732 (Jul 5, 2015)

When I do an r on 4x4, it does it as an Rw. This has probably been answered already, but how do I correct this?


----------



## Cale S (Jul 5, 2015)

josh42732 said:


> When I do an r on 4x4, it does it as an Rw. This has probably been answered already, but how do I correct this?



r = Rw = wide turn
2R = slice move
on bigger cubes, you choose which single slice you turn with 3R, 5R, etc.


----------



## Lucas Garron (Jul 5, 2015)

josh42732 said:


> When I do an r on 4x4, it does it as an Rw. This has probably been answered already, but how do I correct this?



Are you asking for an option to treat "r" as "2R" (move the second-outermost slice)?

This is purposely not possible, because it it allows two conflicting notations. This particular move has to be two characters instead of one, but I believe it's much more valuable if everyone agrees on a single definition of "r".
So you'll have to use 2R in this case. Click on "Notation" under "Examples" for more possible moves.

For its core notation, alg.cubing.net uses only SiGN, with addition that Rw is treated as an alias for r.


----------



## josh42732 (Jul 5, 2015)

Lucas Garron said:


> Are you asking for an option to treat "r" as "2R" (move the second-outermost slice)?
> 
> This is purposely not possible, because it it allows two conflicting notations. This particular move has to be two characters instead of one, but I believe it's much more valuable if everyone agrees on a single definition of "r".
> So you'll have to use 2R in this case. Click on "Notation" under "Examples" for more possible moves.
> ...



Ahh.. okay thank you. I just copied a parity alg for 4x4 and didn't have mine handy so I just copied it onto that with the r as being the single slice, but I will make the changes to the alg! Thank you!

Also, Super-Duper Moderator! That's cool!


----------



## Winter Cuber (Oct 24, 2015)

Is there a reason that the SUNE example is R U R2 R U R' R2' U' R' R U' R'?

EDIT: as soon as I posted this it changed to the normal alg


----------



## Lucas Garron (Oct 24, 2015)

Winter Cuber said:


> Is there a reason that the SUNE example is R U R2 R U R' R2' U' R' R U' R'?
> 
> EDIT: as soon as I posted this it changed to the normal alg



The "Sune" button should show a commutator: [R U R2, R U R']
Expand: R U R2 R U R' R2' U' R' R U' R'
Simplify: R U R' U R U2' R'

("Expand" and "Simplify" are under "Tools".)

The alg should not be changing on its own. Let me know if it is (and when/how it happens).


----------



## deadcat (May 29, 2016)

Lucas Garron said:


> Yeah, unfortunately that's the main broken feature right now. :-(
> It will take some work, so you should probably not rely on it for the time being.
> 
> (But if a bunch of people really want this, speak up and I can prioritize it.)



Not sure if this is dead or not, but as a colorblind solver, being able to change the color scheme would be amazing. With the current scheme red and orange look nearly identical to me, and trying to figure out reconstructions with it is extremely challenging. Otherwise, this is completely awesome.


----------



## Liquorice (May 29, 2016)

deadcat said:


> Not sure if this is dead or not, but as a colorblind solver, being able to change the color scheme would be amazing. With the current scheme red and orange look nearly identical to me, and trying to figure out reconstructions with it is extremely challenging. Otherwise, this is completely awesome.


I'm not colourblind, but I was wondering the same thing just yesterday! I figured out a way to do it:
Download the software, right click on the file "alg.cubing.net.js" and press edit. Search "color scheme" and you can edit the colours. For example, I changed it to "rgbowy" so yellow is on top and red is in front. I'm sure red can be changed it to black or whatever you want.
It works, but the animation stopped working, and I am still trying to figure out why ...


----------



## Christopher Mowla (May 30, 2016)

Hey Lucas,

I just noticed this yesterday, but if I have the applet in "Algorithm" mode, and then I click "invert", then this will of course invert the moves in the algorithm box correctly, but it also switches to "moves" mode.

Was this intentional?


----------



## bcube (May 23, 2017)

Hi,

I have a small knowledge of the simulator and I am wondering if there is a way how to get the timeline/progress bar to its beginning state in case of a reconstruction?

Example - I would like to get "scrambled cube" directly rather than "solved cube" directly with consequent need to click on reset button (and followed by play button).


----------



## Herbert Kociemba (May 26, 2017)

Since Java-applets completely stopped to work in most browsers I try to replace them with with Lucas' software using iframes on my homepage. 
http://kociemba.org/math/c1.htm
But there are problems when there are several iframes on a page:

Using Firefox: Several of the iframes usually do not load completely and stay empty. Reloading the page sometimes helps.

Using Internet Explorer: In many iframes the icons for the play Button etc. is missing.

Using Microsoft's edge browser works best here: The page keeps responsive while loading and all iframes load. But the cube shown is the clean cube and not the cube given by the algorithm.

Any ideas how to improve that behaviour?


----------



## bcube (May 26, 2017)

Herbert Kociemba said:


> Any ideas how to improve that behaviour?



If you don´t insist on using Lucas´ simulator, there are other alternatives (throughout the links in threads you can find several of them).

I recommend Michael Feather´s AnimCubeJS. He offers 2x2x2 - 6x6x6 Rubik´s cubes (including Supercubes), many simulators on a page isn´t a problem at all (for example, see 2x2x2 - 5x5x5 pages on my site in a signature).

I remember Michael said to me that one of the reason he made his 5x5x5 AnimCubeJS was that it was impossible to run several Lucas´ 5x5x5 simulators on a page.


----------



## Herbert Kociemba (May 27, 2017)

Thanks for the alternative. If the problems described above cannot be solved easily I will give it a try. Lucas' simulator is phantastic but it is probably a misuse to use it in the way I want.

Edit: AnimCubeJS works fine for me so I will use it.


----------



## qwr (Aug 4, 2019)

Is this program still being updated? (or accepting PRs)


----------



## Christopher Mowla (Sep 10, 2019)

@Lucas, I have been recently getting reports from select commentors on /r/Cubers/ that if parentheses are included in algorithms, my alg.cubing.net links don't parse correctly on their devices . . . when they _do_ parse just fine on _my_ device.

Is this a problem with Reddit?


----------



## lawofthecube (Aug 15, 2020)

Hi, I'd like to use the cube solver but can't seem to get the cube to have yellow on top like with CFOP, how do I do that custom so I can just enter a algorithim to watch it solve?

Thanks


----------



## BenChristman1 (Aug 15, 2020)

lawofthecube said:


> Hi, I'd like to use the cube solver but can't seem to get the cube to have yellow on top like with CFOP, how do I do that custom so I can just enter a algorithim to watch it solve?
> 
> Thanks


You have to put in an "x2" or "z2" before the alg.


----------



## lawofthecube (Aug 15, 2020)

BenChristman1 said:


> You have to put in an "x2" or "z2" before the alg.



Thanks, I wish I could set it to just be default to Yellow on top...


----------



## qwr (Aug 15, 2020)

lawofthecube said:


> Thanks, I wish I could set it to just be default to Yellow on top...



https://github.com/cubing/alg.cubing.net/issues/156 "coming in v2"


----------



## lawofthecube (Aug 15, 2020)

qwr said:


> https://github.com/cubing/alg.cubing.net/issues/156 "coming in v2"


----------



## qwr (Aug 15, 2020)

idk if it's being actively developed. You can ask @Lucas Garron 
I would contribute if I weren't too lazy to learn js


----------



## Lucas Garron (Aug 19, 2020)

qwr said:


> idk if it's being actively developed. You can ask @Lucas Garron
> I would contribute if I weren't too lazy to learn js



cubing.js, the core library underlying v2, is under very active development: https://github.com/cubing/cubing.js/commits/main

The code isn't quite in a state that's easy to contribute to yet, but if someone has experience with JS/HTML and would like to work on a way to specify color schemes, now would be a good time to start talking about it! Feel free to contact me if you would like to learn more about where things are.


----------



## ProStar (Aug 19, 2020)

Lucas Garron said:


> cubing.js, the core library underlying v2, is under very active development: https://github.com/cubing/cubing.js/commits/main
> 
> The code isn't quite in a state that's easy to contribute to yet, but if someone has experience with JS/HTML and would like to work on a way to specify color schemes, now would be a good time to start talking about it! Feel free to contact me if you would like to learn more about where things are.



wait wut he's alive?


----------



## Lucas Garron (Aug 23, 2020)

ProStar said:


> wait wut he's alive?


Indeed! I'm not checking the forum as often these days because of WCA work and cubing.js, but I'm still cubing a lot!


----------



## Spacey10 (Aug 23, 2020)

ProStar said:


> wait wut he's alive?


HE'S ALIVE!!!
*lion king music plays and simba gets chucked off a mountain*


----------



## Isaev (Apr 1, 2021)

can you add bandaging support?


----------



## Cubing Forever (Apr 1, 2021)

I think we should add side events like pyra, mega and skewb too. https://squandb.net shows that it's possible.



Cubing Forever said:


> I think we should add side events like pyra, mega and skewb too. https://squandb.net shows that it's possible.


Sorry for double post but what do you think about it @Lucas Garron?


----------



## abunickabhi (Apr 1, 2021)

Cubing Forever said:


> I think we should add side events like pyra, mega and skewb too. https://squandb.net shows that it's possible.


Karnaukh notation in squandb is super cool.


----------



## Christopher Mowla (Apr 1, 2021)

Hey guys,

Just in case you all weren't aware, @Lucas Garron has a whole bunch of non nxnxn puzzles at https://experiments.cubing.net/cubing.js/twizzle/?
I didn't see Square-1 like is at https://squandb.net/? , but I saw lots of others. (Just click the drop-down at the 3x3x3 in the top-left corner.)

Just to give you an example, take a look at a beautiful gigaminx pattern (with an alg animation) that @mrCage made with it. (And I am aware that @rokicki is somewhat involved with the coding of this website. I know he at least had a say so in the notation for the gigaminx, but it could be much more.


----------



## Cubing Forever (Apr 1, 2021)

Christopher Mowla said:


> Hey guys,
> 
> Just in case you all weren't aware, @Lucas Garron has a whole bunch of non nxnxn puzzles at https://experiments.cubing.net/cubing.js/twizzle/?
> I didn't see Square-1 like is at https://squandb.net/? , but I saw lots of others. (Just click the drop-down at the 3x3x3 in the top-left corner.)
> ...


Whoa! That's amazing!!


----------



## Lucas Garron (Apr 9, 2021)

Christopher Mowla said:


> Hey guys,
> 
> Just in case you all weren't aware, @Lucas Garron has a whole bunch of non nxnxn puzzles at https://experiments.cubing.net/cubing.js/twizzle/?
> I didn't see Square-1 like is at https://squandb.net/? , but I saw lots of others. (Just click the drop-down at the 3x3x3 in the top-left corner.)
> ...



Indeed, Tom and I are getting pretty close to having something that can address some of the most common requests for alg.cubing.net and a lot more!
(We can also support puzzles like Square-1, but only 2D SVG is available so far.)

However, there are still some very important details left, so I don't want to promise anything before it's ready.

If you're very experienced with JS (especially data bindings and async code), feel free to get involved: https://github.com/cubing/cubing.js
Else, I hope we'll have something for you all soon.


----------



## Filipe Teixeira (May 18, 2021)

I'm having problem with the ssl. When I access the app it redirects to https but it won't load the app stuff until I change the address to http protocol
Is anyone else having this problem?


----------



## Lucas Garron (May 20, 2021)

Filipe Teixeira said:


> I'm having problem with the ssl. When I access the app it redirects to https but it won't load the app stuff until I change the address to http protocol
> Is anyone else having this problem?



This was probably an issue with the offline support, which has been messy since some recent browser changes. I've disabled it for now; let me know if it's working better.


----------



## Filipe Teixeira (May 20, 2021)

Lucas Garron said:


> This was probably an issue with the offline support, which has been messy since some recent browser changes. I've disabled it for now; let me know if it's working better.


i think it's ok now! thanks so much, this tool is very useful for me


----------



## Lucas Garron (Jul 22, 2021)

Lucas Garron said:


> Indeed, Tom and I are getting pretty close to having something that can address some of the most common requests for alg.cubing.net and a lot more!



We're only getting started, but this is now a thing. :-D








Introducing Twizzle (alpha)


So, it's been a while since I announced alg.cubing.net, and it hasn't changed much over the years. That's because I've been working from scratch with Tom Rokicki to build a much more powerful successor called Twizzle! We have so much more to do, we not even in beta yet! However, you can now...




www.speedsolving.com


----------



## tongjunhui (Jun 21, 2022)

Can you add supercube support? That will be super helpful to deeply investigate what exactly an algorithm do.


----------

