v1.0.0: cleanup and documentation

This commit is contained in:
2024-03-22 13:05:23 +01:00
parent 56767a0f06
commit c4a238c10c
8 changed files with 199 additions and 145 deletions

View File

@@ -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