Why this exists
Replacement keycaps fail for boring reasons: a stem 0.1 mm too
tight, a stabiliser hook half a millimetre too high, a skirt that rubs the
switch housing. So nothing here is asserted that was not found. Every
dimension in every model carries a tag — sourced from a
document, derived from one, a standard-value
estimate, or fit-critical and impossible to verify
online, in which case it says so and tells you to reach for a caliper.
Across the models published here that comes to
11 sourced,
3 derived,
53 estimated and
1 unverifiable dimensions. The counts are
read out of the sources, not claimed.
Checks are boolean probes, not eyeballing: a solid shaped like
a real Cherry MX cross is pushed into the socket and the interference volume
is measured. A second CI workflow breaks each model on purpose to prove those
checks can actually fail — a check that never fails is decoration.
ASUS ROG Falchion Ace — replacement keycaps (ISO/ITA)
Provenance of every dimension, and what could not be verified →

ASUS ROG Falchion Ace - UP ARROW, 1u
ZXCV row: on a 65 % the up arrow sits to the right of the right Shift, in the same row as Z X C V - confirmed on the product photo.
- size
- 18.10 × 18.10 × 9.87 mm
- material
- 958 mm³ ≈ 1.19 g PLA
- stem
- Cherry MX cross
- stabiliser
- none
13/13 checks passed2 estimated
Underside — stem, ribs and mounts
All 13 checks
| ✓ | watertight, single closed solid | watertight=True bodies=1 euler=2 |
| ✓ | consistent winding / positive volume | volume=957.9 mm^3 (~1.19 g PLA solid) |
| ✓ | 1u body width (X) | 18.100 mm (1u pitch = 19.0500) |
| ✓ | body depth (Y) | 18.100 mm (1u pitch = 19.05) |
| ✓ | fits inside the key pitch envelope | gap to the neighbours = 0.47 mm per side, 0.47 mm front/back |
| ✓ | total height | 9.86 mm |
| ✓ | nominal MX cross (4.10 x 1.17) enters | interference = 0.0000 mm^3 |
| ✓ | socket is not oversized (+0.30 probe does clash) | interference = 3.802 mm^3 -> grip present |
| ✓ | stem is centred on the key | socket centroid X=-0.000 Y=-0.000 |
| ✓ | interior never tighter than a stock cap of the same sculpt | worst margin +1.14 mm at z = 0.2 mm (checked to z = 5.0) |
| · | north LED column | not checked: led_clear_h = 0, the board lights each key with an SMD LED under the switch, nothing enters the cap |
| ✓ | print orientation sits flat on z = 0 | min z = 0.000000 |
| ✓ | first layer is the top-plate rim, not a point | 196 vertices within 0.25 mm of the bed |
| ✓ | no overhang past 45 deg above the bed | 0.0 mm^2 above the dish + 192.4 mm^2 of dish bridged over the bed |
| · | drafted walls | 589.1 mm^2 at <=14.9 deg from vertical |

ASUS ROG Falchion Ace - G, 1u
Home row (ASDF). Legend engraved rather than raised: it is a key you type on constantly, and a raised glyph is felt under the fingertip.
- size
- 18.10 × 18.10 × 8.50 mm
- material
- 879 mm³ ≈ 1.09 g PLA
- stem
- Cherry MX cross
- stabiliser
- none
13/13 checks passed2 estimated
Underside — stem, ribs and mounts
All 13 checks
| ✓ | watertight, single closed solid | watertight=True bodies=1 euler=2 |
| ✓ | consistent winding / positive volume | volume=878.9 mm^3 (~1.09 g PLA solid) |
| ✓ | 1u body width (X) | 18.100 mm (1u pitch = 19.0500) |
| ✓ | body depth (Y) | 18.100 mm (1u pitch = 19.05) |
| ✓ | fits inside the key pitch envelope | gap to the neighbours = 0.47 mm per side, 0.47 mm front/back |
| ✓ | total height | 8.50 mm |
| ✓ | nominal MX cross (4.10 x 1.17) enters | interference = 0.0000 mm^3 |
| ✓ | socket is not oversized (+0.30 probe does clash) | interference = 3.802 mm^3 -> grip present |
| ✓ | stem is centred on the key | socket centroid X=-0.000 Y=-0.000 |
| ✓ | interior never tighter than a stock cap of the same sculpt | worst margin -0.01 mm at z = 0.2 mm (checked to z = 5.0) |
| · | north LED column | not checked: led_clear_h = 0, the board lights each key with an SMD LED under the switch, nothing enters the cap |
| ✓ | print orientation sits flat on z = 0 | min z = 0.000000 |
| ✓ | first layer is the top-plate rim, not a point | 116 vertices within 0.25 mm of the bed |
| ✓ | no overhang past 45 deg above the bed | 0.0 mm^2 above the dish + 193.9 mm^2 of dish bridged over the bed |
| · | drafted walls | 555.0 mm^2 at <=15.9 deg from vertical |

ASUS ROG Falchion Ace - LEFT SHIFT, ISO/ITA 1.25u
ZXCV row. NOT stabilised (unlike the ANSI 2.25u left Shift): on ISO the 1.25u Shift sits next to the extra <>| key, confirmed on the product photo.
- size
- 22.86 × 18.10 × 9.97 mm
- material
- 1158 mm³ ≈ 1.44 g PLA
- stem
- Cherry MX cross
- stabiliser
- none
13/13 checks passed1 sourced2 estimated
Underside — stem, ribs and mounts
All 13 checks
| ✓ | watertight, single closed solid | watertight=True bodies=1 euler=2 |
| ✓ | consistent winding / positive volume | volume=1158.2 mm^3 (~1.44 g PLA solid) |
| ✓ | 1.25u body width (X) | 22.863 mm (1.25u pitch = 23.8125) |
| ✓ | body depth (Y) | 18.100 mm (1u pitch = 19.05) |
| ✓ | fits inside the key pitch envelope | gap to the neighbours = 0.47 mm per side, 0.47 mm front/back |
| ✓ | total height | 9.97 mm |
| ✓ | nominal MX cross (4.10 x 1.17) enters | interference = 0.0000 mm^3 |
| ✓ | socket is not oversized (+0.30 probe does clash) | interference = 3.802 mm^3 -> grip present |
| ✓ | stem is centred on the key | socket centroid X=-0.000 Y=-0.000 |
| ✓ | interior never tighter than a stock cap of the same sculpt | worst margin +1.14 mm at z = 0.2 mm (checked to z = 5.0) |
| · | north LED column | not checked: led_clear_h = 0, the board lights each key with an SMD LED under the switch, nothing enters the cap |
| ✓ | print orientation sits flat on z = 0 | min z = 0.000000 |
| ✓ | first layer is the top-plate rim, not a point | 182 vertices within 0.25 mm of the bed |
| ✓ | no overhang past 45 deg above the bed | 0.0 mm^2 above the dish + 258.5 mm^2 of dish bridged over the bed |
| · | drafted walls | 673.3 mm^2 at <=14.9 deg from vertical |
Ozone Strike Battle — replacement LEFT SHIFT keycap
Provenance of every dimension, and what could not be verified →

Ozone Strike Battle - LEFT SHIFT, ANSI 2.25u (stabilised, Costar)
Cherry MX cross stem, Costar (Filco-style) wire stabiliser interface, OEM-like sculpted profile, designed for FDM printing in PLA / PETG.
- size
- 41.90 × 18.10 × 11.39 mm
- material
- 2732 mm³ ≈ 3.39 g PLA
- stem
- Cherry MX cross
- stabiliser
- costar
20/20 checks passed5 sourced2 derived27 estimated1 unverifiable — measure it
Underside — stem, ribs and mounts
All 20 checks
| ✓ | watertight, single closed solid | watertight=True bodies=1 euler=2 |
| ✓ | consistent winding / positive volume | volume=2731.7 mm^3 (~3.39 g PLA solid) |
| ✓ | 2.25u body width (X) | 41.903 mm (2.25u pitch = 42.8625) |
| ✓ | body depth (Y) | 18.100 mm (1u pitch = 19.05) |
| ✓ | fits inside the key pitch envelope | gap to the neighbours = 0.48 mm per side, 0.47 mm front/back |
| ✓ | total height | 11.39 mm |
| ✓ | nominal MX cross (4.10 x 1.17) enters | interference = 0.0000 mm^3 |
| ✓ | socket is not oversized (+0.30 probe does clash) | interference = 3.802 mm^3 -> grip present |
| ✓ | stem is centred on the key | socket centroid X=-0.000 Y=-0.000 |
| ✓ | wire bore clear at x=+11.906 (1.25u apart) | interference = 0.0000 mm^3 |
| ✓ | wire bore clear at x=-11.906 (1.25u apart) | interference = 0.0000 mm^3 |
| ✓ | throat (1.20 mm) open to the underside | interference = 0.0000 mm^3 |
| ✓ | seated wire is free to move inside the bore (+-0.15 mm) | worst interference = 0.0000 mm^3 |
| ✓ | wire arm clears the cavity from x=+-3.2 to +-18.5 | worst interference = 0.0000 mm^3 (stem boss, ribs and walls all missed) |
| ✓ | throat retains the wire (interference is intentional) | 0.02 mm^3 of PLA must flex to snap the wire in |
| ✓ | interior never tighter than a stock cap of the same sculpt | worst margin +0.00 mm at z = 0.2 mm (checked to z = 5.0) |
| ✓ | north in-switch LED column (4 x 2.2, 7.0 mm tall) is clear | interference = 0.0000 mm^3 |
| ✓ | print orientation sits flat on z = 0 | min z = 0.000000 |
| ✓ | first layer is the top-plate rim, not a point | 119 vertices within 0.25 mm of the bed |
| ✓ | no overhang past 45 deg above the bed | 1.0 mm^2 above the dish + 532.1 mm^2 of dish bridged over the bed |
| · | drafted walls | 1376.3 mm^2 at <=11.8 deg from vertical |

Ozone Strike Battle - LEFT SHIFT, ISO 1.25u (ITA / UK / DE)
- size
- 22.85 × 18.10 × 11.38 mm
- material
- 1412 mm³ ≈ 1.75 g PLA
- stem
- Cherry MX cross
- stabiliser
- none
14/14 checks passed5 sourced1 derived20 estimated
Underside — stem, ribs and mounts
All 14 checks
| ✓ | watertight, single closed solid | watertight=True bodies=1 euler=2 |
| ✓ | consistent winding / positive volume | volume=1412.3 mm^3 (~1.75 g PLA solid) |
| ✓ | 1.25u body width (X) | 22.853 mm (1.25u pitch = 23.8125) |
| ✓ | body depth (Y) | 18.100 mm (1u pitch = 19.05) |
| ✓ | fits inside the key pitch envelope | gap to the neighbours = 0.48 mm per side, 0.47 mm front/back |
| ✓ | total height | 11.39 mm |
| ✓ | nominal MX cross (4.10 x 1.17) enters | interference = 0.0000 mm^3 |
| ✓ | socket is not oversized (+0.30 probe does clash) | interference = 3.802 mm^3 -> grip present |
| ✓ | stem is centred on the key | socket centroid X=-0.000 Y=-0.000 |
| ✓ | interior never tighter than a stock cap of the same sculpt | worst margin +0.00 mm at z = 0.2 mm (checked to z = 5.0) |
| ✓ | north in-switch LED column (4 x 2.2, 7.0 mm tall) is clear | interference = 0.0000 mm^3 |
| ✓ | print orientation sits flat on z = 0 | min z = 0.000000 |
| ✓ | first layer is the top-plate rim, not a point | 114 vertices within 0.25 mm of the bed |
| ✓ | no overhang past 45 deg above the bed | 0.0 mm^2 above the dish + 259.9 mm^2 of dish bridged over the bed |
| · | drafted walls | 829.9 mm^2 at <=11.8 deg from vertical |
Printed
Everything above is geometry: a solid is rendered, boolean
probes are pushed into it, and the numbers are recorded. That catches a great
deal and it cannot catch anything that only exists once plastic cools.
A photo is not a check — it is the thing a check cannot be.
These prove the geometry is sliceable, that the committed orientation works
and that no support was needed, which is what the checks predicted. They do
not prove the cap seats on a real switch, and that is the row
that matters: until one has, the stem clearances are still the estimates the
provenance tables say they are.
Printing
Every STL is already oriented: top plate flat on the bed, open
side up, no supports. The dish is a shallow pocket sitting on
the bed and bridges from its own rim.
| layer height | 0.12 mm (0.16 acceptable), first layer 0.20 |
| walls | 3 perimeters — matches the 1.15 mm skirt and the
1.55 mm wall without leaving gaps |
| infill | 100 % — the part is nearly all perimeters, so this only
fills the stem boss where the strength is needed |
| supports | none |
| brim | 5 mm; the bed contact is only the top-plate rim |
| PLA | 205–215 °C, bed 60 °C, 100 % cooling from layer 3 |
| PETG | 230–245 °C, 50 % cooling, and add 0.05 mm to the stem
clearances — PETG swells more on the way out of the nozzle |
Test-fit one print on a spare switch before committing to a
set. Too tight or too loose is two parameters at the top of the source, not a
redesign.
What is not guaranteed
Several dimensions in every model are estimates, and each
keyboard's README says exactly which ones and why. Where a fit-critical
dimension could not be established from any public document, it is marked and
left for you to measure rather than invented. Shine-through legends cannot be
reproduced in single-material FDM at all, so a printed cap stays dark on a
backlit board.