# Installation
Here is a list of several ways you can use POINTS, with a CDN which is plain html and js and the one I recommend the most, or you can use npm and also bun. There's also the [quick setup](../README.md#quick-setup) that is composed of all you need in a single html file, also available to [download in here](../examples_tutorial/index.html).
The [examples_tutorial](examples_tutorial) folder has a directory per type of installation (cdn, npm, bun):
### cdn (importmap) [code: examples_tutorial/cdn/](examples_tutorial/cdn/)
---
> **Note:** "points" is the required and main library.
The others are helper libraries for shaders but not required.
---
```html
```
### npm [code: examples_tutorial/npm/](examples_tutorial/npm/)
---
> **Note:** if you copy the example directory you can just run `npm install` and `npm start`
---
1. create `index.html` and `main.js`
Add main as module in `index.html`
```html
```
2. Install `points`
```sh
npm init
# select only one of the following two
npm i @absulit/points # npm package
npx jsr add @absulit/points # or jsr package
```
3. Add in `package.json` (so parcel can recognize the paths)
```json
{
"alias": {
"points": "@absulit/points/build/points.min.js",
"points/animation": "@absulit/points/build/core/animation.min.js",
"points/audio": "@absulit/points/build/core/audio.min.js",
"points/color": "@absulit/points/build/core/color.min.js",
"points/debug": "@absulit/points/build/core/debug.min.js",
"points/effects": "@absulit/points/build/core/effects.min.js",
"points/image": "@absulit/points/build/core/image.min.js",
"points/math": "@absulit/points/build/core/math.min.js",
"points/noise2d": "@absulit/points/build/core/noise2d.min.js",
"points/classicnoise2d": "@absulit/points/build/core/classicnoise2d.min.js",
"points/classicnoise3d": "@absulit/points/build/core/classicnoise3d.min.js",
"points/random": "@absulit/points/build/core/random.min.js",
"points/sdf": "@absulit/points/build/core/sdf.min.js"
}
}
```
4. Add/Create `jsconfig.json` (for intellisense)
```json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"points": ["node_modules/@absulit/points/build/points.js"],
"points/animation": ["node_modules/@absulit/points/build/core/animation"],
"points/audio": ["node_modules/@absulit/points/build/core/audio"],
"points/color": ["node_modules/@absulit/points/build/core/color"],
"points/debug": ["node_modules/@absulit/points/build/core/debug"],
"points/effects": ["node_modules/@absulit/points/build/core/effects"],
"points/image": ["node_modules/@absulit/points/build/core/image"],
"points/math": ["node_modules/@absulit/points/build/core/math"],
"points/noise2d": ["node_modules/@absulit/points/build/core/noise2d"],
"points/classicnoise2d": ["node_modules/@absulit/points/build/core/classicnoise2d"],
"points/classicnoise3d": ["node_modules/@absulit/points/build/core/classicnoise3d"],
"points/random": ["node_modules/@absulit/points/build/core/random"],
"points/sdf": ["node_modules/@absulit/points/build/core/sdf"]
}
}
}
```
5. `Reload Window` in vscode to reload `jsconfig.json`
- Press `Ctrl + Shift + P` > Developer: Reload Window
6. Install parcel (or any live server that is able to recognize importmaps or path aliases)
```sh
npm install --save-dev parcel
```
7. Run live server
```sh
npx parcel index.html
```
---
> **Note:** if an error shows up after running `parcel`, delete this line ` "main": "main.js",` from package.json
---
### bun [code: examples_tutorial/bun/](examples_tutorial/bun/)
---
> **Note:** if you copy the example directory you can just run `bun install` and `bun start`
---
1. create `index.html` and `main.js`
Add main as module in `index.html`
```html
```
2. Install `points`
```sh
bun init #select blank
# select only one of the following two
bun i @absulit/points # npm package or
bun x jsr add @absulit/points # jsr package
```
3. Add to `tsconfig.json` (for intellisense)
```json
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"points": ["node_modules/@absulit/points/build/points.js"],
"points/animation": ["node_modules/@absulit/points/build/core/animation"],
"points/audio": ["node_modules/@absulit/points/build/core/audio"],
"points/color": ["node_modules/@absulit/points/build/core/color"],
"points/debug": ["node_modules/@absulit/points/build/core/debug"],
"points/effects": ["node_modules/@absulit/points/build/core/effects"],
"points/image": ["node_modules/@absulit/points/build/core/image"],
"points/math": ["node_modules/@absulit/points/build/core/math"],
"points/noise2d": ["node_modules/@absulit/points/build/core/noise2d"],
"points/classicnoise2d": ["node_modules/@absulit/points/build/core/classicnoise2d"],
"points/classicnoise3d": ["node_modules/@absulit/points/build/core/classicnoise3d"],
"points/random": ["node_modules/@absulit/points/build/core/random"],
"points/sdf": ["node_modules/@absulit/points/build/core/sdf"]
}
}
}
```
4. Run server
```sh
bun index.html
```