A browser-based world generator for exploring, playing, and editing random emoji worlds. Whether galaxies, flower fields, or nightmares – a single click creates a unique scenery. Ideal for creative exploration, accessibility (ALT text), and playful experiments.
Supports both Game Mode (with timer & target collection) and Editor Mode (for custom designs).
- 🌍 Generates random emoji worlds in a 30x10 grid.
- 🎮 Game mode with targets, timer, and result summary.
- ✏️ Editor mode to freely design and test your own worlds.
- ♿ Built-in ALT text generator for accessibility (DE/EN).
- 🎨 Optional animations for symbols (glow, pulse, float, blink, spin, etc.).
- 📋 Export as text, graphic (clipboard), or permalink.
- 📱 Mobile-optimized: touch, swipe & desktop support.
- 🔀 Language toggle: English / German (auto-detect).
- 🔄 Built-in permalink system with hash validation.
- ✨ Symbol galleries, zoom slider, and animation toggle included.
file:// loading of JSON data.
# Start from project root
python3 -m http.server 8000
# Then open in browser:
http://localhost:8000/Alternatively:
npx serve .| File | Purpose |
|---|---|
index.html |
Main HTML entry point |
main.js |
Game logic, switching, control and editor behavior |
worldData.json |
Emoji world definitions (symbols, targets, player, animations, etc.) |
worldData.js |
Fallback and loader for world data |
common.js |
Language switch, clipboard, ALT text, audio, hashes, permalinks |
common.css |
Styling and animations |
lang.json |
UI language strings (de/en) |
Extend the file worldData.json like this:
{
"myNewWorld": {
"symbols": ["🍎", "🍌"],
"rare": ["🍇"],
"bottom": ["🌿"],
"player": "🚶",
"target": "🎯",
"description": "A simple test world.",
"title": "Test World",
"title_en": "Test World",
"description_en": "A simple test world.",
"animation": {
"animate-glow": ["⭐️"],
"animate-float": ["🪐"]
}
}
}Available animations: animate-glow, animate-float, animate-pulse, animate-spin, animate-wiggle, animate-shake, animate-blink, animate-bounce, animate-wobble, animate-flicker, animate-swing, animate-breathe
Check the browser console for validation:
✅ Symbol check: no conflicts found.
Contributions are welcome:
- Fork the repository.
- Add your changes.
- Submit a pull request.
Please ensure your JSON is valid and worlds have unique names.
Licensed under the Apache License 2.0.
To check your emoji world definitions for issues or compatibility, use the built-in JavaScript function validateWorldData(worldData).
- duplicate symbols in a world (
symbols,rare,bottom) - conflicts between
player,target,monster - missing or invalid entries (e.g. empty titles or invalid symbols)
- emoji compatibility: warns about Unicode symbols that may not appear correctly under Windows 10
- Open the game in a browser
- Press F12 to open Developer Tools → Console tab
- Type:
validateWorldData(worldData);The console will display warnings and notes about any problems found – including symbols that might not be displayed on some systems.