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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.5rc5-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.5rc5-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.5rc5-cp314-cp314t-macosx_13_0_x86_64.whl (213.4 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.5rc5-cp314-cp314t-macosx_13_0_arm64.whl (214.7 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.5rc5-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.5rc5-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.5rc5-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.5rc5-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.5rc5-cp312-abi3-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.8.5rc5-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.5rc5-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.5rc5-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.5rc5-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.5rc5-cp311-cp311-macosx_13_0_x86_64.whl (212.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.5rc5-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.5rc5.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.5rc5.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.5rc5.tar.gz
Algorithm Hash digest
SHA256 38dba22c4a4bbf1f0048b11df918ceae5bc9ed80f20d55502bff8d8a99361c66
MD5 95084d5a6b45e355e74898315584636b
BLAKE2b-256 d55c99c149b61070310b4f5bf8ebbd9fc99a983bfcefca9ed52b1071af35f27b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 548892ae758adf815780397a5d640832eaf34287c9b523b13d2e1611d90d0f3c
MD5 befadbfe7343cadb49051daa43b3e45f
BLAKE2b-256 0e0419beb2470a94cac0acfa80524b0f54bbd3d1d54f9e8c43a01428a09d97f6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a9e5b92221ffc95dbbb9babcd6b40c0acefce2695d69088a3f092b88a03383f6
MD5 7e172d2b4e437965843fa0513852eb43
BLAKE2b-256 f29bb69cabf42ac67bf2ea7952e979cac26578f60c8fef96d89927bd8bb52a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 faf1df4563391c7baa2cbbb6b1a3fbf909a84bb70e6c4d8c5446028f56e81fef
MD5 17465fe1363ea421aa0dac02525a7461
BLAKE2b-256 5468d7853298c51e2a4e50a424db4e0573ebabb0479d9087d18d8834c8292b17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c4fd21a29b62e237a929ee5d2f6be997e57c85448040f6d4abec8adbb989249c
MD5 aaca0a5dbfb8dd6f2ccca80f8b6e11ba
BLAKE2b-256 7db19e44193e751f93088cf28e42f2741ffdd5cac737694f0804a98d6aad2aaa

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3688c928d786a11cc458c9ae62e5c7af4b7e459915f271c50fbc021bcbafc041
MD5 466cd44c9d210432b62124da23281ea2
BLAKE2b-256 5703ca97e86904bdb89fa4b6313498a13c2950542b200e23dd56a0ca5dca9ac2

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 cd9028a85950de6d003e010d04ed16defe93b5321cec45a6da265e42dafe84ae
MD5 9d66e4d9a6ccb7c8d45497d12a359223
BLAKE2b-256 c892f645bf2d05dab08da7f4930782f293a939ecaec9e1ea8f35d065bea37e63

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 88f8f2e1fe8a4522722d1ff77fcea4af16415ee55c93cdf1b5f9fb4b697e0512
MD5 bd089e087f000d47943da90b4555fafa
BLAKE2b-256 807af0f70071beb10e7c612c3f3ffc17f79f1be6b33a01035b51fcec080b27b9

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 574d6ca99c714f1780c3ae0ee03c964aaccf56b7a3066ded8513052c8f5a3a76
MD5 3e593ad7984bf28ba4452c16a659c0eb
BLAKE2b-256 8765ac4c53dee9e8f075ab6b3c24acb3ed63ca023b28db4567947efa0386e83a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 287d053397cc203495946eb3b95dbaa5410373e6e46475748b651c659f0abb4b
MD5 26089347c6efef4df616c7ec280b523f
BLAKE2b-256 039c4003d5c28f4c16c1309c68a63b8361c37b5cab4da72281fb142a3b688a6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9cd4d869bc429fa4f1d989b7922ad513d940fdb4a2a863d39a91aa5299c6361c
MD5 a795b74ef76a60fa37ba2de08d8149a8
BLAKE2b-256 27927acbfddec323c62c576945f7ace69713a0def6a4df617eb930d549a25b1b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7fca60cd17be5a4b95c20dd923bcb8b6a7bbfa5c2a729ab51b3973da706eab75
MD5 419a27d5cfbd41fa4c3705a7216c5798
BLAKE2b-256 f4c4592dd9156831ecb849741afaaa5d432868f7a8f39d5405b0c8fd2fe26068

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 23400c67cc76e33171b43cce71befb2ad8a8ef3ce527ecd97d43a8b77637beb8
MD5 389d4f9ff731e65c61fa653b4928e41d
BLAKE2b-256 9a0ca402040fc456c7e90881a7f68983e4cc20c0d4fc340f9731e85ec770752b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 970a2804955b121d76968502d8033734218eea1883bf41a442826c2b56eb90f8
MD5 657888950c33f64b59c0bc92580efdad
BLAKE2b-256 2c5b56139d19ff932ed5a370946a439e7dadb5daf50a7ff6d27b8a82e8b1f00f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3a8ab6c15d24a6a77faaeb27c90ab21f064b4defc1596a05f0562fea0551ed59
MD5 79328c7b0750c58eb7c0bb76e94716f7
BLAKE2b-256 3e02e9c8769e00cb823adb758b851767ea9cec4ba4ed32b519e79658a828173c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea0cd712b098f157c3da2fece87f964b52e44d4cbe2f96f2a563888616e5f35e
MD5 e310d0c3f16523ee4b5fd0b247c4879d
BLAKE2b-256 ceccb33e3490bae68add853d106d1dee5b6a42717be1d886e9966c03595a53ca

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 894af2628a67e41f2ea4d99e2feee83882cde605bd9bf8a324eb3e0b9b268bc8
MD5 007ea9071c3458ccae99b0296391354c
BLAKE2b-256 66a4ebead4a9e548b41eb9ecc7663a3029b4af8ebf403ce0c183877d46b0f9f6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 41a47bda2f999d98ee96799cd2c449b0b714c710b1916e3c99d239984d2915c9
MD5 1be3fe2d8ae0bb097d6c74ed64b9275b
BLAKE2b-256 c7fecb21054f115597b385b998e2267ef15282f19b9bec4a2f8403c2a76bf5a5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc5-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc5-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 18dfec57668dbb7c8e52832d0dee6c0f4f747844a2840011b81168db79411a4f
MD5 3f6134e704c47c3db74707bb3a9311be
BLAKE2b-256 d7038b38e5e42ef6fe072c4e44cbac4af53a52498d8a60438fa52d64afb0caf7

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