BeamNG.Earth
A 1:1 scale streamed Earth for BeamNG.drive: real elevation and satellite imagery, floating origin, LOD streaming from a companion server
A first-person voxel survival-builder set in 8th-century al-Andalus — gather, craft, and raise a medina solo in the browser or on a co-op server. Vanilla JS + Three.js, Node + ws.
GamesJavaScript · CSSGitHub @kevinleonsmithOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A first-person voxel survival-builder set in 8th-century al-Andalus. Wander a blocky Iberia, gather clay, stone and timber, fight off the night, and raise your own medina of sandstone, terracotta, azulejo-green glaze and copper. Play solo in the browser, or host a small co-op server and build together.
Built with vanilla HTML/CSS/JS + Three.js on the client; the optional co-op server is
Node + ws. No build step, no framework.
Solo needs nothing but the three client files — open index.html (served, or uploaded to
any static host) and pick or create a world. Each world keeps its own seed, terrain and save
(in localStorage).
Co-op needs the server running (it serves the client and the multiplayer relay). See
DEPLOY.md for one-click Railway deployment. On the title screen, pick a name
and a shared world name under Play together; same world name = same world.
| Move | W A S D |
| Look | Mouse (hold-drag if pointer lock is blocked) |
| Jump / Sprint | Space / Shift |
| Break / Place | Left-click / Right-click |
| Select block | 1–0 or scroll |
| Eat date / Fly | E / F |
| Craft / Build | C / B |
| Chat (co-op) | T |
| Pause / Mute | Esc / M |
Touch devices get an on-screen joystick and action buttons.
npm install
npm start # http://localhost:3000
Open two tabs, join the same world name under Play together, and you'll see each other.
Deploy this repo on Railway — it runs npm start and injects PORT,
no config needed. Add a Volume so worlds survive redeploys. Full steps in
DEPLOY.md.
The static client can alternatively live on any static host (e.g. Hostinger) pointed at the
server's wss:// address; the server accepts WebSocket connections from any origin.
| File | What it is |
|---|---|
index.html, style.css, script.js | The game client (Three.js voxel engine, all gameplay). |
server.js | Co-op server: serves the client + authoritative WebSocket game relay. |
package.json | npm start → node server.js; one dependency (ws). |
DEPLOY.md | Railway deployment, co-op scope, and the Volume setup. |
DESIGN-SPEC.md | Full design spec and build history. |
The *.md / *.txt concept docs at the repo root are the original design sources the spec
reconciles; they're kept for reference.
localStorage.