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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.3rc0-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.3rc0.tar.gz
  • Upload date:
  • Size: 9.1 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.3rc0.tar.gz
Algorithm Hash digest
SHA256 131ea7910f727ae1ea8715fb02c329e5695feb8b6a35f6b21c2ea339e1c54cd5
MD5 491d59971f1aae6a4270eac4e71acc06
BLAKE2b-256 b42f74f6107eaac5da07265bbfbd08a6c6c1bba18680a7660fcbbd61f236eb2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 466c36d30b20b872b8b555bc229772d6f259e0ff41eb15e3036263b7b41bfd05
MD5 bcaf4cc5748d42e6216597892669da67
BLAKE2b-256 36aa312752cfb9ff9c79df876be3188ad5ae4f9eb86b5b5c0788af8d11a16829

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4d3b62ea749475b31c4dd8909e08cfeafcddb824f74fee8fdf6be3dac025864e
MD5 c847794ddabbc0742c79fa11154ca4b3
BLAKE2b-256 6f6e9a3be61f70ab8529a610a5b6f2893c01ebc727abf34fdee8a2e1189a901b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78032e1f1e2d56cc645478c857b552300b7b633fef251c6734c3d12463708f48
MD5 b926db39e312f25e8bcd2b8509978447
BLAKE2b-256 916ef3dbb2aed17a71a25f5f944fa71d296e0ab8f0a2ba57204d5ff36629e077

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 48c9ebdf933129103a3212828317fd54f786ef749fa30a99d6c17e5239461946
MD5 b03444d8c7adac8e86d7738bfa58475d
BLAKE2b-256 5220ee3b8d7e1437ae52e956ca5413178c94b505b81fe3171e005fa79db00113

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c396db0cea099ad2326cc8a9995e4606d1a1eaf026566293687762aef5343d8d
MD5 4e2174d3e8de20b7cc28381383950243
BLAKE2b-256 c6577c52d5d1dcd779058bbdf0dde93816267a647e0bbfa561fb93be7a3939d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2ff097a344ec8f6f4b79fa731399eefb6b0543de2607f6c3afffbb24b20632d9
MD5 276f6dbd84fbe67dad68189bb6f3df27
BLAKE2b-256 7dd2b2b82e57da1e03fa892d0640d48376cb730a2aadfec99a7624ad4961f0d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5568eadc8248cd78f1f2df60dd34fe06b01cc92cf9ceb6681b93579090374e1
MD5 c64ff03a4fbbe70aee46175e00d1136d
BLAKE2b-256 84eb70dc3465e949a75b4f7cba44c1fdff03a2f49158f5eb8ea05a137af3fc3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0de0965e7d72ab43d04388d3ec55822233567c9c6254d40d773870db76652a86
MD5 188f2b7ecafa59a917901d9f04dfce35
BLAKE2b-256 8bd9f108a487054f41f861c253e991127be059020b523116ed90c869f0e9c0a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2800bca6f6a70182c9e81fc490b907e9ded3ac43b802e17ed882cde00cadbcfb
MD5 8f83749250455a60ced289398f782dc6
BLAKE2b-256 562746a7c356f02c79447e6c8eea6b4c7160b6de6c71926693e98ad659036f02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e821e0cda6c324d42337702cf34eecbbfe10812fcf252b0ef8cc4aeaf154e04
MD5 80c08009e4b8759917138d5ee9615b6e
BLAKE2b-256 fc563919fdda2b5dcc359efc6af26c462882ae2698e755a407bdd473717722fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 586f6a125111233aa5e042bf9f9532ee1cb2736a65e5f87b4128e9abf62e603e
MD5 8d2bf0cf99e418982ed99307ac26f340
BLAKE2b-256 cb877aa41f42e98111cd880dee53e8b8a4b23ddf087d0e72a3081e501f602194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 2cc02b502f9dc9c73615f83b21bb1e9b11d1cdd4ae92a9da5190a39c209d7e02
MD5 826f3505faaafbdd00f0a3016c815d0d
BLAKE2b-256 ff4e78e7123bc9ecd9653d86df80b4f79a098b6ba49601384e9da885da4533fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 87436b0f54a9594234d4c608d28c0ab8e6e2a0cd3d87aeec658dcd9c70fafc28
MD5 1644c3dbf4366ea914c13db683681261
BLAKE2b-256 63f2714b310a2a7545cd780f6e24dca9e83133eb5e3423a98b603caab60b6cb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bdc39c8611a5d1a1745637ef976674ea6a4bf1ab7eb8f7dae0749db9bfbd59eb
MD5 a516d9b02eb3b981a8fc885b866a950b
BLAKE2b-256 5764e41a4411954324e92c0ef44e6724d091a20154014bd58e92f40bffe174f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 afc308c37dd18e7f16565a918b40c6a6174d36de18927ad15b3064095f8519bd
MD5 c26a901dbd199f5c69d6a774354c0a37
BLAKE2b-256 9290afb43c3d1d631cd9af1bb14eed208846dca0fe74a67704a28e5d43933d7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 25823240bab7fd177c891636749b424db008153cf2cc48cc04f99b61f6318aec
MD5 5000d3d7c378a4bf8404f01104caae99
BLAKE2b-256 2a18a889cbf855ccfd1f39a0a17a536773b86e176e6509e33f5a22a6a7fc46f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 94f1c702c3bd074a6a2ed78439bc1173cf992b81f665a1517b7efbee9bf07a84
MD5 ba758c4adc95e059986e1314a2830421
BLAKE2b-256 c4e04a976c00b5ca0c9c88eb95b4a33a5cebff8f4c552d613c973f58da3577dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7e03c64b92df7b62882985c52fda09280eba68d607b6f659524decdc2f176433
MD5 a23ad42ca044376cd817c60ae153a6d2
BLAKE2b-256 5d3dd662d26209e199fa86cb32db85b7da5f11eea82294d6f07945a369322c81

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