Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/LingDong-/fishdraw
procedurally generated fish drawings
https://github.com/LingDong-/fishdraw
art drawing plotter procedural-generation
Last synced: 3 days ago
JSON representation
procedurally generated fish drawings
- Host: GitHub
- URL: https://github.com/LingDong-/fishdraw
- Owner: LingDong-
- License: mit
- Created: 2021-08-11T14:50:19.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-09-08T23:13:57.000Z (about 3 years ago)
- Last Synced: 2024-10-30T20:53:54.392Z (4 days ago)
- Topics: art, drawing, plotter, procedural-generation
- Language: JavaScript
- Homepage: https://fishdraw.glitch.me/
- Size: 1.15 MB
- Stars: 2,211
- Watchers: 26
- Forks: 106
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- interplanetary-destinesia - Fish Draw
README
# fishdraw
*procedurally generated fish drawings. [demo](https://fishdraw.glitch.me/)*
![](samples/000020.svg)
- generates all sorts of weird fishes
- outputs polylines (supported format svg, json, csv, etc.)
- full procedural generation, single file no dependencies
- plotter-centric
- export drawing animation:![](samples/animated.svg)
## usage
basic
```
node fishdraw.js > output.svg
```specify seed (from a string), speed of drawing and output format:
```
node fishdraw.js --seed "Biggus fishus" --format smil --speed 2 > output.svg
```- the seed string is used as the name of the fish (printed in the drawing). If unspecified, a random pseudo-Latin name will be auto generated.
- the speed number is used to control the speed of drawing animation. Larger the number is, faster it draws. This option works only with format `smil`.
- format options: `svg` (regular svg), `smil` (animated svg), `csv` (each polyline on a comma-separated line) and `json`.use as JS library:
```js
const {fish,generate_params} = require('./fishdraw.js');
let polylines = fish(generate_params());
console.log(polylines);
```## gallery
![](samples/000000.svg)
![](samples/000001.svg)
![](samples/000002.svg)
![](samples/000003.svg)
![](samples/000004.svg)
![](samples/000005.svg)
![](samples/000006.svg)
![](samples/000007.svg)
![](samples/000008.svg)
![](samples/000009.svg)
![](samples/000010.svg)
![](samples/000011.svg)
![](samples/000012.svg)
![](samples/000013.svg)
![](samples/000014.svg)
![](samples/000015.svg)
![](samples/000016.svg)
![](samples/000017.svg)
![](samples/000018.svg)
![](samples/000019.svg)
![](samples/000021.svg)
![](samples/000022.svg)
![](samples/000023.svg)
![](samples/000024.svg)
![](samples/000025.svg)
![](samples/000026.svg)
![](samples/000027.svg)
![](samples/000028.svg)
![](samples/000029.svg)
![](samples/000030.svg)
![](samples/000031.svg)
![](samples/000032.svg)