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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.4-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.4-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.4-cp314-cp314t-macosx_13_0_x86_64.whl (214.3 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.8.4-cp314-cp314t-macosx_13_0_arm64.whl (206.1 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.8.4-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.4-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.4-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.4-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.4-cp312-abi3-macosx_13_0_x86_64.whl (214.2 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.8.4-cp312-abi3-macosx_13_0_arm64.whl (205.7 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.8.4-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.4-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.8.4-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.4-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.4-cp311-cp311-macosx_13_0_x86_64.whl (213.5 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.8.4-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.4.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.8.4.tar.gz
  • Upload date:
  • Size: 9.0 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.4.tar.gz
Algorithm Hash digest
SHA256 e9a4cdc1fe80ce8434bc172460b1709e34a4896912f72fb89391e9dd00e20e80
MD5 935525ce58ee73e93c444518a26bc54a
BLAKE2b-256 37dd5dcef709f4fb23f8f455f5a318c61ff994d5466564de5665ade258dca732

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 031acd6f63bb545df2f95932b87ead7717c57f43bf576565a8eca57245ecc0d7
MD5 b3feef52c3a9a49b3ee8ccf3f6101c43
BLAKE2b-256 fbe3b2d5bed35a782af952745d56a5137ff6f02d9accc338a30be49c1b0372dd

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4212c92885dcfcb764837e815a7b3d3f39649e526a7dcf7a94212eb86c1de6ce
MD5 dfeb8399b8995e0105c181530e784581
BLAKE2b-256 e445c90c963bb88e8882204ff3db36fd0f61e077bf5af6a99a23e63ff73c6c05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c41b11712276cd2914278b57adbf3f56a6ffc026dcad2ac512f235bb32ef3f28
MD5 8a08cdf5b2365a8d927990750646aed1
BLAKE2b-256 73bbab330e3ead70e7170df1c11d44afa95857d765090205cc68a282c6c683bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 779cc3323d9e63d81c7e78f990ae0805413a8f647c2b88a7fc55c9a9c5fa9c42
MD5 6b561044bcec0556657beeefaa93f34e
BLAKE2b-256 085b0db6c4242a88c0fa5aeecd6d5069b24e3c744ba496b929ac7d781e7a123e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 99ee59d6fae5c86d0e037478107163c2c5a6151480c0d729cf67589fc9d34a93
MD5 ee587b7035814ab4f167b9e2bab1adc3
BLAKE2b-256 8c0174013082223d5e7af934e7d872107a7f55b27824c2f479236a15103cca7f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 89e18ce581cbed34851f3a48e36af9d605b69741372319c7a4e2fe387e12161b
MD5 1d36018cd9aa20d86a6d4e73a1f6184a
BLAKE2b-256 ba293fba3da155bb71ab337e3e2a11f98e93ba5f3ecb090e53a71ec798e94db6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4d27a327709064bcdc759da268fd085ff10b2b280270174704710cd0981282a1
MD5 c1e79556d37779e13a6e64717acda3b4
BLAKE2b-256 e5d5cc0dc2f20367333a7947936bb784ec494ee372dc545f6fb0cc11ad2288b5

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f0fa8a011a0c3b48dc9ef7628e34d63d6804105320b4eb7bc4b8309b592f1262
MD5 f2227da9a1150d693d31412c061c1ea6
BLAKE2b-256 c2ca638282eac39f1d27c13fd39e349e91f8a591d683d405d584787b99172a4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 155efe5e5457e14d48d6beb72f277d9e0da39c2304c68e0bbeddb5284a50588d
MD5 734092fb843c43a6dc0b219610839e93
BLAKE2b-256 adc889928f80e85527303316d91b0047a4f152b35fc3227b238b7b5b12b6d375

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 518cb6d48061b10131a3759a953e58bafc2f805bd5243129d349babbe7e98761
MD5 ac876f703bd11ecc85ede33c7d896470
BLAKE2b-256 6c33a09c44c7ab8ab8f5a077795448c2024ac07478babdcfed6dedbba6abb390

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 fe5bfb1c0f52816353c164d8aaabc292f93a72fa2660a68f86e96947ba9bf293
MD5 07638e84a1fc87ef9a400a9481d6d943
BLAKE2b-256 8c70c29c572b475e31beeef3448050d7947cd177568afb54ede87bad8673b211

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f5566aaff7f34a7bf0bd3a755e8f38c689211f43043458572bede3089ed89f30
MD5 b0763d2eff9d6a9d8f2bbfdbaec0a3bb
BLAKE2b-256 ba0f2e7154b2785c6a15e8a4c853c9cd81e71b8f153ca2d405bf597659dcc20f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7dedd36ae22d3c1724740a0a3a5c445fdfa5764d0e2014143488df98f0dd7123
MD5 a01070420aeb57ab2134bec8c7c16c56
BLAKE2b-256 fb2891056167eaf3f89cc62c67187b72e61bdc90dbd18ce1e001ed085a45e153

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c10810160f25b5546b3720ff3813171588760e0c469822296c40ea24516e2e2c
MD5 47445dd30547c0564b1bc19d0ac24cc0
BLAKE2b-256 c109b2e26ede7c2dd44a758d05d4be9261d8261cdd1acaeca074f93482bdf4df

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a626ec02f760604e9670dbc734b7146624bd87ef42f74c810b8f003c6f948f30
MD5 9027d4d1e7530fe01311d80df48c8c51
BLAKE2b-256 f30b47ae748b4d6eddc1f3b5463758e791754a65a801dd77e9b89657d09a8ef9

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 469b835bca988c1d498e2d7349d5c11c2947fdb12fd33cb95e772fb2b4bc2b70
MD5 fea364e30421b471f538364223457fdb
BLAKE2b-256 747f0313d31ec50e86430f27c8f47387381bc3bb9fc3a6ecd2f0e23868b36958

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bce8ffbf0206ff4d3a6548bb109ffb20307617894af3d59300935a83c2084d51
MD5 bae0031491f1ed0d9e625ba688a5ff68
BLAKE2b-256 01d1121971b691ba4b408952fea86f60c4240ddfd0e4f06860dab32b39660218

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.8.4-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.4-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 00f4ff465ed13ab9d57133f37f92a3ecf86aa227fb040458912088fce82672ba
MD5 4808ba1089851a5ef297d8fbe41187c0
BLAKE2b-256 5aa4627c8263580c42ec71528ab7274a41e47bce99d02c0613ff41134d201855

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