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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14tmacOS 13.0+ ARM64

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

Uploaded CPython 3.12+macOS 13.0+ ARM64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

File metadata

  • Download URL: passagemath_rubiks-10.8.2rc1.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.2rc1.tar.gz
Algorithm Hash digest
SHA256 6a0bf3015f209e7a0c3725ca2b52b59406d5c54d29164de9f25bb29548522a7c
MD5 31edbee11e34e1809b9969b75ea5227e
BLAKE2b-256 09bf047409cc1d2596727f2a7eab06a46400f6f9e3a651a891bdf6ddad7b65c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2dba7b33dbdab19ecedcea37100240b74d3761346a020e122b9db0b6c387fb13
MD5 77f2ab9ea56f304b0197c93e1a260746
BLAKE2b-256 a6c10d02f7f1cf1c2d03ff2c74e64f2bc57521f79a9adb7705b964a1ecb69ad3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a23f9b43968526c421d7571ff03e2fd06ddb01aa2f8941903b1c0dbb68a390d5
MD5 32197d3887281e514ad5689bb90628c8
BLAKE2b-256 bf4c25907256b3e8991d08af126e3cfab9be061d15739e1f9719deed993a8aa1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d71922bff64611d4abd0f6370e9f0ab4e2e1b008c0d7ed3afcbdfdaf3565f367
MD5 6c3bb6aef393561526d2e09113a886da
BLAKE2b-256 d30e66b4b8c82bb78e11cfcee9457434f91af71da57e8c1f07283480aba4f71d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 edb0178ff2924596c78d9932209849df2ac983b6636b92b2500d5a5fc4ca588a
MD5 c7afd7ebd40abceb6cb6a8466caf6ed8
BLAKE2b-256 666ad0b6b70a2524a1c9c946d3d3bad50da7f0276c53b308b6d796b42f8024c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 97ee36ee70ca48a20b002127c2e7d695993cff669b8ed47aa55b1c3262448a20
MD5 60d8f870d4078007325dc2d9dfbac871
BLAKE2b-256 2be1508c7b144015ca7b44f0cd8ba09773978d8066ce5eff8682d0819e58e199

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 08130d00c96c6eac4df7f384f2f774d7c16a2e4ea25aa49587483da3d5fa8f62
MD5 424a50915c25c4a3763c48a41e24dbc8
BLAKE2b-256 64171dab805e787d9a5bbc16adeafbeeeaa6f7191a27e5f53a4f1b39323e067a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 00fdc641013bd36713230bd750ac661e146bfc3968342149aa13b1aa3dda39a8
MD5 b06cee8b00fc9f704b62d38422fbb3a7
BLAKE2b-256 5d957b52c87fc970c4ad48c535f12f3e08b8cde3754a49fcede2fd8a3de14445

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 005233473be8653f742562d155729f9e31aae613fffaf5b9c63af0e6be095376
MD5 383f3b334b1b74c0965f817c5418eb9c
BLAKE2b-256 48d55dfc63564fcd40fb78383407a68d9e73eafad7a1d024689ac307f464cffc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f02fc2b73b825edd309eaebc94c00017ccaa806ee333b9d50078ce3b183ebb69
MD5 0c1f70e4e366695288e4dd8b6d943982
BLAKE2b-256 fb2cd865d9f9af1bdc6270042474a9dc7967eda68ac8775a73520591ba55d1b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f8f2c2c507f5a7ebd6516fa04951cee7bc2f55f3bf43cbfd81f154c2fd89fd2c
MD5 3bb3b62e2b997d2b06b89121c22c0e38
BLAKE2b-256 662d0c5227683e046efc0e21496c26c196cd3690b65d7a983081b9c21f3beda7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2f7b61e4c37cd05fb87c035866948004b1e9b19793e930f400ef7c4b054c9756
MD5 b2ae9e335e7c7f55ff59629c169df75d
BLAKE2b-256 c6aafa9b9337dad24facbc8cdc726501281be6f8018ff696251c230266fa17df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 ad6980f165b93600594d4bbea0ff0f98fd8526ebe737c7fcc17e194b6ccf5b38
MD5 de59adad87c0c1ef79b46d4e3ebf95e9
BLAKE2b-256 45bda36e0c5090981f47524559faead5a3c0e7b9e4eb4c6c16f3cb4751c1fe22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2dfaa15bb1fbb116b77acfb37c94a55db5755fa8b03e982bb36af599e8adea4
MD5 aeaccb20172c83d952d2ae1dbe26e7af
BLAKE2b-256 80a3b52520690b9291738690467bc654b313c64306d599bd51927cf832ca7ff5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5070ff4b5772c84d69288edb5f2e344882db0cfd57c85de33e6d1ed1ef777676
MD5 ee3dab9bbcdb92c0d65ab48ec4c8f7d2
BLAKE2b-256 646132110c6375b19c516b9270ec8198d28c0aad8430bd9baad926ecaa25ea6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 484b03a72a633f582b2a41697103161eb5d11c03d3a353ae1451bb16a16e89dc
MD5 d2824b4aceb26b4f6f15935297b0dda2
BLAKE2b-256 ebc1d5de1884d879410a17030105dc83259806611d58c22a1fd360795310b0a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c57a86fb9a75e87539cf60919aeb69d6070df1a9a439e9b88e2829c0dea67770
MD5 d09d6e852960c2367e94eb3405be1641
BLAKE2b-256 293d137e58d2be821a5078aac0cd30eabf782eeeb371ea2f962398cef8169598

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 97da29211096132ee51fcf8525af1774927ce7dcdef0de2ff1673f823c7d6650
MD5 fc185b451868c14ef6e794ee536bc44d
BLAKE2b-256 0d814f4b16f3d7607a7728e70286383f76a2d69d6bc634471f47c93e0750d64c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for passagemath_rubiks-10.8.2rc1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 fee5e9dc761a68a857ffa854739c28a28df81e9be95454cc7e67b95fe24b3a85
MD5 3c7ce218f5d1b7273aa55c549062cd50
BLAKE2b-256 4e8e1a470efdf2d54290f71fc6cb9899457123d93d4d4fd294e699ffd864e12c

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