lottery
🎉🌟✨🎈年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序,奖品🧧🎁,文字,图片,抽奖规则均可配置,😜抽奖人员信息Excel一键导入😍,抽奖结果Excel导出😎,给你的抽奖活动带来全新酷炫体验🚀🚀🚀
Three.js procedural terrain generator with tile, infinite world, planet mode, volumetric clouds, realistic water and GL…
A shader-driven procedural terrain generator and editor built with React + Vite + Three.js (WebGL2).
Height, normals and biome colors are computed on the GPU — there is no baked CPU heightmap driving the live view. The app ships three world modes (switchable from the top bar):
| Mode | What it is |
|---|---|
| Tile | Fixed terrain board with per-chunk LOD — best for painting, multi-tile layouts and exports |
| Infinite World | Streamed chunk grid around the camera with FPS walk / plane exploration |
| Planet | Cube-sphere procedural planet with atmosphere, volumetric clouds and orbit camera |
npm install npm run dev
The dev server starts on http://localhost:6061 and is also reachable on your local network
(Vite listens on all interfaces and prints the LAN URL, e.g. http://192.168.x.x:6061).
If port 6061 is already in use, Vite picks the next free port.
Production build: npm run build (output in dist/), preview it with npm run preview.
Login and registration are backed by an independent, self-hostable Node.js/MySQL service in api/. The editor remains local-first and fully usable without an account.
For local development, copy both environment examples and start the frontend and API in separate terminals:
cp .env.example .env cp api/.env.example api/.env npm --prefix api install npm run dev npm run dev:api
Run npm run migrate:api once MySQL is configured. Classic Linux, PM2, MySQL and Nginx deployment instructions are in api/README.md.
The WebGL engine is framework-agnostic (src/engine/); the editor UI is React
(src/components/). They talk through Engine methods + a callbacks object — React mirrors
the engine's parameter state and renders the side-panel controls.
(world XZ, seed, params). The seed drives
a domain offset via a mulberry32 PRNG; Math.random() is never used for shape.Ctrl+Z / Ctrl+Y.Editor camera (Tile mode)
Exploration (Infinite World & Planet)
Shortcuts
Ctrl+K — search all settingsCtrl+Z / Ctrl+Y — undo / redoCtrl+Shift+P — developer performance overlay (also via the FPS badge in the status bar)Quick actions (Export panel):
Full export (ZIP with optional contents):
The Export panel includes a preflight Production Check and target presets for Unity
Terrain, Unreal Landscape, Godot Terrain3D, Blender Scene, and Three.js Viewer
Assets. Engine presets package files into import-oriented folders with a terrain.json and
README.txt; Unity and Unreal use a little-endian unsigned 16-bit raw heightmap (.raw / .r16).
The checker blocks invalid asset selections and flags high-memory maps or missing water masks
before the GPU bake begins.
Planet mode has a dedicated planet exporter with cubemap height baking.
The home screen is a local-first project hub. Create a blank terrain or start from Island, Mountain Range, or Desert templates; then use Save in the editor to persist the project in the browser. Projects include versioned terrain data, metadata, an editor-captured thumbnail, and a recent-project entry. Storage uses IndexedDB with a localStorage fallback, and the Projects button reopens the hub. Existing seed JSON files can still be imported.
Normals are finite-differenced per fragment (multiple height evaluations per pixel), which keeps distant terrain crisp at low geometric LOD. The Performance panel offers GPU-tier detection, quality presets, LOD budgets and renderer options. On weaker GPUs, lower the pixel ratio, reduce octaves/layer count, or switch to a lighter water quality mode.
more like this
🎉🌟✨🎈年会抽奖程序,基于 Express + Three.js的 3D 球体抽奖程序,奖品🧧🎁,文字,图片,抽奖规则均可配置,😜抽奖人员信息Excel一键导入😍,抽奖结果Excel导出😎,给你的抽奖活动带来全新酷炫体验🚀🚀🚀
🎥🤟 8 minimalistic templates for tfjs mediapipe handpose and facemesh
search projects, people, and tags