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-2025 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:

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) 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.6.x series are 3.10.x-3.14.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.1a2.tar.gz (8.6 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.1a2-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.1a2-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.1a2-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.1a2-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.1a2-cp314-cp314t-macosx_13_0_x86_64.whl (214.0 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.1a2-cp314-cp314t-macosx_13_0_arm64.whl (205.8 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.1a2-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.1a2-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.1a2-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.1a2-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.1a2-cp312-abi3-macosx_13_0_x86_64.whl (213.9 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.8.1a2-cp312-abi3-macosx_13_0_arm64.whl (205.4 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.8.1a2-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.1a2-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.1a2-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.1a2-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.1a2-cp311-cp311-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.1a2-cp311-cp311-macosx_13_0_arm64.whl (204.8 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.8.1a2.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.1a2.tar.gz
  • Upload date:
  • Size: 8.6 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.1a2.tar.gz
Algorithm Hash digest
SHA256 223408fef21d2384bc9843c8a1fa402246f5ca672ebe68741428daf91709a72a
MD5 2b1d21c39486a49ed61d12dc1a57b4b9
BLAKE2b-256 0cdfda2bae5ed3ca2072a45587b75d3fefaf13266e1bbffd5058aca20a1661e1

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 986911bf925dbd423158f6b39b34f98a4eadfc259cbf4a39bc1ec864cf40f664
MD5 116588ac70ae0f404b15294ca443c38a
BLAKE2b-256 b751498c5b6f40822ad15b080557630aa4f4be4630b11bb686e7287a77e87c6c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a58677b1f8c9e898c3a998f54390d591dc3ccfad189e44686dbc91a0202476e6
MD5 103bb442ae0f777e969c74a02ddd5e1f
BLAKE2b-256 1bf329c018127f07291d8795d4f047863eea9b236070c5186271f330691573d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d8fe10ef8590f1bfb3256b2fb2ace670ea78c0bcd6a48e14e158cf5f93cb05f
MD5 55dcb19c131d1fde946d1d962bc47e74
BLAKE2b-256 66b7a41f12fa1f14419ee589313e31b2e1eaee0878eb957c37c28ba1146d2f61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3ca40925157a4574324e64555bf68fdf8f3d3b84b864d116f5643178be7d45f3
MD5 12331148d49e3a1da6a48c76c2478cd2
BLAKE2b-256 ef9a0baf0ca580fc5a33040ba22fb7bb01e00a04ec4da6d6270133a61a9ca08d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bbda61a81a5633c64b3b33544d3e2e3f0ccb9874fb3344906ce26f081616f7d7
MD5 89bb053407c3dfed700776929da3a6c8
BLAKE2b-256 73536bbccb9ebfbc2bea267eecddfe9e3b97a54627d90f320436b3019d53a18a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 019b578f7eb3da9314ca72029a26dc4f6807f9b4be0ee8f1e7305607eb077d4a
MD5 b231b67b24d40e4e786a68c239d1dd30
BLAKE2b-256 ea721b60b5c8b1fdda4970eeb7f1aa3e564ef571444bccf463115d5e1c52761d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a2317355190a12abb3cc7137becb51aeb9a3e939ce307cc918e3957833cdc332
MD5 6a8075b61680d86da0a95e50886ac588
BLAKE2b-256 b477a74070e29b398e6ad0ec1f8e2e660aa00f8368586c6ed9987d84d457cbcf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8ea3c78c7c9f2c6b60d2a3f957c580c3ce300dcf50705c8e8fe8e4df70feae34
MD5 dd5532272e7cb02aa41218e59144d631
BLAKE2b-256 2b474c0f5800c652f741bde321206b3cd7f51783f6b80e3d58225266e081e081

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac36b9be3629a80b755049b0e8cb3a9fa82a5f18ab0ca7ef0300411c40c500e5
MD5 577a8dece1221393622564d03c87e90d
BLAKE2b-256 9a5b009abbbea670dfc671f7938be512049f926ffa2c98d2bfc80fde42b668eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6035a8a4ddbe079e978fb2132f7847ec957238fb2e2e5e36523c19671cef3922
MD5 f7f287c8041accb4f05ec5328aa2ea42
BLAKE2b-256 22932d8ad9d60f664f7cb0d483de77db7febd5d336f434bb519447004bd1a650

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a810b287277ab5cddbf081fbe7a60dd26426aa908c28b01a392d5221f6faae45
MD5 1f90b65c952444c556d31c1dd2df02b3
BLAKE2b-256 847ca95953b2dab04a5250f8fceb945945bceb269152a7562a1fb0919b2e3abf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f465fa7719f137fbe57b91026b679ee965c2381ef518a789bdb57801d8bcbaaf
MD5 7e1f0d96d1415e65e541dd8cacbed372
BLAKE2b-256 5982dc8e64d5bbc42c75e4bae18855df92596b6ba0e8b823754b5839d0d604a9

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2443c311d2515d596625b8c237e3ecc8d28b656f95cc7a348607a358bb07c3a
MD5 9a56ba6e4f7e783cca95952ae166bc3a
BLAKE2b-256 802e9a24b4636700a7375082ccbffeddda1759207ac7b7cf967ab95f3de18fd3

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d455aafc3276b272eefd22769dc82c265daa60d7b5cffd49dd967ee82a6aa1fd
MD5 8dad0fc5c428970c58465e83f407a040
BLAKE2b-256 40c90acd1a39ed05868f3fa27171b96ffee3d977fa3ddf43b750ff9cfcaf22dd

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7f108ce7d3ac7755060ab8fbd360b3913850e19ac69b86c8c72eddb61e8b139e
MD5 35239f1a173f8cb82322fae5aaa7b462
BLAKE2b-256 25a137be1ac3fa48fcee1e2887daa8a8b61ef3af111cfcb73169685a9b31f2b9

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d00520dc37caa8c5254b88943fbfef0fe067e987fc443c936203e5782e673c8
MD5 1eb2a1810506845fa4f8220e53400cbb
BLAKE2b-256 316b3286679fa51adc13c66bed2600a7620369fa090b4618e6e87544a23a3368

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 25f9d32fbe4ebc2ee0310e10383e5e326f8257e0e89678b01baa9e6a25636164
MD5 a12b9baa9b74e1ec068d3a8ea3557a7b
BLAKE2b-256 563711b01a1bc68574023b7c9535e27ca6febfe0ab889b12f16c64c9ecf5555a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.1a2-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.1a2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 57b1eeda8dbea818fc3d4822ffd398abb54da94148d1d3e09da89b530b10bd67
MD5 2a6637ab2e6c106b26870e8bb6a41a29
BLAKE2b-256 f09c082ffdd4135561e89fcbeb70e6cd603d8197d2c2c486c48169908651f4a8

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