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 --spec "passagemath-rubiks" sage -sh -c cubex

Finding the installation location of a rubiks program:

$ pipx run --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.features.rubiks import cubex

In [2]: cubex().absolute_filename()

Using the Python interface:

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.7rc0-cp314-cp314t-macosx_13_0_arm64.whl (214.7 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.8.7rc0-cp312-abi3-macosx_13_0_arm64.whl (214.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.7rc0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for passagemath_rubiks-10.8.7rc0.tar.gz
Algorithm Hash digest
SHA256 f350c5c9059e5e025f5c9a83790ffa91ff2358577a01addc2eb76bb475fda716
MD5 d36b9b66834fb9c7a20597a411be71f7
BLAKE2b-256 39012152f469fd217c139f56a7b4c888dd0528582fc262a170dc55f47b4a1482

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a8b8041201723c93f9bc33278dc3e3e4f3da76dbecc59942c78c9c18cd07180b
MD5 7efc1c0d8e9d113e235b91734947dcb0
BLAKE2b-256 e3ab7f203caa7abd510b688e51a463f0b1c7ebd7e83d35a6a3e618acfe5c6910

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4392e4adbaf761165a32b61b47378f7671a27b2f31d67660eed4edba3b69aaea
MD5 23325893a238f4b4390b7b75125567e6
BLAKE2b-256 66c1c3c58cd4237c2736ed057629e3213e391c157bb81ad8580e6937454e8212

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac8ae07e35a3960687642c0b9491de03bbf063368858d55f5afcda2f14833c39
MD5 cf47a11c337f77812618b2b13bcdd45f
BLAKE2b-256 7785556a3a2f9f9f2352091a7d474b15ad5e6ecfd689f1a54d9e50d861709e5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 baae607cd15fc042faddb6c9d4e70b4b08180c74027ec9f78beb23c79bdbf7b4
MD5 9142330d57b70983b086d1d812308792
BLAKE2b-256 3da5be308be7e30823cdb1903cfa76878827cd196959d3afa649ba0a24dd3a62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1a65259993cb1c3eb95fcced35ac197bb6ed3f5027ad1a285927f9e364868956
MD5 ff07f0d9d336ed0b91895a39d1cd195c
BLAKE2b-256 eb62362ab5a0d66f6fb9beecf74d273e37f9f804761f622ed6d46880332c0eeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8a2a8028e9eaf2e0ebd862d3a7dae2aca56bf982a7ff9617dd71d3edcfd5c836
MD5 6cdfc76cfc90acf6c11bf926a278e7b2
BLAKE2b-256 57ba7add01924e4f252362d761de49483f44d702c49d758deaeb8c5e2951dc53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a3eb55a9df1910484cc81148f85bb2618e7e961c0aa2874786dccd7a3d528e73
MD5 a1ddb52a4033e1472782cf4198181525
BLAKE2b-256 8e61a15aefa99962c637d64efd4bf4dce5a3d4b66c133faa76e2fa8ac6f257a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 84a623322f9fd574b81ff5897ee3daecd598787bf6afeceaa664baac5bec7cd5
MD5 7ccc07a6be467d09dd24531e7f6dd40b
BLAKE2b-256 a2fa5814823d04adb4d823ca192a197d5096f6d8cf2c8247cdeecc7eae074a97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a76afd62938f08fd6ed84fac463d428fd28eadfae9da230022d4a0f5e96d425
MD5 ae57c13795ee831aee252b5fd0dccd54
BLAKE2b-256 d0aa7b89da6ce767d9b1f1a171e50007564c7a7f74193084a062d2c218611b4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1daaec7cd2153133790d688999a801791865dc100e59821166f6fe27fc32ad46
MD5 3cb8ff37aa9ff79ed7aa30e1e679fe4e
BLAKE2b-256 2bce37455129b73f61a4e3b366b79a6a1df40d0a86531ef72e313dc8c5607286

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e2981b5f8bee5e56a35a09eb2cb95ecea48268251aad531e8d1260cbd7308b5d
MD5 542e3605573042361ac6914650937686
BLAKE2b-256 f7cc9bdb9117c5d5cb1312801d3d0288d80b3bf1ef54e6154a44afbf87adbb5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a159b87e983b3a880e382dba09a6cb74f5dffa09e758cd913b366113bd6a8012
MD5 94c3bbf55118002e94a5e4065662f0a9
BLAKE2b-256 9d2b8c7ded24e82f42d5330f6a2e9f45438c23fe4256efd64f209fbf96abc57c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3eb256dfb038daf0b312aa2d954b0f2e65fc0b85870f8973a5bc683da4e71f14
MD5 829f386a609cadf3d845cf447d430ef3
BLAKE2b-256 bb3378287066aa512d8a570677a6bffcefb31dd470c9a90f9fcf98eadf01db8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a4311699ceb2405c1dead11d8966281dc05677976b51935c86404f0e5f061102
MD5 13f764134d53e02546fab586c7d581cb
BLAKE2b-256 08193969af55d7ab12af568e500859179313cc6167a95b31e30451a0755022b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2a6e1596db1052a064ba8a32a52fdf313ab0c0a00335fef0c3d5d7abeeae196b
MD5 5904ed481b2f15d0aa1a5963703842f2
BLAKE2b-256 f84e9ad8d351c3901b92c983a4cdcfc666a7ac0f6c04b45fc0b8c497399bf361

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b00ea1588bf98dccf021f7552b3a9588627e7dd505dc5a8de0ce46096c15b9d5
MD5 d995528602854d97cc30d954273d98d8
BLAKE2b-256 69742bcd27829939286169281936c89b421e777eb0e678cabeb6f4cd3540de0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 42eef29b7d2e2e5b704b5dbb6e11c5bbd35621374c44440334311d766f29c35b
MD5 1194a6436834030c8819cd63285f29c8
BLAKE2b-256 76014f2cc0549e61c76473ca9bc3c19da721ebf09d07e5c97108f27f0cd7422b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7rc0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 38dd22cac1db4426ff91415711387084057de4f0a693148f9c830db874db6317
MD5 2f66278e8853b91a4bfca0b1bf420771
BLAKE2b-256 7a31f6849e208cd55a3cb5b75883d4e66a29d6dab596ecff2f122611db61b6e8

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