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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.5-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.5-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.5-cp311-cp311-macosx_13_0_x86_64.whl (212.5 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.5-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.5.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.5.tar.gz
  • Upload date:
  • Size: 9.1 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.5.tar.gz
Algorithm Hash digest
SHA256 5653768ff89a18476af7fe4b8423d315bf23eb80452315b124515f18764bc5fd
MD5 1120294e88f95fb43cfd6788d397f62b
BLAKE2b-256 1e1b8f6eebfc72cb6ec9e1989bef09f7335433dcd01e2ee04c1ef61b1b2fdae6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e6c618e79f9bc4e1291392298913fffe638deeccefa8d3c722798836720cc937
MD5 1622cddf75a020b191392b4ac5575820
BLAKE2b-256 23e5754772cc0b8cfdb1af83c53517e7bef4971b71a14799c1deaf1482c203fa

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 59d3185cbfaefc094640a336e59aec5814f0daf54245c761acd40746efc664cd
MD5 f8d438c412c3c4bd6e24ec9a20650bf2
BLAKE2b-256 3d90e105357e7b530aa933d6ca646bb8ac6197f7de21f2af1c4a932203d37772

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 09bf9bcba94f9684ed3c5197b43285bdf5e371a5ae3d7d6bb82c8795a924e30d
MD5 dd36cb362984c6b0f319a97cf42fab16
BLAKE2b-256 c0bdcca8dd83d1c4e5bb45bef25f444b86be77447994d2e432087b314e0216b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cc87c8146655453b8c4c257288a5f7f1e1f8ec18f9720addb1dad737cb7e9b29
MD5 cc44f956a63763e47d8b889efb48a9a9
BLAKE2b-256 984a597b19ba543795abd76a8657249f09c17929ea60b5ee1af9350947ad320d

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b97a67f11b029104281af556d7e7df2f5d412e1dbb97c5ef2ef5da47068dab2c
MD5 80d816fd165726cec336e4b104d4e876
BLAKE2b-256 cf1801894fc84763db206ea301adad4abf1ed3431959c7b81e8eb3cc2ba76117

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 79e1954f9dc688ff952df5b34b1cfad4f3ba399698afde60d64ffa2708ca3f95
MD5 cbb76b94520f179f6a6b8e40ea6f2cbe
BLAKE2b-256 f7c7376fe6a4cf9ce46faa805b1799ec8ae146d296c9492a74dab84ca3995008

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d76c335a1bfff33794c9a9f3ee94b5ca2c84dfcf56dc7c9821146161acae1ec
MD5 54623e11d2d7a613e663da42b19f41c6
BLAKE2b-256 68fa4ddc76bc1788c14b49f9ad29a1ee4ad001d558deef22d5dddf34bdcea8ea

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8ba27e19db2db0e695b068094033410b053bc29f16da078cf0105a5a2b1dca7a
MD5 2076d079e49a2ef963966f316c9100e9
BLAKE2b-256 c17aa3c7f9242c746a24fdf9d28828b42f6bd6be884a81456db6f1e3d8ad6287

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c44b8b1968111af228bb310421c7af7d82db66246979f17032abb766274428b6
MD5 b5e384b039ad69fb0c9948b61a64d436
BLAKE2b-256 7332e46952c30e26245c0560186657acfe7a975cdba770ab73e6b14129800f39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a68134de588afc4f7a3e80e10adc6a083934a4f912216f8d48f72bf6159d34dc
MD5 2e845d9f483871dbf6b40da6c90b7298
BLAKE2b-256 24d5d319f0407494f462da738681278d7bc61655b2daf77a40195d96d5e05a6f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f930758119d99310c4c83980c69a4e7368515bd8d34626e9969655d3fc88703c
MD5 aec77c463b1fec4c28080d7cb90fe898
BLAKE2b-256 111bef9dd0f39f6fdbf4bdb626522a4a32f3ab8278e28f2bc88a6f21ecc00d81

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4b859a7b3111b96e05ecdfda92451cbb51cb58a50016ee8a85bfbab53e634548
MD5 ff0e25866cc5955a87f7f0863ab1196d
BLAKE2b-256 b378e17971d7e8e2154069ee1d6a99e555d3a93498fb7cea80e77cf017a6019c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d6d71eafd3e93d49cc12700c063c98bb73f10621770e1e01beb3aca08e16a8a
MD5 cdfd113702c1f42d59f9dc893de55b41
BLAKE2b-256 0f8004b56e539d156d99451f2b893d588c0d18d2c8b73dffce5cb854aaddb573

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 abd37fa4214dec5f2f2817dc68c80261a532e7aa57641953bff0bccacd9b8e60
MD5 9fa434fba2b73a609842540360c254bf
BLAKE2b-256 0858d37047a6d2c8018cf977835e22d2bb5936a589e7f42ac967b7b1a50f8189

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f1a625d6c0dc36c866b21f5c2f122b3fc4d0f9f5755073cd0f89baacf10fa783
MD5 b43c52fd92d8ee7c1b6c1705e92f0b75
BLAKE2b-256 cc915c72c4b9d3c6cfee352dbd5d6933ca171b6d7e47d06899d395411e490db3

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 40874c21a15052e07eaa44c827231f1db87d22a0f32aaf80690f8e25858e1cbf
MD5 3bf65e0f21866993064dbf145146ce97
BLAKE2b-256 1b58b6dfc2040086b72c937aa52f19a3c14204d73a41ade6872b718efbb80be8

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 174ee1de4252f9694f89a9e4bd737d6d24bd4ff93c7ac45d2c1d0cbc352f4f2a
MD5 81b0951684a6d7e15543f8c0db3fcbbd
BLAKE2b-256 5bb8913aed449dbc6b3a8a0ffb024b39d894a175135b28beb703eafa380c79f7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8ba3297306a6f3b94a33498947b06f5dcf6db9acf62276816217d531f77ff345
MD5 f9c886edd78e0f1a7e4be54481f86137
BLAKE2b-256 ea5fbf0d563e988db991061833566d1608df3eaefa96d427ca5b822df1c8ab09

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