[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-85170":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":10,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":33,"discoverSource":34},85170,"pebble","thebriangao\u002Fpebble","thebriangao","The open-source alternative to Minecraft: Java Edition, a complete block-survival game in ~45,000 lines of Swift + Metal. Zero dependencies, fully deterministic, singleplayer for now. Not affiliated with Mojang or Microsoft. We lowkey need y'all to submit bug reports cuz there are so many 😭","",null,"Swift",116,23,1,2,0,40.03,"Other",false,"main",true,[23,24,25,26,27,28,29,30],"game","macos","metal","minecraft-alternative","open-source","singleplayer","swift","voxel","2026-06-15 10:05:10","\u003Cp align=\"center\">\n  \u003Cimg src=\"packaging\u002Flogo.png\" alt=\"Pebble\" width=\"420\">\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">The open-source alternative to Minecraft: Java Edition.\u003C\u002Fh3>\n\n\u003Cp align=\"center\">\n  \u003Cem>A complete block-survival game, built from scratch in Swift + Metal.\u003Cbr>\n  Every sound synthesized in real time. Every chunk carved from noise.\u003C\u002Fem>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"packaging\u002Fhomepage.png\" alt=\"In-game render — dawn over a lake in a cherry grove, mountains behind, ultra graphics\" width=\"800\">\n\u003C\u002Fp>\n\n---\n\n**Pebble** is the open-source alternative to Minecraft: Java Edition — a native macOS voxel survival game with the full overworld\u002Fnether\u002Fend progression: worldgen, mobs, redstone, crafting, enchanting, brewing, villages, raids, and boss fights — implemented in **~45,000 lines of Swift** with **zero external dependencies**. No game engine, no .xcodeproj. The renderer is hand-written Metal, the audio engine synthesizes every sound from oscillators at runtime, and the game looks the way it does thanks to [Faithful 32x](https:\u002F\u002Ffaithfulpack.net) as its built-in texture set.\n\nPebble is an original fan re-creation inspired by Minecraft: Java Edition 1.20. It is **not affiliated with, endorsed by, or connected to Mojang Studios or Microsoft** in any way, and contains no Mojang code or assets. Full statement in [Disclaimer](#disclaimer) below.\n\n> **Pebble 1.0.0 is a beta.** The engine is pinned by 456 golden regression checks, but a game of this scope absolutely has bugs we haven't found yet — we just don't know where they are. If you hit one, [opening an issue](https:\u002F\u002Fgithub.com\u002Fthebriangao\u002Fpebble\u002Fissues) would mean the world to us, and a pull request with a fix even more. See [Reporting bugs & contributing](#reporting-bugs--contributing) for what to include.\n\n## By the numbers\n\n| | |\n|---|---|\n| Lines of Swift | ~45,000 across 82 files |\n| External dependencies | **0** (Apple frameworks only) |\n| Blocks | 879 |\n| Items | 1,188 |\n| Biomes | 63 (overworld, nether, end, cave biomes) |\n| Entity types | 100 (55+ mobs with full AI, vehicles, projectiles) |\n| Structures | 19 types, 30+ variants (villages, strongholds, bastions, end cities, ancient cities…) |\n| Golden regression checks | 456, all green (`pebble test`) |\n| Renderer | Metal, 15+ passes, runtime-compiled MSL |\n| Textures | [Faithful 32x](https:\u002F\u002Ffaithfulpack.net) by the Faithful team (third-party, fully credited) |\n| Audio assets | 0 — fully synthesized (AVAudioSourceNode + biquad filters) |\n| Performance | 200+ fps at full fancy settings on an Apple-silicon MacBook Air |\n| World load | ~2–4 s cold |\n\n## Features\n\n- **Full survival loop** — mining with tool tiers, hunger\u002Fsaturation, XP, sleeping, fall damage, drowning, fire, status effects, death messages, respawn\u002Fkeep-inventory game rules.\n- **Worldgen** — multi-noise climate sampling (temperature\u002Fhumidity\u002Fcontinentalness\u002Ferosion\u002Fweirdness) through spline-driven terrain, 3D density caves (cheese\u002Fspaghetti\u002Fnoodle), ravines, aquifers, ore distribution per vanilla 1.20 tables, snow lines, and 63 biomes including lush caves, dripstone caves, and the deep dark.\n- **Three dimensions** — overworld, nether (fortresses, bastions, all five nether biomes), and the end (dragon fight, end cities, gateways), connected by working portals.\n- **Structures** — villages with professioned villagers and working trades, strongholds with the portal room, mineshafts, desert\u002Fjungle temples, igloos with basements, witch huts, ocean monuments and ruins, shipwrecks, buried treasure, ruined portals, woodland mansions, amethyst geodes, ancient cities with sculk and shriekers.\n- **Mobs & AI** — 55+ mobs with A* pathfinding, goal-based AI (breeding, taming, fleeing, pack hunting), villager gossip and trades, piglin bartering, raids with waves and Hero of the Village, and the three bosses: Ender Dragon, Wither, Warden (with vibration detection).\n- **Redstone** — wire networks with 0–15 power levels, repeaters with locking, comparators that read containers, pistons with quasi-connectivity and slime\u002Fhoney push sets, observers, dispensers, hoppers, rails, sculk sensors.\n- **Items & systems** — shaped\u002Fshapeless\u002Ftag crafting, smelting in three furnace types, brewing, enchanting with 39 enchantments and a compatibility matrix, anvils, grindstones, smithing with armor trims, stonecutters, loot tables with fortune\u002Flooting, fishing, archaeology with sherds and decorated pots, advancements.\n- **Vanilla-exact player physics** — walk 4.317 b\u002Fs, sprint 5.612 b\u002Fs, jump apex 1.2522 blocks, sprint-jumping, water\u002Flava\u002Felytra movement, ice slipperiness, soul sand, honey — verified by independent-derivation tests in the suite.\n- **Faithful 32x textures, built in** — the complete [Faithful 32x](https:\u002F\u002Ffaithfulpack.net) art (third-party, fully credited — see [Disclaimer](#disclaimer)) ships inside the app and loads through Pebble's own zip\u002F`.mcmeta` reader: atlas textures, animations with interpolation, GUIs, fonts, entity skins, and sun\u002Fmoon art. Self-restoring if the file goes missing.\n- **Ultra graphics** — a built-in enhanced pipeline: SSAO, shadow-marched volumetric god rays, Poisson soft shadows, and ACES tonemapping. One toggle in Options → Video.\n- **Generative music** — no audio files anywhere; ambient music, jukebox discs, and all ~hundreds of sound effects are synthesized from oscillator\u002Fnoise recipes with envelopes, vibrato, positional stereo, underwater lowpass, and cave reverb.\n\n## Install\n\nRequirements: **macOS 14+** and the Xcode command-line tools (`xcode-select --install`). Apple silicon recommended.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fthebriangao\u002Fpebble.git && cd pebble\n.\u002Fpebble install\n```\n\nThat builds in release mode, assembles a signed `Pebble.app`, installs it to `~\u002FApplications`, and links the `pebble` CLI onto your PATH.\n\n```\n.\u002Fpebble install    build from source and install ~\u002FApplications\u002FPebble.app\npebble update       pull the latest version, rebuild, swap the live app\npebble run          launch Pebble\npebble test         run the 456-check golden test suite\n```\n\nFor development you can also run straight from the checkout — `swift run -c release Pebble` — and the app will find its packaged assets in `packaging\u002F`.\n\n## Controls\n\nWASD to move, mouse to look, Space to jump, Shift to sneak, Ctrl (or double-tap forward) to sprint, E for inventory, Esc to pause. F1 hides the GUI, F3 toggles the debug overlay, F11 toggles fullscreen (also in Options → Video). Scroll the hotbar with the wheel or trackpad. Everything is rebindable in Options → Controls.\n\n## Where things live\n\n| Path | What |\n|---|---|\n| `~\u002FLibrary\u002FApplication Support\u002FPebble\u002Fpebble.db` | All worlds, chunks, players, advancements (single SQLite database) |\n| `~\u002FLibrary\u002FApplication Support\u002FPebble\u002Fsettings.json` + `keybinds.json` | Settings and keybinds |\n\nTo uninstall completely: delete `~\u002FApplications\u002FPebble.app`, `~\u002FLibrary\u002FApplication Support\u002FPebble\u002F`, and the `pebble` symlink on your PATH (`\u002Fopt\u002Fhomebrew\u002Fbin\u002Fpebble` or `\u002Fusr\u002Flocal\u002Fbin\u002Fpebble`).\n\n## Project layout\n\n```\nSources\u002FPebbleCore\u002F   the engine — headless, no AppKit, fully testable\n  Core\u002F               deterministic math: fdlibm trig, seeded RNG, simplex noise\n  World\u002F              chunks, block registry (879), light engine, block entities\n  Gen\u002F                terrain, biomes, features, all structures\n  Entity\u002F             100 entity types, AI, pathfinding, player physics\n  Items\u002F              item registry (1,188), recipes, enchants, potions, loot\n  Systems\u002F            interact, redstone, fluids, farming, combat, raids, portals\n  Render\u002F             section mesher, texture atlas, entity models\n  Game\u002F               GameCore tick orchestrator, SQLite saves, settings\nSources\u002FPebble\u002F       the macOS app — window, Metal renderer, UI, audio, input\nSources\u002Fpebsmoke\u002F     golden test harness (456 checks against goldens\u002F*.json)\ngoldens\u002F              golden baseline files pinning engine behavior\npackaging\u002F            Info.plist, icon, logo, title art, bundled Faithful textures\npebble                the build\u002Finstall\u002Ftest CLI\n```\n\nA deeper tour lives in [ARCHITECTURE.md](ARCHITECTURE.md).\n\n## The determinism contract\n\nPebble's engine is **fully deterministic**: a portable fdlibm implementation of `sin\u002Fcos\u002Fatan2` (pure IEEE-754 operations, no platform math library), 32-bit-wrapping integer hashes, and seeded RNG everywhere mean the same seed produces the identical world — bit for bit, on any machine, across releases. That contract is enforced by golden baseline files: `pebble test` runs 456 checks covering terrain hashes over full chunk pipelines, a 55-mob zoo ticked 200 steps and compared at checkpoints, 911 transcendental-math probes, recipe\u002Fenchant\u002Floot RNG lockstep, a redstone contraption timeline, and independent derivations of vanilla physics constants. The goldens are the contract that keeps the engine honest — a change that moves a single block in an existing world fails the suite.\n\n## Development hooks\n\nUseful environment variables for testing and automation:\n\n| Variable | Effect |\n|---|---|\n| `PEBBLE_AUTOLOAD=1` | skip menus, load the most recent world |\n| `PEBBLE_NEWWORLD=\u003Cseed>` | create a fresh world with that seed (worldgen testing) |\n| `PEBBLE_CMD=\"\u002Ftp 0 120 0;\u002Ftime set 1000\"` | run chat commands once the world is up |\n| `PEBBLE_SHOT=\"\u002Ftmp\u002Fx.png@300\"` | capture a frame N frames after load |\n| `PEBBLE_WORLDS=1` | jump straight to the world-select screen |\n| `PEBBLE_BOT=1` | run the physics validation bot through the real input path |\n| `PEBBLE_PHOTOBOOTH=1` | studio rig that captures every mob and block to PNGs (`PEBBLE_BOOTH_MOBS=cow,sheep` \u002F `PEBBLE_BOOTH_BLOCKS=-` to filter) |\n| `PEBBLE_PROF=1` | print per-stage load\u002Ftick timings |\n| `PEBBLE_PACKDEBUG=1` | log texture tile coverage and entity-skin resolution |\n| `PEBBLE_GEOM_DEBUG=1` | log entity geometry construction |\n| `PEBBLE_REGOLD=1` | **rewrites golden baselines** — see CONTRIBUTING before using |\n\n## Reporting bugs & contributing\n\n**Contribution is incredibly welcome.** This is a first public beta: the engine is golden-tested, but the bug list is unknown by definition — the bugs are out there, and you will find them before we do. Every report genuinely helps.\n\nFound a bug? [Open an issue](https:\u002F\u002Fgithub.com\u002Fthebriangao\u002Fpebble\u002Fissues). To help us identify and fix it, please include:\n\n- **macOS version and Mac model\u002Fchip** — e.g. \"macOS 15.2, M2 MacBook Air\".\n- **Pebble version** — bottom-left of the title screen.\n- **What you did, what happened, what you expected** — rough steps to reproduce are fine.\n- **World context** if it's an in-world bug: the **seed**, the **dimension**, and your **coordinates** (the F3 overlay shows all three).\n- **Settings that matter**: render distance and whether ultra graphics are on.\n- **Screenshots or video** for anything visual.\n- For crashes: the crash report from `~\u002FLibrary\u002FLogs\u002FDiagnosticReports`, and terminal output if you launched with `pebble run` from a terminal.\n- If the engine itself seems wrong (worldgen, physics, redstone): the tail of `pebble test` — it should print `456 passed, 0 failed`.\n\nEven better than a bug report is a **pull request with a fix** — see [CONTRIBUTING.md](CONTRIBUTING.md) for the build\u002Ftest workflow and the conventions that are load-bearing (registration order, RNG discipline, determinism rules). PRs of all sizes are wanted, from typo fixes to subsystem work.\n\n- [CONTRIBUTING.md](CONTRIBUTING.md) — build, test, golden workflow, load-bearing conventions.\n- [SECURITY.md](SECURITY.md) — threat model and how to report vulnerabilities privately. Pebble makes **zero network connections** and collects nothing.\n- [LICENSE](LICENSE) — MIT, covering the code in this repository. The bundled Faithful artwork is third-party content under its own terms.\n- [CHANGELOG.md](CHANGELOG.md) — release history.\n\n## Disclaimer\n\n**Pebble is an independent, original fan re-creation. It is not an official Minecraft product. It is not affiliated with, endorsed by, sponsored by, or connected to Mojang Studios, Microsoft Corporation, or any of their subsidiaries, in any way.** \"Minecraft\" is a trademark of Mojang Synergies AB \u002F Microsoft; Pebble does not use the name in the software and claims no association with the trademark holders.\n\nPebble's *gameplay design* is inspired by Minecraft: Java Edition 1.20 — game rules and mechanics reimplemented from publicly observable gameplay. Concretely:\n\n- **No Mojang\u002FMicrosoft source code is used.** Every line of game code was written for this project by its author — the sole third-party-derived code is the fdlibm trigonometry port in `Sources\u002FPebbleCore\u002FCore\u002FDetMath.swift` (Sun Microsystems' permissive license, notice preserved there). Nothing is decompiled, disassembled, copied, or derived from Minecraft's code.\n- **No Mojang\u002FMicrosoft asset files are included.** The engine's texture atlas is generated by code; the default visual layer is the third-party Faithful 32x pack (credited below — the Faithful team's own artwork); sounds and music are synthesized in real time from oscillator recipes; fonts are a built-in bitmap glyph set; entity models are hand-written Swift reproducing the vanilla mobs' publicly documented box dimensions and UV layouts — required for Java Edition-format entity textures to map onto them correctly. There are no extracted game files anywhere in this repository.\n- Pebble is free, open-source, non-commercial, **singleplayer only**, and connects to nothing.\n\n**Third-party content:** the app bundle ships the complete, unmodified [Faithful 32x](https:\u002F\u002Ffaithfulpack.net) (1.20.1) as its built-in texture set. That artwork is the work of the Faithful team and its contributors, distributed under the [Faithful License](packaging\u002FFAITHFUL-LICENSE.txt) (included verbatim here and in the app bundle, as it requires) — it is **not** covered by this repository's MIT license. Pebble is free and non-commercial, consistent with that license's no-monetization requirement. If anyone with rights in that artwork prefers it not be bundled, contact the address below and it will be removed promptly; Pebble remains fully functional without it. Pebble's ability to *read* the file format the artwork ships in is an independently implemented compatibility feature and implies no affiliation.\n\nPebble is provided \"as is\", without warranty of any kind (see [LICENSE](LICENSE)). It writes only to `~\u002FLibrary\u002FApplication Support\u002FPebble\u002F` and `~\u002FApplications\u002FPebble.app`. Questions, concerns, or good-faith takedown requests from rights holders: **briangaoo2@gmail.com** (subject starting with `[pebble]`) — they will be honored quickly.\n\n---\n\n\u003Cp align=\"center\">\u003Cem>Singleplayer, for now.\u003C\u002Fem>\u003C\u002Fp>\n","2026-06-15 02:30:14","CREATED_QUERY"]