# Block Keeper: Cross platform desktop timer

#### DalDal

##### Member
Block Keeper is a standalone, cross platform desktop cubing timer. It provides a simple and clean interface, completely offline, without Java.

Features:
• Windows, MacOS and Linux support
• Java not required
• Completely functional offline, no Internet connection required
• Event based session organisation
• Stylish and easy to navigate interface
• Scramble generation for all WCA puzzles
• WCA Inspection support with voice announcements
• Optional split timer controls
• Multiple interface themes

I built Block Keeper with session organisation in mind. After selecting which event you will be solving for, the scramble adjusts to it and all newly created sessions will appear only under that event. So only your 3x3 sessions will be shown when you select 3x3 and only your 2x2 sessions will be shown when 2x2 is selected. I don’t know how most people organise their sessions, and I’m sure it’s different for everyone, but this system promotes session organisation across a wide range of events.

Block Keeper uses Github’s Electron, making it incredibly flexible, cross platform with no Java required! Unfortunately the file sizes are much larger than I would like, but Java takes up storage regardless.

A comprehensive user guide is also available. Most of Block Keepers is intuitive to those who have used timers before but there are some neat shortcuts and useful information available if you need it. It also has a roadmap for future development ideas.

Block Keeper is still in development and I’d love some feedback to help make it even better. If you find a bug or want to request a feature let me know.

#### DalDal

##### Member
A new version is available which resolves an issue which prevented sessions from being loaded correctly. Apologies for any inconveniences this may have caused.

#### Calode

##### Member
This is pretty cool. If you keep adding features that cstimer has, I'll probably switch.

Feature request: can you export the sessions to an editable json so say someone like me can import their cstimer times and/or render them into graphs.

#### DalDal

##### Member
Thanks for the feedback! cstimer was my main timer and is an inspiration. I'm planning to add graphs within sessions and also within puzzles in the future. I store records as JSON files so it should be easy to add export and import functionality, not only block keeper, but also for other timers.

#### JohnnyReggae

##### Member
Great app, works well. I have a few requests and they are mostly due to the fact that I use CSTimer mostly ....

Scramble Image ... with customisation of colours
Stats breakdowns ... time distributions, time trends, custom stats

#### LouMeu

##### Member
REALLY cool, but there are some slight issues.
So there might be some problem with the scramble generator...

Also, more color customization would be nice...

#### DalDal

##### Member
Sorry I can't see the image. I know the scramble generator isn't perfect so I would love to see where I can improve it. Could you send the image to [email protected] and I'll take a look.

I've been working hard the last couple of days and have already introduced import and export for Block Keeper sessions and am half way through csTimer imports. I have also introduced a new feature which I personally have never seen in a timer before and look forward to sharing with you in the next version.

I hope to release the next version before the weekend. I am listening to all your feature requests and I hope to implement them as soon as I can. I will be taking a holiday next week and sadly won't be able to work then, so things will be a bit slower. Thanks again for your comments!

#### RyanMCLNY

##### Member
My one small issue with the timer is the Square-1 scrambles. I prefer the scrambles from Cstimer or TNoodletimer as that is the way the WCA scrambles are.

#### Me

##### Member
This is really good, I've been waiting to see when someone would take advantage of electron for a desktop timer. Nice job!

My only feedback:

- take advantage of menuTemplate to put some actions in the menu and perhaps keystrokes for common actions. Ctrl/Cmd + Z to remove last time. I found that Ctrl/Cmd + N makes a new session but menu items could document that?
- Should a new scramble generate on spacebar up? (Even before the timer is running, like spamming the spacebar)

#### DalDal

##### Member
Thanks for the continual feedback guys. I have most of your requests on the roadmap and look forward to adding them. Scrambles are a tough thing. To keep everything offline I need to use my own scramble generators. I should study the source of TNoodle or other open source scramblers to improve them, unless anyone knows of a Javascript scramble library? It's on the todo list but it will likely be a while away as I would need to tackle image generation (which again needs to be offline) at the same time.

Version 0.2.0 is practically complete and I am just updating the documentation and packaging it up. I hope to release it by tomorrow.

#### DalDal

##### Member
Version 0.2.0 is now available!

- ADDED option to use webcam to video record solves, view and save them. (You can only view and save your most recent solve, no videos are saved permanently but you can manually save them, must be enabled in preferences)
- ADDED shortcut ‘Control + R’ to quickly view video of last solve
- ADDED import and export options for Block Keeper sessions and import csTimer sessions
- Session Trend
- Distribution
- Event Trend​
- RESOLVED an issue where using escape to close preferences would leave everything disabled
- RESOLVED an issue where disabled select menus were usable while preferences menu was open
- CHANGED event names to better fit WCA names. This may cause duplicate events. To resolve this (if you can navigate and understand a JSON file), go into puzzles.json (locations stated in user guide http://dallasmcneil.com/projects/blockkeeper/guide) and rename all sessions named NxN to NxNxN (e.g "4x4" to "4x4x4", "3x3 BLD" to "3x3x3 BLD") and remove the other duplicate. Make sure Block Keeper is closed before doing this. If you have any difficulty or don't know how JSON works, send your JSON file to me at [email protected], and I'll resolve it a soon as I can. Apologies for the inconvenience
- POSSIBLE ISSUE where very rarely, sessions are not saved and are lost. Please backup regularly and do not force quit the application

If you see any visual glitches or issues, restart Block Keeper and it should be fixed. This is just a transitional issue due to the above mentioned name changes to events.

As I said early, I'll be away for a week and won't be working on Block Keeper. But I'm still looking for feedback. Thanks again for checking out Block keeper

Last edited:

#### Me

##### Member
To keep everything offline I need to use my own scramble generators. I should study the source of TNoodle or other open source scramblers to improve them, unless anyone knows of a Javascript scramble library?
There should be the TNoodle web scramblers, timer.cubing.net uses it https://github.com/cubing/timer It would be nice if there was some npm module.

The guide is good, but what's even better? Menu bar items with self documenting keystrokes, I see the Meta + 1,2,3 actions for times now through the guide but 99% of users don't read through guides these days.

I cannot get the video recording to work? I see video player bar though, I'm on macOS 10.11.6 if that makes any difference. I've thought a lot about a feature like this so I'd really like to try it.

Still all amazing, I can't wait to see what this will turn into.

#### Attachments

• 56.8 KB Views: 21
Last edited:

#### DalDal

##### Member
Hmmm the video bar appearing there is a sign that something has gone wrong... After restarting does everything work fine? (the bar isn't there) If it's still there, is the green light on? (assuming you use the iSight camera)

EDIT: Also thanks a tonne for the GitHub repository, I found this library (https://github.com/cubing/jsss) which appears to be exactly what we need. I'll investigate it more when I'm back.

Last edited:
Me

#### dskids

##### Member
Wow this is awesome, really I glad I stopped by here today. Going to download tonight and give it a try in my next session. Absolutely love the idea of the webcam video recording feature as I have been pondering a way to critique my own solves quite a bit lately.

#### Me

##### Member
Hmmm the video bar appearing there is a sign that something has gone wrong... After restarting does everything work fine? (the bar isn't there) If it's still there, is the green light on? (assuming you use the iSight camera)
I've restarted a few times, no green light / nothing indicating it's trying to access my webcam. Even more strangeness, I found the checkbox in the settings "Video Record Solves" and when checked I cannot start the timer at all. Sounds like you might want some tests.

I'll try this on my Windows machine later and see if I get the same stuff.

#### Isaac VM

##### Member
I am having the same problem as Me (that sounds weird hehe), I am running a different version though macOS 10.12.2
I really like the idea of this timer

#### DELToS

##### Member
So with this new timer, will I be able to store more solves than in cs without them being deleted? And there's some sort of bug I think, it won't let me import the .txt file from csTimer

#### Sergeant Baboon

##### Member
This looks really nice, I'm excited to do some more solving over the next few days and see all the fancy features!

I see you've already gotten some feedback about the scrambles, but I noticed a few things too. First, on 3x3 I got a weird scramble that ended with L' R' L... it threw me off and took a second before I realized why it was weird, haha! I'm also seeing 3x3 scrambles breaking onto a second line even when I have the window maximized and there's plenty of space.

In addition, the megaminx scrambles are quite hard to read. There are no line breaks after the U/U' moves, the font is not monospace, and I have to scroll down to see the last line, even though there is plenty of space on the screen. I understand that changing the font will likely upset the style of the program, but it really does make mega scrambles easier to read.

Cosmetic gripes aside, this is pretty cool and I'm gonna start using it from now on.

#### Attachments

• 9 KB Views: 13
• 35.2 KB Views: 14

#### DalDal

##### Member
Wow, thanks for all this feedback and positive words guys. Sounds like there is some trouble with the camera being accessed. Will test on a second machine and find out what's up. With the scramble library we found, all scramble issues will be resolved next major version, so megaminx layout and weird patterns (U D' U') won't be a problem. Block Keeper only recognises .json files for imports, so just rename it with that extension, I'll add .txt to be accepted later. There are no limits to how many sessions you can store either.

#### DalDal

##### Member
Version 0.2.1 is available and fixes the video issues.

So the camera recorder library wasn't automatically included in the dependencies while installing it for some reason. Hence the functionality just wasn't available when Block Keeper was exported, but was available during testing. Apologies for the inconvenience (especially since I was away for a week. Everything should work fine now.