Package Exports
- layered-generative-art
- layered-generative-art/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (layered-generative-art) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
layered-generative-art
An easy-to-use library to generate random images from a set of layers.
Installation
NPM:
$ npm install layered-generative-art
Bun:
$ bun add layered-generative-art
Example
// import generate function
import { generateRandomImage } from 'layered-generative-art';
import { writeFileSync } from 'node:fs';
// ...
// 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);
Features
- optional layers based on a probability
- weighted layer options to create rare trait options
Contributing
Feel free to open pull requests
License
MIT