A free block-building adventure for kids that runs right in the browser.
Explore endless worlds, raise friendly animals, learn to code with a little robot and collect stars.
๐ Online edition (beta): Play Together with friends, optional accounts ย ยทย โถ Free edition: the whole game, offline, no account ย ยทย โจ All features
What's inside ยท Made for kids ยท Parents & teachers ยท Controls ยท Run it yourself ยท Roadmap ยท Community
- ๐ช Magic building tools (creative): pick a block, then use the Bridge Wand, Box Builder, House Walls or Dome Maker. Right-click two points to build (left-click two points to erase) with a live preview box. The Paint Roller and Rainbow Brush repaint blocks in place. Made a mistake? Undo / redo with
Z/Yor the โถ button. - ๐ Endless procedural worlds: plains, forests, deserts, snowy mountains, beaches, oceans, caves and ores. Share a world with friends by typing the same seed.
- ๐ Day and night: sunsets, a sun and moon, stars and drifting clouds.
- ๐ฆ Real light and dark caves: sunlight spreads into caves and under roofs, and torches (stick + coal) and lamps light up warm, cozy circles. Caves get dark, but never pitch black.
- ๐งฑ 64 block types drawn as pixel art, plus tools, apples and spawn eggs. Every texture and sound is generated in code, with no image or audio files.
- ๐ Swimming with an underwater view, sprinting, jumping and flying (creative).
- ๐ถ Works offline and installs like an app: after the first visit the whole game, including Bit's code editor, is cached, so it keeps working without internet (great for car trips and school Chromebooks). Tap ๐ฒ Install MiniCrafter in the menu. On iPhone and iPad, which have no install popup, the button shows the Share โ Add to Home Screen steps instead (use Safari). Installing also keeps iPhone/iPad saves safer, because Safari can clear storage for websites you haven't opened in a while.
- ๐ Share a world with one link: in My worlds, tap ๐ to copy a link to send to a friend or grandparent. Opening it offers to add the world as a new one; it never overwrites anything, and shared data is strictly checked.
- โญ Hidden Star treasure hunts: hide a glowing star in a maze or castle; whoever finds it gets a celebration.
- ๐ Portal doors: place two portals of the same colour and walk through one to pop out of the other. Great for mazes and puzzle houses.
- ๐ก Today's building idea: the menu suggests something fun to build every day ("a spaceship for a hamster!").
- ๐๏ธ Several worlds: each child can have their own worlds (name, seed, creative or survival), with export and import as a file for backups or sharing with a friend.
- ๐พ Auto-save: each world's buildings, inventory, animals, pets, robot program and stars are kept in the browser.
Not just a world to build in: build games in it.
- Place a ๐ Course Start pad, a ๐ฉ Checkpoint or two and a ๐ Course Finish pad, then step on Start: a timer begins.
- Scatter ๐ช coins along the way and see who can collect them all.
- Fall off and you land back at your last checkpoint (or press R / tap โบ).
- Finishing celebrates with confetti and remembers your best time for each course.
- Combine with trampolines, speed strips, ice, fan vents, portals and Spark pistons for wild obstacle courses, then challenge your family (or race friends in Play Together).
Press P (or tap ๐ท) to snap a picture of your world. Add a frame (Polaroid with a caption, rainbow, starry), a filter (sunny, frosty, black & white, retro) and stickers, then save it or share it. Photos stay on your device; nothing is uploaded.
Build with family and friends, up to 4 players in the host's world. Play Together is part of our hosted online edition (it needs our server), so it doesn't appear in the free GitHub Pages copy. Everyone in a game needs an account (see below).
- The host opens ๐ซ Play Together in the menu and taps Start a game. A 4-letter room code appears.
- Friends pick a name (a colour and an animal, like Blue Fox), type the code and tap Join.
- The host sees "Blue Fox wants to join" and taps Let in (or presses L).
Everyone builds in the same world and sees each other walking around. Animals, day and night and Spark circuits are shared. Send emoji with T then 1โ8 (or the ๐ button): ๐ โค๏ธ ๐ ๐ ๐ ๐ฎ โ ๐
Kid-safe by design:
- No chat, only emoji.
- No typed names: players pick a colour and an animal.
- The host lets each player in, and can remove players or lock the room.
- Players never connect to each other directly: a tiny relay passes the game along, so no addresses are shared.
- Nothing is stored: rooms vanish when the host leaves.
- Your own worlds are safe: visitors never save the host's world over theirs.
Play Together works in Creative and Survival worlds and needs an internet connection; the rest of the game still works offline.
The relay: players connect through a single-file relay (server/rooms.mjs) that only accepts connections from the site that hosts the game. To run your own copy (for a school network, say), see server/README.md.
Playing never needs an account. In the online edition, an account unlocks Play Together (and, later, more online features).
- Just a made-up username and a password. No email address, no real name, no birthday.
- The username is private: it's only for logging in. Other players only ever see your picked colour-and-animal name.
- Passwords are hashed (scrypt), and logins are kept in secure, HttpOnly cookies.
- Delete your account any time from the account screen. It's removed straight away, and your worlds on the device stay.
- Signing up: players agree to the Terms of Use and Privacy Policy, and the version they agreed to is recorded. The game asks for a birth year only to decide whether a grown-up must help. The year never leaves the device, and players under 13 need a parent or guardian to confirm.
- Kids: ask a grown-up to help you make one.
Want more excitement? Adventure is an opt-in third mode for teens and grown-ups. It sits behind a quick grown-up check and never changes the kids' Creative and gentle Survival worlds.
- ๐ Hunger: you get hungry (faster when sprinting, jumping or mining). Eat apples or bread, and only heal when well fed.
- ๐ช Tougher falls, and โฌ๏ธ XP and levels from ores, harvests, crafting and quests.
- ๐งณ Lose your things when you faint: they wait in a Lost Items Chest where you fell. Go back and get them!
- โ ๏ธ Hardcore: one life. When it's over, it's over (you can still fly around and admire your world).
- ๐พ Night creatures: cartoon Gloomlings (hopping purple blobs) and Sporelings (mushrooms that puff spores) come out in the dark (light level under 7), so light your base with torches. Sunlight makes them vanish in a puff. Pick Easy or Normal in settings.
- ๐ก๏ธ Gear up: wood โ diamond swords, a bow (hold right-click to charge) and arrows, a shield (hold right-click to block), and wool, iron or diamond armour. Defeated creatures poof (no blood) and drop arrows, coal or apples.
- โก Spark circuits (redstone-style), see below. They're building, not fighting, so they work in every mode.
- Coming next: dungeons with loot, and parkour challenges. See the roadmap.
| ๐ซ No monsters, no fighting | Animals are friends: you can pat, feed and shear them, but never hurt them. (Night creatures exist only in grown-up โ๏ธ Adventure worlds.) |
| ๐ No chat, no ads, no purchases | No strangers to talk to and nothing to buy. Accounts are optional (online edition only) and need just a made-up username and a password. |
| ๐พ Private | Saves stay in the browser on your device, with no tracking. The only server is the small Play Together relay, which stores nothing. |
| ๐ Forgiving | Fainting keeps your items, hearts come back on their own, and tips guide new players. |
| ๐ค Friendly errors | If Bit's program hits a problem, Bit shakes its head, says why in plain words, and keeps going. |
MiniCrafter turns play into small, rewarding learning moments:
| Skill | How kids practise it |
|---|---|
| Coding | Sequencing, loops, nested loops, if / repeat while conditions and debugging, with Bit and 9 coding quests. "See the code" bridges block coding to typed JavaScript. |
| Maths | Counting to 10, addition (3 + 4), multiplication (2 ร 3, 3 ร 3), and measuring height and distance. |
| Shapes and space | Towers, square floors, walls and stairs; directions (forward, left, up, down). |
| Colours | Rainbow building with six wool colours. |
| Nature | Animal names and babies, day and night, wool growing back. |
| Trading | Swapping fixed amounts (10 dirt for 2 apples), checking "do I have enough?" and counting what you get back. |
| Planning | Gathering materials, crafting tools in the right order, and choosing the right tool for each block. |
| Action | Keyboard & mouse | Touch |
|---|---|---|
| Move | W A S D / arrow keys |
Left joystick |
| Look around | Mouse | Drag on the right side |
| Jump / swim up / fly up | Space |
โฌ button |
| Sprint (fly down while flying) | Shift |
โฌ button (while flying) |
| Break block / pat an animal | Left click (hold) | Press and hold |
| Place block / use / feed / shear / hoe / plant / water | Right click | Quick tap |
| Pick block | Middle click | โ |
| Select hotbar slot | 1โ9 / mouse wheel |
Tap the slot |
| Inventory & crafting (creative: block picker) | E |
๐ button |
| Quest book | Q |
Tap the โญ tracker |
| Program Bit | Right click Bit | Tap Bit |
| Trade with a villager | Right click them | Tap them |
| Fly on/off (creative) | F |
๐๏ธ button |
| Glide (holding the Umbrella Glider) | Hold Space while falling |
Hold โฌ while falling |
| Super bounce on a trampoline | Hold Space |
Hold โฌ |
| Pause / settings / game mode (Creative, Survival, โ๏ธ Adventure) | Esc |
โธ button |
| Undo / redo (creative) | Z / Y |
โถ button |
| Debug info | F3 |
โ |
Touch controls switch on automatically. You can force them with ?touch=1, or turn them off with ?touch=0.
๐ Full feature guide (game modes, Bit, animals, quests)
Switch at any time from the pause menu (Esc).
- Creative: unlimited blocks, instant breaking, flying, spawn eggs and Robot Bit in the block picker.
- Survival (gentle):
- Mining: mining takes time, and better tools are faster. Ores need the right pickaxe: iron needs Stone, gold and diamond need Iron.
- Crafting: blocks drop items into a 36-slot inventory. Some recipes need a Crafting Table or Furnace within 4 blocks.
- Hearts: 10 hearts. Only falls of more than 4 blocks and running out of air hurt you. Hearts regenerate, and apples (sometimes dropped by leaves) heal.
Build machines with glowing Spark Wire. Circuits work in every game mode.
| Part | What it does |
|---|---|
| Spark Lever | Right-click to flip it on or off |
| Spark Button | Right-click: on for 1 second |
| Pressure Plate | On while someone (you or an animal) stands on it |
| Spark Battery | Always on |
| Spark Wire | Carries power to everything it touches, and climbs one block up or down |
| Spark Inverter | Its arrow side is ON when the back is OFF (a NOT gate). Loop its output back for a blinking clock |
| Spark Delay | Copies its back to its arrow side 0.4 s later |
| Spark Lamp | Lights up when powered |
| Spark Door | Opens when power turns on, closes when it turns off; you can also right-click it |
| Spark Piston | Pushes up to 12 blocks, and carries you along: piston elevators! |
Inverters, delays and pistons point away from you when you place them (look down to make a piston push up). In survival, craft Spark Wire from gold and coal at a table; the other parts need wire too.
- Getting Bit: in creative, pick Robot Bit. In survival, craft it at a Crafting Table from 3 Iron Ingots + 1 Glass + 1 Coal.
- Placing and programming: right-click a block to place Bit; it faces the way you look. Right-click Bit to open the code editor (powered by Blockly).
- Blocks: move, turn, dig, place (any block or the one you hold), say, repeat, repeat while, if/else, and the checks there is a block, the block isโฆ and not.
- โก Spark blocks: use the block (flip a lever, press a button, open a door), wait, and the check the block has spark power, so Bit can run your circuits.
- Running: โถ Run at 1ร/2ร/4ร speed, โน Stop any time.
- Starter programs (tower, wall, stairs, tunnel, square, explore) load into the editor so kids can remix them.
- Survival: Bit uses your blocks and hands you what it digs.
- Safety: Bit can't break bedrock, stays within 64 blocks of you, and runaway loops stop with a friendly message.
- Pat (left click): the animal hops happily.
- Feed an apple (right click): hearts appear, and two animals in love make a baby. Feeding babies helps them grow.
- Shear sheep (right click without an apple): 1โ3 wool in the sheep's colour, which regrows after a minute.
- Pets: now and then a lone dog or cat appears. Feed it an apple and it becomes your pet with its own name tag and a red collar. It follows you and catches up if you go far. Right-click it to make it sit and stay, or follow again. Feed two pets for a puppy or kitten. Creative has dog and cat eggs.
- Pet upgrades: craft pet armor (Cozy Coat, Iron, Starlight: blocks 25%, 50% or 75% of bumps) and right-click your pet while holding it. Craft a Pet Backpack for 9 slots of storage; right-click a pet with gear to open its panel (works on touch too). Place a Pet Bed or Doghouse and tell a pet to sit nearby: it walks over and heals while it rests. Saved with your world; in Play Together friends see the gear and the backpack stays with the host.
- Animals you've fed, bred or spawned are saved with your world.
- Quest tracker (top right): shows the next 3 quests plus the next ๐ค coding quest. Press
Qfor the quest book. - Quest list:
- Explorer: First Steps, Hop Hop Hop, Say Hello, Count to 10, Math Miner, Woolly Jumper, Tower Power, Rainbow Builder, Glass Times, Shape Maker, Boing Boing!, Little Composer, Rainbow Garden, Little Farmer, Flutter By, Ribbit!, Best Friend, Animal Family, Firefly Catcher, Party Time, Treasure Hunter, Portal Jumper, Light the Way, Village Visit, Splash!, Mountain Top, Star Gazer.
- Survival: Tree Puncher โ Crafting Time โ My First Tool โ Stone Age โ Snack Time โ Baker โ Hot Stuff โ Window Maker โ Fair Trader โ Iron Hunter โ Diamond Dreams.
- Coding: Meet Bit โ First Program โ Loop the Loop โ Bit the Builder โ Up, Up, Up โ Tunnel Digger โ My Own Program โ Loop Inside a Loop โ Smart Robot.
The game is just static files: no build step and no npm install.
git clone https://github.com/Dynamic-Web-Lab/MiniCrafter.git
cd MiniCrafter
python3 -m http.server 8765Open http://localhost:8765. To play on a tablet on the same Wi-Fi, open http://<your-computer-ip>:8765.
Online edition locally (accounts and Play Together, accounts kept in memory):
node server/dev.mjsThen open http://localhost:8770. In production, accounts use Postgres; see server/README.md.
It needs a modern browser with WebGL. Everything, including three.js and Blockly, is bundled in vendor/, so there are no external requests.
Deploy: push to GitHub and enable GitHub Pages on the main branch root (that's how the live version is hosted), or drop the folder on any static host.
๐งฉ How it's built (for developers)
- Offline:
sw.jsprecaches every file (stale-while-revalidate) andmanifest.webmanifestmakes it installable. BumpVERSIONinsw.jswhen files change. To tell returning players about a new feature, also add an entry with the same number at the top ofNEWSinsrc/news.js: they see a short "What's new" card once (brand-new players don't). The service worker is skipped on localhost so development always sees fresh files (add?sw=1to test it). - Rendering: three.js 0.160 (vendored) loaded through an import map. Chunks are 16ร16ร96 with hidden-face culling and per-vertex ambient occlusion, so each chunk layer is a single draw call.
- Lighting: sky light and block light (0โ15) are flood-filled while meshing, over the chunk plus a 15-block margin, and smoothed per vertex. A small shader hook mixes them with the time of day, so torchlight stays warm at night.
- Everything procedural: a seeded Perlin-noise world, a pixel-art texture atlas painted in code, and Web Audio sound effects synthesized on the fly.
- Bit's programs are a small JSON tree run by a generator-based interpreter that the game loop advances one animated step at a time: no
eval, it can stop instantly, and loops are guarded.
index.html Page shell, menus, HUD, import map
sw.js Service worker for offline play
manifest.webmanifest, icons/ Installable app metadata and icons
tools/make-icons.mjs Renders the app icons (Bit on a grass block) from the game's own textures
vendor/ three.js and Blockly (see vendor/README.md for licenses)
style.css UI styles
src/main.js Boot, game loop, input, pointer lock, UI, saving
src/world.js Chunks, terrain generation, meshing + AO, raycast, streaming
src/player.js Player physics and collision
src/blocks.js Block registry (IDs are saved, never renumber them)
src/items.js Items, tools, mining rules, drops, recipes, item icons
src/inventory.js 36-slot survival inventory
src/survival.js Hearts, breath, fall damage, regen, timed mining + cracks
src/craftui.js Inventory + recipe-book crafting screen
src/mobs.js Friendly animals: models, wandering AI, breeding, shearing
src/touch.js On-screen joystick, look-drag, tap/hold and buttons
src/quests.js Quests, stars and progress tracking
src/robot.js Bit: model, program interpreter, animated actions
src/robotui.js Bit's panel: code editor, run/stop, speed, starters
src/robotblocks.js Blockly blocks, workspace <-> program conversion, code view
src/worlds.js Saved worlds list, export / import
src/tools.js Power-tool shapes, live preview, undo / redo history
src/critters.js Butterflies and fireflies (instanced, near the player)
src/share.js Share links: gzip + base64url in the URL hash, strict validation
src/ideas.js Daily building ideas
src/adventure.js Adventure mode: XP / levels and the grown-up gate
src/combat.js Adventure combat: arrows and spore projectiles
src/spark.js Spark circuits: wire power, gates, lamps, doors, pistons
src/together.js Play Together: rooms, world snapshot, block / animal sync, avatars, emoji
src/account.js Optional accounts (online edition): register, log in, log out, delete
server/rooms.mjs Play Together relay (nothing stored; checks logins)
server/accounts.mjs Accounts API (Postgres in production, memory in development)
server/dev.mjs Local online edition: game + accounts + relay on one address
src/villages.js Village placement, layout, villager trades
src/textures.js Procedural texture atlas + icons
src/sky.js Day/night, sun, moon, stars, clouds
src/particles.js Block-break particles
src/audio.js Synthesized sounds
src/noise.js Seeded Perlin noise and hashes
- Tests:
tests/smoke.mjsboots the real game in headless Chromium and checks world generation, lighting, Bit, animals, Blockly, worlds, touch mode, offline caching, a real offline reload and console errors. It runs on every PR (GitHub Actions). Locally:npm i --no-save playwright@1.47.2 && SMOKE_CHANNEL=chrome node tests/smoke.mjs. - Adding a block: add a tile painter in
textures.jsand adef(...)line inblocks.js. - Debugging:
window.minicrafterin the browser console exposesworld,player,inv,robot,quests,save(),setMode()andstep(n).step(n)advances frames by hand, which is handy in a background tab.
| Edition | What | How it's updated |
|---|---|---|
| ๐ Online (beta): portal.dynamicweblab.com | The same game plus server features: Play Together and optional accounts (Play Together needs a login). | tools/deploy-site.sh |
| โถ Free: GitHub Pages | The whole game, offline-ready, no account and no server features. It links to the online edition, and will be retired once the online edition launches. | Automatically from main |
The online features switch on through site-config.json: the copy in Git keeps them off, and the deploy script uploads an "on" version to our site. The relay (server/) only accepts the site that hosts the game.
Next up are flowing water and slides, marble runs, music boxes, smoother tablets and more. See the phased plan in ROADMAP.md.
Have an idea? Open an issue.
Join us on Discord to share builds, report bugs, suggest features and follow the beta.
For parents, teachers and players aged 13+. Discord requires users to be at least 13, and it is open chat, so the game itself never links to it. Younger players: ask a grown-up to share your ideas for you, or use the ๐ฌ feedback in the game.
Built by Dynamic Web Lab and released under the MIT License. Made with three.js and Blockly. MiniCrafter is an original game inspired by block-building sandboxes, with its own code, art and sounds.










