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.5rc0.tar.gz (9.1 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.5rc0-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.5rc0-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.5rc0-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.5rc0-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.5rc0-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.5rc0-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.5rc0-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.5rc0-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.5rc0-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.5rc0-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.5rc0-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.5rc0-cp312-abi3-macosx_13_0_arm64.whl (205.7 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.5rc0-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.5rc0-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.5rc0-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.5rc0-cp311-cp311-macosx_13_0_arm64.whl (205.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.8.5rc0.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.5rc0.tar.gz
  • Upload date:
  • Size: 9.1 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.5rc0.tar.gz
Algorithm Hash digest
SHA256 63459b54af7d84db4d8ba364dda44f57b4a12943d28f974c4d7e700a271bb223
MD5 e4a037dd0d5a8024c67117ba75237cc7
BLAKE2b-256 16dc520c2d7108c3a1f9088f066a80833df11951d00802f128da4e45821f7d98

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 53eb7ead55686853c3703b982156696fc4079b25448628e54c84f8e9efb7d8d3
MD5 34d18ff71fd86ee7c83ece64ca4753c1
BLAKE2b-256 16df53ad335fd64b3b06157da2e5640934c0eecaab901f7b5323a623a6a9a415

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e970686133a907b59923c5a5943fa0ceaa5e3d27ee5a102984cb61f869026bd
MD5 ea0bf664d2f95961e5c7a86a16729df9
BLAKE2b-256 be57f757677d5d92d3e730b5a3166eb73a34d14768dce8e544f706bfa9904a35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7820f813eb12c2c26af45c668e4ec5c6c9166cc2d68f19088e40700f858faa4d
MD5 ecc14007c8a4b87dedb82dbf09d1712a
BLAKE2b-256 3df69b34ebde95b46e6a946df66cfdd55911e6f93220b0654e5f34696fddc9e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 654cdd9ef5bd51efb9c97a57a87e037f10d23d8cf5b90ecc3d2b227da5c57b97
MD5 e591ebb6b48032b2b66109a1c22e468c
BLAKE2b-256 23ae78828a1706f4cf2b4c8ef777bb4fd7e865fb95d719d9c58ef00263013eec

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f33bc330bb6532fdf9babcd1d92827cd937a5746ad6b6cabfe50979e8e5ac3df
MD5 e8b00d1c1c1b41387adc1a4bae8be6c3
BLAKE2b-256 33f52426f4c8bd45180b7213bcefece16d15038bd6f06d3bed6c0c3864f72abe

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4b882b4adba1dfb439e1f486d6f43a613f0f73ae823ad651e093444365009eca
MD5 9bb92104c6f3df45461b8712508cd53b
BLAKE2b-256 2169d385b8fb104c4ca053b1a2383bac1a5e7b5fc61f982322ec393d993f2f34

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 48ce86381c4fdc52e72e73cbfb460e5ef42e62942438d927f44028811ce688ae
MD5 6ac1a8aa06eae00f7632a9856dbae568
BLAKE2b-256 eb03b8e63289081978f0ae353bed73b80526ca789d476da50c92b075a2a0fe72

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fd89a9ad1bc592d7f4c0fb2a7dbc6469a3927df7e4d26314b36204c89c366f5d
MD5 ed42fd6593d60d3defe2dabb4f955eb3
BLAKE2b-256 fd9215e79fdcfa5e4b64302e85e0f3d83a77aec9239b138f6760302501a3211c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4153f109bafe3e19305c97fabfd59bf4fdf7758ae599026003b4b7a535b92114
MD5 0746141c9b0de10627d2a832ad7b1812
BLAKE2b-256 5d2a0c5dcbb8f84b6b6648bca3be385a6669705e0ede24d5b3193a9518c5b819

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 889f2bfdbfb7dfa44e0aabc4fa36665a55dae907fa66935fe2c4261eddfb37e1
MD5 64725b8bbbc4dba1b6855136e3397cdb
BLAKE2b-256 f9d6cd5f3cd603998422d0a7a137a0868b42c04007c853b18cfa0e08238b106b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0c119586700550c022f9fe7a1d4d4e8e7f3a5b97f3d634a49870651d56f65e09
MD5 9938691e33098ffe39622d60d8a9b5f3
BLAKE2b-256 83f573e1d090c736272827d68a8e0c6f16b5acdd737f1930421fb73ee0aa8909

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ac34b1d3e46bb02edd9356c5f5a57158c43a7e848c83fb90b82619fb93f0f737
MD5 ad136fa270a0a0afa832038a22bcdbf4
BLAKE2b-256 f0458e3a074d2f5ab0eeb4ffffbefd65b7350cbb5fe4b2361cc0ac08892de04c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 385cf7340f43d822a5cc6496eaccb981dba30ed07bbf24bac0f5bad244d890b8
MD5 45d49261a9475310a8dc7d7416990723
BLAKE2b-256 c89ff39392a6f1d478484decf9ba87cd17a3ded4d2cc14987a5be061605261cf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d8d7a3882def040f07cf9fd6f5f98e832e936c610775ab4770d2fdbf80e70b24
MD5 1f3da02350bce1957cc65860ed874de9
BLAKE2b-256 c9e544cfefe1cb15e7ddf2ca3c43e49c9e44e0cf3a97e6388d207886890b05fa

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64098df58f6ad989daa20f3f6d4ae2dba5be715864e36e62fb6f4d9cf86f713c
MD5 d9ee6141abf592d23645dc8461239d3a
BLAKE2b-256 a0c3ec18899ea4531a013bbf6578ee82123cb3a952f6eb4c3df2797344934921

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5ddef40c123a84bd39bd0877142dd3edcdf306a091541652998e904021b3e9f1
MD5 27741779f1c400ccf7d18c0a571e2387
BLAKE2b-256 308a5428dcd23d87c516856e537d5cb3b86c459357d7d0827f0b7e42d1492c6b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e557cf8e28c8e9465334b30faad341d60e17edbc05ef0947933bf6cfb431d2dd
MD5 e5601386a2c30fe18bdfd05331419999
BLAKE2b-256 8433f49b139d13f2388bce59dc574e7e4a0ac67ce7ff583da8a433283fc8a0f6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.5rc0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 4304a5b7b500ca371d59f55df8beb69152a83d1626262f714185f0d7a803eddc
MD5 a001a3e2e2c8b69b82a41fb4f936169a
BLAKE2b-256 e198ab760a0175651eada928a41a916cc807f8821b47fadda6656d90d5caf452

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