Back

Cosmos Keyboard: Scan your hand, build a keyboard

383 points20 daysryanis.cool
rianadon19 days ago

Author here. It’s a surprise seeing this posted while I’m in the middle of traveling. Happy to answer any questions! If you’re curious, the tech stack is static assets bundled with sveltekit/vite and hosted on gitlab pages + a minimal go backend.

boomskats19 days ago

What you've built is a work of art, it blew my mind the first time I came across it. I love the completeness of vision (boomboom tss).

I've only just realised that you've opensourced it all so I haven't looked at the code yet, but a couple of Qs:

- is there anything that the old wave your fingers at the screen pose detect model did better the new screenpalm method? I always wondered if you were detecting the angle of motion (pronation?) for each finger to tilt its keywell, and I guess it's maybe harder to do that with the new method.

- have you ever thought about using the measurements for one hand to spot measurement outliers in the other? Would it ever make sense to generate a symmetrical keyboard from the combined measurements of both hands?

- have you thought about collaborating with other keyboard designers to add their designs to the app and give them a cut? For example the Cygnus[0] is a stunning keyboard; I'm not sure if it is parametrically generated, but I do remember thinking that I'd absolutely pay money to get one tailored to my hand geometry, and then wondering whether you could ever pull off building a designer marketplace/ecosystem out of the whole thing, maybe with a little sdk. It's one thing that the aliexpress copycat sellers can't copy.

Also somehow only just realised that you have a blog. I might go read it.

[0]: https://kbd.news/Cygnus-1.0-2307.html

rianadon19 days ago

Thanks so much! Answering your great qs:

1) I still have the waving your fingers stage (it's after the screenpalm), but it now walks you through different finger motions so that the results are more consistent than waving your fingers all around. It's detecting then angle of motion, but I'm so far only using this for building the 3D hand model. The old method had better UX and fewer bugs, but the new one will more accurately measure the size of your hand.

2) I've never thought of that! I sometimes generate symmetrical keyboards for myself, simply because it’s easier to edit when both sides are synced. But I ultimately think it’s better to fit each hand independently.

3) The cygnus keyboard is super cool. I’ve made one and modified the STEP file to change the sockets. The fusion 360 files for it are published, so it likely has some parametrization but not anywhere close enough to achieve the flexibility of the Cosmos model.

There’s a tradeoff between customizability and how perfect the keyboard looks and feels. I’ve opted to go all-in on customizability, because to my knowledge no other keyboard design does this. I make as few assumptions about your keyboard as I can, so that Cosmos works with a single key, small mouse-like modules with a trackpad/ball and a few keys, or a proper keyboard shape. The downside is that what I’m doing is akin to teaching a robot to paint, whereas I’d compare designs like the Cygnus that place more constraints on the keyboard shape to a human painting. Until AI becomes sufficiently skilled at 3D design, the human painting will be more creative and skilled than the robot, and I can't bridge both types of design.

culebron2118 days ago

1. What about a thumb cluster with 4 keys in a row? IDK if it's workable, maybe not. My experience with Ergodox says pressing top row on thumb cluster is too clumsy. (Maybe it's easier with dactyl-like keyboards?)

2. On Ergodox EZ, and non-English layout, I need more keys. Unfortunately, the right side corner of ISO keyboard has to be distributed among other places on Ergodox EZ. (I'd love to have home/pgup/pgdn/end column somewhere, like on laptops. Maybe the rightmost end of kbd is not the best place for it, IDK.)

3. Adding extra row/column causes lower row collide with the thumb cluster. I guess, it's reasonable, but I don't know what's the workaround. (remove the lower row completely?) https://imgur.com/a/vdfOLq1

Good idea about finger scanning.

I tried the scan the hand and simulate features. Will the editor make different halves of the keyboard?

Also, thumb bends differently than in the simulator. :)

culebron2118 days ago

to be clear about non-English layout in ErgoDox EZ. In ISO keyboard, there are 3 keys (two square brackets and foot/inch key), that don't fit in EZ's main keys block. I got 2 options for them:

1. Put them on the rightmost column, but it's unclear where the `]` has to go -- lower, or upper.

2. Use the rightmost wide column of keys for some special keys (like home/pgup/pgdn/end), but have to redistribute these 3 keys elsewhere.

tpmoney18 days ago

Not sure the specific problems with a non-english layout, but if it helps with some ideas this is the layout I use for my keyboard (so far)[1].

[ and ] go on the inner columns on either side and '/" goes where it normally would be on an ansi qwerty layout.

The page up/down and home/end keys live on a temporary (hold) layer under the arrow keys, which is a habit I picked up from many years of using mac laptops where fn + arrow keys is how you get those keys anyway.

Layers 0 and 3 are the really important ones, 1 and 2 are just the defaults from Ergodox. And while they are assigned, I currently haven't been using the capslock, the lower-left ', the lower-right [ ] and cmd+enter keys or the Meh key so those would be freed up for use if needed. I also turned on the "auto-shift" functionality, so if you liked that it would also free up the left and right shifts for other use.

The letter layout is "middlemak"[2] which I found to be more comfortable than qwerty or colemak on the ortholinear layout, and a bit easier to learn than colemak because it shares a lot of keys with qwerty. But that may not be relevant for you if you're using a non-english key set.

[1]: https://configure.zsa.io/ergodox-ez-st/layouts/pNO0G/latest/... [2]: https://www.reddit.com/r/Middlemak/

+1
culebron2118 days ago
AndrewHampton19 days ago

I used this to build my current keyboard a few months ago. It was my first hand-wired keyboard, and this made it much more approachable. Thanks for creating it!

CableNinja17 days ago

Have you considered doing this for mice? Im fine with a normal keyboard, but mice, maaaaan. My hand doesnt sit right on any mouse, and my hand is always dragging on the pad, etc.

I briefly thought about like a form fitting style, where you go and have your hand scanned in resting position on a dummy mouse, and then the mouse body is formed for your hand. This could also allow for button customizations as well.

Pet_Ant19 days ago

It could really use a way to control the spread of the button around the track ball. Just to make them closer together. The palmrest should also grow wider when columns are added to the keyboard.

Also, would be great to have an option of adding a USB hub on the inner edge for plugging in a USB key or adding a USB plug on the outside for a mouse.

rianadon19 days ago

On the advanced tab, you can adjust the vertical spacing of the thumb cluster to move keys closer together. As for USB hubs, at some point I need to draw a line and stop adding options. You can download a STEP file of the keyboard and edit it in CAD, or if you’re looking for something easier to learn, I recommend editing the STL file in tinkercad. If you don’t mind plugging in the mouse to the back, you can configure custom-sized connector cutouts in advanced mode.

utopcell19 days ago

Great work @rianadon!

epiccoleman18 days ago

Forget how cool the keyboards are (they are very cool) - this website is just awesome in so many ways. There are like, 5 things on here that made me say "wow, I didn't know a web browser could do that" as I went through the setup. The hand scanning, the parametric 3d modeling, the WebRTC stuff for establishing comms with my phone?! Even if you've got no interest in weird crazy keyboards, this site is just a great tech demo for some of the wild stuff a web browser can do these days.

I've got half a keeb printed that I generated here, I really need to restart that project at some point...

MaxGripe19 days ago

I've had so many keyboards that I can't even count them. I've owned five mechanical ones alone. Out of the ergonomic ones, I've only had one - a Microsoft and it was pretty nice. Almost all of them have been replaced because they broke. Either the keys stop working (most often) or the stabilizers start failing.

In my opinion, the best keyboards are the ones that are very easy to clean :) Ideally, switches should be chosen based on your hands since everyone has different preferences. I'm currently using Keychron K5 SE ultra-slim with Low Profile Optical hot-swappable "Banana" switches, and it's the most comfortable keyboard I've ever had — and it's not even that expensive (for a mechanical keyboard). Before that, I had SteelSeries' top model, and it broke after about a year.

Building custom keyboards is next-level, and I think I'll pass on that. What matters most is that it's comfortable to type on and easy to clean. A piece of advice for beginners: don't buy keyboards from Logitech or Apple. They're overrated and not worth their price.

MrLeap19 days ago

I feel like I am your hardware destroying cousin. For me it's mice, not keyboards.

I've had the same keyboard for like a decade, but I go through mice every 3-6 months. I've tried logitech / corsair / no-name / razor. 90% of the time I replace a mouse because of phantom double clicks or the mouse3 button just ceasing to work.

More rarely, the mouse will reconnect cycle over and over, or the scroll wheel will break.

I don't THINK I abuse them, but my body count indicates maybe I'm too hard on them and don't know it.

Maybe we need hardware that'll give us data on how mean we are to them so we can gain perspective. :p

arkh18 days ago

It may be due to the hardware most constructors use and how they use it.

If you're ready for 1h of info on some switch and how they're misused in mice enjoy this in-depth video: https://www.youtube.com/watch?v=v5BhECVlKJA

I think the gaming mouse market is ripe for a ruggerized mouse with only optional software which does not require some account creation if you don't want to. If you could make it cheap enough you could call it the 2CV.

blangk19 days ago

You can disassemble and replace mouse switches quite easily and very cheaply if you already own a soldering iron and some basic tools - mouse switch failure is the typical reason for misclick double click problem

MrLeap19 days ago

This is a skill I would benefit to learn.

misiek0818 days ago

I'm using very niche mouse nowadays - Bloody. Weirdly they work ok, they have (IMHO) good parameters, if you are not a gaming master race. I was using two of them, each for 3 years and changed only because I lost replacement for the "legs". Also the first one started to loose some material on the button - probably because of cleaning spray I was using.

__mharrison__19 days ago

I've had a CST trackball mouse for about 10 years with no problem...

/end anecdata

garyfirestorm19 days ago

ummmm what? I have had an MX Master Mouse for over 8 years and as an automotive engineer i have dropped it numerous times while testing vehicles, inside the vehicle, while getting out of the vehicle, just walking from desk to the cars in parking lots... and it still survived 8 years! what are you doing to your mouse exactly?

nsxwolf19 days ago

Do they make them the same as they did 8 years ago? It seems that whenever I want to replace a product I really enjoyed 10 years ago, the replacement is a cost-reduced piece of junk.

gh02t19 days ago

Counterpoint/anecdata, I've had 3 MX Master mice and 2 died in under a year and the third lasted about 2 weeks past the 2 year warranty expiration. And this was babying them, no mistreatment.

I gave up and switched to a clone (Rapoo MT760) that I actually like more.

MrLeap19 days ago

I click a lot? I don't feel like I'm putting the hammer to them. They just all die.

+1
gffrd19 days ago
pedroma19 days ago

I've never broken a mechanical keyboard, but I have gone through a few mice. None of my MX mice (MX Master, MX Anywhere) have failed, but only gaming mice. I have a feeling gaming mice just aren't built to last, especially in recent years as brands have chased lighter and lighter mice, likely sacrificing durability.

0x38B19 days ago

Kailh GM 8.0 (1) switches are supposed to be long-lasting. The switches in my Logitech mouse started to fail so I replaced them with the GM 8.0s - they are very clicky and still going strong.

If I was to order more, I'd go with softer switches - the GM 8.0 is a tad hard to click for games with repetitive clicking.

1: https://www.aliexpress.com/item/3256804334576149.html

---

I destroyed my beloved Logitech trackball's PCB trying to desolder its switches, which had become unreliable, but for the mouse, saw someone on YouTube heat all three leads of the switch at once until they could lift it straight off the PCB - this was far easier than trying to clean the solder off each lead and made the process almost easy.

m00019 days ago

Maybe it's time you switch to a trackball.

zdragnar19 days ago

I'm the trackball destroying cousin. I have yet to have one last two years in the last 10 or 12 years since I switched from mice.

m00018 days ago

Literally less than two years? In the EU you are probably eligible for a replacement, especially if some non-moving part (like sensors you mention below) fails.

I would prefer of course if producers made their products more sturdy (less e-waste).

+1
mrich19 days ago
veunes19 days ago

"You’ve clicked Mouse1 2.3 million times and scrolled 12 miles this month. Chill out!"

jeremyjh19 days ago

But this is just because mice are terrible. Trackpad is so much better.

veunes19 days ago

It’s frustrating how even premium brands can break down so quickly

jugg1es18 days ago

the microsoft ergonomic kb is vastly underrated

lawn19 days ago

I used this generator to build myself my own keyboard and the tool was extremely helpful. I went through a bunch of prototypes and I don't think it's possible to create a customized keyboard for yourself in one attempt.

I made a fairly extensive build log from start to finish including how I got the integrated trackball to work together with QMK here:

https://www.jonashietala.se/blog/2024/11/26/building_my_ulti...

Jugglernaut19 days ago

Very nice write up of the process, thank you. Are you happy with it now that som time has passed?

lawn18 days ago

Yes, I'm extremely happy with it.

lawn19 days ago

Jugglernaut: your comment is dead so I can't respond, but yes I'm extremely happy with it. I don't feel a need to change anything.

replwoacause19 days ago

This looks awesome but I think I’m paralyzed by all of the possibilities. My Kinesis Advantage 2 has served me well for years. I wonder if anyone has switched from one to a custom board?

danieldk19 days ago

I switched from a Kinesis Advantage 2 to a Glove80 over 1.5 years ago (not custom, I know) and I love it.

I also made some Dactyl Manuforms, but their key wells are not as nice as the Advantage, let alone the Glove80. They also have pretty bad thumb clusters (though with Cosmos it's configurable), not a good palm rest, etc. The only custom board I would be interested in (if the Glove didn't happen) would be:

https://github.com/wizarddata/Ergo-S-1

Since it also seems to have good palm rests, etc.

eawgewag19 days ago

I've done the switch! My 2c:

If the Kinesis is working for you, I would not switch. It's an extremely high quality board and most of these Dactyl's are all attempts to replicate the Kinesis at a more accessible price point and/or with higher amounts of customizability. The tradeoff is that they tend to be extremely fragile, have really poor build quality, and have zero to none customer support attached.

However, the KA doesn't work for everybody. I find it too big and the switches too heavy. So I opted for a custom approach, which sadly only survived about 4 months.

dbalatero18 days ago

I switched to a Cyboard Imprint, and had them print me a 6x6 Kinesis-style layout. They had me take hand photos and tweaked the print to my hand.

My reasons to switch were:

- better thumb cluster (more buttons reachable)

- split keyboard (better ergo placement)

- slightly optimized key placement (nice to have)

- QMK firmware (good for a laugh, fun to hack, can program hyper/super keys into firmware)

maxyurk19 days ago
tomtom133720 days ago

Ive used this several times, I paid for pro. Really like it! Check out the hand recognition, it’s super cool (albeit, not terribly useful).

There’s a very active and helpful community on discord too.

karmajunkie19 days ago

do you end up with a finished keyboard or is this giving you DIY plans?

egypturnash19 days ago

It looks like it gives you DIY plans but there is also an option to get a finished keyboard - this leads to a page with some error messages in it though.

IncreasePosts19 days ago

Once I scan my hand, does this mean the creator will be able to check out as me at whole foods?

Cieric19 days ago

This makes me want to go back to making a custom keyboard again. The feature to scan your hands is interesting, but I can't seem to get it to work at all. I got it to measure the length of my digits, but when it came to measuring how flexible they are I could never get it to complete. On top of that the detection seemed to freak out a lot and the right hand model was screwed up. Overall this does seem really cool, but more something I'll bookmark to try later.

veunes19 days ago

Hmm, this is definitely intriguing but how accurate is that hand scan? And will the resulting keyboard really feel that much better than a standard ergonomic setup?

regularfry16 days ago

Accurate enough, on the visual check it gives you. I have somewhat away-from-the-mean hands and I'd expect anything that moves their shape while typing to less bunched-up to be noticeably more comfortable.

I can test this, in fact - I'm already building a custom keyboard, although it's a) not with this generator, and b) intentionally closely matching another keyboard I own. I could do another with the horizontal spacings from this site while keeping everything else the same, and see if it's preferable.

__MatrixMan__19 days ago

I love this... almost.

My daily driver is a planck (flat rectangle, no num row) which I designed to lighten the load on my pinkies. I moved the left alpha keys further left and the right alpha keys futher right, so I have two columns in the center which I use for Ctrl,Alt,<,>,[,],(, and ). These get different keycaps so I can navigate it by texture. I love it, using other keyboards my pinkies always start to hurt after a while, but with this thing I can really crank.

I'd like to depart from the flat rectangle form factor, while keeping all of the things I love about my planck, and using advanced mode here I was able to get pretty darn close. What's missing is the bottom left and right corner keys, which I consider "palm-press" keys. If I disable the num row and enable the inner keys, the outermost columns only have three keys. I'd appreciate a checkbox that gave them four, with the fourth awkwardly low for pinky use but accessible for a "palm" press (not sure if the meaty part under the knuckle counts as the palm but that's what I mean anyway).

With the right curvature there's probably also opportunity to do the same thing under the index knuckle.

rianadon19 days ago

If you select one of the keys in the keyboard preview on the right, you can add and move keys around to wherever you like :) That should allow you to put keys under your knuckle.

Speaking of palm presses, someone shared a “palmtyl” design with several keys under the palm in the discord (here’s a video: https://youtu.be/D8ev08mnSmg). It’s an interesting way of squeezing in more keys without requiring finger travel.

__MatrixMan__19 days ago

very cool, thanks

unfixed19 days ago

I would buy a Glove80 again instead of going through the hassle of building my own keyboard.

Maybe I would lose some personalization, but I would keep my sanity.

culebron2118 days ago

Just duckduckwent it, and turned out I had seen it already. My doubt about it is how do you press Shift+F12?

flowingfocus18 days ago

The layout is fully customizable. That being said I just stick with the default, works well for me.

By default F12 is on the lower layer "V" key.

https://docs.moergo.com/glove80-user-guide/typing-with-glove...

lawn18 days ago

It's really not that bad IMO. It takes some effort for sure, but not enough to become insane...

nom19 days ago

No, please, I don't have the time for this, why does it have to be so cool :cry:

jweather18 days ago

Hand scan doesn't work for me in Chrome on Windows (waiting for first frame), but it did load on Edge. Stuck in the hand poses. What does this mean: "Stretch out your hands, point your fingertips towards each other, and rotate your palms downwards." I tried everything I could think of, but it won't advance.

uticus20 days ago

some info came across discord for https://cyboard.digital/ about this last year, very similar concept.

dbalatero18 days ago

I have 2 Cyboard 6x6 keyboards, printed with a Kinesis layout (so I can get the arrow keys on the lower row) and customized to my hand.

The customization/website wasn't as fancy - I just sent in photos of my hand – but that's ok.

I really love the quality, and the owner is super nice, responsive, and has great service.

cassianoleal19 days ago

Cosmos is awesome. Ryan is a lovely and incredibly helpful on his Discord. The community built around it is quite chilled out and helpful as well.

th3w3bmast3r18 days ago

This is fucking lit! I can only imagine the amount of work went into building something like this. Also, nice domain name :)

Pet_Ant19 days ago

I've always wanted this and had daydreamed of building this before!. If it supports QMK and ortholinear, I'll have to get this. I've always dreamed of building a keyboard into the arm rests of my chair.

Carrok19 days ago

I’ve tried the arm rest thing. Not very comfortable unfortunately. At least for me.

ge9619 days ago

The UI and color palette for the site is cool. The 3D tech is neat too, I'm not personally a fan of these keyboard designs (fine with 65% single mech) but really great software.

pryelluw19 days ago

what keyboard do you currently use?

ge9619 days ago

I am not that hardcore of a mech keyboard person where I build my own/lube switches.

I primarily use a Durgod Hades 68, I have to have the dedicated arrow keys on the bottom right. I have a bunch of others similar design. My problem was instead of buying as switch tester I started buying random keyboards with different switches so I now have too many. I also used to use the Apple magic keyboards those small ones with a cylinder battery holder.

James_K19 days ago

Just got a Cantor Remix keyboard myself. Might have checked this out otherwise, but a big advantage of the flat designs is they fit in my pocket.

DoctorOetker19 days ago

Are there any decent open source datagloves?

danieldk19 days ago

You mean Datahand? There is lalboard: https://github.com/JesusFreke/lalboard (there is also Svalboard, but I don't think it is open source).

DoctorOetker17 days ago

no, I actually meant datagloves, so you don't need a table.

danieldk15 days ago

Oh wild, had never seen them before.

rak18 days ago

I might have missed it but do the designs come with pcb as well?

ryanthedev18 days ago

Love the domain name.

4b11b419 days ago

I've been waiting for someone to do this...

neves18 days ago

it's fun. How does the MX, Choc, and Alps switches compare? Do you have personal preferences?

crimsoneer18 days ago

This is disgustingly cool, and if I wasn't already very settled on my Voyager I'd be all over it