• Welcome to the Speedsolving.com, home of the web's largest puzzle community!
    You are currently viewing our forum as a guest which gives you limited access to join discussions and access our other features.

    Registration is fast, simple and absolutely free so please, join our community of 35,000+ people from around the world today!

    If you are already a member, simply login to hide this message and begin participating in the community!

csTimer released


May 28, 2008
csTimer (translation needed)

cstimer: https://cstimer.net/
cstimer upcoming version: https://cstimer.net/new/

If you are a developer, you may find the source code of cstimer at: https://github.com/cs0x7f/cstimer

If you are willing to help translating cstimer into your native language, please go to https://crowdin.com/project/cstimer and select your language. If your native language is not on the list, just contact me and I'll add it.

Jan. 6th 2019
Session Manager:
1. Able to merge/split sessions
2. Able to group sessions by session name or scramble type in session manager
3. Able to sort sessions by scramble type
4. Show solving date information in session manager
5. Show session name when confirming delete/merge/split
6. Add CSV export in session manager
7. Improve session manager ui for mobile devices

8. Using random-state 4x4x4 scramble by default, can be switched to random-move one for performance
9. make 'last scramble' unclickable when showing the last scramble
10. Using underline instead of '///' to indicate the specific move for SQ1 scramble
11. Add OLL Training scramble and able to select which oll case(s) to be trained
12. Able to select which cmll case(s) to be trained
13. Regroup sq1 CSP cases

14. Add statistics for split time, by clicking the mean cell of specific split in the time list
15. Able to show absolute index (in the time list) of aoX/moX when reported or exported

16. Add cross-session statistics tool, you are able to do statistics for times from multiple sessions (selected by scramble type and/or solving date)
17. Show total time spent in (cross-session) statistics tools
18. Add accumulated time distribution, where '<t x/y' means there are totally y values less than t seconds, x values counted continuously from the latest value

Virtual Cube:
19. Add megaminx virtual cube
20. Able to change turning speed of virtual cube (up to infinity, thus, without animation)

21. Able to edit color schemes for scramble images, also affect the virtual cube
22. Logohint can be disabled
23. Able to set scramble/statistics/tools panel flat
24. Add timestamp in default filename of exported file
25. Able to customize font color besides white and black
26. Simple reconstruction exported to alg.cubing.net for Giiker cube
Dec. 9th 2018
1. SQ1 CSP training (select shape(s) of the scrambled state)
2. Disable WCA inspection for BLD events
3. When using stackmatTimer, it is possible to use keyboard to start inspection
4. Use '///' when SQ1 leaves cubeshape (for scramble correctness)
5. Save solving date of each solve (for further analysis or export)
6. Display time split in statistics, and also solving date if enabled in "options->statistics->print solving date in statistics"
7. Add a session manager (opened by click 'Session', which was used to rename a session) to load, reorder, rename, insert and delete session(s)
8. Add middle layer in scramble image of SQ1
9. The logo of cstimer is now also a message display. It will hint PB in current session right now, and I'll use it to hint more kinds of information.
10. When "entering in times with" "typing" is selected, you are able to directly generate a scramble with empty input (just press enter).
11. You are able to click the button with dashed arrow to hide scramble settings, session selections, tools selections, and click the scramble area/tools area/dashed arrow in statistics area to re-show those hidden elements.
12. You are able to import data from other timers, see the last row of export dialog. CSTimer, BlockKeeper and TwistyTimer are supported right now. Different from import data, it only import sessions and append the imported session to the end of exist sessions. No data will be overwritten.
13. Fix some bugs.
Nov. 3rd 2018
1. Add roux first stage solver (solve a 3x2x1 block)
2. Support Giiker super cube, auto CFOP/Roux time split, VRC display, auto hardware error detection, battery detection, etc
Jun. 22nd 2018
1. Now you are able to login by your Google account and export/import your data to/from google server. CSTimer use Google drive service to store your data in your own Google drive space (in a hidden application directory according to Google's policy.) In current implementation, once the data is uploaded succesfully, it won't be deleted forever. I'll try to develop another tool to manage the uploaded data, since Google does not allow people browsing or editing their application directory.
2. MoYu Timer (a newly produced stackmat-like timer) is supported.
3. Add Redi cube scramble in MoYu's notation and scramble algorithm.
Jun. 7th 2018
Login with WCA account
View attachment 9188
View attachment 9189

As shown in the picture, you are able to login with your WCA account now.
When you click on the WCA area, csTimer will redirect to WCA website for your authorization.
After authorization at WCA website, you are able to upload/download data to/from the server of cstimer using your WCA account by clicking "Import from/Export to server (WCA Account)", as shown in the second picture.

Note: All data are stored on the server of csTimer. WCA authorization is only for identification.
Note2: Import/Export functions are NOT automatically executed right now. So you must upload/download your data MANUALLY as conventional import/export functions.
Note3: Although data are saved on the server of csTimer, we will not collect any personal information of your WCA account, include name and WCAID.
Note4: The authorization procedure as well as the import/export procedure might fail due to several issues, e.g. network or server crash. We are trying our best to make it robust.
Dec. 10th, 2017
Key Features:
1. customizable statistical indicators
2. scramble image for all WCA events
3. inverted time list and optimized ui for mobile devices
4. performance optimization, especially for large sessions, e.g. >100,000 values
5. multi-phase timing settings are saved in sessions by default. Hence, it will be automatically adjusted when switching sessions.

Since I use a different storage (IndexedDB) to store the session data, I'm not sure whether all of your data will be successfully move to the latest version. You may find the previous version at https://cstimer.net/old3/

Notice: https://cstimer.net/new/ will always be the latest version of cstimer and synchronized with the source code, while https://cstimer.net/ is considered as the main version of cstimer.

Here are all updates in detail:

Function updates and bug fixes
  1. Customizable statistical indicators. Now you are able to statistical indicators calculated, which is mo3, ao5, ao12, ao100 by default. You can set it to any values you like, e.g. mo5, ao25, ao30, ao42, mo100, ao10000000, etc. See "Options -> Statistics -> Statistical indicators."
  2. Add Redi cube scramble. Since I do not have plenty of time to write a random-state scrambler for Redi cube, it only generates random-move scrambles.
  3. Add scramble image for clock and megaminx. Then, scramble images of all wca events are available now.
  4. Add M moves in virtual rubik's cube mode, which is binded to key '5' and '6.'
  5. Fix multi blindfold scrambles and clock scrambles.

User interface optimization
  1. The time list is inverted, e.g. the average label is displayed at first, with the latest time next to it, and then the second latest time.
  2. Only 50 values are displayed by default. Even though, when you scroll down to the end of time list, the next 50 values will automatically loaded and displayed. In this way, cstimer will not get frozen due to time list loading during conventional solvings.
  3. We optimize the mobile user interface of cstimer. The statistics area and time list area are displayed in the same row, then they won't cover the current time displayed behind them.
  4. The "option" and "about" dialog are optimized.
  5. We add huge amounts of color schemes at "ABOUT -> Color Schemes", totally 99 different color schemes. Most of them are collected from Internet and the uploaded data.

Performance optimization
  1. The calculation duration of 3x3x3 scramble and SQ1 scramble are optimized.
  2. We add a simple scramble cache. In previous versions, cstimer will generate scrambles immediately when you finish timing, which might cause a tiny UI freezing. While in the latest version, cstimer will cache one scramble, and when you finish timing, the cached scramble will be displayed, and the generation of the next scramble will be executed a moment later.
  3. The calculations of the statistics are optimized. If you only append values to the time list, the whole update of all statistics data are extremely fast even when you have huge amounts of values. According to my test, even you have 100,000 values in your time list, the calculation duration is less than 0.05 seconds. However, if you did some modification on the time list, the calculations are much slower, e.g about 1 seconds in a session with 50,000 values.
  4. We decide to use IndexedDB as the storage of the session of cstimer due to the limit of localStorage. According to the documentation, the storage quota of localStorage is only 5MB, which only supports about less than 50,000 values. Instead, the storage quota of IndexedDB is dependent on your disk size, which can be considered unlimited.

Language support
  1. We add Danish and Croatian. Thanks to the translation works by Alexander Mortensen and Dominik Vidaković
Dec. 12th 2015
I've just committed an update. There isn't any functional changes in this update. The only difference is some details of the interface, especially the adaption for mobile devices. Detailly, if you open cstimer on a screen whose width-to-height ratio less than 5/6, cstimer will switch to mobile version automatically.
Furthermore, the size of the timer will automatically adjust according to the resolution of your screen. Hence, cstimer almost looks the same no matter you are using a 1366x768 screen or 3840x2160 screen. As cstimer is designed for 1366x768 screens before, you will find that the statistics bar, the scramble bar and the font size is much larger than previous versions on a 1920x1080 screen. If you wanna have smaller or larger statistics bar, scramble bar and font size, you may adjust "Options -> display -> Zoom" according to your habit.

I noticed that most of users will enable the statistics tools. So I add the statistics tools to the statistics area and displayed by default. Previous statistics tools will still work, but I recommend you close the statistics tools as it might cover the timer or the ao5/ao12 label. Here's a snapshot of the new statistics tool in the statistics area before the time list:
If you don't like it, you can disable it via "Option->Statistics->show summary before time list"
Sep. 18th 2015
A simple synchronization function is supported.

As shown in the image, when you click "Export to server" and input your account (without any password or authentication), all your data will be uploaded to the server of cstimer. And when you click "Import from server" at some other devices with your account, all uploaded data will be downloaded and imported.

1. The account id is the ONLY identification, anyone else can upload/download/edit your data if he gets your account id.
2. All data transmitted have not been encrypted, which means your data might be captured by third party.
Sep. 5th 2015
Some optimization for the case of huge amounts (e.g. 1000+) of values.
First, if the number of values is larger than 100, only last 100 values will be displayed while the others are omitted. Of course you can click the "..." tag to view them:

Then, the statistic tool is about 100x faster. Once it spent several seconds for calculation if you have 1000+ values, but now, several milliseconds.
Now you can delete multiple values immediately. When you click the "X" button of some values, cstimer will ask you the number of deleted value. And then, these values started from current index will be deleted.

As shown in the picture, if you input "1"(of course the default value), only the value "3.14" will be removed. And if you input 2, "3.14" and "0.36" will be removed. And if you input a number no less than 5, all values will be removed.
Aug. 5th 2015
csTimer mobile version released!
The mobile version is in beta version, and can be found at cstimer.net/mobile.php
Here's a snapshot of the timer:

It works well on most of the modern browsers, e.g. iOS Safari, Opera Mini/Mobile, Android browser, Blackberry browser, Chrome/Firefox for mobile, etc.
The session function is enhanced.
Firstly, you are able to create, delete and rename sessions, which means that the number of sessions is unlimited now.

Then, when you switch between sessions, scramble type will also be switched automatically (enabled by default), vice versa (automatically create a new session when you switch scramble type, which is disabled by default)

All data, include all sessions and all settings, can be exported now. The exported data which will be saved as a single txt file. And you can import the data from the exported txt file of course.
Notice: Once you import the data from exported txt file successfully, all of the settings and sessions will be covered by the imported data, and then the page will be reloaded.
May. 25th 2015
Now you are able to rename your session names by clicking the "Session" string.
Aug. 31st 2014
Use smaller font after the decimal point. If you don't like this, you can disable it at "Option" -> "display" -> use small font after decimal point.

Add scramble generator. Now you can generate several scrambles at once.

Add color settings. The color scheme of cstimer can be customized like qqtimer now.
Here's a snapshot:
Jan. 25th 2014
- add skewb random-state scrambler
- add 2x2x2 EG Training scramble
- add ZBLS(zb last slot) Training scramble(last F2L slot with all edges oriented)
- add a label to display average near the timer
Aug. 9th 2012
- add share-button
- add official blog
- support stackmat II and stackmat pro(it might not work quite well.) ARGS -> timer -> entering in times with "stackmat"
- integrated with twisty.js(virtual rubik's cube like hi-games.net), and all 3x3x3 scrambles are also available, which means that you may practise last-layer scramble with it. ARGS -> timer -> entering in times with "virtual"
- add statistics tools and time-distribution tools
- connect to insertion finder(http://mf.qiyuuu.com/cube/if.cube)
- add another 2 digital fonts
- fix several bugs, and it now works well on iphone or ipad

time-distribution tools:
statistics tools:
Jun. 23rd 2012
1. You may input scramble from weekly competition, etc. see the demo:
2. Speeding up initialization of 3x3x3 random-state scrambler/solver. On my laptop, cstimer spends 200ms on initialization while qqtimer spends 500ms.
3. You might use keyboard shortcut to switch scramble types, session, also to remove all session or the latest time in the session, etc. see "ABOUT" document.
4. Fix many bugs.

The function of cstimer is quite like qqtimer, but actually, most part of it is different from qqtimer except statistics details and scramble. As you see it almost impossible to rewrite such scrambler as qqwref although I did do many modifies indeed, for example not all scrambler initialized at its launching thus saves memory, initialization time.

I think there still billions of bugs :p. So, any bug report, suggestion, complaint, encouragement is welcomed ;)
a) cmll, lse, zbll, cll, ell scramble is available now.
b) if the 3x3-random-state solver finds solution in 50ms, it'll continue finding shorter solution(s) until time over (50 ms). This makes 3x3 subset scramble(such as last layer, zbll, etc.) much shorter.
c) fast sq1-random-state solver released.


Last edited:


Premium Member
Dec 31, 2011
Visit Channel
I really like the cross solve; that would be a very good function for those who are looking to get their cross near-optimal. The speciality scrambles are very slow; otherwise I might give this scrambler a chance to generate scrambles for my LL comp. If you can speed it up, that would be good. The layout is better than qq, but the speed of the scrambles being generated would make me sway towards qq. Maybe it would be worth releasing this as a downloadable timer, to speed it up. This timer definitely has potential, though.


Apr 23, 2011
Maine, USA
Wow, I love that you can have up to 10 stages; that could be really useful. :)

But, I had refresh the page a few times before it loaded. It was just a blank page. I am using Firefox.
Jan 16, 2012
But, I had refresh the page a few times before it loaded. It was just a blank page. I am using Firefox.
yup me too. and i'm using firefox too. But now it's working great!
I love how this timer looks and how you can click the times to see the scrambles, and click the number to delete. Overall, I love the interface and I'm definitely gonna use this timer from now on. Great job!


May 28, 2008
Bug #1: I'm getting server error when I attempt to load the page.
0.0 The connect is randomly, frequently, unpredictably reset by GFW(the great firewall) of China. Just fresh and fresh~(You may check the source code of it. If you get nothing, you know what happened)

I really like the cross solve; that would be a very good function for those who are looking to get their cross near-optimal. The speciality scrambles are very slow; otherwise I might give this scrambler a chance to generate scrambles for my LL comp. If you can speed it up, that would be good. The layout is better than qq, but the speed of the scrambles being generated would make me sway towards qq. Maybe it would be worth releasing this as a downloadable timer, to speed it up. This timer definitely has potential, though.
The cstimer's 3x3x3 solver is the same as qqtimer's. The only difference is I compressed it with closure(google's javascript tool) to reduce code size or speedup downloading. I'll check whether it does run much slower or just because of the bad network environment.


May 28, 2008
I love this timer but I have one question. Is there an average of 100 function?
Of course yes. Just Click the last row which shows "avg: XXX", you'll get such details like:
Generated By csTimer
number of times: 101/101

best time: 0.01
worst time: 51.67

current mo3: 0.09 (σ = 0.02)
best mo3: 0.05 (σ = 0.04)

current avg5: 0.10 (σ = 0.01)
best avg5: 0.06 (σ = 0.01)

current avg12: 0.09 (σ = 0.01)
best avg12: 0.08 (σ = 0.01)

current avg50: 0.11 (σ = 0.05)
best avg50: 0.11 (σ = 0.05)

current avg100: 0.54 (σ = 3.64)
best avg100: 0.54 (σ = 3.64)

session avg: 0.55 (σ = 3.66)
session mean: 3.19

Time List:
41.16, 34.64, 42.42, 51.67, 39.78, 49.08, 48.99, 0.19, 0.21, 0.05, 0.19, 0.18, 0.20, 0.22, 0.05, 0.09, 0.23, 0.07, 0.05, 0.05, 0.27, 0.28, 0.33, 0.23, 0.30, 0.27, 0.35, 0.37, 0.29, 0.24, 0.51, 0.04, 0.10, 0.10, 0.27, 0.11, 0.09, 0.10, 0.11, 0.13, 0.12, 0.33, 0.14, 0.32, 0.35, 0.11, 0.12, 0.14, 0.13, 0.12, 0.30, 0.06, 0.18, 0.04, 0.06, 0.07, 0.19, 0.05, 0.10, 0.10, 0.23, 0.05, 0.25, 0.01, 0.10, 0.06, 0.26, 0.09, 0.10, 0.12, 0.09, 0.10, 0.14, 0.26, 0.30, 0.12, 0.17, 0.15, 0.12, 0.05, 0.11, 0.53, 0.22, 0.10, 0.10, 0.10, 0.09, 0.08, 0.07, 0.06, 0.07, 0.10, 0.06, 0.09, 0.09, 0.10, 0.11, 0.10, 0.08, 0.11, 0.09
Last edited:


May 28, 2008
Fixed its bug on IE7, IE9 which I hadn't found before. Thanks to Carson's image at #5. Now it works on chrome, firefox, safari, opera, IE9+ and seemingly on IE7 and IE8 (some functions such as 3x3 random-state scramble still don't work quite well on IE7 and 8 for some reasons)