# matter-js-gif-renderer

> Renderer for Matter.js, that outputs a gif.

Latest version **1.0.3** (published 2023-03-24) · ISC license · 0 weekly downloads

## Install

```sh
npm install matter-js-gif-renderer
pnpm add matter-js-gif-renderer
yarn add matter-js-gif-renderer
bun add matter-js-gif-renderer
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2023-03-24 |
| First published | 2023-02-07 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 447.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | github.com/jakjus |
| Maintainers | jakjus |
| Keywords | gif, matter.js |

## Links

- npm: https://www.npmjs.com/package/matter-js-gif-renderer
- Repository: https://github.com/jakjus/matter-js-gif-renderer
- Homepage: https://github.com/jakjus/matter-js-gif-renderer#readme
- Issues: https://github.com/jakjus/matter-js-gif-renderer/issues
- npm.io page: https://npm.io/package/matter-js-gif-renderer

## Dependencies (4)

- [canvas](https://npm.io/package/canvas.md) ^2.11.0
- [matter-js](https://npm.io/package/matter-js.md) ^0.18.0
- [gifencoder](https://npm.io/package/gifencoder.md) ^2.0.1
- [gif-encoder-2](https://npm.io/package/gif-encoder-2.md) ^1.0.5

## Alternatives

- [@mce/gif](https://npm.io/package/@mce/gif.md) — 2.6K weekly downloads
- [cleanse](https://npm.io/package/cleanse.md) — 173 weekly downloads
- [str](https://npm.io/package/str.md) — 127 weekly downloads
- [naming](https://npm.io/package/naming.md) — 95 weekly downloads
- [tap-telco-api](https://npm.io/package/tap-telco-api.md) — 19 weekly downloads

## Recent versions

- 1.0.3 (latest) — 2023-03-24
- 1.0.2 — 2023-02-07
- 1.0.1 — 2023-02-07
- 1.0.0 — 2023-02-07

## README

## Matter.js GIF Renderer
![Badge](https://img.shields.io/github/actions/workflow/status/jakjus/matter-js-gif-renderer/test_and_publish.yaml)
![Example](example/myanimated.gif?raw=true)
### Introduction
Node.js package that creates a GIF output of Matter.js engine (instead of within browser). Based on Basic Renderer within Matter.js package for Node.js. Uses `gif-encoder` and `canvas` node packages.

### Installation
```
npm i matter-js-gif-renderer
```

### Usage
You can use various GIF Renderer specific options in `Render.create.options`.
- `quality` - image quality. `default: 10`
- `repeat` - 0 for repeat, -1 for no-repeat. `default: 0`
- `frameDelay` - frame delay in ms. `default: 1000/60`
- `outputFile` - output file name. `default: 'myanimated.gif'`
- `skipFrames` - amount of frames to skip. `default: 0`

### Example
Most of the code is from the `matter-js` docs for brevity.
```
const Matter = require('matter-js')
const { GifRenderer } = require('matter-js-gif-renderer');

// module aliases
var Engine = Matter.Engine,
    Runner = Matter.Runner,
    Render = GifRenderer, // changed line
    Bodies = Matter.Bodies,
    Composite = Matter.Composite;

// create an engine
var engine = Engine.create();

// create a renderer
var render = Render.create({
    engine: engine,
    options: {
        wireframes: false
    }
});

// create two boxes and a ground
var boxA = Bodies.rectangle(400, 200, 80, 80);
var boxB = Bodies.rectangle(450, 50, 80, 80);
var ground = Bodies.rectangle(400, 610, 810, 60, { isStatic: true });

// add all of the bodies to the world
Composite.add(engine.world, [boxA, boxB, ground]);

// run the renderer
Render.run(render);

// create runner
var runner = Runner.create();

// run the engine
Runner.run(runner, engine);
```

Stop the runner (and renderer) with Ctrl+C or add `Runner.stop()` to your code.

## Contribute
Some things may not work from the initial Renderer (no full test suite). 

Any contributions are welcome.

## License
MIT

---
_Source: https://npm.io/package/matter-js-gif-renderer · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
