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.1.tar.gz (9.0 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.1-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.1-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.1-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.1-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.1-cp314-cp314t-macosx_13_0_x86_64.whl (214.3 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.1-cp314-cp314t-macosx_13_0_arm64.whl (206.1 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.1-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.1-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.1-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.1-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.1-cp312-abi3-macosx_13_0_x86_64.whl (214.2 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.8.1-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.1-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.1-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.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.1.tar.gz
  • Upload date:
  • Size: 9.0 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.1.tar.gz
Algorithm Hash digest
SHA256 5d82ce9d44c4ac7def64a3044316255b6709d7d64a6fb578b8d3bc7ddc4bf79d
MD5 6488c4e8a76ac41846a6aa6ad51bdceb
BLAKE2b-256 d67b101a2c892c7a9bc5a98081a5032907768e70ceac274ad3bb51c336dbeeb0

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 eb996037c7768a47c8c22749732779bfd6d2cb98f34eb4f5022f05a67adafe1d
MD5 918b9821d1a7fefd87d6beded41d33ee
BLAKE2b-256 bc1cbbc318c5f9600f8a6873b857232d043bcdef61eb3717c797ffc523774422

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dc8170853401a0d3cf86a4cfa693282947fb9c388a30dea768495bb1062792f4
MD5 18344c3a4e6e3d901088858d778cadac
BLAKE2b-256 78d0ad6dfd2ee31f2975a13379aa832f37f61abbf780527b811ca1a0cd54d6c7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5f1aeb06f8efb1b69b47d55e04e805747548b4808f20ac281705fcedc8d95181
MD5 6d84f2f27f922ec3b13fb920093f580b
BLAKE2b-256 bd7638d07f4b9ef49240218b4dbbb30d77888c2f3b7350f2df757ea6b66f5d42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 10ec2d491015a3b9b326f91a9f00cf9bea0098845fb091d892e462c2ae0bf99c
MD5 c69d19065624f3efe856ce252acecab4
BLAKE2b-256 38e9e4d94338e19f55fa92424ba3f49fe86108b1e4557fde466c125b4b701c47

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 87f81a51c1f38142d673fbb9e2c153b61f2f05a26d19e4a389193de12d1e5ea2
MD5 757cf9396eee62ad6351bf3cd32bf51a
BLAKE2b-256 9c1eb07174f9d20b180e450a4207511afbc286649d4c997ca7b5cfebbc088fe2

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6749ec8ce1867c143021ef578b5710aa3494af224a303a9a004c96ea7a69015d
MD5 efd0f2910fb10fdd10cf39595fbb1e45
BLAKE2b-256 3bc16782bce580ac0e6e2429e16bf101a83a123616ce82041a340139e81b08e7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b94076375c9a2d55b39440420cf8faa543162d9ee6a778e75287dcf62e27091c
MD5 9aaac4f4356bd1ea7a3be5d3ab9d52b5
BLAKE2b-256 b8c3ca96846e5db38b32c1674328686bf1c5d67dca1b754a90cbe40265c40341

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2286b80ca93c1c598ca59977e2b1b269aecd88c051223dfbea712f454f0feb6a
MD5 f8940b530a5d061b2d49e46cfeb7a4ce
BLAKE2b-256 266579b50e78667d36727671082549fcc4b5472e788f58f776a86dcf90e1c0fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70ecbd8f1bb60b2ab592d1eb5458734ad2e570d715b2932c254546b9fe6b8fbe
MD5 ea62b337353a8d8f11f6ebc64be4c135
BLAKE2b-256 af5c80a707511206130870d182fef70eead27c4bc9d8aca4019e0d26d34595b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 faadbb655758be068265688edefb8cac2addd9c06cdece9b040aeaa510c645fd
MD5 086161942af6cd8dd59967667b0d6b4e
BLAKE2b-256 eadf0d144da96535726086b4b98d9db06e5220cd2e3b658e819a2b7695e61186

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 befdbeef660cce0f9eafdec81186d972b206d9d614c55f6e54d2bb4cf84537de
MD5 9c92e04ef87db4bff4279bb5cd8f8fac
BLAKE2b-256 c4f1a3fcc085b438a92fd7bf127d287865dfc62e0bc1590e44ce29ced5f5bbc2

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0a80cc5884d7e9af5755f228ab353eb95418c545fe74d82d57fb5a05ac53dd65
MD5 25ca98030804fe37b00d15c3cc6aeffc
BLAKE2b-256 1572927af293d2bccdc8511cef1ad0d7fd1061fbfde1806ad8e34d9b83fa6b8e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ffa560847137186dd5f6c7d3167072ad419dfd4823f3be6ebd1f09861bcf53fb
MD5 a3863a47022bba0015df8d4a121d59d8
BLAKE2b-256 2802991cf9dcbe46bff429d10de08a54172a7a3c6afab4b7a58ec688853b7766

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6f6898abdb7a715f7546845bdcb4fc0ca70c417a4952cdf64cc480051b5527c9
MD5 d84ef1c837a819da643a0d7738d64097
BLAKE2b-256 33b90da593fd0a989d67e1db3b60789804cdcdc7f954aedf55440f23b52f5262

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 beb4b7e6f3cdafac2a99ae8c3406a72db17c8f92347ad223ad97d6c3472a4ca1
MD5 a008566ae5499347f03e58e940adc6b0
BLAKE2b-256 e014673c733d962f6a01722c339f15298a73fbf0c5650765a90d4ad0ccf02f35

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e2db9f89cfe6985cf0af9fb7a836c019f3e07029d9a827321a6ad4e87cd61000
MD5 72230fdb9db296684043ff1f4075afee
BLAKE2b-256 223de9472bca0b3bae187e1303e4b795d7c510f2cadce33aa3105fa0da68848b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a52bc3de24a707e1abd18304ebbe3533bbb0c190b1d17a6046970cc922e70231
MD5 dcb67f88c2864b18600932654e6a0ad5
BLAKE2b-256 8cf8564baa3a64cde21403ea3649d1035aa3158d6bc5cc77f4122e83d9653048

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 11bdcc4f8759cb2c8274a8dd69a3eb1d8343961a7c1158ca04e4b811aa7c6946
MD5 5281eb6c0b5b690c17df07a7b43922de
BLAKE2b-256 3f5eb678045c8076fa8a1cb129354e21c6411a8b4f09faf045f4ae8099517414

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