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 --spec "passagemath-rubiks" sage -sh -c cubex

Finding the installation location of a rubiks program:

$ pipx run --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.features.rubiks import cubex

In [2]: cubex().absolute_filename()

Using the Python interface:

$ pipx run --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 --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.6.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.6-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.6-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.6-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.6-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.6-cp314-cp314t-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.6-cp314-cp314t-macosx_13_0_arm64.whl (214.6 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.6-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.6-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.6-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.6-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.6-cp312-abi3-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.8.6-cp312-abi3-macosx_13_0_arm64.whl (214.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.6-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.6-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.6-cp311-cp311-macosx_13_0_x86_64.whl (212.5 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.6-cp311-cp311-macosx_13_0_arm64.whl (213.7 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.8.6.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.6.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for passagemath_rubiks-10.8.6.tar.gz
Algorithm Hash digest
SHA256 636725a83d9d0bca914876e290dc30ed852405e879240386f1946a9cb009bbbf
MD5 ff2dd7f976b3b58f8d1487d2466f175c
BLAKE2b-256 5a745ec0abd1ac94aad2a43c2bb7a1c6b181d3a40876fc4b49618fb883d5075a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3e29ce434abf431b817ac3aaab47cf25ecdb7d71bac3afbb3e6de379c2c3cf36
MD5 cba811fc1e41fdd7a5e3c71233abf1f5
BLAKE2b-256 dc649fbc8ca2b9d38b9fa4a170e6a365ccee235853c782b2e6a9be3f30d4729f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ed5bb4e27c31b9c7a6c8b5be64be3800f6cbd16486909a5839f8342dc03d074a
MD5 46796b07c6535a615ab0897642cb1c1f
BLAKE2b-256 597106be8c5530d9cfd1fbd9efdea7798ca45acdb5f7672e53a96f03f057f6fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9415ed2d86067a09b5fbc0e2e2ad0e8550cda5f4e2b893e6ddb9f7836918fff
MD5 a09399d9301676cd366fb9e9acd04b66
BLAKE2b-256 85a14c7deb72c2f25f2c739712dca693ccc857aa3a9e0b5495f562f4a8643486

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 72cc7e772c4cf539e8ac0bed14afd881699ab76079d52a2e7e85dd98f2706a88
MD5 7dd24904b0fb578335bffd56bf8d68df
BLAKE2b-256 0d41be0efaf2d998e2f31135f76c4dbec1550ed8f89bae418b51b4c9ffd99b78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1d81224c3d30c8c30bed02c97d01d3622f15085a332aaf95aaff15de73656422
MD5 01c94421bfcaede084f647918e627037
BLAKE2b-256 46ccd00126c2164514ac10d7a1fa446f302dc3820871393e9f2eca9287d101c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ffec53d720e8ff3311af7d57bea3f20453ed1ef92e57a15e05af22077c8b43e1
MD5 acfd96a7fb825af3b5eda1f2139d38a3
BLAKE2b-256 6d63bffaa00dd84dc3b7f5dc4afe59af2e99903d0e21fa735ca174efc2a9ff58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 396fe1c00fd9d016a03e67e1bd398171d44299b6e9c5d0a9dedf83dff4039039
MD5 2df7d09257b08d40abeffa1a83a1f624
BLAKE2b-256 3b7d50b9e2d57098cf840c3ac299b843a8a11c994827ed4d4a13cd80d60eee0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0c612109fd7775feb2bf2ea407785b477571c7a2b261d22728b3c49b2c9fb5a7
MD5 1b034481778eb52098760e78cb1aab3b
BLAKE2b-256 f658e94fc5e339f2d264d81f852b276cc23bb05385f1ed43dc3f17aeeba3d760

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4131c23c6b6b0238410af3effcc32a83d2f628b711c569efae66076b56c39065
MD5 add6c9b1c287d1ef22a1e098e2d1b9ae
BLAKE2b-256 90eb6b10084a121a6c77a51270519b47c0a85530b866ba413fa0a166d32ff249

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3a8d86b815318e7fb09afd8ba9b2db6da37340dc58cb15e3a9c4f93e8fed5cf0
MD5 34138d69846f3c384921497402a381b2
BLAKE2b-256 fa9c1947b8c9d86513f9492369d39c34010a75d969a50f3ef28bcea091c87d51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0f811bfba9efa2f6d075ed313f391b46856c8c22e1ad0318df8dfc190677ca8d
MD5 67205bf962dc17a484fbdb496e1fddec
BLAKE2b-256 49a886ef04087f5e6aeddcd6176dc8d792fe9bec4121c1b5d6d2bcbeebc71808

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 323f300b26fe84109693cf7fe2aadf2d02b94fcfd4344d808a09f15bb313b915
MD5 1429eb81fb7921ad7def94cae5ca9d71
BLAKE2b-256 88c7a124468cd948af9fa8073068571c4305c4b4be0c7f83a913eeedad40bd34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 49d7297fa0ad32f620af1b685a6247b87bc825bf530f2cbd92aeaac3219bd287
MD5 87dc03cd4caa01645f441464712c7983
BLAKE2b-256 7592651c0eabb0915ecff87a70abbb1e1e24fff643f003dce612b8005bcab8f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6f536d044172f91b4ad3c48ea44358b56bf1a11efad8654707f7efc92696ddc7
MD5 1b843944eac6264974ad20341d5bf9d1
BLAKE2b-256 4ca2b69989423f1ab72f16d69737c4706a05c39eefa8fab28cd539eba323abfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 633d9f75ee73e38ddf2ff3e9c03fd5bb59b0d0b95f1b3a052f66b6f6fb078cae
MD5 cbc09bb38d7f2a569572e70fa18aa573
BLAKE2b-256 6b6600b9d0567ddda9872efffb559cd6d550db603a7bc98c74ff61715755f7ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e180347cf1478b42213f3467d01cc7c71d132d928f07cc5fdfff11ea398ae542
MD5 c420ae933339c3848d05d4e70a822b9f
BLAKE2b-256 b1c2bb8a0f8654e2a146627bee22d280d715dde4433852044cd453e6ff85e164

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2790edc3e037a45cc56ca7fb514197e6cca2c2e0df21cd22d3eed66e84bba23e
MD5 3bfe47015d9db1fb3b4dbc6e3188cde6
BLAKE2b-256 99bfebeee20789dbe7f7a5a973cc5529c3434c4881edb2b47f25f7e81b6b8694

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 929c47697a03d2e934abe69c4130f0c54dda3e1786e835ca3a523a98215c8eee
MD5 3351bb5b7e05152d8013295b3f2403ad
BLAKE2b-256 389a3c99c35dfcefbce86417895e6b6181996b7d2250116713af23c48eb4bce3

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