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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.2rc0-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.2rc0-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.2rc0-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.2rc0-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.2rc0-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.2rc0-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.2rc0-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.2rc0-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.2rc0.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.2rc0.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.2rc0.tar.gz
Algorithm Hash digest
SHA256 bf8f38eb84b80e1f64e527c1ffec9f36a657d4531f8015f8fc626f6b5737a7c8
MD5 69e9b66bca3e08dff8800ea4e9f4c7c8
BLAKE2b-256 7ed64d9f070b7cc6deb140b8ea8ed943248984dc46539b914d9383880e4a82ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b1a7122e23f2b695b2160e79673fa164a4ee18542f4b0a9d2ce2985e01c6992c
MD5 987cef64ce8719044bac4edb9753f412
BLAKE2b-256 077d5948d6dbb476558febed26a170d8e42b0720d21dc064488b688917a7348b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 00c3691114dc03edf180a3e501558e02c289603b0763d20e79347a350ea45aee
MD5 e60a8bc03f387b9353b313f3d8c535b7
BLAKE2b-256 c7d3d796c59bef56c8573fe2725083532f1aad25c59485e157598584805a9dea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7fef0c0a85515ecd35264bb03281f149b28252068a3265dc8a018a5afc57861
MD5 288d7663ee43efac3e23c97662bd92a3
BLAKE2b-256 b2d58c0e82561a89405b502c0b10af4dfe322946928e234d2a8ad26f9fc19190

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ebf1934009273f7318ffedb9f4f4783bf8797eac84569e888e4a28ee34d0baa2
MD5 527cdbc24809b1cfeb8bd07ab36e6536
BLAKE2b-256 1b333a9b122415c9a7ba2b5301e212c1df85ea3672ff22927d8f7ad739c6d8bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bceb1c3c4c7ce9826b5aa95ae95819080c42b481741ae8868420e86e8213664b
MD5 62add3c782229e66f25e85e35fd78941
BLAKE2b-256 f6fd8dd7945c5f845c11271e25ba19506d3e8066ff7780ec4863afd66f520403

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7f39b9af856f20ee797c03467e90efe9efeecfd6ae81a949dea96d9e1f70fc11
MD5 9995a7944b80772554657082087cde3a
BLAKE2b-256 e964c72c58bb2b106b9f78347fc85f650744fcfafd66d0bf46b53edfe325f17b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43121bd32bcea31a102a9b7b82010e95dfc274690bd2a56d18355ffdeae7aa00
MD5 b71df09ca5129f271711119e35bccada
BLAKE2b-256 7da9ff023759db0fe55e7d3e4902f2f4175d569ca0884e2ac418a4669579715e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d240b8eb8793f4fb650a9c055542ab1f61e5ab243a0213e1b11fe5779e3d1feb
MD5 2c092d93aadc35f502db872942f21e1c
BLAKE2b-256 7bed77ebc5b3a2d794a5d09d678ebb336fb7b75988a006b240323ec2ffcdd860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e2084a6f63a8bb70d6c53844ccf6a2013018926136249a37461f56173fd198d
MD5 5b499c735aa61b3c3b1622c062488069
BLAKE2b-256 462f4df8036d69412a5545c7ff3a427c3a882132e61f1dd9365c8fa2cfb57544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e829517890ab94fbd6f4262be06dfa92603b9d8e7d35fae3289fa924de9b6435
MD5 160ca0e0b65c4063c36d9c2fb0cf048d
BLAKE2b-256 ffce84d41d8673737faad0564d0813277eb0acf1552598c28223a32b87ccfe53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 ba664b986939fb805bd04a8bb053dc7ce7e845636f2805abc86bb1f4e91b46a6
MD5 cf88a237cc4bd92de90821335ec06bae
BLAKE2b-256 a04aa577dc223f4010afeab6ddff4998d62ab580b8e29cbefcbc18bb00eebb36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 768e462bf3df0ddb12f354195b393eb52de84ca197be5993114ea2d5c371f9f1
MD5 a0d4bb388b63d4ec42dee73ace0d03de
BLAKE2b-256 54e9d61d47364fbfa83734d303b7ff4480f5b52d150e70605cd3f6d88c9d6c9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 33fb04a73cd5e87e9effb68d7bb40497c34d8300ab6e75829483b37f345da834
MD5 799fc372bdb802fb9cc7fb6a2dfcd53a
BLAKE2b-256 78359d01aab7523c6774332c06a156f021c3e7430e5f89531efc4af1bc555dd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 53b7eb2bf0fd101f1adb2a50da6d70f3ef6614ebfe8e0411023d698da5a73f88
MD5 7413786dea6807928b6f60a2e74ee75d
BLAKE2b-256 3f8cd13f6da2982b22f65fb5c268f78ba0cd9c386c82566981a0499825273236

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b771c68aaf2789b50cd02f6e7f14bdc7dc8f77dc463abba50985971b4860f8a2
MD5 fa4b3733c7a9de89004ff79c44c812e8
BLAKE2b-256 18cd3dba79673e764584b84f9aa69e803fee9be09f57c79d2d3b4cdf39b3ede1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7bcebf0ec901582000d6c5302a113978bfb049342a6699321844247069042ab3
MD5 0c7204dbba13c0e7998d399a5cee349d
BLAKE2b-256 3a1dad0af472e0c9f5d828551722d93fefc1346f9907a12f8fbfccfd90735c8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 8102420e7786d7a164c0da5984e17ad52432870fe8aab83a493f266a233c7776
MD5 1cd20b365ff60497e752da6e7d6cca08
BLAKE2b-256 ef4f9afa3420847d16019aac6effd40adad9a1bb1314f6e793350a09f6fe3c8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 297273f1d6d505850b1b47af1f3f7230cabc7c68a1fb528a5df67c57be3efd70
MD5 40a7306d948f19079b9c7df347c5e855
BLAKE2b-256 53ba05a138a953369b28f045b885b4f534bca70e455e54018e3250e7f908e2ec

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