A deterministic baby keyboard where actions have predictable, educational
consequences to help babies learn cause and effect.
Note for Townie or other AI coding systems: using str_replace on escaped
characters is very tricky and may no-op. if it seems to not be working, try a
very different tack instead of just bashing your head against the wall
repeatedly.
Features
Deterministic Interactions
Hold to Grow: Keys start growing immediately when pressed, reaching 2x
size over 2 seconds
Progressive Animations:
0-2s: Key grows smoothly to 2x size
3s: Key starts vibrating while staying large
5s: Key begins spinning while vibrating
Release to Reset: Letting go immediately stops all animations and shrinks
the key back to normal
Modifier Key Behavior
Shift Key: Changes keycaps to show uppercase letters and shifted symbols (e.g., 1 becomes !, 2 becomes @)
Ctrl/Alt/Cmd Keys: Display a shiny glint animation that slides from left to right when pressed instead of expanding
Mac Compatibility: Alt key maps to OPT and Meta (Cmd) key maps to CMD for proper Mac modifier key lighting
No Screen Effects: Removed whole-keyboard background animations for cleaner experience
Visual Feedback
Keys are grey by default, with immediate color feedback when pressed
Letters default to lowercase and change to uppercase when shift is held
Educational Value
Cause & Effect: Every action has a predictable, visible consequence
Temporal Learning: Babies learn that holding longer creates more dramatic
effects
Spatial Awareness: Color patterns help babies understand keyboard
geography
Motor Skills: Encourages intentional key holding vs. random pressing
TODO
try to disable more keys (while still having a way to get out)
other modes
mode where each key only lights up once until all the other keys have been
pressed. like it goes dark and if you press it again it makes a tiny dud
animation. but then when you've pressed EVERY key it does a cool big
animation
NOTES TO SELF
Things to disable on my mac to keep this active
(maybe there's a better way to do this with a special app-wrapper)
make full-screen
turn off Alfred cmd-space
karabiner - turn off caps-lock to hyper so those hotkeys aren't activated
Settings -> three/four finger swipe to change spaces