Free Rubik's Cube OLL & PLL Algorithm Execution Timer

Enhance your speedcubing speed with this free, browser-based OLL & PLL algorithm execution timer. Track your split times, view statistics, and master finger tricks.

Built by@Akhenaten

AI Generation Prompt

Technical Specification: Speedcubing Algorithm Execution Timer

1. Overview

This is a high-performance, single-file browser utility for measuring OLL and PLL algorithm execution speed. Designed for a premium, lightweight, and responsive experience, it serves as an essential training aid for speedcubers.

2. Technical Constraints

  • Architecture: 100% Single-file HTML/CSS/JS.
  • Storage: No localStorage, sessionStorage, or Cookies. All data is volatile and exists only in-memory.
  • Environment: Must operate perfectly in a null-origin sandboxed iframe.
  • Dependencies: CDN-based CSS (Tailwind) and icons only. No build-step required.
  • Safety: No alert(), prompt(), or confirm().

3. UI/UX Specification

Layout

  • Header: Simple, centered title ("OLL/PLL Algorithm Timer") with an optional "Clear Stats" button.
  • Main Display: Large, high-contrast timer display (centralized). Current Algorithm name displayed above.
  • Selection Area: Dropdown or pill-style tabs to switch between 'OLL' and 'PLL' categories.
  • Stats Section: A responsive grid showing: 'Average of 5', 'Average of 12', 'Best Time', and 'Last Time'.
  • Input: Keyboard-driven interaction. Spacebar triggers Start/Stop/Reset states (using a state machine pattern).

Aesthetics (Light Mode Only)

  • Palette: Crisp whites, soft grays (#f9fafb, #e5e7eb), vibrant accent blue (#2563eb), and high-contrast text (#1f2937).
  • Typography: Modern, clean sans-serif (e.g., Inter, system-ui).
  • Visual Feedback:
    • Timer turns green on start.
    • Timer turns yellow on stop.
    • Subtle drop shadows on cards for a SaaS-like floating appearance.
    • CSS Transitions for all state changes (e.g., button hover, timer text color shifts).

4. Key Features

  • Start/Stop Logic: Use the keydown event listener for the Spacebar to trigger timer functionality. Handle mobile devices by making the entire screen a touch-target if no hardware keyboard is detected.
  • Dynamic List: A pre-populated list of OLL/PLL algorithms accessible via a dropdown, allowing users to select which specific algorithm they are drilling.
  • Real-time Statistics: Update the DOM dynamically as the user executes algorithms. Calculate averages on-the-fly using an array of the last 12 results.
  • Result Feedback: Display a list of the last 5 successful runs below the timer.

5. Development Directives

  • No Build Steps: Write clean, ES6+ vanilla JavaScript inside a <script> tag. Use template literals for DOM generation.
  • Responsive: Ensure the timer display is huge on desktop, but adjusts cleanly for mobile phones (using clamp() for font sizes).
  • Accessibility: Ensure buttons have appropriate aria-labels. The app should be fully navigable via keyboard.
  • Robustness: Include a small 'Session Reset' button to clear current stats without relying on storage APIs.

Spread the word

2Total Views
gemini-3.0-flashAI Model

Files being used

index.html
11.4 KB
#Rubik's cube timer#OLL algorithm practice#PLL algorithm trainer#speedcubing execution timer#algorithm speed tracker#speedcube practice tool#finger trick training

Frequently Asked Questions

Everything you need to know about using this application.

What is the purpose of this algorithm execution timer?

This tool is specifically designed to help speedcubers isolate and track the execution time of individual OLL (Orientation of the Last Layer) and PLL (Permutation of the Last Layer) algorithms. By focusing on specific move sets, you can identify which algorithms slow down your solve and build necessary muscle memory. Mastering these layers is essential for transitioning from beginner to advanced cubing. Breaking down your performance into milliseconds allows for precise feedback, helping you optimize your finger tricks and overall turn speed for faster competition times.

How does the timer handle data since browser storage is disabled?

To comply with strict security standards for embedded applications, this tool runs entirely in-memory. It does not use localStorage, cookies, or databases to store your progress. This ensures the app is lightweight, privacy-focused, and safe to use in any browser environment without triggering security violations. Because of this design, your session statistics will reset if you refresh the browser page. We recommend treating this as a focused practice session tool; keep the tab open during your training block to maintain your current stats, and consider documenting your personal bests in a physical notebook.

Is this tool suitable for beginners or just advanced cubers?

This tool is highly beneficial for both beginners and advanced cubers. Beginners can use it to get comfortable with the concept of timing individual algorithms, while advanced cubers can utilize it for drilling specific OLL/PLL cases to improve their 'look-ahead' and execution speed. Regardless of your current skill level, measuring your progress is the fastest way to improve. By comparing your times across different algorithms, you can create a targeted practice schedule to turn your weakest algorithms into your strongest.

What are the recommended finger trick practice techniques?

When using this timer, focus on consistency rather than just pure speed. Practice your finger tricks slowly at first to ensure your hand movement is efficient and fluid, minimizing unnecessary resets or awkward grips. As your muscle memory improves, gradually increase your tempo. Use the timer to measure your 'Averages' rather than just focusing on your fastest single time. A solid average provides a much more accurate picture of your true capability and shows you how consistently you can execute complex algorithms under pressure.

Related Applications