Skip to main content

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:

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

  • Interface

  • Features (via passagemath-environment)

  • Binary wheels on PyPI contain prebuilt copies of rubiks executables.

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

passagemath_rubiks-10.8.3rc3.tar.gz (9.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_x86_64.whl (214.4 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_x86_64.whl (214.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_arm64.whl (205.7 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_x86_64.whl (213.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_arm64.whl (205.1 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Hashes for passagemath_rubiks-10.8.3rc3.tar.gz
Algorithm Hash digest
SHA256 e221903b03df7c3c507160928d8c8394ae357b8a94fcc3e4ed33327334f55079
MD5 c727724ae5bb9ea0ac0206dc8819d53d
BLAKE2b-256 823b2743d020284e8831a8f04cae340161b4f9efdc0054d6793796c408dea550

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f5e106ec06394deeabaeae7b6056314ad3eae6ed23974279eb556006aa3e56e8
MD5 3ece32860c5fa47ce01c128e04d03662
BLAKE2b-256 f803949648751e560ffc2dc2a2e86d7c01ca4410e3f65b7b71557cfbe48a059c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fba4fd8635d5f272fe1ffbe2713fb626e4c18b5f934878daf51b95e033406e71
MD5 94d459d957102963ff74f2aab36faa26
BLAKE2b-256 714a09812e83bda6a40295ae80e4d242c26e07e96038c1614a677c68fbfc4631

See more details on using hashes here.

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

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87ed928870bbc03e7cd6906812ca55c8b5971faab2db5b0e90c719dbe437b2cf
MD5 d3939019868612962a1e3d1a79517386
BLAKE2b-256 be16166839ec3c693f5e3f79ab06c362a0a63689703ba953f795831e5120887f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 181efdff251f4be3f444d942324e3daa5283fa0ae9132f6f19f033985ef1451c
MD5 0d8d693e2dfd76c6edaa77faaf9db43f
BLAKE2b-256 abecff10bace6bac19e402bd601bce1f74305d9c776c97bc1ea381a312b9c0b9

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4e5ef620dac874040af31a2a7e32392c7cd200ca359ef5cc56eee3817ea19b56
MD5 2a32854392df7749e8aa42733359b77e
BLAKE2b-256 76b8ccb6c1086fb2ae102464ce51c74cfbd9a5f1a30813e555e1f96d0fc7e242

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f9fb8c2e65b4218618ea1d56beb1d181ff1e04d3422119e0d892a31dd74c785d
MD5 1d18901bfda38e0d59671e0c0ccb01e7
BLAKE2b-256 ca31aa0a4cb0fb3c879a09586a7bca131fb5fab879591bf3e705d9909731f483

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6daa76c629902b5310938d0cb0ca1fed1f1cffca21f7168470383bfb9cd3362
MD5 13708feb90662de2db2f643c62a1fd0b
BLAKE2b-256 1cd530ef05b173e98625994f317c89d0a29eb022951cd94dac20fc6106a51f30

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9d62242023e66270e14af16fa690ebb85ea657d3c892235195dfaa916f650676
MD5 dc757b3d18199feb863983fa54410da6
BLAKE2b-256 1c32eb2407cd1a04f2235ddf91c940ec978de7b2b85913596443f8f1f63b499e

See more details on using hashes here.

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

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 754ef833662b104d6e1b6d1558c5370f1cbd291477b65db0a2f97cad5bd7c9da
MD5 10a5fdbfc9da6d70c457bfc2bca3f3b8
BLAKE2b-256 e701f4e76e504f685f120e31a5495cc4e0bfa4c5cc1ef15902747fbf4e96964d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e2f4e1752eabf275fceb31f1a81104644d9841e80f31e9a02b417aee974dc5a2
MD5 b346e5d8547176e3b46702955813d818
BLAKE2b-256 19b4791344461dee35919e495412427efea5c09e3874c95fafcc338ca0782526

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 795e09c5e98ad6921a069540cb59a04bee4c64aef4fa8e53c40a0a000da5c65f
MD5 a139bd414831b171f403d9d738b8a18b
BLAKE2b-256 70782d40655d4e8aa345b0a18c23ac19831a3162f49a6a419a15be9e954f56be

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a34a0b7fed19d8d6057abb28147d9d9c6ea137dbc5f485838b5aa17ef513b196
MD5 ee0190eabdd4ff67adea3d0f9c8384b0
BLAKE2b-256 44cb441ada4e482bd89e3da2efad0b28444a7a4f52f0acbb6e6cf1267c5bd30d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6abd62f96c395f52efc5da1aa38b507d0f657b4e170a1613200ef322e9c91b8
MD5 f4d08d65b60d2d695596206c4f3a1122
BLAKE2b-256 f0cc8ce23b73903d26e3081e23fd4e82e3dfddd8355ca48774a920c11bb3ddcf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1d1691520f644d96687e894f1995660a265e0c418d03e69a4279542c7cd57d6c
MD5 2d7409818fc45dc08bc6291fb4d97f7c
BLAKE2b-256 0c085618e59b9e6cb14a48e67938f01e9fd884b4f669b4582507f24be2e91dfc

See more details on using hashes here.

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

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b93b9002fd759f256c5b71d56103770d5087d05fb23c5cc876daae58c7c9da6a
MD5 89b2a3312bdf77a9a131fce067682bef
BLAKE2b-256 193524f20f29f9035be0d81efcf7cb6ca4ade4e379a76869d1b7bc778288a5c4

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db3b495bbe15bd46d1e23959ab4c81c4d5d853bcfde7fcc8e49a90f721416d49
MD5 2f91cec4826121f2e9fee1b5e452a377
BLAKE2b-256 20c615691b22dae225d3a3285c201905ca1fe78a1b56fc521a85a6fc48d43935

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a416980d5d39252ed099b6ef51bb37764983328a12367beac13649540676cb56
MD5 60a41a10cb8757f6d73cb0e5775ac3a3
BLAKE2b-256 6d993708c8542d3540ac403bcfa4ec6ed2cbc9d02f5235da56e060524ce0d71e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 31dfec7dcb60fc6c90b2b641960941fe45566301adcf37464dbab278008d39ce
MD5 52cc28c2cd40c0c34efdf8ff380d45f6
BLAKE2b-256 cc71fcd40b4ec18d9f16d121a2fe2156141fcf76521af564a9b0cadf2433ea32

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page