v1.0.0: cleanup and documentation
This commit is contained in:
77
README.md
77
README.md
@@ -1,15 +1,76 @@
|
||||
# generative-art
|
||||
An easy-to-use library to generate random images from a set of layers.
|
||||
|
||||
To install dependencies:
|
||||
|
||||
```bash
|
||||
bun install
|
||||
## Installation
|
||||
NPM:
|
||||
```console
|
||||
$ npm install layered-generative-art
|
||||
```
|
||||
Bun:
|
||||
```console
|
||||
$ bun add layered-generative-art
|
||||
```
|
||||
|
||||
To run:
|
||||
## Example
|
||||
```ts
|
||||
// import generate function
|
||||
import { generateRandomImage } from 'layered-generative-art';
|
||||
import { writeFileSync } from 'node:fs';
|
||||
|
||||
```bash
|
||||
bun run index.ts
|
||||
// ...
|
||||
|
||||
// generate a random character from a fixed base shape, randomly choose between brown or
|
||||
// blue eyes (blue eyes are 5 times as rare) and an optional hat at a 25% probability
|
||||
const result: GenerativeArtOutput = generateRandomImage('./assets/base_shape.png', [
|
||||
{
|
||||
traitName: 'Eyes',
|
||||
path: './assets/eyes/',
|
||||
options: [
|
||||
{
|
||||
name: 'Blue',
|
||||
// this path will be combined with the layer's path (in this case => './assets/eyes/blue_eyes.png')
|
||||
path: 'blue_eyes.png',
|
||||
weight: 1
|
||||
},
|
||||
{
|
||||
name: 'Brown',
|
||||
path: 'brown.png',
|
||||
// Brown eyes now have 5 times the probability of blue eyes
|
||||
weight: 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
traitName: 'Hat',
|
||||
path: './assets/hats/',
|
||||
// Set the probability of a hat occouring to 25%
|
||||
probability: 0.25,
|
||||
options: [
|
||||
{
|
||||
name: 'Red Beanie',
|
||||
path: 'red_beanie.png',
|
||||
},
|
||||
{
|
||||
name: 'Green Cap',
|
||||
path: 'green_cap.png',
|
||||
}
|
||||
]
|
||||
},
|
||||
]);
|
||||
|
||||
// write the newly generated character to a file
|
||||
writeFileSync('./output/my_character.png', result.buffer);
|
||||
|
||||
// log the choices that were taken by the generator
|
||||
console.log(result.choices);
|
||||
```
|
||||
|
||||
This project was created using `bun init` in bun v1.0.33. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
|
||||
## Features
|
||||
- optional layers based on a probability
|
||||
- weighted layer options to create rare trait options
|
||||
|
||||
## Contributing
|
||||
Feel free to open pull requests
|
||||
|
||||
## License
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user