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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.5rc2.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.5rc2.tar.gz
Algorithm Hash digest
SHA256 207ad465eabc71fb45345f5416b349a86cc8f6284a12f9775523e0dac5aac943
MD5 30e4a3042170247e2d7eccba49f9f825
BLAKE2b-256 c585c53b73e6c9ec913e3abe82ff6f39a289f980fdf40ce29cbd58c79e7dd08d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 65e1c75d17d406e7788e9584751f5674d42903e22e1ecb2c1d5ac76708a53f15
MD5 d3dbba025ac9ddf4eb4f2c6ce9fff67d
BLAKE2b-256 0250de8dc6baebaf64ad16402544a4474c76a6ddb42ac0e69906339d2ef642ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 85a522edf84fc9d457999ee0c4591ae29b4867e71d03b45414a1d83d6744743f
MD5 7c5989b59ac4cd61370c5fc84090e01c
BLAKE2b-256 552e80f379dabba71e6cf5cca9747deb0925bb8534f5a0d835c3387c29cfdcb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9fc18d4ea62c9417402ad99429fe47ca07d7883701046196052a0f9715d3515
MD5 bce5444bf591e0c7f1497ba103b6be5d
BLAKE2b-256 ab8c41d72433a6bfca80ee14b9cc75c4d6d904fb10932fb0dfa4e5316649a765

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 83dabb22714661dc653b695da44a59614cf661e57ca8ca2ae517dd05278b1c81
MD5 91756af3f5a3ef734a8a280df13bf2d7
BLAKE2b-256 212e2895125a997c6c5b549676a4af69860f8b2d438df784b024d29fe7796c40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 83fada279f4918363857a384738ff9d1aa4bda0a8743086153bee4a2f5766290
MD5 5c68cba2611b1b8f0889c2a649e6c166
BLAKE2b-256 c0a0900b25bce489bf23c1d8bdc6c747cd03047dd70c4e90f0290fd0e061df89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 bf061734ae7760a28da9b8c8247e9ae803dc245729e9fe163878f5c56a295b40
MD5 4f488a2363284e3ed317faa2beaa144f
BLAKE2b-256 bd95e3f449b078db38879db173a297b17e49669b5b9b85823b901dd492ed2063

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 377f25edd4d4da80e55e98aa168129314478b83e2523559114a5429dc23fdb18
MD5 940f2f23ce4cf6b1d78b314c39ccba03
BLAKE2b-256 9bbeea08cb1d43892a16898f6ca322b40894cc29d3b77e268d4f1922064ac29a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e2104aa0f8094aac97fb09adc1bbfc15dec8b54838a0b820124ac29fdd264e5c
MD5 2dba2960015e58724cf4afd7306130e7
BLAKE2b-256 725d25b23eece71c435dee1ea00c2b38d7534899edbd5aa835a34551c8a356b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 204895ed19a8a28e332b6bea3f26dd69773615cae229be06fe6285543ef8b5b4
MD5 32e4836a33f44b8eb88fad33b1f9c58a
BLAKE2b-256 82d041d5779c3bac1a45a0299a84bdf31bc19ff6475ec9604e8b43e9b2a5101a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 53eed77f65004e1d577fc143bd7207ba29766e3bdec6cfd673f45da34347f756
MD5 c70904475784b2a3879b6f7a35f6436e
BLAKE2b-256 e94b396d4edd94b3aa778cafeb4a1c6e4ea2eeda14a5c26576a62c4e2377dfd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 1cb23abc051125bc33cd74722c974bb5f7c54644a8e7c6cbcd7fbef70148719d
MD5 54cf2a9e59789542eab9b4d9e20dd013
BLAKE2b-256 5c19aabaf25a2cc8736fb75e62e6b3f9e3626edab51706d6a3b8355cb8ec5719

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 5dfb23956e7b35231c5cc605df54a6250c32394647d6570d7b97984bdd280059
MD5 e3b4984cb142bc793dc6c31a96315ed6
BLAKE2b-256 5f3491aadf47003c41867fad178bbb89c9f5efc2f6a603590832fe1ed3b69a61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b2d5a923c69bb8314a601fde0f9b1c2e59171e9ad2425793847d90c90940b078
MD5 3d7fada63dcc97b070646d6ad7bd8126
BLAKE2b-256 78a66a0224e56f54a7ae37834a2b4962178f51c61df3f157fba4c0f82b3ac978

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c3ecb064965589b552ea3b411633a20db1646b2e385959862af746542a7770b4
MD5 76621359d448d1a2f0b32e90d2872373
BLAKE2b-256 e685c0d8d509c44a8de32d006a472fe001b589fbcae2d01255b0a404c0fffb35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0e1d72ed385ceef2e3d2d8265f43a46aa13c7b4e025715804e376d1ce85a284e
MD5 29f6440df759c2ca23bbb401677aeed8
BLAKE2b-256 6043cd6698a0edc7f5c7bcd87d08400148d1b484805043ebb61fe06ad10231ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9ef256786b0582a2b2093ea75cf377be2a6c7eb538d7bf7808b97c985b357bf
MD5 8716da85a0830dd5871115978518b00c
BLAKE2b-256 3b96eb4d7cfc4fa6ceea063d1c49a64be9da2779a4b60b66828c7a0dfe20c053

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 343a35553dc0b535df72db29b055a81653100948d1f90f5d3e857d898e868e5b
MD5 d6b3258e9fda557792c8571d9907900e
BLAKE2b-256 62055277d05ce9ca601a142588e634ac0fe6abfb2e33d05c75aa0ecdf5ad7588

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0c084720692c110e837b2ca4db4995aad8e0821b092fb1e158210f2e9a677adb
MD5 01c99552ab8ac340d2c81733dd3cc219
BLAKE2b-256 cba0e0d7167e1bc26ee4f3a77b1cdb6822a855d6aff6865e8c5b2b9ac5e3ca9d

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