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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.3rc1-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.3rc1-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.3rc1-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.3rc1-cp314-cp314t-macosx_13_0_arm64.whl (206.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.3rc1-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.3rc1-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.3rc1-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.3rc1-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.3rc1-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.3rc1-cp312-abi3-macosx_13_0_arm64.whl (205.7 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.3rc1-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.3rc1-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.3rc1-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.3rc1-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.3rc1.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.3rc1.tar.gz
  • Upload date:
  • Size: 9.0 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.3rc1.tar.gz
Algorithm Hash digest
SHA256 1bb87fadeb708f53cc73396877c95c63b0cfd79862821100866db111d5db8bed
MD5 bfcbaba280232088148e9fd5a91be6ab
BLAKE2b-256 dd5a1181fae1852a7d05df8a8807f7b97886f81dbb01aee26f92c28e615616af

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 39d63a0e189b4a5596839a786c24a832a93372a5e29eeb6e452c92fd669d0c82
MD5 0b33665ae76634c87d70b838d5640f3c
BLAKE2b-256 4233118585a57bd0cb8662b3ebb52bfbecdf1afe9335b36c5f7424791edce8fa

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2efb4ffd479f5326520ab1b6f3508ca6abd89dda61a443e37bbec5bf484903f4
MD5 4b5ec8ce7c70fb4855a10c8d55a031f1
BLAKE2b-256 7492b700869bf65d4457063057ffa4e2dee09914062fcda4776c63c5a55ff901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f351935ef977a88f5c735e043aed49a2499a952e6c55c52b88f3f3f40cb22ef
MD5 c45b76a1e0c842e7ae9cb9e3dad0bc51
BLAKE2b-256 00d3f23a8ef11e9cd7052251f98abea754f1ec075c110ffd9b20e7946f8a750d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed8761e996068ad434bacfa432f8788199203799c028f0000e5663ce4875446d
MD5 0ee530aa334b7966ada96f4fe40b6a8a
BLAKE2b-256 661ab5f9a2f017822dcc127f54ca7b547f668a979ed64a09fa248cafd650a38c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e845e23c1490253ad29205e6a686bc232ca3a911166455c979e9b6e4a5ae3525
MD5 752b41030aaee4fddb308e4560049b56
BLAKE2b-256 41bea1e5de406b402c6009d52d5b1a94a9693e599fccbe63768145300b79ec00

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 13a869fc0c79e5db16ec027780f459edb68d4a2c998f1613d3994a0219388c7a
MD5 2e9e97c2f7e86ac51effed55746b16ae
BLAKE2b-256 c5bb7435cef0cc1727e6fb161b6b44139e338ae5ddc329f348da010b54289f3a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f430d05941378e760d2616a411b2d474bac3985c32559b6ea7edb784c4328d14
MD5 1bf88553b809c398a7c8a00f05219711
BLAKE2b-256 4c488eea6fca926fa654d91de31afd0b8ceed2b13352ed92b2723392ccea9c24

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2ce283599986b80a4efb739c22c969aa69254435d885909947709408945f1b33
MD5 714322df86253ab489fe46a4466f4ae2
BLAKE2b-256 e616bf4238bea2d2c6e43f183a2cd4ab4cda492ac1064c33dffb5882e0c683e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e1c6f00d735ff06252c04db2c1f13de085b5660c90144b0fc8db64ffa969c64
MD5 68d868d648bcbd87bb611b3d0b144b52
BLAKE2b-256 2fbc9d8b1b0834dfecf68cd7497bd332a5facaec99adeb0cd215d6264cc771e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a3783b011e72f4d141cf00924738cfd6d681176461a89eed8a0e56571435fffa
MD5 6a216d15c859c1551c434a04e7519d22
BLAKE2b-256 7e4ef26e4164c2c5441b69b5096a0ea34b5e934d931d444c5520fcc4cf471005

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2c810bb60d9415cd42de5424d9f37131e56e0a1e5f112d87f12cb8f3767bea4d
MD5 3f1c7cf96f30caa34ca99917872f9c80
BLAKE2b-256 6e0f8d55418980286ea9920945e1518881fce809a38b410ba5133199f20d1881

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 15bc2a35bd063f68a966b0b6d7c47ddfaea276d52a4fb5cda54dd08733ebe737
MD5 c7b760a069ecace4ce90679d3fefc119
BLAKE2b-256 de407faaa1c12927818a38f028dd4bba586d059e10eb1b9eefce568d008dda43

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2af600e163d7ca2e5a27df9dbf5be1a3b7cc200f709032597b1c40368373bba7
MD5 af184132097e2ea2e183cdafb0c24505
BLAKE2b-256 8804ba13cccdfbeed85769ea19a186fee1b8eeb23bca44a3e0bb06efb20f8838

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0b4541715cdde90b05aabcced250381a7b45c534a5982f167056bd28a9749eea
MD5 8309f3142e77b938117e6853d0d71843
BLAKE2b-256 f17c9180e95eb8482f6a89cb565db552b5342770c34b9c79bf1e06a5cce0724e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1df7b7c51640f265a7c67408d46a1f82bdff3dcfce01cd5025da6c44624a3d8
MD5 fd368a2f873a7ee9b2553844b2b5e7a2
BLAKE2b-256 0af9727ed697b0dd883211c722df0129beed896d4b810ea0ba21457fb2146f32

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e0efb3429dd0148be5d336813cbe1bb0f832c053af5599a2c727971dc23c2d7d
MD5 8f57f647658dae283e5e19bd5f70d7a4
BLAKE2b-256 d2f3a907be804f6cb18257088058f9f01ae78d36d79697b9960bf21c34af35de

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f4c2bffbc388847a9dd8de107bd86bbb7f1257caa6ff51da917604044aebf5bd
MD5 70cf395b1321e5b691a47f8f7ff3337b
BLAKE2b-256 b7c2c7c650f462da760225cac80f70bf8b8b0bab3018f5b5977e65e2f43022d5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.3rc1-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.3rc1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6b2f09d1d198e87dc67f37b93e88df0a7ff1344af354358055ec67681dfe79c4
MD5 9bad2e54cc0fd87410eb92ad267d1710
BLAKE2b-256 7ffb50a4c373e70f7ca4fbee5e5c0342a05f6d53db18519a02825656b96132ee

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