⚠️ Work in Progress: This project is under development. Some features may be incomplete.
eterra breathes life into endless low-poly worlds - a smart generator that uses WebGL and React Three Fiber to paint infinite cities that stretch beyond the horizon. Click here to enjoy it yourself!
An endless, (yet) lifeless city.
eterra is a chunk-based, endless city generator. Each chunk contains a unique combination of low-poly buildings, ensuring that every location in the city feels (at least a bit) different.
Thanks to the chunk-based system, the generator can produce and navigate an infinite world without ever consuming excessive memory. Players can move freely,
revisit previous areas, and the world will consistently render as expected.
-
Desktop
W,A,S,D– Move forward, left, backward, and right- Mouse movement – Look around/rotate camera
-
Mobile
- Swipe up/down – Move forward/backward
- Swipe left/right – Rotate camera
- Dynamic Weather & Time: rain, sun, day/night cycles with user-controlled changes
- Advanced Building Generation: dynamic generation of building parts for more variety
- Web Worker Backend: background generation of city chunks to keep performance smooth
- City Life: adding trees, bushes, and other static objects, with plans for dynamic elements like cars and airplanes
- Terrain Variation: introducing hills, lakes, forests, and more diverse landscapes
- Procedural City Enhancements: more dynamic and varied city layouts, responsive to player movement
Follow these steps to run eterra locally:
- Clone the repository
git clone https://github.com/AlexIchenskiy/eterra.git
cd eterra- Install dependencies
npm install- Start the development server
npm run dev- Open your browser, navigate to http://localhost:5173 and enjoy!