@rednaxela101/cubing 0.63.7 → 0.63.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -47,19 +47,25 @@ Every WCA event is supported (`222`, `333`, `444`, `555`, `666`, `777`, `333bf`,
47
47
 
48
48
  ## What this fork adds
49
49
 
50
- - **Square-1 in 3D.** New `Square1_3D` visualization strategy, now the default for `puzzle="square1"`. Upstream always rendered Square-1 flat.
50
+ - **Stickerless 3D models.** Every 3D puzzle is drawn as solid pieces of colored plastic. Upstream draws flat stickers on a black body.
51
+ - New 3×3×3 pieces: beveled cubies with flat facelets and rounded outlines.
52
+ - 2×2×2 and 4×4×4 through 7×7×7 use the same pieces, cut to size.
53
+ - Square-1, Skewb, Megaminx, Pyraminx and FTO are solid pieces too, with a thin groove between them and a hairline bevel. Their pieces are cut from the puzzle's own faces and turning axes.
54
+ - No puzzle this fork ships is drawn with upstream's `PG3D` any more. It stays as the fallback for anything the piece geometry can't be recovered for.
55
+ - **Square-1 in 3D.** New `Square1_3D` visualization strategy, the default for `puzzle="square1"`. Upstream renders Square-1 flat.
51
56
  - **Square-1 2D last-layer diagrams.** `visualization="experimental-2D-LL"` on `square1`, with `OLL` and `PLL` stickerings.
52
- - **Better 2D Square-1 rendering.** Piece separator support in the SVG renderer: outlines between two halves of a piece hide and reappear as pieces join and split.
53
- - **5×5×5 2D last-layer diagrams.** `visualization="experimental-2D-LL"` on `5x5x5`, with a cached SVG built from reusable `<use>` elements.
54
- - **A full stickering set for Megaminx last-layer diagrams.** Alongside `OLL` and `PLL`, three stickerings that do not exist upstream: `OLL-EO` (last-layer center and edges only), `OLL-CO` (last-layer center and corners only), and `PLL-EO` (the side stickers of the last-layer edges only).
55
- - **Megaminx `PLL` read off the side stickers.** The last-layer face is blanked out instead of dimmed, so permutation comes from the surrounding stickers alone. Upstream dims it to a near-white grey that still reads as the face color.
56
- - **A face-color border for 2D last-layer diagrams.** An optional ring outside the puzzle outline, colored with the face each side belongs to, as an orientation reference. Controlled by `experimental-face-color-border` / `experimentalFaceColorBorder` (`auto` by default, `none` to hide); the framing tightens back up when it is hidden. Currently drawn by the Megaminx last-layer SVG, and any 2D SVG can opt in.
57
- - **Palette-agnostic dimming in the 2D renderer.** Upstream hard-codes a dim color per 3×3×3 face; any color outside that table dimmed to `undefined`, which is not a valid `stop-color` and painted the facelet solid black. Colors it does not know are now darkened programmatically, which is what makes the Megaminx diagrams usable.
57
+ - **Piece separators in the 2D renderer.** Outlines between two halves of a piece hide and reappear as pieces join and split, for Square-1.
58
+ - **5×5×5 2D last-layer diagrams.** `visualization="experimental-2D-LL"` on `5x5x5`.
59
+ - **Megaminx 2D last-layer diagrams.** `visualization="experimental-2D-LL"` on `megaminx`. Upstream has no last-layer view for Megaminx.
60
+ - **Four more Megaminx last-layer stickerings.** `OLL-EO` (last-layer center and edges), `OLL-CO` (last-layer center and corners), `PLL-EO` (side stickers of the last-layer edges), `PLL-CP` (side stickers of the last-layer corners).
61
+ - **Megaminx `PLL` read off the side stickers.** The last-layer face is blanked out. Upstream dims it to a near-white grey.
62
+ - **A face-color border for 2D last-layer diagrams.** A ring outside the puzzle outline, colored with the face each side belongs to. Controlled by `experimental-face-color-border` / `experimentalFaceColorBorder` (`auto` by default, `none` to hide). Drawn by the Megaminx last-layer SVG; any 2D SVG can opt in.
63
+ - **Palette-agnostic dimming in the 2D renderer.** Colors outside upstream's per-face table are darkened programmatically instead of dimming to `undefined`, which painted the facelet black.
58
64
  - **`L2E` stickering.** Last two edges, for `4x4x4`, `5x5x5` and `6x6x6`, under the Reduction group.
59
65
 
60
66
  ## Rendering performance (caching)
61
67
 
62
- Several per-frame code paths in `cubing/twisty` were doing work that could be skipped. Measured on Chromium as the cost of one `onPositionChange(…)` call with a move in progress (minimum of 7 rounds of 3000 calls), 2026-08-27.
68
+ Several per-frame code paths in `cubing/twisty` were doing work that could be skipped. Measured on Chromium as the cost of one `onPositionChange(…)` call with a move in progress (minimum of 7 rounds of 3000 calls), 2026-08-27, before the stickerless renderers landed. The renderer column is what each side ran at the time.
63
69
 
64
70
  | Puzzle | Renderer | Upstream | This fork | Change |
65
71
  | --- | --- | --- | --- | --- |
@@ -70,7 +76,7 @@ Several per-frame code paths in `cubing/twisty` were doing work that could be sk
70
76
  | FTO | `PG3D` | 1.93 µs | **1.70 µs** | -12% |
71
77
  | 2×2×2 | `PG3D` | 1.40 µs | **1.27 µs** | -9% |
72
78
 
73
- These are small in absolute terms on desktop: a 3×3×3 player drops from roughly 0.67 ms to 0.23 ms of main-thread time per second of animation. It matters for pages with many diagrams, for low-end mobile, and for apps whose main thread is already busy.
79
+ A 3×3×3 player drops from roughly 0.67 ms to 0.23 ms of main-thread time per second of animation.
74
80
 
75
81
  ## Size improvements
76
82
 
@@ -85,11 +91,11 @@ A snapshot, not a live claim: each entry point bundled with `esbuild` (minified,
85
91
 
86
92
  ### Re-chunking
87
93
 
88
- Upstream bundles several puzzles into a single lazily-loaded chunk. Displaying a 2×2×2 in 2D therefore also downloads the Clock and Square-1 artwork. This fork splits those chunks one-per-puzzle.
94
+ Upstream bundles several puzzles into one lazily-loaded chunk, so displaying a 2×2×2 in 2D also downloads the Clock and Square-1 artwork. This fork splits those chunks one-per-puzzle.
89
95
 
90
96
  ### Everything is lazily loaded
91
97
 
92
- The numbers that matter are per-scenario, not per-package. Gzipped, `three.js` excluded:
98
+ Per scenario, gzipped, `three.js` excluded:
93
99
 
94
100
  | Scenario | Download |
95
101
  | --- | --- |
@@ -4,10 +4,10 @@
4
4
  var packageVersion = (
5
5
  // biome-ignore lint/suspicious/noTsIgnore: This comment is stil present in the compiled file, where an error is *not* expected.
6
6
  /** @ts-ignore Populated by `esbuild` at compile time. */
7
- "0.63.7"
7
+ "0.63.9"
8
8
  );
9
9
 
10
10
  export {
11
11
  packageVersion
12
12
  };
13
- //# sourceMappingURL=chunk-6YZ4AUWL.js.map
13
+ //# sourceMappingURL=chunk-F63RAIBR.js.map
package/dist/bin/order.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S node --
2
2
  import {
3
3
  packageVersion
4
- } from "./chunks/chunk-6YZ4AUWL.js";
4
+ } from "./chunks/chunk-F63RAIBR.js";
5
5
 
6
6
  // src/bin/order.ts
7
7
  import { basename } from "node:path";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S node --
2
2
  import {
3
3
  packageVersion
4
- } from "./chunks/chunk-6YZ4AUWL.js";
4
+ } from "./chunks/chunk-F63RAIBR.js";
5
5
 
6
6
  // src/bin/puzzle-geometry-bin.ts
7
7
  import { basename } from "node:path";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S node --
2
2
  import {
3
3
  packageVersion
4
- } from "./chunks/chunk-6YZ4AUWL.js";
4
+ } from "./chunks/chunk-F63RAIBR.js";
5
5
 
6
6
  // src/bin/scramble.ts
7
7
  import { basename } from "node:path";
package/dist/bin/svg.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env -S node --
2
2
  import {
3
3
  packageVersion
4
- } from "./chunks/chunk-6YZ4AUWL.js";
4
+ } from "./chunks/chunk-F63RAIBR.js";
5
5
 
6
6
  // src/bin/svg.ts
7
7
  import { basename } from "node:path";
@@ -531,7 +531,7 @@ var StatsPanel = class {
531
531
 
532
532
  // src/cubing/twisty/heavy-code-imports/3d.ts
533
533
  var bulk3DCode = new LazyPromise(
534
- () => import("./twisty-dynamic-3d-XQOH6E2O.js")
534
+ () => import("./twisty-dynamic-3d-MF76FSDA.js")
535
535
  );
536
536
 
537
537
  // src/cubing/twisty/views/canvas.ts
@@ -1192,4 +1192,4 @@ export {
1192
1192
  Twisty3DVantage,
1193
1193
  bulk3DCode
1194
1194
  };
1195
- //# sourceMappingURL=chunk-GP66KY36.js.map
1195
+ //# sourceMappingURL=chunk-F765ZFNM.js.map