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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.5rc3-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.5rc3.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.5rc3.tar.gz
Algorithm Hash digest
SHA256 90c389cb69611edd0bfd5f8a1e9bee0671c26e3975dfc9cfc35becf040903baf
MD5 2521f7a93e56788a4fcf625eff6c8ade
BLAKE2b-256 5a1c3be66e3fbc354c5291d709b2004de691f461557a8769b5058fde2249105c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 870de62744dc01befd9ce89d0270dc98d5ebf0f9c35ec58940865199225ad891
MD5 20677580b630de9ee02cecad0f8208aa
BLAKE2b-256 9605a0f45b02ee30b672315da01c29e6ddaea413dd7dc68604233e05d4f9be38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 082b352d61c1a0f0af840b5b48dda08348344cc68cbf404980d7e9c74b0fa589
MD5 48fa98086551ca9b1633f9e1135072fa
BLAKE2b-256 86e8dec9bf347d731666c2030a2246289c581336bc28832fe4a3dbff916fe2d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5db6382ffc66fa6c2693c039307d958b1501a25d37cec0c5fd002a5c73f5af30
MD5 66b78d8e8adad9686eed31428cbf69dc
BLAKE2b-256 e2e9e6ddecf796e23c0532d8d50b698ef8fa7640d560ade7344451c2c6e4fe55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 06c59fb4f69bb61fdf6f67cf681e3682c9ce17f607470bd3efb155b324d20639
MD5 3557a68c5237a9b160539ac35bf9afa1
BLAKE2b-256 9c1d2d9c890e48e28a006103ac71bb0ddf75c33feb9576001445330d8054b78b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b70459cf22e50fcf04d63f2cfd9c6a2b1fddbf69d802aef775ab76b62373a2d0
MD5 24a26a684abb18a14c1e59dc67d5eb89
BLAKE2b-256 e177073b79c882ee489a638c251a2094b24d1bbe72b2d8d7c7b0e24ee981e3f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9c6c1160ac4d75f8e645a0c3b1a510e4936b0f5c073d9337252db5020401bab5
MD5 245bafd268c0c77936cc8e6f0a1b315e
BLAKE2b-256 c554acf6cd3eeabe4247df2d5513c7522e4efca5b0aa889c0ad0ca14e5a53a36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a3cc71178938d0dfbd22da0495f5bcccc2aef20617aa3b3f569f3be7e62e47c
MD5 ce3a6d5af699c5c5e0d65c054d1e84ef
BLAKE2b-256 5827ba811f918a4a29b10148f660488eb3b590a5f8f6291f2417dba74cfb3a05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5311e822a90969c2de8da8a83681ea42ddcae75cf5c53951fb9ed8cb4b651cd3
MD5 f8b3ecf13aa7a442c7ca2b0bf30b1024
BLAKE2b-256 b6a7c836ef978ffb1d69f8a6edb7c983d71c3907853d01d90ad2cbaee706c41d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef2ea9be128e6044ffd539390cca4927178d0a839e602c7c4581697c8a47e561
MD5 b1394e4c216356c521936e1cefc8683a
BLAKE2b-256 005e98243a58389da0384051f79bd61fbaf3580d2b6293213d103a5d6a16a77c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 37a8118fd93bce0b6a3ac7460598fc349408bca9fd070f7ca6837421bc960d52
MD5 7d3262b835faee3e1edeee5025468234
BLAKE2b-256 65f3599370122e2f5b9b1b0264780e0ea06aefd4fe3aa6ef206a10bae44ef40f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 9f0dc7e2753f0c0c061bef708a83ddf880f549673813e5e3da5e52a70b3915e6
MD5 e61d4548e54d0234302908a3b41c9425
BLAKE2b-256 fb32d4a2a2eafb7c428fd8a2e0d216c7a2e6df9f66c35755f820b4542604a1f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 818ef0ced9c94ca121d90571475732fdf663d0ea919d166d82ac6f5ce6acbb7d
MD5 7b1804817d614b95836b58020b802998
BLAKE2b-256 f34bfff941895d48e68a1428abc82487661a2ddbc4cd1fb4383835f847b206b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 be28e2d5a98d4189a857c301fada247acc13d0cb76dc5d2458c0a7c318f29fc7
MD5 0674710d282a346fca202bfe832e4d05
BLAKE2b-256 a11ed6c5e6722d33ab6648bdb5dc8f4ef1d2a29273974259ab8f755303beca31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b1fec9a69be99b2bd714b436cc26aba3f5229021ab051d157f0454d404d291fa
MD5 b436d82ff111b8f676ef8eaa7a2e661c
BLAKE2b-256 6ea6e5b622cf90d49e4fc5f9ac8f63484b1b4513a84ce5384639654749d9eb68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 595537535934f3873d0c6f08519d9abb1c9c0079ce395d5bbdbacb3796340d98
MD5 242dd125a3499c5fb23a3270470caaa7
BLAKE2b-256 e26f087d7c929cc45031fb0d19734d83d636df9aa38fc9272f62571d8ac60082

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ff9dd7301a0cf80e82d1e194ec2906eba4231186ceb001b99455597ad4a8e701
MD5 c93b827b0224f5518a17c7bdc785a157
BLAKE2b-256 d4c5d872882cf33e88beff65459df667a0b68f0ee10dcb2d6a6f28884cd6a437

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e996577f59af456563c8bd7f4d4e799ca4e1bb395c1d6b8794925663234c495e
MD5 49ffaa33028062d1ee897643c03f0db6
BLAKE2b-256 b820e3cbbfa1184a6e777e0c7e539c0bd3b70575618f4bd2179ff0b44d245af3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 dee33aa11ab8871b8b08d8b4a9a6bf38707f5e1d75a2cef43d618b51f84034d7
MD5 9a12624442014dea8cd171b91a47bf12
BLAKE2b-256 80be6761000c74d40a011acc2757ac76ceb2fb2265c51e58e7cd244cd6068fb9

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