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-2025 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:

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) 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.6.x series are 3.10.x-3.13.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 sage.all__sagemath_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.6.31rc3.tar.gz (8.3 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.6.31rc3-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.6.31rc3-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31rc3-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.6.31rc3-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.6.31rc3-cp312-abi3-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.6.31rc3-cp312-abi3-macosx_13_0_arm64.whl (205.0 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.6.31rc3-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.6.31rc3-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31rc3-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.6.31rc3-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.6.31rc3-cp311-cp311-macosx_13_0_x86_64.whl (212.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.31rc3-cp311-cp311-macosx_13_0_arm64.whl (204.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.31rc3-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.31rc3-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31rc3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

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

passagemath_rubiks-10.6.31rc3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

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

passagemath_rubiks-10.6.31rc3-cp310-cp310-macosx_13_0_x86_64.whl (212.9 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.31rc3-cp310-cp310-macosx_13_0_arm64.whl (204.6 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.6.31rc3.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.6.31rc3.tar.gz
  • Upload date:
  • Size: 8.3 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.6.31rc3.tar.gz
Algorithm Hash digest
SHA256 2c252de6ca4218f783e728640ab3aba866a46714b7e955d8e3f224e70a6af3a8
MD5 00f464766b47d2a2bf4d13e860890e62
BLAKE2b-256 88663053c5f36ee3691c6f3847d4c0eee2dfbe842ca58703b7097288ee44899f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c66c5214dac9de750090d5fe7f10328cc065e2839ecb5bd88eab7e8cd2a91248
MD5 959fdbd7268435a7c8347eaaaaff8421
BLAKE2b-256 3b3375e19102efa48ae3c4ece1d2b7e7357a6db3ae4ae3a1c88a7874bf5c9ce3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cdb4725dd9a03ebf871c0d20e03b70e8e3470241511cdf1afc90b68a44cf99d6
MD5 cd530cb0bba4a691d5761c5db720db5f
BLAKE2b-256 1738e1af98129c5c11bd48e983d74734b0a041cb368d262ee22475b9ed16e2f6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d16848b779e49e1b1f5e82edba92b1312904a10ccc4b11b0b747960c244c30b8
MD5 dfeaa3b3d73e76f4a5e33191650c980d
BLAKE2b-256 ed78b797acccb339faa8e519c19025a7ebddb45cc09bcc4238a60a57ffc14e7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e6a664e23301dc234f276c7ab40d42ad36c0fed38c02a0a2f61217e660d29bd
MD5 dd7abd938fb59932c9176368fe5a1238
BLAKE2b-256 4ba074d641f7a0d6398451f6dff77cbf3008bc3e50f1504b68e0b22c15e5efb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 989085800adc448a3104fe2254ca9c1f1bab4a61e137c6247aedee5839eff1e6
MD5 459af542ff6d8565e588256ac79874d3
BLAKE2b-256 21e48c55ed8e9b9d1d17ee12f35bc639fd15c982c6f656fb749413bd3d9e2724

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4aefbca6289220109ea129573d95d01a491c3a28a99af8dcfb8d499d608e5771
MD5 cccbf4c6d20683b0fc2f85d472851ffe
BLAKE2b-256 4d9c3ace706072b25d96ddb0a52bb0745a67b427f03afaa20cd9668864c18c5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05db66dbc55c0808e8db0e7833b0f49a5f15670675ccd6590a367636959888f8
MD5 450fbdb2ddab9e121fe7dd1035fe45e5
BLAKE2b-256 eee5d5387d3c3ec563bda06bc9c94a1b3989cf314b2e128645bcd595a58e0feb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6f3031092d2fc008e5706845794605ec8b15602c1105c90cc855aab28872953c
MD5 1cf54f8725cd67dad40eb811a6359b98
BLAKE2b-256 bda31b19e4f2f715efa7929605ac9a225432f9bf22f10c949bb40f280098a183

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96019b2cb5bc37b234150c4c06badaa77f2ab5679ea1c73164a92de640807b2d
MD5 d7021e1f681a60dbed3ce659a05be39d
BLAKE2b-256 d970534e36820ce548b38e97d6f7f963feea8e7ae1ed72509e5caa4bedad1e22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3e9595bbfffe683a7f92e99c26055688cb518ffd76adb549935f4f90692ba9a5
MD5 497d2b300c42e18e0333d57fca7d3f75
BLAKE2b-256 db011cd0eed738e88d7e00883edd11a2b214f42f8eee6e2ac842f517e243845b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 21bfc5c9959a98db61e329e1787167a9b56993f0e79fece3df19d508f6624dfe
MD5 325e0680c0a64fc0f360b5373b2bf44e
BLAKE2b-256 cb29546be7e6f983c372ccbc9e5b4824faa1fc83f1ddc57d52e99e887f297571

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9a8e79713414376a7887df9658d394cf2ca0762d6a0a89b8d0eaadd6578f0b12
MD5 ca26cb87e3e7bed2d2bbf1d6acb2d803
BLAKE2b-256 9f9f482781692a3e3d8f8720b1baafa4d4f35f877915a2cd41b0b9fafa67c493

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7f6b74ca88918d8ce806e0e93934e441f0b9b309362f560ca6e2c1721a58bb82
MD5 1e937adc528ddbb003c66aeddd695b5e
BLAKE2b-256 43cfd52141e53fd6429bda7a84b9374db9608eae1e3ddd9e73ed0c951786de8e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b05be14aeabb1f40a126664b6d016f83d6f36d08eb279dabfc55b826d07f36b6
MD5 a457e315479ec134a7b052daac81b2cf
BLAKE2b-256 90aca1f3e51cab245acff256df7c4ddd861a82eb15cdb8e5c5aa842b0f6a7872

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd5b7da2a9d64100d75dd59eb39cca9e52d4fc2bf15c0b21bd9bbee4cc813198
MD5 a935934b54bf44112667b5c4f2a3f5e5
BLAKE2b-256 1391a0d7b5c86f4c288bc6f6786c66dc06c8c77e763e9d352f876297a948a5b8

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b15ea4b4e60bce6ecc1b7bfff6705d34a83a8c0e8fd0ebe78ea210e235a4d90
MD5 8c819bc8abccd98979584657afd6f73a
BLAKE2b-256 da526079e2d4530f5492ad5f9e359808c5ac09a788cc466f714a1c222127ee2d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 60db6b77ccacbd5fd83d72833ebed267393df14bf63969890ea0ff0d2f780b1b
MD5 faeaa8ae8b12ef839f675ceed67f94b5
BLAKE2b-256 95106262573cb8e9191ea1613f1cb276d069343e7704442aeab168abfa124177

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31rc3-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc3-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ff0fb50975582458f2b2790f4035db39edceaebbebd8207193c9f4f8e59c53ee
MD5 e5e0103e7e9724c4d5bda8be4d5f4c83
BLAKE2b-256 b762fa2946222f3f8f18bf35277e0613f4c2d847d3b2a7d276f43742e3f9b817

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