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.31rc2.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.31rc2-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.31rc2-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.31rc2-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.31rc2-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.31rc2-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.31rc2-cp312-abi3-macosx_13_0_arm64.whl (205.0 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31rc2-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.31rc2-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.31rc2-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.31rc2-cp311-cp311-macosx_13_0_arm64.whl (204.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.31rc2-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.31rc2-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.31rc2-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.31rc2-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.31rc2-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.31rc2-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.31rc2.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.6.31rc2.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.31rc2.tar.gz
Algorithm Hash digest
SHA256 7462d54fbc65d70eb333fe6691ba3bc22efa7726f638121b307ae1a0b84270b9
MD5 d409681ca205ccc7196a52c93e275c29
BLAKE2b-256 59ca5eae27fbb9ef962e697af2c215aeae08ba974e2c8cc853506f3d1fbd2c4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 92d6c8615986f8653f8720bc7042a16004a333a492570e2edb93fa9f7ecf57aa
MD5 78d919cd224409776d182ed74b37ce77
BLAKE2b-256 b29ab4cd5f8a1eaba9cc6c8736087ba2fde68c589068426823bb4cc445e6534b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d29f7f37948c9dd9e1d6a18f2c2257459f1cba6394174740db867b2bdcb3bc3c
MD5 1c97e85b4e4176cc06293ed76f2e5c24
BLAKE2b-256 a9cb2e0e01c3c59a881d987795347361b4b06d4596dd29e7fe89e1bd5cd3f9f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a9ed313291edb6b7382b1ae8502977c61549708708bfb36b7b4f4df90d5cd13e
MD5 f6242f92bc9f2f04e0893708529aa457
BLAKE2b-256 d97aada16b38273d0ad62b585fce3ea2c608366dd66421599b1e39660d6fda3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 081764dfc67993f29d56cf9884b01910d9eb727b72f129ddd23780c01f40dad8
MD5 14b987fb0631c49cddf2a47b0b0be0b6
BLAKE2b-256 36e047eb7cd3cacf582b27c838dc9ad01c9938cbe0eb15f7c93fb726bafa6bbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 7d5434a1a3cb06d45a5254a842b9658cad4a6e61a139ba9f6f4b39d0e6b0f181
MD5 c16023aed1bffcb5d0195821e6811d9d
BLAKE2b-256 4ae951fea1d23c2e247e1e20c14eed1a3ebc437dd612f962a3c977ada039835f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 9c88f067d433b539497f625af2b450c8f76ba3a740c8cda49eabb329f67cccb2
MD5 57bac8bc08527ac390e073b576f65fbb
BLAKE2b-256 38f32e1a3d79621fa9bb8cf285d2e60b1ecd5aaf8bdb0195a7aaa3976fe078f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a6f70f903e1a180ef74925076f7aa5476da0f7a3c2e33e16de17390ac704a279
MD5 19456cf9430b8f8257460027ba86247f
BLAKE2b-256 26292e40dc7a1754bd46c0d9160d97b77be55e002f1b7d34e85b346ad6d4b0ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 57de311dd3a32af096240837eacf5217d5daea0335077053bc196f45388cb77d
MD5 f8702a8c57c24ddf17cde93d46c5d6c7
BLAKE2b-256 59e478b82e2d02c9ab9a1694e950d278395d70884c614d97caa3055013e0608e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 33adcbbbb07ae2559588a3ef7d6cccd72cd60201ca1c44ce443ff2223b02d13b
MD5 33754b526e68a83e8746f7187ff99067
BLAKE2b-256 34fc6e03440e56d243cf04c9429f897c7dbcfaadb17604a1e08bb3c5858c3928

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9780d527ec6cada3b71352c581d435d106ea4b2ffb0aad5b7ecab2fff44a79c0
MD5 730bdb14a9f76f2ed80fd149ba4e907f
BLAKE2b-256 91a9f37bf504678d76570c0f30207f3aff28a127d6d60af8ec0c8ec5885c3905

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3237ae413f8dd277dae2283de635ef3bfa1dd089c5667a93aaf54c58c1c557fe
MD5 f358dc82554698b75a02bacc4762114e
BLAKE2b-256 f362cc93295d604c8d0648313d55ab9a7df6ba98211b2656d4bceaac3508d144

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f842bf5f393f49579fd12609ed7098a498b8189c0d42e0ac3cd643df3f72d483
MD5 9873b1cfdaae94873a81816b98fa3187
BLAKE2b-256 f7b9c36d39cc6880dcc3817f4be539fc32bd9ecb3a577a69a6cb11887e7994a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6f5936e31a04c14a4fe2719b66ce8fd09a7b7f4eabcdf15f00abaf361cc41da2
MD5 8e6a90b0d928fb459c0b2c22d38e6f62
BLAKE2b-256 d40eabc1aec0d0a1b846e75e46a815533af65c2726ff2b47b2e0a483c805a22d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 12d4dd108099cd5aaa3620942e86ce2c52e36ee17deed9b70b3ff5e64a1c245a
MD5 9aa1f1942170ea666728c582c8b3bfd9
BLAKE2b-256 121b053064a946577eddbe79e7d5e411882b3254196d6d148a7a994a4b62f97b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 33e91df6a81e5ca3c9d53a674dfccba195fd2aaff56916e529ce62f302dca47c
MD5 e435a229d958eb3377e3fc58c8aa0569
BLAKE2b-256 404a0c46c1a74aa4144b08a9f70baf01df87100cda2cc15b2c7693858c70ff09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b380a340531cb88286c5d4337392fe738120a9fba416a00b32d11fa828ec9dbe
MD5 0bb0e42b7c24fff62a97cbe9d15d828a
BLAKE2b-256 5e32eb2041e9d65f1134f31fdb22e0aea7a54b9971e544088c4102c4dde228e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6b245d8bddefaf5bc4df8bd424890f39b3a499a2474e92ea9ee474f36bf89cff
MD5 73d90009d79a8988252b07083d5df4ea
BLAKE2b-256 5ed5dbbe144f2abc205e930a69ae0eabda7019cac0edd8e677ea3ad62152bb49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.31rc2-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 d0f0fd8ffa9400a081887681a71fda64c0375a15d4ab631be77f7770eea87b25
MD5 4db8e7993d2809ab9bca4ce103bad124
BLAKE2b-256 672a55477b506f251e0cfae5a6083207c200a4f82a2f70b113036b7d45b7facd

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