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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.2rc3-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.2rc3-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.2rc3-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.2rc3-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.2rc3-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.2rc3-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.2rc3-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.2rc3-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.2rc3.tar.gz.

File metadata

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

File hashes

Hashes for passagemath_rubiks-10.8.2rc3.tar.gz
Algorithm Hash digest
SHA256 32d101cb8d769737bdc438a795c6a924baf111dc4b86b5113978d210eaec58e8
MD5 a4b451c908b200892f35e82df33babd4
BLAKE2b-256 94d43a239db6e7d0fbbc17da49850884398129d77333ea2c965da4dd1e79a8dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 742c2decd4b84cc1c4deee375c7f6f5e0b1b9a3f4a369fac5cc21eec78fe66ea
MD5 1e9ab918d7b3f466905778c76868c7c9
BLAKE2b-256 dc0bc561dd31cbeb41f1454fe578116bf355ae14a4a1900b75b4c671dadddd12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f7cbd07128ead3797d801fd0b6e2e99814effa41e0e3df76adf23a14c253cbec
MD5 916bde7f09403f16b64931636f63d6ef
BLAKE2b-256 57aa8ad6defed56d862ccefd56054e0295ed3aff7a41283385ca5057751c7a57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e62e2aa233b6abcdf08b9bf57249cfdd7bbca1decd9051bf33083120bfacb791
MD5 ebd4f5ad250972775258e1d20da4efd3
BLAKE2b-256 f8a42d01e8e4e0205a39e42b415108318a4757f40dabd020a928fe844f7d4332

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 62387344b436b2be32bfec3df6cfb108e2ddb8a89940631f4497bab21da27552
MD5 b0ce2e6e3f4f4e53553069b613baa3f1
BLAKE2b-256 ab017f2f4341f353d485d4ae6c3bd226ce83ad6c79b382507d8d6804b927918f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e009d40dd5fd35179cc650e4de5e9343a204aaaae2e33cd22e54dfc74f5a4ae1
MD5 c974c806d199fd727b8b73bbf4d6b24b
BLAKE2b-256 0e2278c17514f14f1242730b54ff5f9d2459f41fdc2c39ec26c6aa93a5a7d3b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 b8522d0788763e27ccbb394c51df569c495b123263446c89c6df8a9faeba6f34
MD5 579d6b557c5627744083b580c63b999e
BLAKE2b-256 4ed6ab2bae58729801d4737362fc15df8e55bb45dc8f02e8f85deac0965a567c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5c996e7acc3f02e0d81bf650685458945543afae43f994780897c53dea911a57
MD5 f185053ae974abb1d9ea1f3270cfa320
BLAKE2b-256 3ae1e96a3d87786e97c805ea3d7ff997d1ac4f6dbbec4e69dff83a8ce6225510

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 17a03c050a237135bb4262a78cb7d9532106c002478aa861a70413657846d160
MD5 d03e08bf57cb7ceac02253a3db905007
BLAKE2b-256 750d54e335d146ee3074171b351ce52372881bf04d782aa93641bd5183834284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 306caeb0a1ecbb086067353dc6e5aff6cb4eabc866f09c49c49562e66f9b9d7c
MD5 ffae897afe50e7527624f5fe599ea136
BLAKE2b-256 3e63ec5e61592423fc28141cb92551071612ebc554c8e8cd4d8fb37f86ae6801

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 735d1b32543e6343cbf8708de655d1f1f6023b682da0191ce16a1731685e8b53
MD5 8c2073768a5300ac40604f468cc96be2
BLAKE2b-256 773cf6364cf3b3ee4b2200c09e5236fa6d4f3d7628470b0cb508f3b5fbd85bac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 916873f1bde9e30460c7d46b2805afc8be1713d3c6b5b9e6ed12aa924877d9ca
MD5 b377c2dbf1b7ec4c7ff3d3dcd42a4f65
BLAKE2b-256 dd7e6f50849c5d32b54dce3e2ff501952448d2185b0f256e5343731c786e2cb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f0803f236a71ed353498ad422d1c0d371528e4d1ca1c428bf5c23a002b10dd03
MD5 f4a45dca21d949e38dbce53bbe74cd58
BLAKE2b-256 3210761e2e99793e8cb57d02f8339dffe7b98feba74d00e388f0b0c794644e4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d0ca3b53e255d5ed3856d4f51baf11f49f0aaad8c8a2f9e1e5886bf0aa19ed00
MD5 8437457816a6a86aa11c76e237b311d4
BLAKE2b-256 7bb697953691df94eeda07232b05a2715bcfab7109c9c52fa5e31aab7da16480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b4634b262187648960350b4fe7dbb47a4a92ddba930b8a14de23449a43c8c5f5
MD5 fffb7ce832b070c0cfb09d0c939ee0aa
BLAKE2b-256 24b6db06ae949f1b58a03ac7963633bd02f7cb0700c529dbf0047ffefd1c15c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa6d12ee188cdbef85666aaedd9f39dbbff489ae87f17147bed03072717ac0c0
MD5 1ee8f2379d60ce8a1bd6a0b53f21d070
BLAKE2b-256 5d333b6f151bf5ad5177eccbdc49643de27757dd2e9a2f8be846a2cece363ae2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 63273afcd35e0d478b261f04d6a72ac1d7f0825094074992632ec4fef0dd1e0c
MD5 7515cd9d433f4fa61186d5281f95b163
BLAKE2b-256 3123382b2b4810f6a55ee126ca64692522f78ddc895e45f5b3aced7e4c590c13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7bc13f79895d9ef188b452ea01cad4fcbddf6deaea5398a0fc1382cd42566441
MD5 182bdb66900561b819005835edc50cf2
BLAKE2b-256 fdd17dd51eab44bb512f6181981ad9cfc7e066d7dbab48ec2ae5d9bf6bdadc39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc3-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 62544eb255c5af18ff176f2860e0aeaebde94d52795365f1e583f2d8f68641a5
MD5 92f62849e1e2eddc942341d915bf2dd3
BLAKE2b-256 00f5f249244553b3335bae38a9093ef44a80fe02221cf7ff6fb934cdd1257953

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