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.2.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.2-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.2-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.2-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.2-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.2-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.2-cp314-cp314t-macosx_13_0_arm64.whl (206.1 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.2-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.2-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.2-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.2-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.2-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.2-cp312-abi3-macosx_13_0_arm64.whl (205.7 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.2-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.2-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.2-cp311-cp311-macosx_13_0_x86_64.whl (213.5 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.2-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.2.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.2.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.2.tar.gz
Algorithm Hash digest
SHA256 4262f98f22bc098858102784667d1636ba370ffa0c08889948e8a8f8d7a2eb74
MD5 6bc1a7d4a6702c14a09216bb55832ec8
BLAKE2b-256 0b35704da63018de90bb4218671b2ce98362cde5d9956dec7258272bebb1e7a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e2681ee5cda80d2452c95756a767361bf9e6e35c6b3ee7785c8ff9dc1185658e
MD5 7b92aadb5a7a5e0f5745f006ea733f04
BLAKE2b-256 713843629bfdc823253c1dc2207838f4fbedc4a9bfff94ec427818dc0375199b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2613b081ac97f3c05ed7c70fb5b92898dfdb6e16baceeff03ff5d53d920d8702
MD5 a0c85acf9a9f52c67357f3d8ff0f3680
BLAKE2b-256 89d764af57041bec7e051fb40eb19571052a0d50d42d7c60db0de0b6971c1127

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16c3ad94ff0a86f7ed218c3c58135fa837481fb98fdbe5b9ba48b9909e5a3b39
MD5 386e3fe1b1e34bbba95e257d8950a874
BLAKE2b-256 24d37f290146a9e5dd6e24c60c8c0ee98a65505aad25bbcdef2de84092a37118

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1228d63b24847174661241cc6d1876a6fda8f302948e76c2c377deca678fed34
MD5 5f717b19d78bcb3768640c3373ab302f
BLAKE2b-256 d7f788e4fa16c372955bc26b62487a1234a3faec7d92acc87f4a22a47bbe70e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 47d3b0363cf109983cd965f1d5a950ce267f587d349c48b606734c5e7a4e73cb
MD5 0f0032ff52b2236d4dcb6793a6097720
BLAKE2b-256 dd4908429cb06e2ec3ddb090bbf6d5a21a5308541349d1fc4664ae3f8d00309f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d370cc684b41451dc7196721ad21bf16c772dd3ee70a7917cefc9596a4d6af5b
MD5 087bfe44f3d44128ae2c0c1bd7692776
BLAKE2b-256 3a756b6dd1573a1fe2cc3ef8ae747d1046ac4bea7f468bb7207c15c0cbc0f2ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c7e7b8e701f243d25c68d1dd7f96a8a713d2d4f6b94d0a0fd7807a1b58b9c2fb
MD5 8d8690165767ff72012327e55cd413ca
BLAKE2b-256 b297750ed37bb1a2800fb3c4191197d59bf534f0cba1675071c788c717c4be1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 16c13f82e8e2612cfd1923288cfe608f66663945f0110ad9e63f96c60145421d
MD5 d943cdef091442533f5dd26d2be54e8c
BLAKE2b-256 d5f824c12c3c2bfa01df3b217a031b9bf3065f5b99caaddf32f7f26c2e1899ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9891ca55264c8d933673de4cff9420f3d0beabfddfc87d89aef959955b6c3bbd
MD5 295baea6c7b4554ad65704f785634159
BLAKE2b-256 c49443a1ae98f0495c809d397e17d2fabc00f1411ffb3d71642e0e1676c2a21c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 280a7c89bb01f45501aefc7fb47a5d4ba2a093398ae2dee68ad1239d07902c25
MD5 c69c1aebb52f4563cbca1c3f4d87b809
BLAKE2b-256 70f0ffbfb96223bb1d1da0dbc751da07034c219a25eca214bd3543024dfb2a46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 34cfc9e3464049e627c51be3acaf3d959e904e1396341f6cf59c9e622b094a7f
MD5 7e42891b6b992ff91e3efa80e64bcc0f
BLAKE2b-256 80ab9639cebd6a36a44e3ea5ad74c7ab5a9cb6eb18390a8a15b001b23da29b56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 11e7253d9d310ca0297cfb3b57be033fabcec4cb0d33bb0008d113fd012db892
MD5 e86929dcdf34e1326be77659afa8b9c9
BLAKE2b-256 580c594829bf975d29dbfd2f5c1e093125129b23d49380faa9b33bf66f8175eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5962979eb35c653d53715e1c87b3a260514b672b203514f44d9361d54fc12ce5
MD5 e5edd0b73f6b2c9f282793a635bbe6df
BLAKE2b-256 625195c70ed7576faba20830f7942ed6a2474304f50c50e8234499d0eb55c53b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 52ce1d9261cdb50f3647bb5baba4b30a0bea5da157c529079335f3959e2a93ec
MD5 2e4e98f47ac05dbea478b120afbc1199
BLAKE2b-256 4f3ccddbfb03fd199989c6097c1027489a41d2f683eb5439068b7e51413e8030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a95cf80285676a35fafd825ad408a14caa5957501e3892dd03d65ce588917ba4
MD5 3eaacf0e7adf4fdd5f5f28d05fe7dace
BLAKE2b-256 e7f67ae167de5f2f655f89b711b9ba25bf258b68a0a3b8a98435d74e545891e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d9d9a4ec15fb007e2efc52e93c0e9c41c1dcea6565d6fac490c54939b536b74d
MD5 da8d17ad614c668990ca8db9b0990ff2
BLAKE2b-256 1b2613e070ae1512e293f10ce387d1ef35a841ecb08adc5d9610d8002cdbfda1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2fffb2b74cd1cebb434a683d9c6d2a099cd2a63bdaf439cc28e801962cdd9280
MD5 fdfecab98170812b797c397fc578ced6
BLAKE2b-256 d0e9a9fed3d4c6f781325d49bbf459f556bafd02fd407936cc548f20dcba4dfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 342b0832a66cbbf4ac289d082f6a446992505eb735943071855dcd7fe1fd99f7
MD5 56820281739d65260d5b687dd8b14e00
BLAKE2b-256 f994ef5487277478ad4695590e22a3bee8364b6fed996e431fbedead2d50c915

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