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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.2rc2.tar.gz
  • Upload date:
  • Size: 9.1 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.2rc2.tar.gz
Algorithm Hash digest
SHA256 bebd53e7b9bd846df48f78131d311cf01cc41c288950557804eaab12c8d55ab0
MD5 262ec386097042f986298f3480a6a6cf
BLAKE2b-256 43516816a74ed2c33730836dabcc28f5a9d549701affcf4faeaeda5f923dcc36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4f566b5d095a8673861a75363841b23b51dbbf9f80e9be8c3751d22efe36e0f7
MD5 670d6bf06a0ae30317490108f7fb349e
BLAKE2b-256 f4a4e39331cf4247fe3aa1bf1914aa13d4afe53a9b913dca8474f288ffbe324e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 97ec3a3d60e179f9b8404d7d38d8e0cd0369b2453f3c71ae3b788c5b4f4085b3
MD5 fd23e836baffe38db60756636763cc97
BLAKE2b-256 053ab958b064a5f82d246535f024b7418289b9371ea0ca8c939053dd7e96c69b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 211d37175a8fd69d018cc0c1146d9f02d43b3d527499ec7ef2c3aba320a0183a
MD5 928ab7a4d90d35ff64ebb9848097d27b
BLAKE2b-256 2bc49a579371c075f8b3407990dae78dd2e43f9f448ba83659634c20af1bef58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 771c01640a2cb7fdec9cf83b11fba311d255d47a3cd63dfa46d41b423d149141
MD5 a1406fc4f1356de128c50f8dca81194f
BLAKE2b-256 58b52937cc75132922fde1c1c922e4cf846e9e79648bc983c658445f49c39b31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 66bab36636fe15ca5e7a81699f47a3deba91d01b2b080fb6e26a101ed9012bdc
MD5 1e17cce3b132a8c71fc9ae77a12b6610
BLAKE2b-256 78f144fff061f9f7ffc0fdd6429f6799221d3220de22a5d2d825b345c1a7f609

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0720877b779dcb44af71d2d20ee3982f3633282d0c82991943803a1c7dcd4171
MD5 b931c27493eb50e817c0e232015f2fe3
BLAKE2b-256 6c19c99304d5fcd42b689a524da1d394dc48fede0a1a3c3466344710b78e9c15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d87d6d05ccdcf35633d8641c32e77f9a8d232f0bfea0deef12cbd06f8978ed64
MD5 fb80bce9b7b4897ed67d1d5e7935c0c3
BLAKE2b-256 ce867adff52e7eb3e47011af66cf8e82cabf9c1ab751344d4e5ab5481a1d5260

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 862fe4555767eb932f81c33f05dc36e46e1e35a488e9387c03a50e09fce01d5b
MD5 62c434988fe73975e30ba20aef3cd01b
BLAKE2b-256 21a4f31199c99080ac36fc38a1d6dc0c8d613eb10cdc434e636f0572526eda4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56fe2415258a611b3433d70356f462b16b860b47f3664bd70b4bfcf282053ae6
MD5 e6a51e96cbd3a35c06abb67d483a591e
BLAKE2b-256 48f5f8c5233654a7c6e48968fefcb78cd4768a1638c34662d547a131b962b100

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 97000e0d91abb8237fb8d951b2b8e75676af593217384c718b57656e20715045
MD5 fa080996bea0efa265ea8b41ae781de4
BLAKE2b-256 210b3ed070f9f4ceace53e172d9de69a5b72200ecbc8568c7de50d25a6da6568

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e581582485564d3bd1ccf079a774a4dac1a136be2cf3bfadaa4fd1c4a6a17028
MD5 20811a293f55e7fb0ca1acc7d3563aca
BLAKE2b-256 80fd4e548afa2dbbe9b19db90d8d33136ce2b6fee6ab4ee0c933774af010614d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 fc89ee547b356f647b72df2b12f5c55e32d0013d6f75fa3cae233c963c164deb
MD5 d910a0cccff666942005a6caacb23fbb
BLAKE2b-256 abd32ab22191eef30f3fb2608f3599632c91fee4c1f46f7b4bf55f8c08b33853

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0cc2b5fc3d0e043ad67b2d18fa1d46947144921cbc4fe4c96ba397b17fdc8cb5
MD5 322194f6f7c1748c2379efc16ec6f24e
BLAKE2b-256 e78ff323e1262f8da1fca6f968edced2714cf06a3db382d130b71c4c019b0494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 829506d8918d465599b8d316d7d72f130ff677109934e0a46c4421182e1767d3
MD5 a600ffc74d39efffddfcbfdb5635f731
BLAKE2b-256 b8ef0659b4228fb77e74dab701cc54e59d4ede37fbbd511fe7a6af94e501f22a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a2e8d1372ed4489ebc44b92b6f7b09d6a9a16d3d368a3c6e8813f7047166a674
MD5 e47c718969205d22d0ff3b491ea59ac6
BLAKE2b-256 cf211ea9a832a8770000a131a922cc1c54354b533b4b75ee32d2d25831db45e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 15c0e1833acae85e28235a72bc3cc5c3619797746f21ca9da8e628ade1ca304a
MD5 9c7eb08a98b33dafd8cf75c995aadbe1
BLAKE2b-256 f8b7d488a87b02bbfdd0e6653380a753efe48e0f8bc21ec77da2869e395797af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 439af7fd146ba5f55deba859c782d258adb97451f05a3254480b684e15e6f4c5
MD5 722855e9a82130ea7fbf8f7d47cd0549
BLAKE2b-256 1eb87600de4aa4029df447ce60464363ec40e97da820318341e979b15bcdfb70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 e548df2a31d5c7df45455acbdd74791e7f8f5aa316eacacff3e906c52245de62
MD5 204924479ae71fb830a0138562e3509e
BLAKE2b-256 12d398c4bedfd389dde5c6d1130d12ad81959851e51d9e07a04d47c693be6e50

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