⚠️ Project archived, checkout Gracidea
This library contains a complex cellular automaton which simulates a complete ecosystem, including universe, fauna and flora. It has no special purpose except the pleasure of watching it.
- Deterministic simulation of life based on PRNG
- A complete procedurally generated universe
- 15 differents biomes
- Day and night cycles
- Weather
- Flora simulation
- Berry trees growth and harvests
- Delicious berries with multiple effects
- Fauna simulation
- Predators and preys system
- Huge genome statistics
- Unique behavior, only the smartest creatures will survive !
- Reproduction
Nota Bene : This is a project under development, features listed above may not be implemented yet.
First of all, you'll need to include the library :
<script src="./bin/lowlight.automaton.js"></script>
You may include the minified library instead :
<script src="./bin/lowlight.automaton.min.js"></script>
Then you may create alias for convenience :
let Life = Lowlight.CellularAutomation.Life
This library requires the following libraries :
- lowlighter/astar
- lowlighter/random
- lowlighter/quadtree
- pixi.js
- [noise.js] (based on Stefan Gustavson)
These are already included in demo/js
folder.
Just include the following html structure :
<div class="app">
<div class="app-view"></div>
<button type="button" id="cellular-automaton-start-button"></button>
</div>
Then, as it's a cellular automaton the only thing you can do is watching it evoling :)
/bin | Live and dev scrripts files |
/src | Source files |
/demo | Demo and codes examples |
/docs | Documentation |
You'll need to run the following command the first time to install dependencies.
npm install
Then to rebuild project, just run the following command :
npm run build
This will update /bin
files with included /src
files.
Although package.json
(which contains "source" and "output"
paths) are preconfigured, you may need to reconfigure them if you're planning to expand this library.
To include a file just use the following syntax in the "source"
file :
/* #include <path/to/file.js> */
- File minification is performed with Babel minify.
- Documentation is generated with JSDoc 3.
Although package.json
(which contains "jsdoc_source", "jsdoc_output", "jsdoc_config" and "jsdoc_readme"
) and docs/categories.json
are preconfigured, you may need to reconfigure them if you're planning to expand this library.
This project is licensed under the MIT License.
See LICENSE.md file for details.