# Better way of maintaining personal reconstructions



## abunickabhi (Feb 15, 2021)

So, I have have been having this idea for a while. I hope most of you know that lichess studies exist and they are a good tool to analyse your own games, or fork master's games and study them, make chapters and variations. (https://lichess.org/study)

I feel something similar can be built for cubing reconstructions. Till now we have alg.cubing, cubedb.net and cubesolv.es but none of these tools, allow the user to make their own repositories where they can add up their solves, annotate them, add comments, and also share it, and have it stored in the cloud, similar to a lichess study.

Do you guys feel the need to implement such a tool for cubing?


----------



## qwr (Feb 15, 2021)

For completeness, speedcubedb supports user submitted reconstructions.


----------



## abunickabhi (Feb 15, 2021)

qwr said:


> For completeness, speedcubedb supports user submitted reconstructions.


Will it accept say a 70 move 1 minute 3x3 solve of me, and give a reconstruction link for my personal usage, which can be also user edited later?

I think speedcubedb only has all the top solvers recon, and not any user specific recon that he/she wants to keep it private, but wants to keep it on the site.


----------



## Tegan Jain (Apr 2, 2021)

> Will it accept say a 70 move 1 minute 3x3 solve of me, and give a reconstruction link for my personal usage, which can be also user edited later?


No lmao, though I'm sure they would accept some roux or bld solves from you.



> I think speedcubedb only has all the top solvers recon, and not any user specific recon that he/she wants to keep it private, but wants to keep it on the site.


Yes, the point of speedcubedb is to have a large database that gives us stats about what top cubers do in their solves. Though I do think that having an open reconstruction db aside from speedcubedb where anyone can submit recons and see their stats would be a good idea. Something like this could also be coded into speedcubestats, which allows you to currently link recons with any solves you may put up their, and I believe cubepb.com is also working on something similar.


----------



## Tegan Jain (Apr 2, 2021)

qwr said:


> For completeness, speedcubedb supports user submitted reconstructions.


Not really. Only a few people can directly upload reconstructions, namely Stewy, Brest, Anto, and few others maybe. The closest thing they have to user submitted recons is just sending a recon to them directly with the framecounts and they upload it crediting you.


----------



## abunickabhi (Apr 2, 2021)

Tegan Jain said:


> Not really. Only a few people can directly upload reconstructions, namely Stewy, Brest, Anto, and few others maybe. The closest thing they have to user submitted recons is just sending a recon to them directly with the framecounts and they upload it crediting you.


Yes, that way of uploading recon exists. 
For a case when a beginner wants to have his reconstruction maintained on a site (public or private), rather than having cubedb or alg.cubing link, they can have a personalised repo like in github, where they can stack up their reconstructions for personal use, and can access it from the server.


----------



## Fyplus (Apr 6, 2021)

It could be related to something that I've just posted, although maybe not exactly what you are looking for:









RubikNotes.py, a 3x3 cube renderer


https://fynv.github.io/RubikNotes https://github.com/fynv/RubikNotes import glm from RubikNotes import RubiksCube, PerspectiveView, TopView cube = RubiksCube() cube.exec_seq("z2U'DF'BR'LU'D") # arbitary textures supported by setting the 'fn_skin" parameter p_view = PerspectiveView(fn_skin =...




www.speedsolving.com













GitHub - fynv/RubikNotes: Some notes about Rubics cube


Some notes about Rubics cube . Contribute to fynv/RubikNotes development by creating an account on GitHub.




github.com





RubikNotes.py is a simple 3x3x3 Rubik's Cube renderer. You can run it locally on your computer to generate illustrations really easily.

Then you can just post your notes and the illustrations on your blog, or github.io. For github.io, it can be maintained just like other repositories,.


----------



## abunickabhi (Apr 6, 2021)

Fyplus said:


> It could be related to something that I've just posted, although maybe not exactly what you are looking for:
> 
> 
> 
> ...


Thanks for sharing, will look into it!


----------



## Filipe Teixeira (Apr 6, 2021)

What about having a small and simple github pages app that lists your reconstructions and open it on http://alg.cubing.net/ ?
That should be trivial to code and people should only fork the repo and change the reconstructions info


----------



## Filipe Teixeira (Apr 6, 2021)

check this out








GitHub - justinj/reconstruction-database: The largest collection of reconstructions on the internet


The largest collection of reconstructions on the internet - GitHub - justinj/reconstruction-database: The largest collection of reconstructions on the internet




github.com


----------



## Fyplus (Apr 7, 2021)

Just found something that fits your case even better:






AnimCubeJS - the Rubik's Cube Animation Simulator


Easy to use, highly configurable and nicely looking 2x2x2 - 6x6x6 Rubik's Cube & Supercube interactive 3D simulator.




cubing.github.io





You can just do a cross-origin <iframe> using a one-liner like:


```
<iframe src="https://cubing.github.io/AnimCubeJS/cube3.html?colorscheme=wygbor&move={Cube in ...} R U' L F U' {... cube in ...} R2 U2 R U R' {... cube ...} U2 D' L D {... pattern} F2 L2 U&initrevmove=%23&bgcolor=FFFFFF&butbgcolor=99AACC&demo={AnimCubeJS}ZZUuZZ{by M%2E Feather %26 J%2E Jel%C3%ADnek}d'D'UE'D'{}D'E'U&movetext=1&metric=2&fonttype=0&snap=1&buttonheight=20" frameborder="0" width="120" height="139"></iframe>
```

I've just set up a temporary page on my own github pages:






RubikNotes


Some notes about Rubics cube



fynv.github.io





I'll continue to develop my RubikNotes script though. Will enable something like rendering a full reconstruction as a single big image. That would still be useful if you want to post it elsewhere, where javascript is blocked.


----------



## abunickabhi (Apr 7, 2021)

Filipe Teixeira said:


> check this out
> 
> 
> 
> ...


cubesolv.es is a good idea (I have known it for a few years), and the intention of maintaining many reconstructions on the site for educational and historical purposes is cool. 

The only problem I see is that it is tough to push new reconstructions, as we have to setup the server locally and configure an admin account. For a person not familiar with terminal, it will be hard to add up solves.


----------



## Fyplus (Apr 7, 2021)

```
import glm
from RubikNotes import RubiksCube, PerspectiveView, TopView

cube = RubiksCube()
cube.exec_seq("(RU'U')(R2'FRF')U2(R'FRF')", reverse=True)

p_view = PerspectiveView()
p_view.set_camera(128, 128, 45, glm.lookAt(glm.vec3(8.0,6.0,10.0), glm.vec3(0.0,-0.5,0.0), glm.vec3(0.0, 1.0, 0.0)))

cube.render_seq(p_view, "(RU'U')(R2'FRF')U2(R'FRF')", filename="full.png")
```

Now RubikNotes lets you render something like this locally. I think this is as far as static render can go. 
When you have 70 moves, it will render you a full screen of cubes. Not sure if this will still be practical in that case.


----------



## abunickabhi (Apr 7, 2021)

Fyplus said:


> ```
> import glm
> from RubikNotes import RubiksCube, PerspectiveView, TopView
> 
> ...


Nice renders of the cube image.


----------



## Cubing Forever (Apr 8, 2021)

There's a simple solution to this. Maintain a whole sheet of acn links.


----------



## abunickabhi (Apr 8, 2021)

Cubing Forever said:


> There's a simple solution to this. Maintain a whole sheet of acn links.


Thats a messy solution, a server website, or some UI based website will be better.


----------



## Fyplus (Apr 9, 2021)

I've come up with an improved "github.io + AnimCubeJS" solution.
See the link below:
New page: Reconstruction Maintenance Test

Basically, you need to maintain 2 files: README.md, database.json in your repository.
Once you set up the page, you only need to keep maintaining database.json, which looks like:


```
[
    {
        "display_name": "OLL_1",
        "initrevmove" : "RU'U'R2'FRF'U2R'FRF'",
        "move": "RU'U'R2'FRF'U2R'FRF'"
    },
    {
        "display_name": "OLL_2",
        "initrevmove" : "FRUR'U'F'fRUR'U'f'",
        "move": "FRUR'U'F'fRUR'U'f'"
    },
    {
        "display_name": "A real reconstruction",
        "initmove": "U' F2 U B2 D' R2 U F2 L2 D' F2 L' R' F' D B D U2 B2 R2",
        "move": "F'LF2'BUR'U'B2R'U2'R'URU2R'URUBU'B'B'UBUFU'F'U2F'UFU2F'U'FULU'L'U'B'UBU2FU'F'U'L'ULRU2R'U'RU'R'R2URUR'U'R'U'R'UR'U2"
    }
]
```


Github allows you edit your repository online. So just click the "Edit" button, it will lead you to the edit page.
In "A real reconstruction", I reconstructed one of my own solves (a bad one, which takes 81 moves).
A limitation is that github pages take quite some time (30 secs or so) to refresh, so you basically cannot do your reconstruction interactively here.


----------

