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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.4rc0-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.4rc0-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.4rc0-cp314-cp314t-macosx_13_0_x86_64.whl (214.4 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.4rc0-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.4rc0-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.4rc0-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.4rc0-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.4rc0-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.4rc0-cp312-abi3-macosx_13_0_x86_64.whl (214.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.8.4rc0-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.4rc0-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.4rc0-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.4rc0-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.4rc0-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.4rc0-cp311-cp311-macosx_13_0_arm64.whl (205.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.8.4rc0.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.4rc0.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.4rc0.tar.gz
Algorithm Hash digest
SHA256 d668fb36ccb21f11b3363fbd7d32d086491f9705645da7813ba72511c0a1db34
MD5 54c0b345b3f1e9e8e069b975d514bd3f
BLAKE2b-256 859cec185e0d63a9c3a45b2b0c133c8581e8fcd333bbf893be9af8466b4a9816

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f5a333be98e19c47c553fd7f3131ffc1f53bf9730cf531eab460c0863cbd91ab
MD5 34f1be0da265dae27d54271252d80390
BLAKE2b-256 5dcc5dc21d6c87c85085ebeaf78c8dde2200df9569288006d06133f0ec66eed7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 691c2d6408b68aae6d9ebc6f205df02ef116b4d658c4a75fbfd667f0c822a3ff
MD5 93f86b3fffae6e7c8b984a5cbe3ac8cf
BLAKE2b-256 aae62d5cd24e25ed4f7594c58f12c223d7dc4d6262c48e01ccefa254c6405695

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5228c045a306f7543211736a17e6085bf4710849855225217b2729aeff1afc7e
MD5 78bbfa892aca5634453857bd3702d2fa
BLAKE2b-256 71612861380f5eb2598b6c939872ea458bebfbe83dd16d1dd5f067316918dd70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2c4046cd86724ab384bd11787417b96170a7659b73c3a79d201d72e876a2144
MD5 3af0dad66b1b7c624334876e98fa14f7
BLAKE2b-256 a51e1fb7a18f8042b2204d73f00eb7bc3d3dc4a89219c9af762bff6df08d5d08

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f3a0da367006341aba3e45f7367983a3de231c0e84a44e50c40733a1c8ed0333
MD5 a0fcdef7fe9d68aba73a592f77a7fc80
BLAKE2b-256 e037089ff76d8412f6b6ab232464eca855a89facbd8696b905c4f88e4455d12a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 99d9c91f9ceb8957c319c04a5fe69a19f0195410064f1042cb906d7200e9b6be
MD5 3307ec91d50f640d19b26dc7d2eb983f
BLAKE2b-256 2686eb04fea068d12ac31a8b08bf149733ff5836cf62b5cf3ba75df37c896046

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3412470bf01f60dde20b9f8a70406850d370d7b389ac62e59e32ea6567ea45d9
MD5 cc287c596d9cca215681b8431684d050
BLAKE2b-256 71b8bcecd8b849dc953ed01967b567806bfaeed0e071f627469eabfb01910bbb

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 05ec2897668253aed25f6c2ec4b2c62387d5d74a8f45cf6497ec0f431d89c108
MD5 6899454b0c701ec51eb58e8bddd01442
BLAKE2b-256 17e382af7b0bc391ca47ae18d3b29af7b85c68432287d671f23d2549bb7f3a99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 472b75a48ac9e758f8b725806c66204a163a6a3481a4c7d106b171d5049042aa
MD5 1bb20a029fc3ce2d11de2119840752e7
BLAKE2b-256 f7ceda8f56dea1c254a150f81134ca438a39a3ca9e87f33ad44bab1b957c82a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0a4c796f708b2797792681e1c665faae5458ef3c44ce4428cd12dbac21ddddf4
MD5 e855803c9129d9e28be1bfa4d0e3aec4
BLAKE2b-256 2773cbb384e9ebee9c9c944f5c39a687857ba1999be9b92548386e8fc99f2d08

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 293d732286942270c4bb032f90591c4b30d9c5b73ce06304d042123f3a60240d
MD5 062e831629a3450aed6684b5b3aacd24
BLAKE2b-256 55108409339c1815f1323ef7bdb414b9e2dee76d3b2d8c5f98a9a909973d7953

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 46c842e12a95670fcc4ff00a6a87255ba988e14c0ccbb01058ed8a98c83ccce0
MD5 01c08ca8a4b1da7dc89f6bd282fb72f0
BLAKE2b-256 c31640d05b35f2336b38c79cb71bb5abb828d85a194ce73beb6ec978f70c4e54

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8f5f5eb7fa51bbdad6ff5e583098c3cd39365b6634b0094c1b5b86d004e0da7d
MD5 96d0c8bd4e7a60be5c94e73cfab7006d
BLAKE2b-256 56baaeb6bf54372ae477c9d81da6309bd4582ddb0e9e49b722f65126971147dd

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 15419985b67d15683dd55a3c1558a8e79f73de0ab726e39d100cfeae6d503dcc
MD5 1a947fbe2e3097a8e95edb938dd9f827
BLAKE2b-256 7e3f110eb76313219cb9ca5275308f37986aafa4d5f8c953893aee9b68ed26f5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aef55f4965916911051b3b4f26e431eba9e87a5f0e978de2fd2af89ce1b4deb0
MD5 f2e5eb460c460caef7c82bb037074373
BLAKE2b-256 d06c88d846c324dad380192eb667e4f8a7b348994f10f514c896a731f78252ab

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a382ca02ada97bc23716f9969cb60160894fde06bae41f86ada286ed21fc4b14
MD5 a6a9b935d67fdded50c5a7dc1e39671d
BLAKE2b-256 8617330e313545bdcd1e9ec9b38ed35f6b85331c3f64f9d7e7440acf3fe1a269

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 39f9b8b7c7deab0e2d047544b93f9c929c88ee50dea6e35e8b612c4ab9c494f6
MD5 b023b4d83debbb1e3e44c433b055419d
BLAKE2b-256 8ff786ff0d61244e2869415a638b14991e867b670a94124ba4050cbdff464d83

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4rc0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4rc0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6612981474b05331ddd00558d574dd8b1e5658e19038243ea6e33658cd55eafc
MD5 ec6777f01a6fda47daac4a1977212f24
BLAKE2b-256 9f98b636d3fa6d8e6981b7c421e287a50d5823b3f2785d98a6f4cc379e455db5

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