Skip to content

The BabySmash game for small kids. Download and run for free at https://www.babysmash.com

License

Notifications You must be signed in to change notification settings

shanselman/babysmash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

181 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BabySmash!

A game for babies who like to bang on the keyboard.

As babies or children smash on the keyboard, colored shapes, letters and numbers appear on the screen and are spoken aloud to help with letter and number recognition.

Download the latest release: GitHub Releases

Features

  • 🎨 Colorful shapes with happy faces (Circle, Heart, Hexagon, Star, Triangle, and more)
  • 🔤 Letters and numbers with text-to-speech
  • 🔊 Fun sounds and giggles
  • 🖥️ Multi-monitor support
  • 🔒 Locks out system keys to prevent accidental exits
  • 🔄 Auto-updates via GitHub Releases (Windows)
  • 🐧 Linux support via Avalonia

Downloads

Platform Download Notes
Windows BabySmash-Setup.exe Installer with auto-updates
Windows BabySmash-win-x64.zip Portable version
Debian/Ubuntu .deb package Easy install with package manager
Fedora/RHEL .rpm package Easy install with package manager
Linux BabySmash-linux-x64.tar.gz Manual installation

Windows

Keyboard Shortcuts

Shortcut Action
Any key Display shapes/letters!
Ctrl+Shift+Alt+O Options dialog
Alt+F4 Exit

Requirements

  • Windows 10 or later (64-bit)
  • No .NET installation required (self-contained)

Touchpad Gestures

BabySmash blocks most keyboard shortcuts, but Windows touchpad gestures (like three-finger swipe for Task View) are handled at the OS level and cannot be blocked by applications.

To prevent accidental exits via touchpad:

  1. Open Windows SettingsBluetooth & devicesTouchpad
  2. Under Three-finger gestures, set "Swipes" to Nothing
  3. Optionally disable four-finger gestures too

Linux

Installation

Option 1: Package Manager (Recommended)

Debian/Ubuntu:

# Download the .deb package from the latest release
wget https://github.com/shanselman/babysmash/releases/latest/download/babysmash_*_amd64.deb
sudo dpkg -i babysmash_*_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora/RHEL/CentOS:

# Download the .rpm package from the latest release
wget https://github.com/shanselman/babysmash/releases/latest/download/babysmash-*.x86_64.rpm
sudo rpm -i babysmash-*.x86_64.rpm
# or on Fedora:
sudo dnf install babysmash-*.x86_64.rpm

After installation, BabySmash will appear in your application menu under Games!

To run from terminal:

babysmash

Option 2: Manual Installation (Tarball)

  1. Download and extract:

    tar -xzf BabySmash-linux-x64.tar.gz
  2. Install dependencies:

    # For text-to-speech
    sudo apt install espeak
    
    # For audio (one of these)
    sudo apt install pulseaudio-utils  # for paplay
    # or
    sudo apt install alsa-utils        # for aplay
  3. Run:

    ./babysmash

Add to Application Menu (Manual Install Only)

If you used the tarball (manual installation), you can optionally add BabySmash to your desktop's app launcher:

# Copy executable to a permanent location
sudo cp babysmash /usr/local/bin/

# Install the icon
sudo cp babysmash.png /usr/share/icons/hicolor/256x256/apps/

# Install desktop entry
cp babysmash.desktop ~/.local/share/applications/

# Update icon cache
gtk-update-icon-cache /usr/share/icons/hicolor/ 2>/dev/null || true

Note: This is automatically done when using .deb or .rpm packages!

Keyboard Shortcuts

Shortcut Action
Any key Display shapes/letters!
Alt+O Options dialog
Escape Exit

Requirements

  • 64-bit Linux (x64)
  • espeak for text-to-speech
  • paplay or aplay for audio
  • No .NET installation required (self-contained)

Note: Dependencies are automatically installed when using .deb or .rpm packages!


Localization / Language Support

BabySmash automatically uses your keyboard language for:

  1. Text-to-speech voice - Shapes and colors are spoken in your language
  2. Shape/color names - Translated to your locale (if available)
  3. Word order - "Red Circle" (English) vs "Círculo Vermelho" (Portuguese)

Supported locales: English (en), German (de), Spanish (es), French (fr), Greek (el), Latvian (lv), Portuguese (pt-BR, pt-PT), Russian (ru)

Adding a New Language

Create a JSON file in Shared/Resources/Strings/ named {locale}.json (e.g., ja-JP.json for Japanese):

{
  "ColorShapeFormat": "{0} {1}",
  "Circle": "",
  "Red": "",
  ...
}
  • Use "{0} {1}" for color-first languages (English: "Red Circle")
  • Use "{1} {0}" for shape-first languages (Portuguese: "Círculo Vermelho")

Building from Source

Requires .NET 10 SDK

git clone https://github.com/shanselman/babysmash.git
cd babysmash

# Windows
dotnet run

# Linux
dotnet run --project BabySmash.Linux

Publish Executables

# Windows
dotnet publish -c Release -r win-x64 --self-contained

# Linux
dotnet publish BabySmash.Linux -c Release -r linux-x64 --self-contained

History

Originally developed by Scott Hanselman, based on AlphaBaby.

  • v1-v2: Original .NET Framework 3.5 version
  • v3.0: Migrated to .NET 10, single-file deployment
  • v4.0: Linux support via Avalonia, shared resources, auto-updates

Looking for the original code? The legacy .NET Framework 3.5 version is preserved in the legacy-dotnet35 branch.

License

See LICENSE

About

The BabySmash game for small kids. Download and run for free at https://www.babysmash.com

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 14

Languages