Goal: Predict the next rubix cube 3x3 world record -
I will be finding the solve time, date, and cuber
I will be doing this by:
- By web scraping data from websites
Web scraping: Access a website's source code, then extracting specific data from tables in the website. I will be used the modules Beautiful Soup and requests to do this
- Parsing (Examine or break down) cuber's data
- Using linear regression to visualize the trend
**I will be doing this by finding the most qualified cuber, then visualize their improvement and compare it with the world record trend, and get the intersection between the two trend lines.**
In finalpredict.py, you can find a calculate_score function where you can edit the different weights (multipliers) to these variables that I orginally put for your own prediction!
- historyofwr.py - Gets the world record history. It outputs the data into wrhistory.csv
- getCandidateData.py - Gets all of the contenders to the world record, then gets the latest 50 solves for data, and also gets the number of 3x3 world records each contenders has. It outputs the numOfRecords.csv and the contendersRecentSolves.csv
- parseData.py - Uses data, contendersRecentSolves.csv and numOfRecords.csv and finds the 7 variables for each contender and outputs all of the results into the contendersParsedData.csv
- finalpredict - First, it calculates the score based on the data from contendersParsedData.csv. It gets the cuber of best score. After that it gets the best cuber's improvement rate and graphs it. It graphs the world record progression too, and finds the intersection of the points.
- All of the csv files are results of/made from the python files, feel free to look at them to see the data that I used!
Final Result (Code last ran on 4/21/24) : Xuanyi Geng will break the world record. A time of -1.27 and on December 1st, 2026.
So to get an accurate time, I simply printed the date when Xuanyi Geng will break the current world record solely based on his improvement compared to the current world record (3.13).
It will output when his improvement will pass the world record time.
It outputs that Xuanyi Geng's improvement will "break" the record (<3.13) on November 1st, 2024.
There is a repl on replit.com for this
February 16, 2025 - Yiheng Wang beat the previous record of 3.13, getting a 3.08.
April 13, 2025 (~2 months later) - Xuanyi Geng beat the previous record of 3.08, getting a 3.05!!!!
- The predicted time I used, November 1st 2024, was actually pretty close, just 3 months off!!!
Improvement isn't linear and its very luck based in order to get a good scramble, so the record can't just happen instantly (what I assumed), so it made sense for it to be a few months passed, it was suprinsingly accurate in my opinion.
- For the world record progression line and the improvement intersection (original prediction time) of December 1st, 2026, it was much later than what actually happened, made sense because the predicted time was negative.
- I was kind of close on this too!
- Yiheng Wang ended up taking the record first, followed closely by my prediction: Xuanyi Geng!!
Determining the "best" cuber who would break the record is hard so my calculations were probably off on that since I scaled different factors differently. But it was still close, I think Yiheng Wang was a close second behind Xuanyi Geng in the rankings.
Pretty surprised on the accuracy, was fun to look back on this project.