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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.7-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.7-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.7-cp311-cp311-macosx_13_0_x86_64.whl (212.5 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.7-cp311-cp311-macosx_13_0_arm64.whl (213.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.8.7.tar.gz.

File metadata

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

File hashes

Hashes for passagemath_rubiks-10.8.7.tar.gz
Algorithm Hash digest
SHA256 b789848b1df20d5fc81984ca51a3ae30cabe595c017bdbcc9c75ec232fef7bae
MD5 c63f01e4c07b151c67fa1a8273109ba0
BLAKE2b-256 5253ba87d9217f40a52ee044f8a74092740a29f3407ab5787e3666b87825e0ab

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d905882d27960e09d86ba154f643667b7f0cb296099db83e184d83c52c08ca02
MD5 4f035823cda30d80f50ad6f25be6f029
BLAKE2b-256 b53690fcf951ea751f6b32c8117fa5d1d1da534cb063e7ea073e52986758232a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d3393063bb9b8ddf5b6df04df4e049287c71d55618006a8ed78be3efea9a34f3
MD5 6568d85d93bd729b204252649fbd5b65
BLAKE2b-256 b585a534c49b6a160ed91c3117900ac7f280619d19669ca397976ab9816c2ccc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ccd88042350785d5e2ce25952ec7f1991024c8ca2cd23e3d82b1b4bd00053a9
MD5 03ebaeee48ec966743368ed16f5a7259
BLAKE2b-256 3a11feed6e19edd14e2d5973a3b9fc6aace2472820f936359244f2f0ce1d0296

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4221f111f0a0460c990c5b1a1b31e63a517c9f1ab398bead0b4011ec339f6358
MD5 891359dd648f3c1f4147ebe8ebe9c319
BLAKE2b-256 0dfe535408e0153509f3e9be601a8f0167e9e11f97d726401bdd9b050cd802f5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0206b5c0b60a24782a0960bb220ed19b9a27be4d30a18bccb976f0ea768dcf41
MD5 d54dacea86f4886e0f22ad96dc15440e
BLAKE2b-256 54c3a0979691614b8e773f7f2357cdb03f60bc067a4f02d5d06c9b3bdb984e5f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 46bf248ed9fad0ea67b2a262b757f0f9bbef132e26b073205de513f3178e3262
MD5 7ddcbb1fc73de8ce0449b6102dcb73ec
BLAKE2b-256 42612683d4bfb74812a2ebe9d022be55f0a8a3e32da0b368ccf95ffb3da45472

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de5e701df95961bc79fc714e9530968fe9447ae9c7f75a37a72e5922f3e69757
MD5 f399c789d689768a2d251f41735f6c1e
BLAKE2b-256 982d3057ea953821458ab62abb3e7aa6baf6937cd98a1eb507be586e3adec614

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2e48ad7eaa449a88fb1c76c838d33c963165bbc406eacee040fa6f69d7776b28
MD5 21e9d665f59adfcb3b496ccde06d149a
BLAKE2b-256 f76472f9d095d043601cb1d2d676cf419d655fa34ff82c9447fe5a011525aa68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f88cb61a4c92197dc214b9ec59d3c72c8ba4f5fd4d1fb04b58f104820b05bbc7
MD5 9c3fa09dba3d6f7e9a1bba2328ebee15
BLAKE2b-256 d800de4a4ffbc92ce46b6c53922c55060ccbb8cbcb52d5ee74e7a8cfb18985af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b80ca6568c41818ce4a0e7752959262318ab2e21fb00729a1d4ce892401b2263
MD5 1511cdbb37ecf38954fce46fbca0c7c4
BLAKE2b-256 aa9bd9ac29fef9bb1181716a68b79f25cbb3f4cb8440884d75a458e022adacb3

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 77842fc659d45dcb1d30455248fce50958ce1132541ef6d23774db64b63fcbc8
MD5 ab96342d05cfd59a825b39f559370ed6
BLAKE2b-256 790f1ba2ae19d9e393b0f0895855839dc466642cb16e3822bec32ba9b211a6ec

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 35dee1433644f0c76e2be2df656d16cc6eab8e7c814cb18b38ecc54774242c97
MD5 fc51d7d7dde8ffccb315cfd051d250c1
BLAKE2b-256 b3ff33d357546c106e2dbf30cd9f419f4c8d99917121f40b25d4ae89b4b9a961

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b09fa7ba3d812289921ad18954eb72c43f0a2e7f008c0601e8d17ccb01e5d23f
MD5 1f5f04db02758d942be5368cac0bbfb4
BLAKE2b-256 5ce0c2a88a70c7ef2975c73c46fe6c43b84926836b3b168448b6428b6926cc8b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6efc66a2b210511f3fd071202c859165f9e5682b04550c0ab623b0d06722e38
MD5 0be3c48bb0448d022aa6b0c353339551
BLAKE2b-256 dea5fed597b4f960c8fd0916985171301adba9aba4b7d83592d7c1b92b1e88f0

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f319b70ca8d705d0f38b55a851bbf9e9ff2b56a80d37ca274a57196a97bc2932
MD5 6d38952a412d8c784c047d0a25978ca2
BLAKE2b-256 b486fefba987b1e785f5cbdbfafecc576bbf41a824c2c1781e187754536a420a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0b4875e6bb3e9c5d81af68c1a020c1fcbc8a00e076d4ba17812d28bb4b0c9cb3
MD5 27ecf930257cc468633b25cb57e4f043
BLAKE2b-256 ddf03b071a2be51f6a821f9f993c7a657342ef39ce06192ad748fa9be20eeb43

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bf1589bd37abe6f2a59d6643b5c4f6045dc4cc45197fcc96b0a7b6fb00ba3001
MD5 eb5308ca2cff5ec1958f944d9695b87a
BLAKE2b-256 40ef4aad0fa16264168b89c59a7e3bcecd4ba4a4f8999a818aae27ac9af8c833

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.7-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.7-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 87654264e16ae4a52a3ce2782b965aebacc1a116285bf8decd77fcb264752e9a
MD5 7348d109ca70cefd47e7077dbfddc4af
BLAKE2b-256 8feec16806a15f9704bbd9d751e80e05005d2272830e93e2229574c689682bd4

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