CubingB is a timer/analyzer for speedsolving Rubik's cubes, with smart cube support

Related tags

Data AnalysisCubingB
Overview

icon

CubingB

CubingB is a timer/analyzer for speedsolving Rubik's cubes (and related puzzles). It focuses on supporting "smart cubes" (i.e. bluetooth cubes) for recording the exact moves of a solve in real time.

CubingB is at a very early stage, and only supports macOS, and only the MoYu Weilong AI for smart cube functionality. It's written in Python, and uses PyQt and PyOpenGL for all sorts of graphical goodness, and pyobjc for binding to macOS' native CoreBluetooth APIs for communicating with smart cubes. It uses a SQLite database, managed with SQLAlchemy and Alembic.

This is just a hobby project written for my own use, so don't expect an easy installation experience or much technical support. If you're not a programmer that knows how to install Python packages, don't bug me with issues yet, please.

icon

Features

  • Normal cubing timer features: basic scramble generation, single/aoX calculations, etc.
  • Session management: renaming, drag-n-drop to reorder, and merge sessions
  • Full incremental turn and gyroscope data recorded and timestamped throughout solves on a smart cube. This can be viewed later like a video, with play/pause/scrubbing. The data is stored in a compact binary format, but can still accumulate rather quickly (about 1K of data for 2-3 seconds of solving)
  • Click-and-drag to rotate, scroll to zoom on 3D cube viewer
  • Smart cube hotkeys: r to reset cube state (i.e. make the virtual cube solved), c to calibrate gyroscope (takes the current gyroscope position and assumes its the standard white top, green front orientation)
  • All solve data stored in a SQLite database for easy analytics (if you're nerdy enough to know SQL)
  • CSTimer importing (no interface, just a Python script for now)
  • Free and open source, yo

In the near future, the priority will be in analyzing solves (i.e. making sane reconstructions incorporating the turn and gyroscope data, tracking algorithm performance, etc.), as well as creating training exercises. That's the whole reason I wanted a smart cube in the first place. This other stuff was just the basics to get a decent timer that's good enough for typical usage.

Issues

  • Cross platform support: PyQt can theoretically run on most platforms. Qt supports bluetooth, but apparently it doesn't support the BTLE advertisement/scanning, which I think is needed for the MoYu cube (at least I couldn't get it to work).
  • Other smart cube support: Maybe later? I really like the MoYu cube for now.
  • Minor weirdnesses with rotations/gyroscope: no idea! I'm out of my depth on the math here at the moment. If you know how quaternions work, I'd love some help!

Misc

CubingB doesn't work! That sucks!

What does CubingB mean? Well, it could potentially stand for CubingBuddy, CubingBenchmarker, or CubingBehemoth, but really it's just a dumb variation on a dumb joke

Owner
Zach Wegner
Zach Wegner
A script to "SHUA" H1-2 map of Mercenaries mode of Hearthstone

lushi_script Introduction This script is to "SHUA" H1-2 map of Mercenaries mode of Hearthstone Installation Make sure you installed python=3.6. To in

210 Jan 02, 2023
A set of functions and analysis classes for solvation structure analysis

SolvationAnalysis The macroscopic behavior of a liquid is determined by its microscopic structure. For ionic systems, like batteries and many enzymes,

MDAnalysis 19 Nov 24, 2022
Deep universal probabilistic programming with Python and PyTorch

Getting Started | Documentation | Community | Contributing Pyro is a flexible, scalable deep probabilistic programming library built on PyTorch. Notab

7.7k Dec 30, 2022
Data analysis and visualisation projects from a range of individual projects and applications

Python-Data-Analysis-and-Visualisation-Projects Data analysis and visualisation projects from a range of individual projects and applications. Python

Tom Ritman-Meer 1 Jan 25, 2022
Example Of Splunk Search Query With Python And Splunk Python SDK

SSQAuto (Splunk Search Query Automation) Example Of Splunk Search Query With Python And Splunk Python SDK installation: โžœ ~ git clone https://github.c

AmirHoseinTangsiriNET 1 Nov 14, 2021
An orchestration platform for the development, production, and observation of data assets.

Dagster An orchestration platform for the development, production, and observation of data assets. Dagster lets you define jobs in terms of the data f

Dagster 6.2k Jan 08, 2023
Synthetic Data Generation for tabular, relational and time series data.

An Open Source Project from the Data to AI Lab, at MIT Website: https://sdv.dev Documentation: https://sdv.dev/SDV User Guides Developer Guides Github

The Synthetic Data Vault Project 1.2k Jan 07, 2023
CINECA molecular dynamics tutorial set

High Performance Molecular Dynamics Logging into CINECA's computer systems To logon to the M100 system use the following command from an SSH client ss

J. W. Dell 0 Mar 13, 2022
This repo contains a simple but effective tool made using python which can be used for quality control in statistical approach.

๐Ÿ“ˆ Statistical Quality Control ๐Ÿ“‰ This repo contains a simple but effective tool made using python which can be used for quality control in statistica

SasiVatsal 8 Oct 18, 2022
GWpy is a collaboration-driven Python package providing tools for studying data from ground-based gravitational-wave detectors

GWpy is a collaboration-driven Python package providing tools for studying data from ground-based gravitational-wave detectors. GWpy provides a user-f

GWpy 342 Jan 07, 2023
wikirepo is a Python package that provides a framework to easily source and leverage standardized Wikidata information

Python based Wikidata framework for easy dataframe extraction wikirepo is a Python package that provides a framework to easily source and leverage sta

Andrew Tavis McAllister 35 Jan 04, 2023
NFCDS Workshop Beginners Guide Bioinformatics Data Analysis

Genomics Workshop FIXME: overview of workshop Code of Conduct All participants s

Elizabeth Brooks 2 Jun 13, 2022
Generate lookml for views from dbt models

dbt2looker Use dbt2looker to generate Looker view files automatically from dbt models. Features Column descriptions synced to looker Dimension for eac

lightdash 126 Dec 28, 2022
Important dataframe statistics with a single command

quick_eda Receiving dataframe statistics with one command Project description A python package for Data Scientists, Students, ML Engineers and anyone

Sven Eschlbeck 2 Dec 19, 2021
A Python package for modular causal inference analysis and model evaluations

Causal Inference 360 A Python package for inferring causal effects from observational data. Description Causal inference analysis enables estimating t

International Business Machines 506 Dec 19, 2022
Fancy data functions that will make your life as a data scientist easier.

WhiteBox Utilities Toolkit: Tools to make your life easier Fancy data functions that will make your life as a data scientist easier. Installing To ins

WhiteBox 3 Oct 03, 2022
Program that predicts the NBA mvp based on data from previous years.

NBA MVP Predictor A machine learning model using RandomForest Regression that predicts NBA MVP's using player data. Explore the docs ยป View Demo ยท Rep

Muhammad Rabee 1 Jan 21, 2022
This is a tool for speculation of ancestral allel, calculation of sfs and drawing its bar plot.

superSFS This is a tool for speculation of ancestral allel, calculation of sfs and drawing its bar plot. It is easy-to-use and runing fast. What you s

3 Dec 16, 2022
A data parser for the internal syncing data format used by Fog of World.

A data parser for the internal syncing data format used by Fog of World. The parser is not designed to be a well-coded library with good performance, it is more like a demo for showing the data struc

Zed(Zijun) Chen 40 Dec 12, 2022
A highly efficient and modular implementation of Gaussian Processes in PyTorch

GPyTorch GPyTorch is a Gaussian process library implemented using PyTorch. GPyTorch is designed for creating scalable, flexible, and modular Gaussian

3k Jan 02, 2023