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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.6rc1-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.6rc1-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.6rc1-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.6rc1-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.6rc1-cp312-abi3-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.8.6rc1-cp312-abi3-macosx_13_0_arm64.whl (214.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.6rc1.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.6rc1.tar.gz
Algorithm Hash digest
SHA256 fb9c83e59c978bc7495a441dd9531aa45fbeb8aa891675a12ccd3574c420661f
MD5 be04d2fee06e26a11037aa4a95cd7079
BLAKE2b-256 acff4415378fa4728e9095a91871c43f22a90c9363eb1f8d2f9c4f84dfc12690

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 46ed4a5780dd4ac7b2707801489e2179a381ee44a8e76392302508a6c4c14cb7
MD5 2025cac8379e1625d7382abd95f4dd72
BLAKE2b-256 7b4483642c586ac50c8c6464a35010747c0d99b5362736ba4f9601d7f5dfe30f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8042742b985a20ff988e7f40fcd090a88c4a705d9516c1c4a06eb730b8ec60a1
MD5 f6dc1de904a0b39ebc63bd374c4c045e
BLAKE2b-256 26eda2dab661157057db7c7304954fbc6d067d598531ab410187b42106e71433

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9722be08c2f5c9c333bbaa2bc646c0229ba07fadde61a59d9bb60d129031a952
MD5 a50ab50862010179855c1bfe5292f143
BLAKE2b-256 0ffd5b97cfa844b189c8eb9d43f6bf485089b0953ca38bc55662f54cd6ce6c12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 98d2e501c186c7fdb5092586d60077a1e0aa6058f310e097b3adf8e0a39f7b66
MD5 216bedb8ba135420b9b04ded6ed78723
BLAKE2b-256 698971db174accc8627b02843b0283bbae7e77f59a17ce8a34e8d6cc20c1e2dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0344a7191c11738ebab2fe587ed4104b25ef7a5417325d6755adc75a6c398bed
MD5 e319f8ae940c75f2727f49af56a10fab
BLAKE2b-256 048e0f3e68aa56d72bf98fcb174c504a398bc24172d58d09a052680087bd232a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 44c30b17270d902d349039a94c3d9951ec25b8ca858884bd9b5d886dc374c0bb
MD5 a7319510c0d139129a65e60a1e673110
BLAKE2b-256 39939b5b3f9702b3e258c86de19b3706632ff82909916311551d2da26f811f85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d141a173edf0ba7e380bb612467acafd033de943ecbcf627252f93778a17c5f5
MD5 a458750d58e438476912961c5730637d
BLAKE2b-256 d69d08ac49e624af3333420ebf8167e456a219065a05dcfb151468167cc2b505

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4778fdbde5514b15c8faa1e65f8c2ae44be202920099e0c166327196b04bc33e
MD5 ebb4eacf1b9bf91fea08f0593682b826
BLAKE2b-256 43f293735b0eb86ec84f610eba2f27442a4af72bbbf063d922e9d7fc80e1f28d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e6c01b2014313d503b14af35c6642f679230dff0310be108fe8a1f0de4eb40a
MD5 f49d9d1a50357fc884f7a0cc4b95e289
BLAKE2b-256 cff71f14ffdab4cc24dd6b2c205b6a9300840a195ae45e26cd8f41d4b47f2c22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f427aa9e9e270561f4b6b1e61429251cfc3ee5cfd4580dd49d81b83064970537
MD5 12e9d956de82a2a9da0a69db40b2a043
BLAKE2b-256 9fba3668b9d6b9ed6ca1b2d9094889ab51d9da9ba002ea4d46306b6a482362c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 95657bbbe5b42cec090b036d4d735beb55aaf73b1ce16053d5c4448b65a76c3f
MD5 b9ec5678397c65c495124fd2459eb910
BLAKE2b-256 f49480cef464dd62bb5695a1583a78bfe8e24aec2c272c82554d84b7cc0d2099

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a9c822350c4a69d600860c7c2cb1dd02d8b5a704502d247d96614c322170cf1b
MD5 33442f095b1a5319dccd531559dd9a0a
BLAKE2b-256 e42fcc5f42209affc0c109191a055e994f8f10627c1d8e808381ae8523354292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d6cc9974709f16a6eeee4ca26ba49fd38fde07ef617a4f288149b1b8d39ba83
MD5 e000e79cdcea608dfe535d5efac9dac2
BLAKE2b-256 3dc0498facac36bcb369a668221e89d01772d623d224f85174ec6750fced3b5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 76d555f0ea65ea8467a7fe4b32d5dcf6af4bba031c299ad35b61c3456a136b19
MD5 913d0383346c4442373e6e8ed0e03a48
BLAKE2b-256 667da87e53d3ab02111bd68ad684361d612383eb2a7fd8ddd6327a514722fe64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 14613dfa25a7de301eb4ca37e635c2d4289c383fa4b48ded6681551ed50528df
MD5 357d2445dde3123de5b721430fea6bb2
BLAKE2b-256 a5194fe2f03a31980b2affe55300954a434fc3a563e7c1935eac81eb85aa0dd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 21f1341546eab712ec550ad47df145338295e323b5d65234c02747a45c8268df
MD5 c865fbba19d41530492a59a1a4e34887
BLAKE2b-256 d3b80f271bc141e0c64d17d218c57d88d2ddcc98e50ed3f5fc5218845feac5fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b3be96e899a00d73d01c69839ce357ac5e7e39e8a8c4fdda13fb95988d552111
MD5 f4e2df280c1e3539cb7b3046c223f61b
BLAKE2b-256 fc42b2abeab993b53c09d6a858acae7d5c8f755b9ea5e6506c795366d44b25f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 699135ea7db11f6d707d76f9ec2f89285749cf16f655fc04e54b24f85acd10ef
MD5 02943dec73e7f3b5f8342042e157b951
BLAKE2b-256 3a10df42f93a839c097c3cfaba0df9fb27d91c1d1fa33816ca265f9b5071119a

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