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-2025 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:

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) 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.6.x series are 3.10.x-3.13.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 sage.all__sagemath_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.6.31.tar.gz (8.3 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.6.31-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.6.31-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31-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.6.31-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.6.31-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.6.31-cp312-abi3-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31-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.6.31-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.6.31-cp311-cp311-macosx_13_0_x86_64.whl (212.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.31-cp311-cp311-macosx_13_0_arm64.whl (204.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.31-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.31-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.31-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.31-cp310-cp310-macosx_13_0_x86_64.whl (212.8 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.31-cp310-cp310-macosx_13_0_arm64.whl (204.6 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

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

File metadata

  • Download URL: passagemath_rubiks-10.6.31.tar.gz
  • Upload date:
  • Size: 8.3 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.6.31.tar.gz
Algorithm Hash digest
SHA256 d6997465836d99fcae97a66d118b9a33777532da26a532b4fad066306789a6f9
MD5 be7280bbc8fdb82c07e65ce26c154626
BLAKE2b-256 c16b96670029415e75162583a27d5336b54106fd2d4b2f50766a536454e733a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 832bb4912a49bbce734c87cf23a682b01a2ae9aded5aacc505fdaf053e945500
MD5 69147227f3a7a5bc194d0ddca1d2442b
BLAKE2b-256 67a4169ccd14798697d09e10a6166e47b26cd716bbde1a819d1879ca05a844c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 092b0a652cd3511dce93291834a3dd2f42f7fe203294445876e890c39269e697
MD5 9f9fa5fb73671f31d74aaccf2c28f4b9
BLAKE2b-256 226e64857a3dae986d8531ba07b30f2663e1899fd70b465e22def703954f5dab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bf625962ee21a7423829892cea1419a09c8a3728679600c6196127369f9fc10f
MD5 30611c0ce1ac791d759b02e8373bf828
BLAKE2b-256 e9935af5ca61ee3f362128b826d620112e70f080fa87b22259d2e6f65a22a0ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f547ca96d6bd0cb95dd7bb45a764c572f70ed30b22ea2a558b5e594d98b227f
MD5 5908163b4b9c072d02d07ca587492e94
BLAKE2b-256 d2072404a35d30f5f615b2f6dc53815301d56d840895a571a3af8c25c635f8ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 63a2c6920915cb951f79f4a78b1901202cc834b23c8283b22fa831d3253b9b75
MD5 a7cffe63d5349f2407275410e9a5a60b
BLAKE2b-256 2dc34bec4d1fb6a268a7724cbb995a7dec48e47663e5b1e36d752f3a6c9228f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 44ff35c55b8bfc5c26229fc928b7bd6cdc407825722f7507c39bdf1b86e5a758
MD5 c148fcf646a7c952151add4be1f0ebef
BLAKE2b-256 4022bc8cb16181ed790178583b4f4bbcab76d7c98d3265382453af14c4fa6bcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a6598157072349bd0af2710a28888e4a438bcbe4d8d1634fd3833022b6c5a618
MD5 cebcd5f905ed7fee47dba704d700d1cc
BLAKE2b-256 dfde11476b7c755f35a5824e2afa65e14622057cedd9b10901e6ba8111b6b632

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c52e1d188de24b633f1781b8b30f16e3e242d6012309f07a976cb9e32d69d89b
MD5 a984f288df2e97ca90fe2128bc76cff9
BLAKE2b-256 d2fed550962e82383e8e875d2278c23c046823b5a6c4d42c0539e8a0998cafc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1af96ac412e4e91bf917bb4c6e1dd3b7b4daabe2d345ac980e099b3418da70db
MD5 e62e8ad6b46d318bd132b5af5576d734
BLAKE2b-256 6177eb1f49da7fe854e38d3769caf00d8ebcacb7d274204a32d11322899bb0d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 477477baf8eba3155de66d3ab31f03257409b0b43b9f9e2e983e8dad9ed7b0bd
MD5 5ae17305548c6af76e84d9512db1df1d
BLAKE2b-256 2ca41a949fd730914b949d212ea8527e8edfd94710a8404bba8f36053a0f985b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 103b696ea9484695ce514f6f226b5dfa21a32a35960aa8f0786c30d3539ead63
MD5 f742e199164804781057ba7e78caec26
BLAKE2b-256 ce07fa69add09c26485be1b6d89aab5f488f50bb921d11ee970c068c96d02938

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d9de738a3136a25a3d3c9b4d331061b752588058a7bae0263809d0f4d0147886
MD5 b7be018779e451ebdc650cd5b615cd52
BLAKE2b-256 5e6fa9874a697f5003f7d52884c40d3b863bc64c50bacf74655a2f6ec641b579

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 030ddde77f38a100a3267005c1e29aae7487dad0e2650de4bcd7969681e49a09
MD5 8d626f6130d05dbf9d4238fc61fbe813
BLAKE2b-256 a5415e497fe58fa9618146fe7f429d07a775d170b058dffc1de6552910d5a29c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 506d9015540bcb0ad52627638b3048c6f249569a2293bdc2aff69b9cc500fa1a
MD5 ddf14393ddb79928bff9cf61329c2462
BLAKE2b-256 e4d69bf98fe75fa30ee3fb3d05368c4de2a066658120e8d453a39d598efac48b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0f7fbef24550c0dba5b633f3c57bc4565714f579ce4daf6a5fe007c390131fce
MD5 2f5a70f4480aaafbfb35ac43972f12f6
BLAKE2b-256 ac7cae719b4c52423198e7f02cd47f316cb58f6a097a6c76ae1550f914640e27

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 20fa5ba6d19af4b10573ed397c486a145cef04870f5520d4d9b20f8e767099ba
MD5 18fead321db9a78adda546f86b11f6e0
BLAKE2b-256 0aa9f39eefecf4d92b8f141f53d70d950b0f7626d342297393d9eaf5eb62d177

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f792766f08f7cb851e89265e9034427cbfa831822878e2fa9adae908dab10e7d
MD5 52d7bc220728a77d2032fc7608176e7c
BLAKE2b-256 2dd6cb441b32f65d47c3d885c57378f5299091c9f666e471740f3b9c44ff24ad

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.31-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 46e613c61c1f64f76fce67bff60fef6457b68a8862b5d35937e9c49874048a54
MD5 d258d2b3e99d160b75302bf95848799b
BLAKE2b-256 b39d00c9c061a8ea94d7aaea769bc62fa142ec7bd1cc8a5a1785e022663e3e44

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