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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ x86-64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ x86-64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.1a1-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.1a1-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.1a1-cp311-cp311-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.1a1-cp311-cp311-macosx_13_0_arm64.whl (204.8 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.8.1a1.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.1a1.tar.gz
  • Upload date:
  • Size: 8.6 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.1a1.tar.gz
Algorithm Hash digest
SHA256 410b7c239775dc0b6b5ef7ddb0afe8d75a947365550f2d35086623c57c0f90dd
MD5 646f58bd95938d47cad017d8466cc200
BLAKE2b-256 51fc00a338bd70ef9e7c47f796f1b360dc0c6925d649199948eb84df850188a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2733625609a6af4e3abdd4faa7471d700f39986141034094f68f19b7dee4fb89
MD5 e69db3db959949cc3edb638a36c09f10
BLAKE2b-256 e62207d64c6ab0217b78037a245ed1c15479757103ccc3282372c424a511e22a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8aef96d9d681ded9ada85b088d506b792c7309c27eb4f1cb51d2776a86b4ea64
MD5 ef0c35fe9879334495507facc4d5b58f
BLAKE2b-256 7127d9afc91d9c0938d07ae7fd95f9923d627c047049eb316c27b1800eda5d90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef976f2207cca67b0f96b097652da1074e68c70cb7b7af049fcf0340e8941807
MD5 a1971908b83c28790f670559ae421a2e
BLAKE2b-256 59d881ad131f78a9c76f1e56e3403dda9d60715d93cb6ea04b78c99fb1496d31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4a285cec05f96763e794682e55f3ed1da1c61db37cfc807abbf7fac53106057
MD5 764d6287d17faeb66ed401f780bd43b1
BLAKE2b-256 34f8ee9d28eed28aa78d0a420c9a12bf00cbfb4ac3fb51cd13a36caff8dd5ccd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b08f35d218389201574fcb6e5759a5919dbca0e0c88df323a23f3f9191a7d80f
MD5 71fad45cce19498611685ee648e8fbdd
BLAKE2b-256 0cd26fad70f41593b7257c01ffe223b40690d8d4395df27d546cbc7c3be4be5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9d92185e02a57400889ac75de13dbe80bcfca661f541ec15486d0e4cb1764276
MD5 9a8c371d2cf5c0209bdd78d41cb9169d
BLAKE2b-256 db1f3f401050fcade336324957c3fd9f63c9812d5ca3213e679cc52c5e4f806e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ecb7a553419e223d55b2a1b7cbd966a6ddc36f7f65c8f6d73538f285cf4ce434
MD5 e4cf523d31fe59e47db59bda0ffaedb8
BLAKE2b-256 e132950a6ac56dde131a2f56b0ea2b6278481142838f14feca7b01b4ce5195df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 20082f6200a1339a731bd91648e6e6b041783d2c0230e23e3dcbc5d595e52652
MD5 230d07c3ae20bcb938471a6eb709bc6e
BLAKE2b-256 6975249761ca470ce1c442a355bb6b20ab3941520d22945529f04ae3198d73ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1dceffb85e543c0c436da9cd14b93fa6320090a68bd8fe900997a4e5fc9bbcb8
MD5 c2e46a9de8be2fe217509ae04e9d59e3
BLAKE2b-256 d1a8d05993efdb5f76326ce84d306951653f4d624a69bb1fff104242bf92c4f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 98950dbb993b35c7d5babb47e3caecec782a55e17dffd7e49ec0dd88880222ac
MD5 747d48c989064ea9df574eefe07634dc
BLAKE2b-256 3b04e1b0fc94ff8f236d251dd6baa3fcbc239dc4372316db707e8dbe81911e15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1c2114cc3afbb063690316b63c43b24b19b16e6880697796aae01580501c9628
MD5 b4f22b26888ba17659a74f934bb195aa
BLAKE2b-256 926f8bfa9356af5332e073abc991b433ddc76fdeff3fcbd4eb811f3db6c79f55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6c071d718030a50494886dfeb7223b282990275d5b329b2b86d403e81107e185
MD5 898813530658579cbf955ed3460b90b2
BLAKE2b-256 b40194ec688f2cda0938c2d13cd915d08ed703249884f6a813707f13ef56abe0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4eec3a3e00072487b2d3010e9595c39e9ceb0bfb201c235bb3c711ff1dc323f3
MD5 f77e477491bdf993130d9b760023ab7f
BLAKE2b-256 3bbdffc39febfaa1255ab69b9d2a0eb0f5a8f0f8ccc3a08ac38a7ae81bab63f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 14d386100de168c4209025085d1da11ea26a6e4647ec16d46db218bf64ea4a4e
MD5 213587abd3958a6b621bb9ef29dbd95a
BLAKE2b-256 1ab58f2d7e92352c2cb0f263ccd13f8f6acaaf4cc95bd30964188c9e420e18a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1190f405cee88b1778ccf649489a7a8c5f37cfe7c4e7acb43a924f889e8fc293
MD5 f410da7a963a87eb54404034e2d7c265
BLAKE2b-256 421699961ec5ffe4546575d3024785abcd32e74ec0140af9997542cac33ca6b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9be016d72a5bc45929cf9bad5c6ee00203e1d872ce9fbf453b2d422297a4a0b
MD5 4f33e629016b3163d7e61bc60822913c
BLAKE2b-256 2379dbd738bfac10e3c2dae8085a625e95d7a51d69b6f6b2ca85ffd759b18d72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 edb6af975fd6e4c942f79ef2ac2ceeed6fdfc5bd0a90b1ceeff70fa7f7db7a4d
MD5 c4c1846e3b48a3fba23d61e8d5c9fe83
BLAKE2b-256 f3d2c5f0c21d26f12a6cb824175eeb3e70b808631dec6dae92bc72944fa871ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 b6f545c82ed45e792a85c19d19bd1d23fea6fdfb3c1f95a96b9adeb296e28a34
MD5 07b233446c29e9ba58e06860ab39d0f8
BLAKE2b-256 b621413630ba7b2212f3ccd844e9ca1c852270efe72892c4e4bc4f42a2179904

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