Blank SVG template

I’m still playing around with Linear A (for the Runic keycap layout discussion), and decided I had to fix some of the tiny errors in the SVG file I was using. In case anyone else wants an arguably-improved version, I’ve put it up on Dropbox. It looks like this:

Every time I play with Inkscape, I learn a whole bunch of fiddly things, then forget almost all of them by the next time I need to use it for something…


I’ve just created and checked into git the templates we’ll use to communicate with the factory about key layouts.

You can find them here:

Red shows the keycaps themselves, including the top profile, the outline, the homing dots and the keystems.

Yellow shows some orientation features.

Guidelines on where to place the key labels are in black.

I’d welcome cleanup to the SVG template :slight_smile:

Feel free to ask me questions about it here, though with the baby, my attention is a little scattered.


I’d be happy to do that, since I’ve already done it once. Does it matter how exactly precise those corners are? Some of them have eight nodes in a path less than 1mm long. Does it matter if rounding isn’t exactly the same? If not, I can greatly simplify those corners (just two nodes in almost all cases, maybe some would require three. Either way, it would be good to at least join the different path segments, which is easy enough.

All the “prog” text elements look like they’re in the wrong layer. They’re in the layer “key legends - character”, but I’m guessing they should be in “key legends - word”. Very easy to fix, if that’s the case.

Forgive my ignorance of the jargon; I’m not totally certain about the term “keystem”. I’m supposing thats the part of the keycap that connects the visible part to the keyswitch underneath. In which case, that would include the bits in green in the below image?

And the outer red lines are the outline (base profile), and the inner red lines are the top profile?

That’s just fine and entirely unimportant from a factory-facing perspective. These were DXF exports from 3D CAD, imported into Inkscape.

You’re correct. It was late and I was getting tired. Also, my layers are…not gospel.

@merlin - I was playing a little bit fast and loose with my terminology.

Ih the image you pasted, the inner and outer red lines are the bottom side of the keycap.

The rounded green loop is the key top surface, which deserves to be its own layer.

The 2.x by 4.x rectangle in the center is the tip of the key stem. It’s the part that slides into the keyswitch.

The other four green rectangles are the internal structural supports, sometimes called webbing or ribs.

One additional thing - I’m not 100% sure that the export came out of CAD at the exact angles it should have. (It’s very, very close, if not.) Within each hand’s keys, everything should be consistent, but there’s a slight chance that either or both hands are rotated a fraction of a degree. The key stems for the fingers should be at 5, 2, 1 or 0 degrees.

This won’t affect the factory’s lasering (since they’re using this as a guide and then manually placing everything to match the injection molds), but it’s a bit untidy.

Anyway, thanks so much for taking a look at this!

The yellow positioning rectangles are rotated by 5º, 2º, 1º, and 0º exactly, according to Inkscape. The red keystem rectangles are within 0.01º of that, but in the SVG, they’re not actually rectangles, so it’s already slightly imprecise. I hope to get the time to clean it all up in the next few days, but my three kids might not allow that; we’ll see. I’ll redo the keystems as rectangles, and I’ll put everything in layers that I think make sense.

All of the paths and rectangles in the SVG have a stroke of 1px, which isn’t really all that precise. (Half-rhetorical question: is the boundary the line at the center, or at one of the edges of the stroke? The answer isn’t really important, of course, since this is only a reference guide).

The homing dots are the most impressively messy (26 nodes to make a tiny circle!). :astonished:

Unless there’s a good reason not to, I’m just going to do the left side, then copy and flip that before overlaying it to make the right side.

That makes sense, since I added those in inkscape. My process was to create a template for a “key” legend, clone it into four of them spaced 18mm apart vertically and then rotate them into place.

Sure. I might recommend instead just using the top bars of the stems on innermost 3 columns on the left hand to rotate all of the formerly red parts on the left hand to be straight. It all should be internally consistent.

Sure. Of course, if you’re sure the yellow bits are aligned with the red ones, you can just delete the red ‘rectangles’

It’s the center of the stroke. (not that it really matters)

Yep. project from a sphere to a plane ought to just work, but heck, it might or might not have been right in the DXF.

That’s what I did the first time, so that’s fine :slight_smile:

I’m starting to look at the details, which are probably not important, but it looks like the stems in the SVG (~3.9x1.75mm) are smaller than the dimensions given in the Matias blueprints (4.5x2.2mm). Measuring to the outside dimension of the stroke, it’s closer, but still smaller. I suppose this has to do with the tolerances involved, which probably also make any tiny angular alignment issues moot.

I’m imagining trying to work on this in three spatial dimensions. The idea is daunting!

It’s actually simpler than that. The keycap stems have a tapered end to make them easier to insert. The rectangles are from the end of the taper.

Well, now that you say that, it seems obvious…

I finally got some time to work on this today. I’m about halfway through cleaning up the paths, and I removed the troublesome gradients attached to all the text objects.

I’ve separated various elements into different layers, but I haven’t organized them to make them presentable yet. That won’t take long, but it won’t be comprehensible until that’s done. Then I can make a pretty version similar to the last one, if people want.

One small problem I have is the lack of the correct font. I’m not going to shell out the money to get a license for Gotham Rounded, but without it, I’m not sure exactly where all the text elements should be positioned. Everthing will retain coordinates, though, so any machine with the right font should render it correctly. I’m not going to touch those labels at all (though I will re-do the “Runic” layouts with the correct positioning, and necessary size adjustments.

One question: Do the homing dots have a 1mm diameter? And how much space around them should we leave as a margin? (I’m thinking we shouldn’t try to put a label right up against one of them.)

After carefully re-working the left side, flipping it and overlaying it, I’ve found that the right side is rotated almost exactly 0.2º clockwise relative to the left side. @jesse: Would you prefer it if I try preserve that miniscule rotation, or remove the whole right side and re-create the text objects with the correct positions?

It looks like the only key stems on the left side that aren’t in almost-perfect alignment with your positioning guides are the ones on the thumb and palm keys. I’m guessing this is simply because the guides on those keys were harder to position in Inkscape.

I’m still working on fixing it up, but you can look at what I’ve got right now on Dropbox.

1 Like

Blow it away, if you’d be so kind.

thank you!

In that case, does it matter exactly how far apart the two halves are? (I can’t think of a reason, but maybe there is one.)

It does not matter.

Part of me would be tempted to place the two halves inside an image of the enclosure, but at least for factory communications purposes, having the default rotation for a bunch of the keys being 0 degrees is a win. (The factory will end up rotating everything to 0 degrees. The setup is a little byzantine…)

Finally, a decent version of the keycap template on Dropbox. Fill and stroke styles of the objects are radically different, because I found it useful when doing fiddly positioning; it’s a fairly trivial matter to change those style properties now that everything is in logical layers. Many objects are clones, so it’s possible to mass-update them by just changing the parent object groups.

I’m not absolutely sure that I got the positioning for all the text labels correct, partly because I don’t have the Gotham Rounded font to work with. I’ll re-do runic keycap mockups starting from this template, but those don’t require fonts (or at least not ones that I don’t have access to).

Edit: Also note that my version of the positioning guide includes both the approximate stem tip, and a larger rectangle around it showing the dimensions of the “mortise” that it fits into on the keyswitch.


That’s lovely. Would you be ok with me checking it into git? If so, how would you prefer to be credited?

I’m okay with you checking it in, no credit required. I am making some further tweaks for the sake of consistency, with a touch of OCD. I also made a wireframe version that preserves the previous colors, if you want it to look more like the original.

1 Like

Very nice @merlin.

Thanks for all your efforts.