Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/I2Djs/I2Djs

Integrated-2D is a Javascript 2D rendering framework for SVG, Canvas, and WebGL contexts. I2Djs provides the same API for all rendering contexts.
https://github.com/I2Djs/I2Djs

animation canvas i2djs integrated-2d pixel shaders shape svg visualization webgl

Last synced: 3 months ago
JSON representation

Integrated-2D is a Javascript 2D rendering framework for SVG, Canvas, and WebGL contexts. I2Djs provides the same API for all rendering contexts.

Awesome Lists containing this project

README

        



# Integrated-2D js [![npm](https://img.shields.io/npm/v/i2djs.svg)](https://www.npmjs.com/package/i2djs)

### I2dJs - SVG | Canvas | WebGL | PDF

Integrated-2D - is an Open source Javascript framework for rendering 2D graphics on SVG, Canvas, WebGL and PDF contexts. I2D's simple syntax and semantics lets you combine the power of Vector graphics and Bitmap to achieve complex visualizations easily.

I2Djs provides same Application Programming Interface to create and animate elements across different graphic rendering contexts by leveraging their underlying capabilities. Developers can make use of I2D's multi-layered contextual approach with capabilities from more than one context seamlessly for creating powerful composite visualizations under a single roof.

I2D also provides a unique data-driven approach, **join-actions**, for DOM manipulation based on data binding.

## Documentation

## Installing

If npm

```
npm install i2djs --save
```

I2Djs provides source code bundles for ES6 and CJS modules.

- [i2D.cjs](https://raw.githubusercontent.com/I2djs/I2D/master/dist/i2d.cjs) CommonJS bundle
- [i2D.esm.js](https://raw.githubusercontent.com/I2djs/I2D/master/dist/i2d.esm.js) ES6 bundle
- [i2D.esm.min.js](https://raw.githubusercontent.com/I2djs/I2D/master/dist/i2d.esm.min.js) ES6 bundle

In ES6, use below syntax to import modules.

Import all modules into namespace

```
import * as i2d from 'i2djs'
```

Importing individual modules:

```
import {canvasLayer} from 'i2djs'
import {svgLayer} from 'i2djs'
import {webglLayer} from 'i2djs'
import {pdfLayer} from 'i2djs'
```

## Resources

- [API reference](https://nswamy14.gitbook.io/i2djs-v5)
- [I2Djs Medium Article](https://medium.com/@narayanaswamy14/i2djs-integrated-2d-js-328549ef642)

## Animation Example














## PDF Example

PDF Example-1

## Examples (SVG + Canvas + WebGL + PDF)

[Codepen Examples](https://codepen.io/search/pens?q=i2djs)
























### Basic Shapes









### Scale

| SVG | Canvas | WebGl |
| ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [5000 Particles ](https://i2djs.github.io/I2Djs/examples/svg/distortion2.html) | [30000 Particles ](https://i2djs.github.io/I2Djs/examples/canvas/distortion2.html) | [100000 Particles ](https://i2djs.github.io/I2Djs/examples/webGL/distortion.html) |

### Support & Compatibility

I2D offers both ESM and CommonJS packages, allowing for seamless integration into the desired environment as required.
It is compatible with all modern browsers with latest versions.

### Development Setup

```bash
# install deps
npm install

# Watch on src file changes and update dist files
npm run dev

# build dist files
rollup -c rollup.config.js

#Lint files
npm run lint
---or---
npm run lint-fix
```