Speed Cubing Timer on your Terminal
Project description
Term Timer
Practice your speed cubing skills on your terminal, for a full 80's vibe.
Main Features
- Valid WCA scrambles
- From 2x2x2 to 7x7x7 cubes
- Free-play and recorded solves
- Colorfull cube display
- Handle Bluetooth cubes
- Detailled statistics and reconstructions
Other Features
- Metronome
- Inspection time
- Easy white cross
- Cube orientation control
- Seed control
- Full offline application
- csTimer and Cubeast import
Short demo
Examples usage
Start timing 3x3x3 solves :
term-timer solve
Start timing in Bluetooth showing the scrambled cube :
term-timer solve -bp
Start timing 2 solves of 4x4x4 in free-play :
term-timer solve -c 4 -f 2
Start timing with an easy white cross, with 15 secs of inspection :
term-timer solve -ei 15
Show statistics on recorded solves :
term-timer stats
Show tendencies graph on recorded solves :
term-timer graph
Show last ten recorded solves of 7x7x7 :
term-timer list 10 -c 7
Installation
pip install -e .
Acknowledgments
I would like to express my sincere gratitude to the developers of the following projects, without which Term Timer would not have been possible:
-
Herbert Kociemba's RubiksCube-TwophaseSolver for the highly efficient Two-Phase algorithm implementation that enables optimal 3x3x3 cube scrambles.
-
trincaog's magiccube for providing an excellent foundation for cube modeling and manipulation.
-
afedotov's gan-web-bluetooth for his clean and well-structured implementation of the GAN Bluetooth cubes.
Their outstanding work and contributions to the Rubik's Cube programming community have been invaluable to this project.
Demos
Help
General
Usage: term-timer [-h]
{solve,sw,t,list,ls,l,stats,st,s,graph,gr,g,cfop,op,c,detail,dt,d,import,im,i,export,ex,e}
...
Speed cubing timer on your terminal.
Positional Arguments:
{solve,sw,t,list,ls,l,stats,st,s,graph,gr,g,cfop,op,c,detail,dt,d,import,im,i,export,ex,e}
Available commands.
solve (sw, t) Start the timer and record solves.
list (ls, l) Display recorded solves.
stats (st, s) Display statistics.
graph (gr, g) Display trend graph.
cfop (op, c) Display CFOP cases.
detail (dt, d) Display detailed information about solves.
import (im, i) Import external solves.
export (ex, e) Export solves in HTML.
Options:
-h, --help Show this help message and exit.
Have fun cubing !
Timer
Usage: term-timer solve [-h] [-b] [-p] [-c CUBE] [-u SESSION] [-f] [-i SECONDS] [-m TEMPO] [-e]
[-n ITERATIONS] [-r SEED]
[SOLVES]
Start the speed cubing timer to record and time your solves.
Positional Arguments:
SOLVES Specify the number of solves to be done.
Default: Infinite.
Options:
-h, --help Show this help message and exit.
Configuration:
-b, --bluetooth Use a Bluetooth-connected cube.
Default: False.
-p, --show-cube Display the cube in its scrambled state.
Default: False.
Session:
-c CUBE, --cube CUBE Set the size of the cube (from 2 to 7).
Default: 3.
-u SESSION, --session SESSION
Name of the session for solves.
Default: None.
-f, --free-play Enable free play mode to disable recording of solves.
Default: False.
Timer:
-i SECONDS, --countdown SECONDS
Set the countdown timer for inspection time in seconds.
Default: 0.0.
-m TEMPO, --metronome TEMPO
Set a metronome beep at a specified tempo in seconds.
Default: 0.0.
Scramble:
-e, --easy-cross Set the scramble with an easy cross.
Default: False.
-n ITERATIONS, --iterations ITERATIONS
Set the number of random moves.
Default: Auto.
-r SEED, --seed SEED Set a seed for random move generation to ensure repeatable scrambles.
Default: None.
Origin Story
While I was diligently working on my personal CFOP databases, which can be accessed at https://cubing.fache.fr/, I encountered the necessity for a high-quality scrambling tool for a 3x3 Rubik's Cube. This tool was essential for the development of an innovative type of computer solver for the 3x3 cube.
Once I successfully developed this scrambler, it occurred to me that it would be a regrettable oversight not to capitalize on this momentum by creating a timing application based on the scrambler's functionality.
Having produced a straightforward prototype and finding the program to be quite satisfactory, I further concluded that withholding such a useful tool from the community would constitute another regrettable oversight.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file term_timer-0.1.0.tar.gz.
File metadata
- Download URL: term_timer-0.1.0.tar.gz
- Upload date:
- Size: 42.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15190d3030ab681f224b1bf96f80e11986fee99fe308a11c216962d66be40e36
|
|
| MD5 |
79f9bd36996feca33c23513798b923d6
|
|
| BLAKE2b-256 |
6744f302b7ba11e0996445754cf26b5500dffefe47c3c970dc641d510d47f0ef
|
Provenance
The following attestation bundles were made for term_timer-0.1.0.tar.gz:
Publisher:
release.yml on Fantomas42/term-timer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
term_timer-0.1.0.tar.gz -
Subject digest:
15190d3030ab681f224b1bf96f80e11986fee99fe308a11c216962d66be40e36 - Sigstore transparency entry: 389405980
- Sigstore integration time:
-
Permalink:
Fantomas42/term-timer@e97a0c85b3e959f2fd439e8f55de10dbf1775d51 -
Branch / Tag:
refs/tags/v0.1.0.2 - Owner: https://github.com/Fantomas42
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e97a0c85b3e959f2fd439e8f55de10dbf1775d51 -
Trigger Event:
push
-
Statement type:
File details
Details for the file term_timer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: term_timer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 46.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efcd3e7055f9ecf6ed92ea667a49138f36bbc5d49774184c3c37e32438b6b48b
|
|
| MD5 |
e97c79a8ae6309ff0a64aa6fe7499149
|
|
| BLAKE2b-256 |
c1859efb7476c2fad190ec92b49095f7fc8bdd7853b65f62f7b50188703d06f4
|
Provenance
The following attestation bundles were made for term_timer-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Fantomas42/term-timer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
term_timer-0.1.0-py3-none-any.whl -
Subject digest:
efcd3e7055f9ecf6ed92ea667a49138f36bbc5d49774184c3c37e32438b6b48b - Sigstore transparency entry: 389405992
- Sigstore integration time:
-
Permalink:
Fantomas42/term-timer@e97a0c85b3e959f2fd439e8f55de10dbf1775d51 -
Branch / Tag:
refs/tags/v0.1.0.2 - Owner: https://github.com/Fantomas42
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e97a0c85b3e959f2fd439e8f55de10dbf1775d51 -
Trigger Event:
push
-
Statement type: