尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A first-person explorer for a procedurally generated polygonal world, aiming for a balance of realism and abstraction. The goal is a living, believable planet you can walk, fly and drift across — terrain that reads as geology, weather that shifts, rivers that follow valleys, plants that cluster where the conditions suit them — without the fidelity cost of photorealism. Everything is generated at runtime from a single seed: terrain, plants, sky, weather, water and rivers, all computed on the GPU. Choose from 13 Solar System colour palettes to set the world's look and feel. Rivers trace valleys from high ground to sea, tapering into headwater streams — some branch into tributaries, some meander across the landscape, some pool into lakes. A startup scan identifies up to 30 terrain beauty spots (beach, canyon, island, mountain peak and more) and 24 procedural landmarks, all surfaced as one-tap teleports in a persistent Locations panel. Named rivers appear there too. Worlds are identified by a pronounceable seed word in the URL (e.g. ?seed=KaliSeron). Quality adapts automatically to the device GPU across three tiers — high, medium and low — and adjusts dynamically at runtime.
Inspired by Beyond Fable and threejs-procedural-planets.
npm install
npm run dev # development server
npm run build # type-check + production bundle
Desktop / laptop: click to capture the mouse · WASD move · Shift sprint · Space jump / ascend · C descend · F cycle walk → drone → fly · L land · Q/E roll (fly) · M map · G toggle panels · Esc release mouse / close map
Mobile / tablet: left thumb joystick · right-side drag to look · ↑ ascend · ↓ descend · ⟲⟳ roll (fly only) · ⚡ sprint · ✈ cycle walk → drone → fly · 🛬 land · 🗺️ map · ☰ toggle panels
Works on desktop, laptop, mobile (Android / iOS) and tablet. Supports devices up to ~7 years old via GPU-tier detection.
| Area | Directory / file | Role |
|---|---|---|
| Entry | main.ts | Wires everything; runs the startup sequence and frame loop. |
| Core utilities | core/ | Config constants, noise, palette, seed utilities, geometry math. |
| GPU tier | render/gputier.ts | Probes GPU before renderer creation; assigns high / medium / low tier. |
| Rendering | render/ | Shared uniforms and shaders (fx), GPU bake helpers (bake), terrain material (terrain), post-processing chain (postfx, aerialfx), sun/moon shadows (shadows), tree material (treemat). |
| Planet | world/planet.ts, world/chunks.ts | Coarse planet mesh with cube-map surface; streamed high-detail terrain chunks. |
| Sky & atmosphere | world/sky.ts, world/skyfx.ts, world/night.ts, world/precip.ts | Sun/moon/weather state, cloud shell, aurora/fireflies/bioluminescence, GPU rain/snow. |
| Rivers & lakes | world/river.ts | Valley-tracing paths, meanders, tributaries, lakes; single animated water shader. |
| Trees | world/forest.ts, world/trees.ts, world/treeutil.ts, world/geoutil.ts | Clustered placement, three LOD levels, per-tree hue and shape variation. |
| Ground cover | world/plants.ts, world/vegetation.ts, world/plantgeo.ts, world/rockgeo.ts | 15 plant kinds with biome-specific placement gates. |
| Landmarks | world/landmarks.ts | 8 procedural landmark types placed at startup. |
| Player | player/player.ts, player/touch.ts, world/collision.ts, world/footprints.ts | Walk / drone / fly controller; collision; snow footprints; virtual joystick. |
| Locations | world/spots.ts | Terrain beauty-spot scanner; results populate the Locations panel. |
| UI | ui/gui.ts, ui/map.ts | lil-gui settings + Locations panel; fullscreen equirectangular planet map. |