Show HN: Mathpad – Physical keypad for typing math symbols

crowdsupply.com

76 points by MagneLauritzen 3 days ago

Here's something different than your usual fare: A physical keypad that lets you directly type math!

Ever tried typing mathematical equations in your code IDE, email, or on Slack? You might know it can be tricky. Mathpad solves this with dedicated keys for Greek letters, calculus symbols, and more. Press the ∫ key and get ∫, in any application that accepts text. It uses Unicode composition, so it works everywhere: Browsers, chat apps, code editors, Word, you name it. Basically, anywhere you can type text, Mathpad lets you type mathematics.

I built Mathpad after getting frustrated with the friction of typing equations in e.g. Word, and what a pain in the ass it was to find the specific symbols I needed. I assumed that a product like Mathpad already existed, but that was not true and I had to build it myself.

It turned out to be pretty useful! Three years of solo development later, I'm launching on Crowd Supply. One of the trickiest parts of this project was finding someone who could manufacture custom keycaps with mathematical symbols. Shoutout to Loic at 3dkeycap.com for making it possible!

Fully open source (hardware + software): https://github.com/Summa-Cogni/Mathpad Campaign: https://www.crowdsupply.com/summa-cogni/mathpad Project log: https://hackaday.io/project/186205-mathpad-the-math-keypad

RossBencina 16 hours ago

That looks very cool. I wonder how hard it was to get those printed keycaps made.

Ideally you want access to everything without moving your hands off the keyboard. The DIY keyboard scene makes a lot of use of layered keymaps. It seems like the endgame for this kind of thing is not separate "keypads," but rather wider support, standardisation and adoption of multiple-layer keymaps. Half the problem is designing good maps and the other half is learning them. Sharing maps, and better software for learning/practicing the maps would help. Then you might need a few more keys to select layers. A minimum implementation might be adding a two thumb buttons below the space bar to select layers.

EDIT: inserted more text

eviks 18 hours ago

> and what a pain in the ass it was to find the specific symbols I needed.

But that's exactly the same issue with the hardware solution - you can't use Ctrl+F to find by name and you can't see all the many symbols on the keyboard itself. You'd need a software solution to show a visual searchable "cheat sheet", and also you can map more mathy keys to an existing bigger keyboard, where entering some symbols will be way more natural, e.g., for greeks you can map most of them to different A and B latin keys instead of having both αβ on the same key. Similarly, you could do map ℤ to Z and ℕ to N, so these would be simpler to remember/input than using a dedicated keypad, so the printed symbols on the keypad aren't that useful anymore.

burnt-resistor 6 hours ago

So, like a scaled down space-cadet keyboard. ;) Looks neat for people who write a lot of scientific papers.

With 3 modifier keys, this offers 8 potential modes. What's done with the other 2?

Why only 12 keys and 3 modifier keys? Granted, 6+ modifier keys of the SCK is probably 1 or 2 too many.

Also, I miss graphing calculators / CAS like the HP 48 where math symbols were (usually) easier-ish to access.

darthoctopus 18 hours ago

As an intermediate alternative between a hardware keyboard and a graphical symbol picker, I use an .XCompose file with contents that look like this:

    # GREEK
    <Multi_key> <g> <A>    : "Α"   U0391    # GREEK CAPITAL LETTER ALPHA
    <Multi_key> <g> <a>    : "α"   U03B1    # GREEK SMALL LETTER ALPHA
    <Multi_key> <g> <B>    : "Β"   U0392    # GREEK CAPITAL LETTER BETA
    <Multi_key> <g> <b>    : "β"   U03B2    # GREEK SMALL LETTER BETA
    <Multi_key> <g> <D>    : "Δ"   U0394    # GREEK CAPITAL LETTER DELTA
    <Multi_key> <g> <d>    : "δ"   U03B4    # GREEK SMALL LETTER DELTA
    <Multi_key> <g> <E>    : "Ε"   U0395    # GREEK CAPITAL LETTER EPSILON
    <Multi_key> <g> <e>    : "ε"   U03B5    # GREEK SMALL LETTER EPSILON

    ...

    # Math Symbols
    <Multi_key> <i> <n>    : "∈"   U2208 # IN
    <Multi_key> <f> <a>    : "∀"   U2200 # FOR ALL
    <Multi_key> <t> <e>    : "∃"   U2203 # THERE EXISTS
    <Multi_key> <a> <n> <d>    : "∧"   U2227 # AND
    <Multi_key> <o> <r>    : "∨"   U2228 # OR
    <Multi_key> <less> <parenleft>  : "⟨" U27E8     # MATHEMATICAL LEFT ANGLE BRACKET
    <Multi_key> <greater> <parenright>: "⟩" U27E9   # MATHEMATICAL RIGHT ANGLE BRACKET
    <Multi_key> <d> <d>    : "∂" U8706 # DEL
    <Multi_key> <n> <b>    : "∇" U8711 # NABLA
I've used this for perhaps the last 10 years now and I don't think I could go back to working on a machine without configurable compose key functionality at this point.
throwaway81523 16 hours ago

$140, lol. How about just selling the keycaps for an existing numeric pad or even small mech keyboard, and that's only if the physical keys are really needed.

The main slowdown I face as an occasional TeX user is remembering the TeX names of less frequently used symbols. For that purpose there is detexify (draw the character and find the name, doesn't work all that well) but a popup graphical menu or (if you must) a phone app would be fine.

  • crinkly 16 hours ago

    Low tech solution here. Found a cheat sheet and printed it and stuck it on the wall next to my monitor.

    • volemo 9 hours ago

      Low² tech solution here: just google it.

      (Or use Unicode search extension for Raycast—like I do—which is fundamentally the same as googling, but with fewer key presses.)

zokier 19 hours ago

my 2c

* the way unicode input works in qmk is pretty janky imho. this is not something you can plug into any random computer and expect to always work perfectly without doing any configuring.

* you can accomplish the same thing if you have qmk (or similar) based keyboard by throwing the symbols on another layer or whatever you prefer. for $140 you can get a whole keyboard.

the keycaps are a nice touch though

  • eviks 18 hours ago

    QMK won't allow you to search for the symbols, which is a big limitation since there are hundreds of them

staplung 20 hours ago

Very cool. I've long wanted something that's a bit of a cross between a calculator and a numpad; something that could be used as a calculator or just to send symbols to the computer that are easier to type on such a device.

Question: the description says it has access to all the Greek alphabet letters but only the lower case ones are shown on the keypad: do you get (e.g. ∆) by using the shift key on the regular keyboard plus δ on the Mathpad?

toomuchtodo 3 days ago

I think this is super cool and intend to donate because I love the love and thought you’ve put into this. With that said, did you consider using something like an Elgato Stream Deck programmable control pad?

https://www.elgato.com/us/en/p/stream-deck

  • MagneLauritzen 2 days ago

    Thank you for the kind words. I did orginally consider using a programmable stream deck, but quickly realized that it would not be sufficient. My requirements were:

    1) Over 100 symbols immediately accessible

    2) Single-hand use

    3) Small size

    The elgato stream deck meets some of these requirements, but it would not have been possible to support the amount of symbols I wanted.

    • wduquette 19 hours ago

      I do use an Elgato stream deck for entering Unicode symbols, and I think what's really needed in this space is a cross between a stream deck and the Mathpad: programmable keys with LCD key caps, and some shift keys to increase the number of available symbols. Then it could support configurable symbol sets.

westurner 3 days ago

How much faster is Mathpad than creating a per-document table of symbols with their Unicode numbers and/or latex values and copy/pasting until you remember the Ctrl-Shift-u nnnn sequence?

  • MagneLauritzen 2 days ago

    Not much faster if you only need a few symbols, and if you only work in one document. I used to make such tables for large documents before I created Mathpad.

    Mathpad's killer feature is working anywhere you can type text, not only document editors. I've found it particularly useful when putting together technical presentations in Powerpoint, and when documenting the algorithms I write at work which are rather math and physics heavy.

tonetegeatinst 3 days ago

Amazing project and glad to see something like this exits. While my current setup dosnt allow for this, if that ever changes and I start taking more latex notes I will be ordering one of these.

  • MagneLauritzen 3 days ago

    Thank you!

    The killer feature of Mathpad is not LaTeX (although that is supported) - it's letting you directly type mathematical Unicode symbols practically anywhere you can type regular text.

    Mathpad will remain available on Crowd Supply long after the campaign ends (albeit at a higher price), so just come back later when you need one!

    • RossBencina 16 hours ago

      In some circles "not typeset in LaTeX" is a strong smell, and not a pleasant one. Simple use of Unicode symbols will not overcome that.

olejorgenb 2 days ago

1. Cool!

2. Why use a staggered layout? Because people are used to it? Counterpoint: the numpad is not staggered and people are easily able to use both parts of a normal keyboard)

  • MagneLauritzen 2 days ago

    1) Thank you!

    2) The staggered layout has been carefully chosen to allow for single-hand use. The user must be able to press up to three keys at the same time (2 modifiers and 1 symbol key). The layout I settled on for Mathpad makes this as easy as possible.

    • olejorgenb 2 days ago

      Interesting. Perhaps the fingers do want to go at a slight angle so making it a good choice :)

      • eviks 18 hours ago

        they don't, lateral moves (especially diagonal) are the least ergonomic for the fingers, your numpad insticts are closer to reality, though the best would be to "stagger" vertically to reflect the difference in finger length

threatofrain 20 hours ago

IMO a software-based search interface is cognitively nicer. I use way too many symbols, like i𐝒.