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
Python utility to extract differences between two pandas dataframes.

Python utility to extract differences between two pandas dataframes.

Jaime Valero 8 Jan 07, 2023
PyPSA: Python for Power System Analysis

1 Python for Power System Analysis Contents 1 Python for Power System Analysis 1.1 About 1.2 Documentation 1.3 Functionality 1.4 Example scripts as Ju

758 Dec 30, 2022
MDAnalysis is a Python library to analyze molecular dynamics simulations.

MDAnalysis Repository README [*] MDAnalysis is a Python library for the analysis of computer simulations of many-body systems at the molecular scale,

MDAnalysis 933 Dec 28, 2022
An easy-to-use feature store

A feature store is a data storage system for data science and machine-learning. It can store raw data and also transformed features, which can be fed straight into an ML model or training script.

ByteHub AI 48 Dec 09, 2022
PyIOmica (pyiomica) is a Python package for omics analyses.

PyIOmica (pyiomica) This repository contains PyIOmica, a Python package that provides bioinformatics utilities for analyzing (dynamic) omics datasets.

G. Mias Lab 13 Jun 29, 2022
Implementation in Python of the reliability measures such as Omega.

OmegaPy Summary Simple implementation in Python of the reliability measures: Omega Total, Omega Hierarchical and Omega Hierarchical Total. Name Link O

Rafael Valero Fernández 2 Apr 27, 2022
MoRecon - A tool for reconstructing missing frames in motion capture data.

MoRecon - A tool for reconstructing missing frames in motion capture data.

Yuki Nishidate 38 Dec 03, 2022
A project consists in a set of assignements corresponding to a BI process: data integration, construction of an OLAP cube, qurying of a OPLAP cube and reporting.

TennisBusinessIntelligenceProject - A project consists in a set of assignements corresponding to a BI process: data integration, construction of an OLAP cube, qurying of a OPLAP cube and reporting.

carlo paladino 1 Jan 02, 2022
BigDL - Evaluate the performance of BigDL (Distributed Deep Learning on Apache Spark) in big data analysis problems

Evaluate the performance of BigDL (Distributed Deep Learning on Apache Spark) in big data analysis problems.

Vo Cong Thanh 1 Jan 06, 2022
HyperSpy is an open source Python library for the interactive analysis of multidimensional datasets

HyperSpy is an open source Python library for the interactive analysis of multidimensional datasets that can be described as multidimensional arrays o

HyperSpy 411 Dec 27, 2022
An ETL framework + Monitoring UI/API (experimental project for learning purposes)

Fastlane An ETL framework for building pipelines, and Flask based web API/UI for monitoring pipelines. Project structure fastlane |- fastlane: (ETL fr

Dan Katz 2 Jan 06, 2022
Instant search for and access to many datasets in Pyspark.

SparkDataset Provides instant access to many datasets right from Pyspark (in Spark DataFrame structure). Drop a star if you like the project. 😃 Motiv

Souvik Pratiher 31 Dec 16, 2022
An implementation of the largeVis algorithm for visualizing large, high-dimensional datasets, for R

largeVis This is an implementation of the largeVis algorithm described in (https://arxiv.org/abs/1602.00370). It also incorporates: A very fast algori

336 May 25, 2022
Show you how to integrate Zeppelin with Airflow

Introduction This repository is to show you how to integrate Zeppelin with Airflow. The philosophy behind the ingtegration is to make the transition f

Jeff Zhang 11 Dec 30, 2022
Evaluation of a Monocular Eye Tracking Set-Up

Evaluation of a Monocular Eye Tracking Set-Up As part of my master thesis, I implemented a new state-of-the-art model that is based on the work of Che

Pascal 19 Dec 17, 2022
A real data analysis and modeling project - restaurant inspections

A real data analysis and modeling project - restaurant inspections Jafar Pourbemany 9/27/2021 This project represents data analysis and modeling of re

Jafar Pourbemany 2 Aug 21, 2022
MotorcycleParts DataAnalysis python

We work with the accounting department of a company that sells motorcycle parts. The company operates three warehouses in a large metropolitan area.

NASEEM A P 1 Jan 12, 2022
Create HTML profiling reports from pandas DataFrame objects

Pandas Profiling Documentation | Slack | Stack Overflow Generates profile reports from a pandas DataFrame. The pandas df.describe() function is great

10k Jan 01, 2023
PipeChain is a utility library for creating functional pipelines.

PipeChain Motivation PipeChain is a utility library for creating functional pipelines. Let's start with a motivating example. We have a list of Austra

Michael Milton 2 Aug 07, 2022
Data cleaning tools for Business analysis

Datacleaning datacleaning tools for Business analysis This program is made for Vicky's work. You can use it, too. 数据清洗 该数据清洗工具是为了商业分析 这个程序是为了Vicky的工作而

Lin Jian 3 Nov 16, 2021