Webapp to easily compare switch force curves

herald

04 Jan 2023, 16:01

I'm a big consumer of the keyboard switch force curve graphs that HaaTa and ThereminGoat have made available to the community. Whenever I want to get an idea of what a switch is like, the first thing I do is look up its force curve and compare it to force curves of switches I'm familiar with. This often results in having lots of windows open with a graph each, and trying to eye the more minute differences between them when I really should have multiple curves in the same graph.

I have created a small webapp that does exactly this: http://www.switchesdb.com/

It allows you to search through switches measured by HaaTa and ThereminGoat, then view their force curves and optionally overlay multiple within a single graph.

Screenshot 2023-01-04 at 15.19.59.png
Screenshot 2023-01-04 at 15.19.59.png (524.01 KiB) Viewed 11537 times

You may wonder why I called it "switches database." There are already a dozen online databases for keyboard switches and I don't intend to manually curate and maintain facts/stats like these do. I wish to provide a greater focus on *data science* and collate measurements from multiple sources and use this data to extrapolate more information on the switches. HaaTa has already done this by calculating and including *total force* (work) in his graphs, and I think he had ambitions for more (ThereminGoat has recently announced similar aspirations). I share these ambitions and think there lies lots of potential in curve analysis, and using the results as a basis for discovering new switches and comparing existing ones.

Let's say you like a switch, but you wish it had less preload and more tactile drop-off. Imagine being able to look up these values for your switch, and then filter for your target values and quickly see which switches match, instead of spending hours upon hours searching the internet for subjective comments which later turn out to be incorrect.

Well that was a foray into what I hope to come. Right now the webapp is just a more efficient interface to the force curves already available. If you have suggestions for what kind of additional data we can extract from the measurements, and particularly if you have the maths (numpy is even better) to calculate it (reliably for measurements of nearly a thousand switches) - and likewise, any suggestions to improve the current functionality of the webapp - please let me know!

Findecanor

05 Jan 2023, 16:23

Thanks for doing this! I've previously found myself comparing force curves by scaling and superimposing screenshots.

User avatar
Muirium
µ

05 Jan 2023, 17:36

Agreed.

It’s fiddly on my phone (away on holiday) but what isn’t. :lol:

herald

06 Jan 2023, 12:01

Findecanor wrote:
05 Jan 2023, 16:23
Thanks for doing this! I've previously found myself comparing force curves by scaling and superimposing screenshots.
I'm glad I wasn't the only one. :D
Muirium wrote:
05 Jan 2023, 17:36
Agreed.

It’s fiddly on my phone (away on holiday) but what isn’t. :lol:
I'll create a responsive layout next time I work on it, so you won't have to zoom and drag around the page.

User avatar
Muirium
µ

06 Jan 2023, 16:36

Beautiful. :D

You’ve made something very helpful. Especially when fighting holy wars between different switches!

Personally, I reckon there’s a lot, lot more to a switch than its force graph. Just look at Model M vs. Model F for one example: the charts don’t capture F’s slick, sharp, downright classy majesty at all. But these charts do make a perfectly valid starting point when searching for your next ideal keyboard. They’re a beginning to an end.

User avatar
Muirium
µ

07 Jan 2023, 09:41

Here's Model F vs. Model M, for instance:
FvsM.png
FvsM.png (84.68 KiB) Viewed 11342 times
Note the missing legend to tell which one's which on the chart. Consider this a feature request for the export button. Also permalinks to (arbitrary user created) charts. :geek:

Anyway, can you guess which switch is which on this chart? They look pretty similar besides the actuation point and the recovery of resistance after this until bottoming out at quite different depths. What I don't see—nor can you on such charts—is the smoothness of the travel and the satisfaction of the click. M and F are worlds apart on both counts.
Spoiler:
Blue is F and orange is M. Not what I would have expected at all. The source is an AT, which may explain some of it as I find those a bit lacking in feel compared to other Fs, but it's such a striking difference I doubt it's only that.

User avatar
paperWasp

08 Jan 2023, 19:26

Great app, thanks for the effort!

herald

12 Jan 2023, 22:59

Thanks for the feedback!
Muirium wrote:
07 Jan 2023, 09:41
Note the missing legend to tell which one's which on the chart. Consider this a feature request for the export button. Also permalinks to (arbitrary user created) charts. :geek:
I've delegated the chart functionality to vega-lite, and disabled its legend as it would be redundant with the interactive HTML legend above it. Unfortunately this means its built-in export functionality also lacks the legend. It's definitely something I want to add once I can find an alternative approach. Permalinks is on the roadmap as well (I want to include the entire state of the app in the URL, so you can copy/bookmark it and the page will be identical when opened again).

Regarding which is which, I've been looking at force curves long enough to be able to identify the famous switches by their force curve. :lol:

User avatar
Muirium
µ

13 Jan 2023, 01:56

Yes, that's how I'd like to see permalinks done, too: the original query, free to be tweaked, not just some numeric static.

The physics student in me wonders if anyone's plotted differentials and integrals of those charts? Maybe those correlate in some telling way with switch perceptions.

User avatar
Scarpia

13 Jan 2023, 17:14

You’ve created something really cool - I have already used it on two separate occasions and I was on my iPhone 6s (small screen) both time and had to power through the non-responsive UX — something I don’t willingly endure unless I have to, so I can only conclude that you’re really onto something!

herald

14 Feb 2023, 23:40

Glad to hear, Scarpia!

I've given it some TLC since and it's now mobile-responsive, includes legends, and the URL contains the displayed switches (has the cool side-effect of being able to re-open a closed tab and use the back/forward buttons).

Let me know if you have any other suggestions for improvements. I still have a lot on the todo-list, as well as notes on how to calculate potentially interesting values from the data, which I'll get to once I've finished all the other stuff.

User avatar
Scarpia

15 Feb 2023, 19:45

Much better, thanks! A few minor ideas remaining to polish up the mobile experience:
  • Increase the size of all interactive elements to account for thumbs being far less precise than mouse cursors. (Links, search field, open/close sidebar, Remove curve buttons)
  • if possible, place the chart legend below the chart, as the mobile screen width can’t accommodate both
And finally - and now I’m definitely just being greedy - mooooore switches!!! All the switches!!!!! I searched for Durock and there was only one Durock switch there :-/ and no Ergo Clears, no Gazzew Boba U4 / U4Ts… I need more! Mooooore!

herald

18 Feb 2023, 12:39

I'll see what I can do. As is probably obvious, UI design isn't my forte :)

ThereminGoat is measuring new switches almost every day, so hopefully there will come a day where most things have been measured! You could check out Zealios Purple, which is basically an Ergo Clear before Cherry started producing them.

User avatar
Scarpia

20 Feb 2023, 16:23

Is the site code on Github? I could take a stab at it myself if you’re open to pull requests. Of course this assumes I somehow find half an hour to do it between work, toddlers and keyboard sales

herald

04 Mar 2023, 13:02

Yes, it's hosted here (also linked with the Source button in the bottom-left corner of the webapp): https://github.com/heralden/switchesdb

It's definitely open to PRs. Feel free to change any part of the CSS - it's mostly functional now and not pretty, so any help from someone with a designer eye would be appreciated!

An update regarding Durock, Ergo Clears and Boba's: bluepylon's dataset (https://github.com/bluepylons/Open-Swit ... asurements) was recently brought to my attention, so I'll be adding these soon.

herald

01 Apr 2023, 20:11

The update adding bluepylons data is live now, which brings the total switch count to a little over 1000!

I started automatically adjusting the curves (instead of using the source data directly), so there should be improvements overall, but probably some incorrectly adjusted ones as well.

Duplicate switches (measured by different sources) are also no longer merged, and the source of a measurement is made apparent everywhere in the UI. Comparing the different measurements of same switches is quite interesting - they're usually close to identical curves, but don't overlap completely. For some switches like Cherry MX Blue, it's quite different! I think this comes down to how the switch internals hop around when it's being depressed very slowly, and how the different measuring rigs pick this up.

Post Reply

Return to “News”