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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.5rc4-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.5rc4-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.5rc4-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.5rc4-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.5rc4.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.5rc4.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.5rc4.tar.gz
Algorithm Hash digest
SHA256 0f76987b1160a104df9378f742d226f9c6e9ecac36d2b187e77171a9ec0b6013
MD5 87aa97e25542e3ca8be4ebd24b2e9e29
BLAKE2b-256 a38ddf4f4ac99bfd0e9aabd3152493cc6571d7bfacf28f3af43a0b3142b876fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ba28549753c99b98167d5de5ca32b5aeb1e32d4f2d0c5498a5ff0cbc600001ae
MD5 20acff31edf7e847f444930ee1e7b784
BLAKE2b-256 108471991d3528464213a60b8b16f148167abefc944c161172bfc0eb4e37648b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1c7de82e0ec2f8e6a3c87b468ac13b7421b54f30f13c7693e6210dc071d584b5
MD5 136672918bb59c6c0a04553e14ac90a0
BLAKE2b-256 adcd16bc4d4af9de4a2d6c07ad32382329d8a84daf4db17f8e926d9f1fcfe490

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cdfbb45f97961d740001edcc836a730299956b57f1992c8cbe3c4214c7c6b19d
MD5 713a5308f9aeb1aad5cd2189a797388e
BLAKE2b-256 81475f16b94dc18371e392cd8da02df509549460d52c2d21534c3ad778708377

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 02219c538e2b6a4e81a81c309d110242a1118522c01644e2b052ef1a7474b988
MD5 15bf8504b425e13a8c3db0129501e6ca
BLAKE2b-256 19ad285ea28d882cdee8d05aa8ede06869db846f7ce230d171ff4ffa4b23a11d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 980e5d740a5a1f69e8bb9b57fc71ffa0a88116733472677463b2561e60619ce7
MD5 68ff56b6426f7ea32d718c47c6b8e224
BLAKE2b-256 c121540ad851ad327177df55604b46f9643681808b460c4e27d04e4bfd72fc52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 12779ee964d8b3bfcd12f0eadf3bbfd1f55fa80a280701e02c032386f19f4e4b
MD5 8efcb1f536b901ba99b1366178414d70
BLAKE2b-256 093eb7758ebbe7d11db9bfbc4edcef0c3bca81c3ea4e05b6dbfe9819a27fdfaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5620c1aecd3482cd177e1ae53ee4d7a46c22943f7d0eb93a799dd4f6f1e46e6
MD5 e44638bdd7101c5b4da14d10b7643269
BLAKE2b-256 9657452ba890f5122a47bc9add311f79bd264c611683a8ded534cdbbcaba00a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 02cc61935780771c5f249ed845a29a0a71e68f51c1056ee5d679105f280a203c
MD5 91844bb29f6c5183cf919541ebb69d91
BLAKE2b-256 b0a8287de255dcfc899ae9a80a7825b7cc441ff8dc7f224983b8c2c9f50ac525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef89e350130776aca417c05a2daa9550bae88507b5c418dabd0bc87b6f053464
MD5 9ef8921432cb3b141c940c39d66657d7
BLAKE2b-256 3315243193be31d00e2cb30d8b96b332eac0290c5311d5f1244f2d5496cbfd2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4f095d6b98dc1e610a8c9d55ad3634e1a7a09eb4164fb0040695bcce3e45f2f1
MD5 a460a3286b828652918de975270d3794
BLAKE2b-256 6192799c5899a682fac5cd39b97cf95da006302647c6524a382c6f759165b2ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 23db9377e85fd0fbe3e091adcd9c96d86a0d61ed3bf327a92543b94d3a91179d
MD5 21d26cbb5a04ca0da60fda83a144d0c3
BLAKE2b-256 afc4717fe8e757dd30b7050287e9f043e63a040546534d3a33aaa48384813634

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 359a71e94eb659dcecf28e8422d8f830d62e956e457c1326b9ecd1f749860c7a
MD5 cb7d2950844cc4e9846f5fbea294544e
BLAKE2b-256 03d8079da3953775872fb910d906f616ce0d68c152a3fcace787776651103512

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7354bde9d7cc922ec5cd560834556183fc5a1151aea3449a54d5085d900e85a3
MD5 9393525e1e8e68bbb88dd026b40b62fc
BLAKE2b-256 fb81364aa0a4109b2e4393ae24e4b08b5c22edf7b9bfcb2791d8e7a06eff33f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 02109b9fca76dee6bbdbe10dac112591cbd87082992ee926574d768e7f70ffd4
MD5 f1efffdac419e08a954034921f809b98
BLAKE2b-256 f1f20da4c0b46b4054c5f09b4ce84e6f348bbefca605b65f3546a0adda96164c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32187e74bcb3dd4966cf626b2dc9c0d03d0a56643d2db605cb03f660ec3813e3
MD5 041ab650eee19dd6f4097bac4b7f929e
BLAKE2b-256 3be57659c4c9342b4bb04a79b99803a9a99c31e086796315c436bc9e2675b17d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 06f2b686cd76483c3810215357aeafbbb7d77d499ea86c966dfe409ccc9684d3
MD5 46bfa9b2ed96fa64417936972d64511b
BLAKE2b-256 2fc38f652de97bf3d03348cfcfe87929410fe23d84e1058dd4eea1d5a46b6147

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2369ef9c23c805d6ad798b1e326af6fca28f29da296eed57909665585afc1f83
MD5 b97dcfc3ee95b3648c7cbb9419359066
BLAKE2b-256 84c638aa40253e463dd8b58bdc86f4de90aed229cc989041e92359ecce7c83b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.5rc4-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d42927de5d7cef32fd61cef4aa7061b8b32512508052bfddcba62414f57b2e1c
MD5 8eefa31f3c4884cd5bcd127b145289f3
BLAKE2b-256 ca3bda50d9ab69a57abb9adc74adbcae5e82dcdc56fb024f77b82f5eb42a5d25

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