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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.3-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.3-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.3-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.3-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.3.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.3.tar.gz
  • Upload date:
  • Size: 9.1 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.3.tar.gz
Algorithm Hash digest
SHA256 e5ccc7a8f1d14fa16d8f6311aef5b29164d124f0b9b2511907e6c7d001ec10cd
MD5 83e3c4339e6e54dc82f160c5e9c1a06b
BLAKE2b-256 8971cd062fcec11477d030066e8fa13506d65e0acfc939a3a9cb1f713637f30c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3325a559214103310188bbad1ec4310533748a47129e87b265de659eb0e1ca72
MD5 fc2f48d96e42b48dcd7b7cdcd45b6d62
BLAKE2b-256 67aba3b95b029183bf164a0914baa239ebee9f6da650f459a09aafbfa23945c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0bddd3d6c74edd59c1fbbfc56acd8703e4513b58800f06d50f5e1ea5ceb76f2e
MD5 2a06daf866d5b3aa52627dbe50a904f9
BLAKE2b-256 aa474ae5434597d491c72e994fc4570870c9c3665728a4dc1dd780d132958660

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6ee272dddbdb29848651da347d8a11201bf6a2c72c27370e97667e8bd3e2183
MD5 46b402661de800d5bb97bfdbfd4b4398
BLAKE2b-256 f510966f75352097c111cbfe86e40818091b64c0117deec39a5eedeaa412a00e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1f5f6e44186a3c67b8fb1c0555de6ffd18c96c0808ccb80eb245ccc7044adacb
MD5 f3792422bb1c4edf3046eb2ee513c808
BLAKE2b-256 5f83c8efff2dc75ef911b6966db96dfab619dc87c2e2150228227f4e4e5fb611

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6a6fc11ff1a9f71d152d32a99d841394084aec95b79db24e65c86381679dc60b
MD5 045018d08ba43997873900ba0661acd3
BLAKE2b-256 3d53eb4e0cf47e6aa9e01bb0a9756eb941f4fa4900ee94d2dedc853ce53200db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2dd3d3f89dcc3ee59554052db681559be923841c8fb68bfd9cbc3d949eb94c51
MD5 fdc1bcc6ce097f44dee06bf81ba7ae72
BLAKE2b-256 af1b092e6e27f216af636b3ae620b3c9f8ff698bf5359d30e67c76bb17e4228d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 39c5480fdb3a83fcd2f40f2c78a97f91624c11fddce1a65e0d8945ba1914bb41
MD5 2a47b7cb4acadf0fbe5eb60979ff6f0d
BLAKE2b-256 ace26c8ad6905cdcb4f330b68a76d2d8a1591baf86a3de452552f7393cc5f778

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d640822ee622ca3a5e661ca6de5b6ff4004df99924d9f16356d05999f78a280a
MD5 b51876e61cde67c7036d9a42549ffa61
BLAKE2b-256 720d57fb5856a2610a2121ca87f0a5ed496cbf34a46859a1836ef66544cab43c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 194510885a6c433a9f6370e22e31da9f2d89198dff4b72f2149601c624595e87
MD5 46c5f7870819939543deb35efb0af587
BLAKE2b-256 489daf7d6e355facd220985bc4e80bcb4bf9e382c4e5815718e69ccd08097aaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35c70a2215662460089b657bebd54f1b08aca7b1bc43650ae0ce1efc52676f7a
MD5 84b2c06e175a9d1105aa74f9e75e20c3
BLAKE2b-256 1574be23f7569387cbdce4d214885acdf62d0be5c3e2968fcc6a4a8bfe3cc224

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f8ae785781a71d4e2a240c8253629035541e0b4cca7d4f68ffceb37f81b34497
MD5 5ced09f1824951f838b6964eeef2d09d
BLAKE2b-256 f647a04abea9715bef9308d053cfc75dd8ed3c8601b3f4704d3dadc8897c3e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8e49de35715749ed89710cfadecd6af3b4ace50a6890432da59f32a518b095aa
MD5 020f8681aa68af39ea8c3697880b2cb4
BLAKE2b-256 92f5eb218a761e3de9d9960943910ac064378a356ea2e43eba6a54b97f604d1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7de01bb7c3fa79747bc2c0c0af374b1e08902d990b3a7b60ad552e03f1a4dae5
MD5 cbe11eb42690d13c05195e5f56868c81
BLAKE2b-256 ae4972ba688b697c5aa7d2d4d6d846c7d4b156c61c43060d429363df4f8bd5ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 46de9e4951deec6424ba4a263049be58702a493fb72c333de1397407a155126d
MD5 50824d62bb55060ca052ab0c6fb1e313
BLAKE2b-256 47c41a016474bec0572b014be7d3d7a30f283f3765f8ae67259133001d1bb491

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6b57022697f87f4436588f9ce6f115b08583e0cfd2a70824222a6afe970abd66
MD5 2196b4d67822a04d7b69bb1a47a3627a
BLAKE2b-256 74e208aa5ae7d448afccd3880f5658576ba05516c5c8a84359624ecd8eee40b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4c394dbb06623a9e11d305e0690f8a4dd025998261e419feebdfe6ce35fda5cd
MD5 0b3c4240d2c9422b5ca94c0bdaa9f5db
BLAKE2b-256 939e6ae0794e147f252bd02d3b9299e830938ba7bd4ac33745b1d151d0cb1a92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 46e871a4473a3aba50800e14b536994b4c61c5884e91109bd6106c7b56678bec
MD5 ff2a6491953ba185e864c6ac59450dc9
BLAKE2b-256 79c360e9d9ef6ed3ad20d3651f6be90a005d22696ff833cacf2f0f5e12ea7ffd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 1cd563df57f716bde1ca6c4c82ecd256ab6d57bf5096581e515d3de8836c0688
MD5 2910c68e0a627fdec2cc3f4cda7a7d75
BLAKE2b-256 17f91bbe41b4616c7db1a1892a346edf4752e7a2416862d4e7ab7c1e61770cd8

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