> Thought idea: predict what key you are about to press next, and make the ones around it stiffer so you are less likely to press them by mistake.
If the bottom magnet were an electromagnet, then in fact one could make the keypress stiffer. As it stands, this project only changes the actuation point, but not the stiffness curve.
That said, I would love the feature that you mention. It could possibly introduce a new feedback concept to programming, similar to e.g. the shaker sticks that airline pilots are familiar with. Or, one could reduce the stiffness after a long day at work. Or increase the stiffness when the IDE detects e.g. that you're accessing a string position beyond bounds, or your SQL query is not parameterized but contains a concatenated user input.
The force for a cherry red switch is only around 50g. A brake, rather than direct electromagnetic force, could be used most of the time (see Playstation 5 controller [1]).
Recently, a few brands (Wooting, Razer, Steelseries, etc) have introduced keyboards with analogue-capable input (using either hall-effect, like the switch in the article, or optical sensors). This already allows the actuation to be set per-key in software, so your idea probably wouldn't even be that hard to implement with today's hardware! (although you may need a beefier microcontroller on the board)
On the "adjusting them as you type" front, the Wooting keyboards already support detecting a key retrigger even without a full release. They are monitoring key position and if you start to release and then push again they can make it trigger a new keypress.
I agree that having a software defined key-press resistance would be amazing. If you could manage that and then add in haptic feedback to simulate standard mechanical keyboard actuation clicks...
It actually makes sense to measure a linear scale of pressure instead of a single click, with a smart driver that knows if its a key you typically hit hard or gently eg d (index finger) vs z(little finger).
Thought idea: predict what key you are about to press next, and make the ones around it stiffer so you are less likely to press them by mistake.