cubing.js icon indicating copy to clipboard operation
cubing.js copied to clipboard

[Twizzle issue] Caret NISS playback incorrect

Open DougCube opened this issue 11 months ago • 6 comments

Steps to reproduce the issue

When I go to a point in the solution after the caret NISS, it should have applied the premove to the scramble already. Also, nagivating within the caret NISS, it should go to the inverse after applying the inverse solution up to that point.

https://alpha.twizzle.net/edit/?alg=R+F2+U%27+F+U+F%27+R%27+F+%2F%2F+X-Cross+on+U-BR+%288%2F8%29%0AF%27+R%27+D%27+L%27+D2+R+F+L+%2F%2F+psuedo+F2L+on+U+%288-3%2F13%29%0A%5E%28F%27%29+%2F%2F+pre-move+%281%2F1%29%0AL%27+F%27+D%27+F+D+L+%2F%2F+OLL+%2B+PLL-skip+%286-4%2F16%29%0AD2+%2F%2F+AUF+%281%2F17%29&puzzle=3x3x3&setup-alg=R%27+U%27+F+D+B+R%27+F+B+R+L%27+D+R+D2+F2+R2+D2+R2+L%27+D2+R%27+F2+U2+D2+R%27+U%27+F#

Observed behaviour

It just takes all the caret NISS parts and applies them at the end of the solution regardless of where it currently is during playback.

🖼 Screenshots

In this image it should still have D2 remaining AND should have already applied the premove. Image

Expected behaviour

It should apply premoves to the scramble after the point in the solution where it is given.

Browser & operating system

Chrome 132.0.6834.111 on Windows 10 Pro

Additional info

No response

DougCube avatar Feb 08 '25 14:02 DougCube

When I go to a point in the solution after the caret NISS, it should have applied the premove to the scramble already. Also, nagivating within the caret NISS, it should go to the inverse after applying the inverse solution up to that point.

I've thought a bunch about this, and I think this is best done in a dedicated FMC UI. I'm normally against modal behaviour that influences semantics, but I think in this case it can be more like a "futuristic space alg X-Ray cyber visualization mode" than a semantic change.

After all, the actual "physical" alg specified works like you write:

It just takes all the caret NISS parts and applies them at the end of the solution regardless of where it currently is during playback.

It's important that cubing.js maintains this abstraction by default, so that algs with NISS moves can work in all sorts of applications without special treatment.

lgarron avatar Feb 09 '25 00:02 lgarron

I'm normally against modal behaviour that influences semantics, but I think in this case it can be more like a "futuristic space alg X-Ray cyber visualization mode" than a semantic change.

Just to be clear: some semantic changes are unavoidable. For example, this would affect the how move indexer assigns timestamps.

But we do have some precedent for alternative indexing, such as transparent simultaneous move indexing. (And therefore we don't have any strong stability guarantees about how indexing works.) So I think it's possible without too much pain.

lgarron avatar Feb 09 '25 00:02 lgarron

But what about what I'm showing in the screenshot? Clicking around inside the Moves box, it's behind by one move after the caret NISS part. Trying to reach the state where all that is remaining is D2 or D2 F but only way I found is to put the cursor before the last L (and after the space) or after the last D (and before the space), which doesn't make sense.

DougCube avatar Feb 09 '25 06:02 DougCube

Also, if I click around inside the Moves box immediately after opening a Twizzle Editor link, no changes are shown in the image. It's not obvious why user first has to hit a button (Play, Step forward, or Skip to End) before seeking thru a solution works.

DougCube avatar Feb 09 '25 21:02 DougCube

Now that I notice a move is being highlighted and it is the expected move before the caret NISS part but incorrect move after the caret NISS, there does appear to be an off-by-one error in the indexing. Please confirm this is indeed a bug.

DougCube avatar Feb 09 '25 21:02 DougCube

Ah, yeah, there are a lot of subtle issues with indexing due to some technical challenges. The off-by-one for NISS might be easy to fix, but I'm not sure how long the rest will take.

lgarron avatar Feb 09 '25 22:02 lgarron