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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.6rc2.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.6rc2.tar.gz
Algorithm Hash digest
SHA256 39f207a359cb1a9f57eb0e862eaeb8f845fa18eea8a46c3ed70989e769a1d0c8
MD5 4d9a46fb1a89ccc425c810086f0d6fef
BLAKE2b-256 92868ddb9e3e1adb738558fece75e5bb089509b85dfe85cdc19c366f14368b80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6fde37c0e1fe831dc1e8892978d4a6d05dce8882c1e16838b2ae8e1d8a397372
MD5 563c3101a896279f87f4ff9038d615df
BLAKE2b-256 3d94d67b7e599abee435d9023d092e94a0d409271d1d8d0627e84e4e09bb149d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1da74f497ac25a20226cc335f374a395459c2aca190ff9ee9be182e816c4ea28
MD5 cd4eb77702e1ecd749e0833b22691b5d
BLAKE2b-256 a52b240492b73ece36aa4e2969566715513961c0af11fcc6f083209903aaaeb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 587ee8e70a8657479793e67e42c434f3257e0e0ab7e4838ab43e275e87a2d40d
MD5 b142d2a826a8257da0613044af37eb28
BLAKE2b-256 2458e5e898bbab3a7643f231679c56474301a7ebb5ca8a0f30c1f8dd5099ad66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c38279832cb903d774827a07392d75ab491e958c7b4d7c47ed4cfe8f58b5e797
MD5 35a34dd1de851190e983488e48bd0ada
BLAKE2b-256 90654c6ba146b7c4c6cc031e8f1286b15d2d565ee8ba81928b0790a14a25a1fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3e086d4b1721471e76c091f1f33c0538bf5bbc7f87a2e5930b8590f7e8e3627f
MD5 f320378981e4db4bd130e080d0dec39d
BLAKE2b-256 1569cbda826431c8bd1428f4ed2f342c3b1a88872b8b6ba2fe7d818733ed6d51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4f75cb80fb4f5b56d783ac2454066af37bebb6bc4f1629b7ef3378b99600a855
MD5 4b68b726066ea581fde1ad07c51942e5
BLAKE2b-256 1bf121243ea545208025056c0519863499929c273b23b4bf755cc3e89c3666b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bb40a83caefe7f8a8a3e918b7338fc120cdd97d0a6122eb5e308ec00dc21c2b2
MD5 a6d2e7949ad3fc7736e82773abc2581f
BLAKE2b-256 58145a15e947c6302a3079ec149c8206bea72fcdd3dab67b3c7d68003756b814

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 41f43f883f037288056a8205befb2f651b26f44d5ac7d0fe8d8e677380789ec3
MD5 42772836d2ca1cbb22242c8b1fd6a818
BLAKE2b-256 1f71187154d4a368f6f2badaa40816fdd7f321c809ea84420b40fa7741313962

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98f5138d7479ac86d5019b3d84b7958b86cfb2b84697534654f106e56b744b5d
MD5 515b03d214b1f0a69bfcef15f58768b9
BLAKE2b-256 82fcccb98e4255ef5aca6ae95a1026cb2225d8a47dad8ddcbd0f718e2eda4479

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bf659b36a1dd00cc310622c0caa211f3c6ac4ca85dce77061f8654db8ae52c7c
MD5 c4c31f38cddead8792a4313588d62b17
BLAKE2b-256 7d6334c4a5b9940d34bafc4c19df1be5d988aa91bbef67633911dc47b93cc13c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f07630b572b422d729ace327c09f4f98a9213b5280ffe5354c5c08c883ea7b27
MD5 31d893bcae5ed2a901418fad738d236e
BLAKE2b-256 0f372f5c34e336de0d5a3a470c072cb99e50644d836e9078d94a97ff617aab24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 3d149007de4aad44c7c3b9792fe88c710129899b7434caf8fb629259e48271c6
MD5 4f776a0f617c6256e0431531052bf216
BLAKE2b-256 fc2b09709eb0fbc83d3b0857bb3a71be834063267147c3fd1ab9fd8532050394

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ecf6c2391bd6fb23e13b2f1b6a5fa307d8cad4e4f56bb0ae1ff23a37d2875137
MD5 8f58883ac797c385b1495c2f773d053a
BLAKE2b-256 d8a0c521427cb20afacd7f1303956af7865852022affbfe7998b39409e72d9a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 088d307f323e48370f16b1d908100f3547dc0dcdac301eac9bca2295cf8d1e7a
MD5 92f1ff6fe59ee3090ff4aec6fc296f58
BLAKE2b-256 2c4073b60fc908fa5dc2d9d483f5a8a023a7d9bd362418fd955d7bb44abb800a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c46e0ad13b7ad0760336a473488a80de2aad12553c33cf0d217ba90da338d2d0
MD5 4ab4d1098e87d31666525b13add0e5c5
BLAKE2b-256 6d93f95fb8e80be2d9dd94d3b77b870f8be00296d8202473170c22ceb1c8dc36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a9d3cfed369edda63269c53fd31d803ad40a0995d85e6780cf4c498c2d5484c
MD5 254822a72b54229487d5e81519f392b7
BLAKE2b-256 b0d96c3c936de404f02671c5ee40ba32594f8bf26e94609aacd944ec7fbeb800

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 a4464ccf6ae286988de01b8690f73ea642e608f30817e406c950317d4fc079f8
MD5 a942fa8d14e8f2f4d002392f06434d62
BLAKE2b-256 9834246ff957c2bf99877359f7936b69b9b562d6c1e5e724105bd5b4fc3adaa3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.6rc2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8cc3ede65bdf2db0f04c7ac980be5bb38a1ef939cfe07dd7aa41ef2e8b83a74c
MD5 f5d3f521698d64851774c5d56c38981c
BLAKE2b-256 7d091383c089de6f9ca12c45f42f8c59087da6eaf87021829a53036382abbbc7

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