passagemath: Algorithms for Rubik's cube
Project description
passagemath is open source mathematical software in Python, released under the GNU General Public Licence GPLv2+.
It is a fork of SageMath, which has been developed 2005-2026 under the motto “Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB”.
The passagemath fork uses the motto “Creating a Free Passage Between the Scientific Python Ecosystem and Mathematical Software Communities.” It was created in October 2024 with the following goals:
providing modularized installation with pip from binary wheels, - this major project was started in May 2020 in the Sage codebase and completed in passagemath 10.5.29 (May 2025),
establishing first-class membership in the scientific Python ecosystem,
providing independently usable Python interfaces to upstream libraries,
offering platform portability and integration testing services to upstream projects,
inviting collaborations with upstream projects,
empowering Sage users to participate in the scientific Python ecosystem by publishing packages,
developing a port to WebAssembly (Pyodide, emscripten-forge) for serverless deployment with Javascript,
developing a native Windows port - passagemath 10.6.1 (July 2025) published the first pip-installable wheel packages for native Windows on x86_64, - passagemath packages became available in the [MSYS2 software distribution](https://packages.msys2.org/search?t=pkg&q=passagemath) in November 2025.
Moreover, the passagemath project:
provides a stable, frequently updated version of the Sage distribution,
integrates additional mathematical software, notably Macaulay2, a full set of GAP packages, and the Combinatorial Matrix Recognition library,
curates a library of Sage user packages.
Full documentation is available online.
passagemath attempts to support and provides binary wheels suitable for all major Linux distributions and recent versions of macOS.
Binary wheels for native Windows (x86_64, ARM) are are available for a subset of the passagemath distributions. Use of the full functionality of passagemath on Windows currently requires the use of Windows Subsystem for Linux (WSL) or virtualization.
The supported Python versions in the passagemath-10.8.x series are 3.11.x-3.14.x; the passagemath-10.6.x series (EOL 2026-10) still supports Python 3.10.x.
About this pip-installable distribution package
This pip-installable distribution passagemath-rubiks provides an interface to several programs for working with Rubik’s cubes.
Michael Reid (GPL) http://www.cflmath.com/~reid/Rubik/optimal_solver.html
optimal - uses many pre-computed tables to find an optimal solution to the 3x3x3 Rubik’s cube
Dik T. Winter (MIT License)
cube - uses Kociemba’s algorithm to iteratively find a short solution to the 3x3x3 Rubik’s cube
size222 - solves a 2x2x2 Rubik’s cube
Eric Dietz (GPL) https://web.archive.org/web/20121212175710/http://www.wrongway.org/?rubiksource
cu2 - A fast, non-optimal 2x2x2 solver
cubex - A fast, non-optimal 3x3x3 solver
mcube - A fast, non-optimal 4x4x4 solver
What is included
Examples
Using rubiks programs on the command line:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks" sage -sh -c cubex
Finding the installation location of a rubiks program:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython In [1]: from sage.features.rubiks import cubex In [2]: cubex().absolute_filename()
Using the Python interface:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython
In [1]: from sage.interfaces.rubik import *
In [2]: C = RubiksCube("R U F L B D")
In [3]: sol = CubexSolver().solve(C.facets()); sol
Out[3]: "U' L' L' U L U' L U D L L D' L' D L' D' L D L' U' L D' L' U L' B' U' L' U B L D L D' U' L' U L B L B' L' U L U' L' F' L' F L' F L F' L' D' L' D D L D' B L B' L B' L B F' L F F B' L F' B D' D' L D B' B' L' D' B U' U' L' B' D' F' F' L D F'"
Using sage.groups.perm_gps:
$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython
In [1]: from passagemath_rubiks import *
In [2]: rubik = CubeGroup(); state = rubik.faces("R")
In [3]: rubik.solve(state)
Out[3]: 'R'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file passagemath_rubiks-10.8.3rc3.tar.gz.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e221903b03df7c3c507160928d8c8394ae357b8a94fcc3e4ed33327334f55079
|
|
| MD5 |
c727724ae5bb9ea0ac0206dc8819d53d
|
|
| BLAKE2b-256 |
823b2743d020284e8831a8f04cae340161b4f9efdc0054d6793796c408dea550
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5e106ec06394deeabaeae7b6056314ad3eae6ed23974279eb556006aa3e56e8
|
|
| MD5 |
3ece32860c5fa47ce01c128e04d03662
|
|
| BLAKE2b-256 |
f803949648751e560ffc2dc2a2e86d7c01ca4410e3f65b7b71557cfbe48a059c
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fba4fd8635d5f272fe1ffbe2713fb626e4c18b5f934878daf51b95e033406e71
|
|
| MD5 |
94d459d957102963ff74f2aab36faa26
|
|
| BLAKE2b-256 |
714a09812e83bda6a40295ae80e4d242c26e07e96038c1614a677c68fbfc4631
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87ed928870bbc03e7cd6906812ca55c8b5971faab2db5b0e90c719dbe437b2cf
|
|
| MD5 |
d3939019868612962a1e3d1a79517386
|
|
| BLAKE2b-256 |
be16166839ec3c693f5e3f79ab06c362a0a63689703ba953f795831e5120887f
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.14t, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
181efdff251f4be3f444d942324e3daa5283fa0ae9132f6f19f033985ef1451c
|
|
| MD5 |
0d8d693e2dfd76c6edaa77faaf9db43f
|
|
| BLAKE2b-256 |
abecff10bace6bac19e402bd601bce1f74305d9c776c97bc1ea381a312b9c0b9
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_x86_64.whl
- Upload date:
- Size: 214.4 kB
- Tags: CPython 3.14t, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e5ef620dac874040af31a2a7e32392c7cd200ca359ef5cc56eee3817ea19b56
|
|
| MD5 |
2a32854392df7749e8aa42733359b77e
|
|
| BLAKE2b-256 |
76b8ccb6c1086fb2ae102464ce51c74cfbd9a5f1a30813e555e1f96d0fc7e242
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_arm64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_arm64.whl
- Upload date:
- Size: 206.2 kB
- Tags: CPython 3.14t, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9fb8c2e65b4218618ea1d56beb1d181ff1e04d3422119e0d892a31dd74c785d
|
|
| MD5 |
1d18901bfda38e0d59671e0c0ccb01e7
|
|
| BLAKE2b-256 |
ca31aa0a4cb0fb3c879a09586a7bca131fb5fab879591bf3e705d9909731f483
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.12+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6daa76c629902b5310938d0cb0ca1fed1f1cffca21f7168470383bfb9cd3362
|
|
| MD5 |
13708feb90662de2db2f643c62a1fd0b
|
|
| BLAKE2b-256 |
1cd530ef05b173e98625994f317c89d0a29eb022951cd94dac20fc6106a51f30
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.12+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d62242023e66270e14af16fa690ebb85ea657d3c892235195dfaa916f650676
|
|
| MD5 |
dc757b3d18199feb863983fa54410da6
|
|
| BLAKE2b-256 |
1c32eb2407cd1a04f2235ddf91c940ec978de7b2b85913596443f8f1f63b499e
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12+, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
754ef833662b104d6e1b6d1558c5370f1cbd291477b65db0a2f97cad5bd7c9da
|
|
| MD5 |
10a5fdbfc9da6d70c457bfc2bca3f3b8
|
|
| BLAKE2b-256 |
e701f4e76e504f685f120e31a5495cc4e0bfa4c5cc1ef15902747fbf4e96964d
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.12+, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2f4e1752eabf275fceb31f1a81104644d9841e80f31e9a02b417aee974dc5a2
|
|
| MD5 |
b346e5d8547176e3b46702955813d818
|
|
| BLAKE2b-256 |
19b4791344461dee35919e495412427efea5c09e3874c95fafcc338ca0782526
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_x86_64.whl
- Upload date:
- Size: 214.3 kB
- Tags: CPython 3.12+, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
795e09c5e98ad6921a069540cb59a04bee4c64aef4fa8e53c40a0a000da5c65f
|
|
| MD5 |
a139bd414831b171f403d9d738b8a18b
|
|
| BLAKE2b-256 |
70782d40655d4e8aa345b0a18c23ac19831a3162f49a6a419a15be9e954f56be
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_arm64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_arm64.whl
- Upload date:
- Size: 205.7 kB
- Tags: CPython 3.12+, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a34a0b7fed19d8d6057abb28147d9d9c6ea137dbc5f485838b5aa17ef513b196
|
|
| MD5 |
ee0190eabdd4ff67adea3d0f9c8384b0
|
|
| BLAKE2b-256 |
44cb441ada4e482bd89e3da2efad0b28444a7a4f52f0acbb6e6cf1267c5bd30d
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6abd62f96c395f52efc5da1aa38b507d0f657b4e170a1613200ef322e9c91b8
|
|
| MD5 |
f4d08d65b60d2d695596206c4f3a1122
|
|
| BLAKE2b-256 |
f0cc8ce23b73903d26e3081e23fd4e82e3dfddd8355ca48774a920c11bb3ddcf
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d1691520f644d96687e894f1995660a265e0c418d03e69a4279542c7cd57d6c
|
|
| MD5 |
2d7409818fc45dc08bc6291fb4d97f7c
|
|
| BLAKE2b-256 |
0c085618e59b9e6cb14a48e67938f01e9fd884b4f669b4582507f24be2e91dfc
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b93b9002fd759f256c5b71d56103770d5087d05fb23c5cc876daae58c7c9da6a
|
|
| MD5 |
89b2a3312bdf77a9a131fce067682bef
|
|
| BLAKE2b-256 |
193524f20f29f9035be0d81efcf7cb6ca4ade4e379a76869d1b7bc778288a5c4
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db3b495bbe15bd46d1e23959ab4c81c4d5d853bcfde7fcc8e49a90f721416d49
|
|
| MD5 |
2f91cec4826121f2e9fee1b5e452a377
|
|
| BLAKE2b-256 |
20c615691b22dae225d3a3285c201905ca1fe78a1b56fc521a85a6fc48d43935
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_x86_64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_x86_64.whl
- Upload date:
- Size: 213.6 kB
- Tags: CPython 3.11, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a416980d5d39252ed099b6ef51bb37764983328a12367beac13649540676cb56
|
|
| MD5 |
60a41a10cb8757f6d73cb0e5775ac3a3
|
|
| BLAKE2b-256 |
6d993708c8542d3540ac403bcfa4ec6ed2cbc9d02f5235da56e060524ce0d71e
|
File details
Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_arm64.whl.
File metadata
- Download URL: passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_arm64.whl
- Upload date:
- Size: 205.1 kB
- Tags: CPython 3.11, macOS 13.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31dfec7dcb60fc6c90b2b641960941fe45566301adcf37464dbab278008d39ce
|
|
| MD5 |
52cc28c2cd40c0c34efdf8ff380d45f6
|
|
| BLAKE2b-256 |
cc71fcd40b4ec18d9f16d121a2fe2156141fcf76521af564a9b0cadf2433ea32
|