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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.3rc2.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.3rc2.tar.gz
Algorithm Hash digest
SHA256 a7043cf4e0632caf94499d4ba2c0b51be6e57bacff6aed0b3fe6b786d4a577e9
MD5 bc0d2530889d12aff7b512cb30f6faee
BLAKE2b-256 62a9941ea4d76d619154cc970be2f5d67f5583e88784cd608edc5bd5a77758ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd48ef440057acfb000fd99e7803b6a5d528b71df40d8ef18b61638186e40e03
MD5 0a4a8329c41db2576a8cee3130c23458
BLAKE2b-256 9752e8db2d7c4f04c8678a8f43b4c84e6b61fc15a432bcc580f0bb0d680205af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 14eb4a168b560e2dd389fb80bf1b87e62ea8cc101f56c47809bbae068472bdb1
MD5 6620d24b744c4d30a4bcc329b1dfd70b
BLAKE2b-256 ce868f92a42a47f61fb499501541677b77d2e21d241f8210d59ebec2bad89a2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf6d1e4b6df0d01c21ffde87de5d1f7cec7f3243659cd922a8a026b031b958cf
MD5 6877a20070248cab0ac501c9af37afde
BLAKE2b-256 339ee491018e106b0c19d2dc6c8c9b052e16de5f8df82d835af6599eae4295fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 247de7517fe3f1fa8b024842fe7c901befec16c092d5ae2805d8cea725d66c69
MD5 799b388b420b4d7f3e67bdf030e28807
BLAKE2b-256 b91694b896e4a27267a4ede42698665c843ab789cf37227e21390e899483cc03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 69c7ac4e73f89dd0d9bde4f52448d45f81c1ddc6381c668f25bc1aaf2740b6bd
MD5 c3ebdfa72aae82cf6fce9b282908b5d9
BLAKE2b-256 768fa5d81dec36720bfafabf8172fe76f1cb9a7e17e345186855921be236568b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7100fab78949a8663b1f87dceab42b158f5bdad9cb7c6fe33acc05b61de1e191
MD5 c6129d21afd6070e156e4b8e6164cd02
BLAKE2b-256 3ef60185303ab4f0a37749a5f91ffeaf4b1aaed99d4a03717ebfb8eb9438ce6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d23a5ea185c1cd20b3e7320d937c59bf0d6b1272c9b83b9f218d8d0f3fb28920
MD5 1b135a6ed51c165ffa647f164ca4d445
BLAKE2b-256 33db0e341b628c7d72a13aede1381ae5b69e8137086413d3220cd6216d0f60ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a5a4d50eace8de68e391cf7d3abd9e052ef522bc702fa70372fdf3e8d76b1594
MD5 3efa6f325b87aa05e5f52527e0d20a5b
BLAKE2b-256 f1971d3473afe5ab74b4467e32e1b8ed17cc387b1656403c32a6ded340d0e23e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6c277dbb0b262d955d3705c90e76256fb6ea02f903a6832ce96c51afb9adfab
MD5 3aaeb8a345645cc3d55316508f7c909e
BLAKE2b-256 7dd5c13694841bfffd6d1bd124bd12dc7a846d413fccb3402652945e783e328f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8ac97f6f3c822061c7ff27dd134f8ad9d771153317ab8cbfc417c2d89f3d5478
MD5 af44ecb647cd3d794759a0d7e253e288
BLAKE2b-256 6f949a530fa2a8ac5b0db9a7ecc13885a7847751102d3559b20e1858ed5ce36f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a4c3fed7b6f90ed8748945518c632f8502095f487a571e7eec42d3163e8b8aae
MD5 186168b5f72131ab2a8cb70b82824b3d
BLAKE2b-256 07ff380c75088ed8571da1117cda3422c536b7bbf6e553dc6851664ad88b7015

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 c1d784094fc374f6ec05d09459bbce3337974c04b583b3f9a5d713b9b08f45e5
MD5 3054b41603a330310b143861f8d69af3
BLAKE2b-256 5a5fabd5bc7bed873bd19b796904dab99aac0badb2275c7cef2f36f3be72bf6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ec3c1a73353b161798442a32b4c7361bbfe307eba4ff6dffefd480f53f90175b
MD5 b8113c6af88ae5e828fa719365717d03
BLAKE2b-256 6ae477f0e1161bdb1e69a1d2903da23c8483ab0b76343cf5a7116dfa7683fff6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a64dbc5df877625c8775881d2d74635c913a22b45b981f9f99721251491afc3e
MD5 b649a1624b0be9f13ae77b324de630fc
BLAKE2b-256 e8d7904cdf7b75c018d58db5a1937b0ed84446d8ffe03f217ecefb968830e199

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37d10ef8dd8032ad0c0c7c158b2892380477527999616a99706d1f1b1060588a
MD5 553e2238cf24164151c8e1cc4904f215
BLAKE2b-256 bf474f59285200b39e9b6728ddaf84c5d5850e85c3385e476781ff9297967d4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 22be812cfb522afacedf4bf2a717169b8bec240e81784a5f70e03b944b3af782
MD5 8cce0a8df767f99a99d0fa471daa55ed
BLAKE2b-256 eafe95b84fe811913d587ff9c84485d22daa4b9a0251c6aedb6dec8aa2235e26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 000d7851133132aa5b7330efdc2bb23a64c9091a6460157d6537815ab593c37c
MD5 37802232142caae6b62a840573df8014
BLAKE2b-256 dd65b91169ab80023c6aacc923a4299ad65dfd5261aae2910fb617e432b4a830

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7c5912b6e210c26c508c77e2797fe99b25288b0c5b83806196ee72b39c731c46
MD5 1a0d8ab9f4a82de760f9c738992d9c3a
BLAKE2b-256 553b176ba9722cf312d7a05cb8b9f31ea48937e606f79d8e745f700533357880

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