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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.6rc0-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.6rc0-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.6rc0-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.6rc0-cp314-cp314t-macosx_13_0_arm64.whl (214.6 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.6rc0-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.6rc0-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.6rc0-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.6rc0-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.6rc0-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.6rc0-cp312-abi3-macosx_13_0_arm64.whl (214.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

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

File hashes

Hashes for passagemath_rubiks-10.8.6rc0.tar.gz
Algorithm Hash digest
SHA256 02e94e8a79738fa2cdef148b4b2b1df045b807730c71ffbc1809f3064ee2d448
MD5 b9eac872d624b46ef5a63422a846c9e8
BLAKE2b-256 ee87d19a46b858e2fc381006519eb601106c353c3bdb763814f905624e3683da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40459add5357d356126ade986da35164aa6759c5d1ca964be1db26d986f7dd5b
MD5 b4b27ce4be67815396fd2bea11b74955
BLAKE2b-256 8da4ac7d0b761c4fa92b882c40c6ce77da9515dbd790bde4c10fc5cf3a0b366e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 04a8b384ddfc63f730a7569187d5677a63ce8bdd3e028396e6ab948544cae804
MD5 9e59fe4539f7f446b1e829b9bb7cd8b8
BLAKE2b-256 16c0b45a7d0f33b59808fc6781e381cae7864000d4d996a967aaddaf30ed8822

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d3a7620484bd9da3f8a6ed3df23ceef8244411a7318bbe4837181f1ddbcb12b
MD5 dfade536f701cf8734ee4a5b3bf04a50
BLAKE2b-256 9ef643d8c6409ccb8ceba1bf65a15e4ae90056093b888f82c6289d302ae2c654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 14c82355775ca12e3f3610d00205108919363b931dca9e279aa7b76400e05b4f
MD5 f50ee3ce1215b1590c293079276ffa21
BLAKE2b-256 a0957c89f865bfc5b561d03b10d947479735dc0261e58e7471c95dde88e49adf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1c422f404976c6ca6c627b20cce1d0b9e7db63a58a2a5fcefc4ca30bbe9295c4
MD5 c04a68051a03c7598f12dcef798e206a
BLAKE2b-256 18206edf606b88d553290691ff47104307eb7efdfb0add3e40bdb9bc4f04c68b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ac1be614827401218f98cb21da50dc01e0eda1738a972a3aa94f264aaf4f07f1
MD5 f22275f185c077a2134cec84df0b8fd6
BLAKE2b-256 91b755ca3901c0ab755f7f0e50a632c74fc5b40b76469a9e3ac3d676face47ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ee3d735bd633e0156f4cecad8c1ee3e3d7c617810d3fd5459857aa1322beff74
MD5 b2e428eadfa96826f64600789cd9ee4a
BLAKE2b-256 abe92e8e1f4def075168e77cc32d236df4cd976fd5037c47f4f4c47dbb608cb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c349cc8e87d300c2d191880966e3e1b48d8f101abf1a9e885e0a938d79d65586
MD5 a5188c51e13878ac2ab3c9fc85bdd2e6
BLAKE2b-256 c6a466eadba71da35d7b508833f7ddce8dafdc19bb74cd1fd8508046a6835002

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d175f092d17f913c8e060a8e2fa47eacc50e578cf707f4ddb386debb3a34abd
MD5 d19636c11d1b92b1f8a5e1d65c9623a9
BLAKE2b-256 dfeb2760c0e937b4f5f6971299020d4bccf84d4f2cc0548f75c10d92b79c14ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2bcfb14c999851faca278c0018693fcbc460ca12b8829acf990c7deae75a8127
MD5 33a8c20e697a8ef29a415961b26334d7
BLAKE2b-256 228b856294916fa7f2a0fa5b94d6fa574f413f3a6a20db4c94617942c6b0c554

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 24ccea6de5a52b44ba0f0b986d37e1fc285df1cc5ccac55441be0296df78036a
MD5 eb949600f5b25366b606890b3d494466
BLAKE2b-256 5e01e5b9a169c66320efa4247a45dc22beba3a48c322150ab0b549814f98d799

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 70a1ce3c2f9c0ce069816fb1bd104c9c37223fd30a0490a8fac8fd601cab3c35
MD5 7911a657a303f4719c96b5cb7c345c9c
BLAKE2b-256 fa663a2c9cf28b06a35d4914f47d1926fcdb7168821bbc0221d382af589a8483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 36d3597860b9ffe32d78d1d02fe4ef691e9fcea8b342819ea5f8d55516559855
MD5 a685321f62c0beba86b8baf91a571f2d
BLAKE2b-256 ff2afd7963f1d4d3a6ccf3197820cadd7781734f6b81b881fa63485a3c86aaee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a91ff24d6eac8d6d6b4966a0ccdb3688058cc452633de05c9d22d72dd9c08664
MD5 88fbe3769521fa5f3ed9d8a9400f19ad
BLAKE2b-256 eb87fbf70d8e317a3b88a4b1d7c0aed8a96fa5dddf34cc24e00b0de242f334c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bb56300f85f8754e3d262250ef8d049e7a33b013f338260ee206a1e110a271b9
MD5 41f083b975c9d671938b0a1e2f3ea59f
BLAKE2b-256 b97a658a8088151b8136679ea885ed25d60feced3f79ccf1845dfa7efb2099cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 795f16b8d151ed0f1bd41e3ee8c13d9fb5ddcca5bfca0be3d87e5ecd4a7e25ce
MD5 8680dff9d33852dafec5350c1a469e17
BLAKE2b-256 d9e9bc244c02b0069f43f655d56bab23a901d98e14c553ebc44ede559b6732d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 acdd7c1c0d90046f5b77b1fd951540727c9aabccbda44dc2c1fa512e19ff1523
MD5 7312a39f5a2df25515d180b09fb5ac8f
BLAKE2b-256 4017977fcb29ef77722efae9e43ff27af62f10bde463860b0afec06edf7e485f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 46b3e92ed24d8cc8aa48f9563ba6f6d21f3552e330f42e121904c16ca7a59087
MD5 b2508146c840042f6ad3f0777993581a
BLAKE2b-256 89c17f2badc25a0134fbcb766c0ddd8f264866b66afff639731d5f543ce53684

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