A speedcubing training application for F2L, featuring 3D cube rendering, algorithmic training, and smart cube integration.
- 🎯 Specialized Training: Dedicated modes for learning and drilling F2L algorithms.
- 🛜 Bluetooth Smart Cube Support: Connect your smart cube directly to get real-time feedback and automatic timing.
- 🧊 3D Visualization: Interactive 3D cube player powered by
cubing.js. - 📊 Statistics: Track your progress with detailed charts and session history.
- 📱 Responsive Design: Fully optimized for desktop and mobile devices.
- Framework: Svelte 5 & SvelteKit
- Styling: TailwindCSS v4 & Flowbite
- Cube Logic: cubing.js
- Charts: ApexCharts
This F2L Trainer was inspired by JPerms OLL Trainer and Romans OLL Trainer / PLL Trainer.
| Case Selection | Classic Training |
|---|---|
![]() |
![]() |
| Drill Mode | Smart Cube Integration |
|---|---|
![]() |
![]() |
| Session Insights | Case Analysis |
|---|---|
![]() |
![]() |
Feel free to create an issue if you need any help, have ideas for improvement or find any bugs. I'm happy to help.
Feel free to tackle any Issue on your own. If you want to change something that is not covered in an issue, please create an issue first, to make sure the pull request will be approved.
Follow these steps to set up the project on a fresh Windows 11 machine.
Download and install the LTS version of Node.js from:
👉 https://nodejs.org/en/download
During installation, make sure to check
✅ “Automatically install necessary tools”
This ensures required build tools are set up.
💡 Note: A restart of your PC may be required after installation for Node.js to work correctly in the terminal.
Open a terminal (PowerShell or Windows Terminal) and check:
node -v
pnpm -vYou should see versions printed for both commands.
If pnpm is not installed, install it with:
npm install -g pnpmClone this project from GitHub and navigate into it:
git clone https://github.com/Dave2ooo/F2LTrainer.git
cd F2LTrainerRun:
pnpm installThis installs all required packages defined in the project’s pnpm-lock.yaml.
Launch the app locally with:
pnpm run devThen open your browser at the address shown in the terminal (usually http://localhost:5173).
You’re ready to start developing!
The project uses SvelteKit, TypeScript, TailwindCSS, and Flowbite — all preconfigured.





