cubesim 0.0.3

NxNxN Rubik's Cube simulator (and eventually solver) written entirely in Rust.
Documentation

CubeSim V2

CubeSim is a Rubik's Cube simulator (and eventually solver) written entirely in Rust.

Features

  • Simulation of an arbitrarily sized NxNxN Rubik's Cube.

Planned Features

  • Optimal solutions using variations of IDA*.
  • User interface (web interface using WASM perhaps?).

Usage

Build the project (optionally in release mode):

$ cargo build [--release]

Run the project:

$ cargo run

Project Structure

  • src/generic_cube: This contains a generic definition of a Cube that all concrete implementations must adhere to. This includes a Cube Trait, a Move enum and a Face enum.
  • src/geometric_cube: This is a geometric implementation of a Cube which represents stickers of a cube as 3-dimensional vectors and moves as rotation matrices. This implementation is highly inefficient but it provides a means to bootstrap more efficient implementations.
  • src/facelet_cube: This is a facelet implementation of a cube which represents stickers of a cube with an identifier in an 1-dimensional array and moves as index to index mappings. This implementation is efficient and is implemented by converting instances of the geometric cube moves.

Resources Used