@remotion/noise 4.0.0-retry.9 → 4.1.0-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/dist/{index.d.ts → cjs/index.d.ts} +3 -3
- package/dist/{index.js → cjs/index.js} +3 -3
- package/dist/cjs/test/noise-cache.test.d.ts +1 -0
- package/dist/cjs/test/noise-cache.test.js +102 -0
- package/dist/esm/index.d.ts +30 -0
- package/dist/esm/index.mjs +81 -0
- package/dist/esm/test/noise-cache.test.d.ts +1 -0
- package/package.json +59 -47
- package/.prettierrc.js +0 -14
- package/tsconfig.json +0 -15
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @description Creates 2D noise.
|
|
3
|
-
* @
|
|
3
|
+
* @see [Documentation](https://www.remotion.dev/docs/noise/noise-2d)
|
|
4
4
|
* @param {string | number} seed Seed value for deterministic results
|
|
5
5
|
* @param {number} x First dimensional value
|
|
6
6
|
* @param {number} y Second dimensional value
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
export declare const noise2D: (seed: string | number, x: number, y: number) => number;
|
|
10
10
|
/**
|
|
11
11
|
* @description Creates 3D noise.
|
|
12
|
-
* @
|
|
12
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-3d)
|
|
13
13
|
* @param {string | number} seed Seed value for deterministic results
|
|
14
14
|
* @param {number} x First dimensional value
|
|
15
15
|
* @param {number} y Second dimensional value
|
|
@@ -19,7 +19,7 @@ export declare const noise2D: (seed: string | number, x: number, y: number) => n
|
|
|
19
19
|
export declare const noise3D: (seed: string | number, x: number, y: number, z: number) => number;
|
|
20
20
|
/**
|
|
21
21
|
* @description Creates 4D noise.
|
|
22
|
-
* @
|
|
22
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-4d)
|
|
23
23
|
* @param {string | number} seed Seed value for deterministic results
|
|
24
24
|
* @param {number} x First dimensional value
|
|
25
25
|
* @param {number} y Second dimensional value
|
|
@@ -47,7 +47,7 @@ const generate4DNoise = (seed) => {
|
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
49
49
|
* @description Creates 2D noise.
|
|
50
|
-
* @
|
|
50
|
+
* @see [Documentation](https://www.remotion.dev/docs/noise/noise-2d)
|
|
51
51
|
* @param {string | number} seed Seed value for deterministic results
|
|
52
52
|
* @param {number} x First dimensional value
|
|
53
53
|
* @param {number} y Second dimensional value
|
|
@@ -59,7 +59,7 @@ const noise2D = (seed, x, y) => {
|
|
|
59
59
|
exports.noise2D = noise2D;
|
|
60
60
|
/**
|
|
61
61
|
* @description Creates 3D noise.
|
|
62
|
-
* @
|
|
62
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-3d)
|
|
63
63
|
* @param {string | number} seed Seed value for deterministic results
|
|
64
64
|
* @param {number} x First dimensional value
|
|
65
65
|
* @param {number} y Second dimensional value
|
|
@@ -70,7 +70,7 @@ const noise3D = (seed, x, y, z) => generate3DNoise((0, remotion_1.random)(seed))
|
|
|
70
70
|
exports.noise3D = noise3D;
|
|
71
71
|
/**
|
|
72
72
|
* @description Creates 4D noise.
|
|
73
|
-
* @
|
|
73
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-4d)
|
|
74
74
|
* @param {string | number} seed Seed value for deterministic results
|
|
75
75
|
* @param {number} x First dimensional value
|
|
76
76
|
* @param {number} y Second dimensional value
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
// Make Node.JS 14 pass
|
|
6
|
+
if (typeof performance === 'undefined') {
|
|
7
|
+
(0, vitest_1.test)('Pass', () => {
|
|
8
|
+
(0, vitest_1.expect)(1).toBe(1);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
(0, vitest_1.test)('Noise should be deterministic', () => {
|
|
13
|
+
const noise1 = (0, index_1.noise2D)(1, 0, 0);
|
|
14
|
+
const noise2 = (0, index_1.noise2D)(1, 0, 0);
|
|
15
|
+
(0, vitest_1.expect)(noise1).toBe(noise2);
|
|
16
|
+
(0, vitest_1.expect)(noise1).toBe(0);
|
|
17
|
+
(0, vitest_1.expect)((0, index_1.noise2D)('my-seed', 0.5, 0.5)).toBe(0.3071565136272162);
|
|
18
|
+
(0, vitest_1.expect)((0, index_1.noise3D)('my-seed', 0.7, 0.5, 0.5)).toBe(0.6402128434567901);
|
|
19
|
+
(0, vitest_1.expect)((0, index_1.noise4D)('my-seed', 0.7, 0.5, 0.5, 0.9)).toBe(0.2714290963058814);
|
|
20
|
+
}, { retry: 2 });
|
|
21
|
+
(0, vitest_1.test)('Noise should be cached', () => {
|
|
22
|
+
const start = performance.now();
|
|
23
|
+
(0, index_1.noise2D)('new-seed', 0.5, 0.5);
|
|
24
|
+
const end = performance.now();
|
|
25
|
+
const time = end - start;
|
|
26
|
+
const start2 = performance.now();
|
|
27
|
+
(0, index_1.noise2D)('new-seed', 0.5, 0.5);
|
|
28
|
+
const end2 = performance.now();
|
|
29
|
+
const time2 = end2 - start2;
|
|
30
|
+
(0, vitest_1.expect)(time2 * 10).toBeLessThan(time);
|
|
31
|
+
}, { retry: 2 });
|
|
32
|
+
(0, vitest_1.test)('Should only keep 10 cache entries', () => {
|
|
33
|
+
const start = performance.now();
|
|
34
|
+
(0, index_1.noise2D)('seed-1', 0.5, 0.5);
|
|
35
|
+
const end = performance.now();
|
|
36
|
+
const time = end - start;
|
|
37
|
+
(0, index_1.noise2D)('seed-2', 0.5, 0.5);
|
|
38
|
+
(0, index_1.noise2D)('seed-3', 0.5, 0.5);
|
|
39
|
+
(0, index_1.noise2D)('seed-4', 0.5, 0.5);
|
|
40
|
+
(0, index_1.noise2D)('seed-5', 0.5, 0.5);
|
|
41
|
+
(0, index_1.noise2D)('seed-6', 0.5, 0.5);
|
|
42
|
+
(0, index_1.noise2D)('seed-7', 0.5, 0.5);
|
|
43
|
+
(0, index_1.noise2D)('seed-8', 0.5, 0.5);
|
|
44
|
+
(0, index_1.noise2D)('seed-9', 0.5, 0.5);
|
|
45
|
+
(0, index_1.noise2D)('seed-10', 0.5, 0.5);
|
|
46
|
+
(0, index_1.noise2D)('seed-11', 0.5, 0.5);
|
|
47
|
+
(0, index_1.noise2D)('seed-12', 0.5, 0.5);
|
|
48
|
+
const start2 = performance.now();
|
|
49
|
+
(0, index_1.noise2D)('seed-1', 0.5, 0.5);
|
|
50
|
+
const end2 = performance.now();
|
|
51
|
+
const time2 = end2 - start2;
|
|
52
|
+
(0, vitest_1.expect)(time2 * 4).toBeGreaterThan(time);
|
|
53
|
+
}, {
|
|
54
|
+
retry: 2,
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.test)('Should only keep 10 cache entries (3D)', () => {
|
|
57
|
+
const start = performance.now();
|
|
58
|
+
(0, index_1.noise3D)('seed-1', 0.5, 0.5, 0.8);
|
|
59
|
+
const end = performance.now();
|
|
60
|
+
const time = end - start;
|
|
61
|
+
(0, index_1.noise3D)('seed-2', 0.5, 0.5, 0.8);
|
|
62
|
+
(0, index_1.noise3D)('seed-3', 0.5, 0.5, 0.8);
|
|
63
|
+
(0, index_1.noise3D)('seed-4', 0.5, 0.5, 0.8);
|
|
64
|
+
(0, index_1.noise3D)('seed-5', 0.5, 0.5, 0.8);
|
|
65
|
+
(0, index_1.noise3D)('seed-6', 0.5, 0.5, 0.8);
|
|
66
|
+
(0, index_1.noise3D)('seed-7', 0.5, 0.5, 0.8);
|
|
67
|
+
(0, index_1.noise3D)('seed-8', 0.5, 0.5, 0.8);
|
|
68
|
+
(0, index_1.noise3D)('seed-9', 0.5, 0.5, 0.8);
|
|
69
|
+
(0, index_1.noise3D)('seed-10', 0.5, 0, 0.85);
|
|
70
|
+
(0, index_1.noise3D)('seed-11', 0.5, 0, 0.85);
|
|
71
|
+
(0, index_1.noise3D)('seed-12', 0.5, 0, 0.85);
|
|
72
|
+
const start2 = performance.now();
|
|
73
|
+
(0, index_1.noise3D)('seed-1', 0.5, 0.5, 0.8);
|
|
74
|
+
const end2 = performance.now();
|
|
75
|
+
const time2 = end2 - start2;
|
|
76
|
+
(0, vitest_1.expect)(time2 * 4).toBeGreaterThan(time);
|
|
77
|
+
}, { retry: 2 });
|
|
78
|
+
(0, vitest_1.test)('Should only keep 10 cache entries (4D)', () => {
|
|
79
|
+
const start = performance.now();
|
|
80
|
+
(0, index_1.noise4D)('seed-1', 0.5, 0.5, 0.8, 9);
|
|
81
|
+
const end = performance.now();
|
|
82
|
+
const time = end - start;
|
|
83
|
+
(0, index_1.noise4D)('seed-2', 0.5, 0.5, 0.8, 9);
|
|
84
|
+
(0, index_1.noise4D)('seed-3', 0.5, 0.5, 0.8, 9);
|
|
85
|
+
(0, index_1.noise4D)('seed-4', 0.5, 0.5, 0.8, 9);
|
|
86
|
+
(0, index_1.noise4D)('seed-5', 0.5, 0.5, 0.8, 9);
|
|
87
|
+
(0, index_1.noise4D)('seed-6', 0.5, 0.5, 0.8, 9);
|
|
88
|
+
(0, index_1.noise4D)('seed-7', 0.5, 0.5, 0.8, 9);
|
|
89
|
+
(0, index_1.noise4D)('seed-8', 0.5, 0.5, 0.8, 9);
|
|
90
|
+
(0, index_1.noise4D)('seed-9', 0.5, 0.5, 0.8, 9);
|
|
91
|
+
(0, index_1.noise4D)('seed-10', 0.5, 0, 0.85, 9);
|
|
92
|
+
(0, index_1.noise4D)('seed-11', 0.5, 0, 0.85, 9);
|
|
93
|
+
(0, index_1.noise4D)('seed-12', 0.5, 0, 0.85, 9);
|
|
94
|
+
const start2 = performance.now();
|
|
95
|
+
(0, index_1.noise4D)('seed-1', 0.5, 0.5, 0.8, 9);
|
|
96
|
+
const end2 = performance.now();
|
|
97
|
+
const time2 = end2 - start2;
|
|
98
|
+
(0, vitest_1.expect)(time2 * 4).toBeGreaterThan(time);
|
|
99
|
+
}, {
|
|
100
|
+
retry: 2,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Creates 2D noise.
|
|
3
|
+
* @see [Documentation](https://www.remotion.dev/docs/noise/noise-2d)
|
|
4
|
+
* @param {string | number} seed Seed value for deterministic results
|
|
5
|
+
* @param {number} x First dimensional value
|
|
6
|
+
* @param {number} y Second dimensional value
|
|
7
|
+
* @returns {number} Between -1 and 1
|
|
8
|
+
*/
|
|
9
|
+
export declare const noise2D: (seed: string | number, x: number, y: number) => number;
|
|
10
|
+
/**
|
|
11
|
+
* @description Creates 3D noise.
|
|
12
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-3d)
|
|
13
|
+
* @param {string | number} seed Seed value for deterministic results
|
|
14
|
+
* @param {number} x First dimensional value
|
|
15
|
+
* @param {number} y Second dimensional value
|
|
16
|
+
* @param {number} z Third dimensional value
|
|
17
|
+
* @returns {number} Between -1 and 1
|
|
18
|
+
*/
|
|
19
|
+
export declare const noise3D: (seed: string | number, x: number, y: number, z: number) => number;
|
|
20
|
+
/**
|
|
21
|
+
* @description Creates 4D noise.
|
|
22
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-4d)
|
|
23
|
+
* @param {string | number} seed Seed value for deterministic results
|
|
24
|
+
* @param {number} x First dimensional value
|
|
25
|
+
* @param {number} y Second dimensional value
|
|
26
|
+
* @param {number} z Third dimensional value
|
|
27
|
+
* @param {number} w Fourth dimensional value
|
|
28
|
+
* @returns {number} Between -1 and 1
|
|
29
|
+
*/
|
|
30
|
+
export declare const noise4D: (seed: string | number, x: number, y: number, z: number, w: number) => number;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { random } from 'remotion';
|
|
2
|
+
import { createNoise2D, createNoise3D, createNoise4D } from 'simplex-noise';
|
|
3
|
+
|
|
4
|
+
const seedCache2d = new Map();
|
|
5
|
+
const seedCache3d = new Map();
|
|
6
|
+
const seedCache4d = new Map();
|
|
7
|
+
const generate2DNoise = (seed) => {
|
|
8
|
+
const cached = seedCache2d.get(seed);
|
|
9
|
+
if (cached) {
|
|
10
|
+
return cached;
|
|
11
|
+
}
|
|
12
|
+
// If the cache is getting to big, remove entries based on FIFO principle
|
|
13
|
+
if (seedCache2d.size > 10) {
|
|
14
|
+
seedCache2d.delete(seedCache2d.keys().next().value);
|
|
15
|
+
}
|
|
16
|
+
const noise = createNoise2D(() => random(seed));
|
|
17
|
+
seedCache2d.set(seed, noise);
|
|
18
|
+
return noise;
|
|
19
|
+
};
|
|
20
|
+
const generate3DNoise = (seed) => {
|
|
21
|
+
const cached = seedCache3d.get(seed);
|
|
22
|
+
if (cached) {
|
|
23
|
+
return cached;
|
|
24
|
+
}
|
|
25
|
+
// If the cache is getting to big, remove entries based on FIFO principle
|
|
26
|
+
if (seedCache3d.size > 10) {
|
|
27
|
+
seedCache3d.delete(seedCache3d.keys().next().value);
|
|
28
|
+
}
|
|
29
|
+
const noise = createNoise3D(() => random(seed));
|
|
30
|
+
seedCache3d.set(seed, noise);
|
|
31
|
+
return noise;
|
|
32
|
+
};
|
|
33
|
+
const generate4DNoise = (seed) => {
|
|
34
|
+
const cached = seedCache4d.get(seed);
|
|
35
|
+
if (cached) {
|
|
36
|
+
return cached;
|
|
37
|
+
}
|
|
38
|
+
// If the cache is getting to big, remove entries based on FIFO principle
|
|
39
|
+
if (seedCache4d.size > 10) {
|
|
40
|
+
seedCache4d.delete(seedCache4d.keys().next().value);
|
|
41
|
+
}
|
|
42
|
+
const noise = createNoise4D(() => random(seed));
|
|
43
|
+
seedCache4d.set(seed, noise);
|
|
44
|
+
return noise;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* @description Creates 2D noise.
|
|
48
|
+
* @see [Documentation](https://www.remotion.dev/docs/noise/noise-2d)
|
|
49
|
+
* @param {string | number} seed Seed value for deterministic results
|
|
50
|
+
* @param {number} x First dimensional value
|
|
51
|
+
* @param {number} y Second dimensional value
|
|
52
|
+
* @returns {number} Between -1 and 1
|
|
53
|
+
*/
|
|
54
|
+
const noise2D = (seed, x, y) => {
|
|
55
|
+
return generate2DNoise(seed)(x, y);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* @description Creates 3D noise.
|
|
59
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-3d)
|
|
60
|
+
* @param {string | number} seed Seed value for deterministic results
|
|
61
|
+
* @param {number} x First dimensional value
|
|
62
|
+
* @param {number} y Second dimensional value
|
|
63
|
+
* @param {number} z Third dimensional value
|
|
64
|
+
* @returns {number} Between -1 and 1
|
|
65
|
+
*/
|
|
66
|
+
const noise3D = (seed, x, y, z) => generate3DNoise(random(seed))(x, y, z);
|
|
67
|
+
/**
|
|
68
|
+
* @description Creates 4D noise.
|
|
69
|
+
* @see [Documentation](https://remotion.dev/docs/noise/noise-4d)
|
|
70
|
+
* @param {string | number} seed Seed value for deterministic results
|
|
71
|
+
* @param {number} x First dimensional value
|
|
72
|
+
* @param {number} y Second dimensional value
|
|
73
|
+
* @param {number} z Third dimensional value
|
|
74
|
+
* @param {number} w Fourth dimensional value
|
|
75
|
+
* @returns {number} Between -1 and 1
|
|
76
|
+
*/
|
|
77
|
+
const noise4D = (seed, x, y, z, w
|
|
78
|
+
// eslint-disable-next-line max-params
|
|
79
|
+
) => generate4DNoise(random(seed))(x, y, z, w);
|
|
80
|
+
|
|
81
|
+
export { noise2D, noise3D, noise4D };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,48 +1,60 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
2
|
+
"name": "@remotion/noise",
|
|
3
|
+
"version": "4.1.0-alpha1",
|
|
4
|
+
"description": "Noise effect for Remotion",
|
|
5
|
+
"main": "dist/cjs/index.js",
|
|
6
|
+
"types": "dist/cjs/index.d.ts",
|
|
7
|
+
"module": "dist/esm/index.mjs",
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"exports": {
|
|
10
|
+
"./package.json": "./package.json",
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/cjs/index.d.ts",
|
|
13
|
+
"module": "./dist/esm/index.mjs",
|
|
14
|
+
"import": "./dist/esm/index.mjs",
|
|
15
|
+
"require": "./dist/cjs/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"author": "Yehor Misiats (https://github.com/satelllte)",
|
|
19
|
+
"maintainers": [
|
|
20
|
+
"Jonny Burger <jonny@remotion.dev>",
|
|
21
|
+
"Yehor Misiats (https://github.com/satelllte)"
|
|
22
|
+
],
|
|
23
|
+
"contributors": [],
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"repository": {
|
|
26
|
+
"url": "https://github.com/remotion-dev/remotion"
|
|
27
|
+
},
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"simplex-noise": "4.0.1",
|
|
33
|
+
"remotion": "4.1.0-alpha1"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@jonny/eslint-config": "^3.0.266",
|
|
37
|
+
"@rollup/plugin-typescript": "^8.2.0",
|
|
38
|
+
"@types/node": "18.14.6",
|
|
39
|
+
"eslint": "8.42.0",
|
|
40
|
+
"prettier": "^2.7.1",
|
|
41
|
+
"prettier-plugin-organize-imports": "^2.3.4",
|
|
42
|
+
"rollup": "^2.70.1",
|
|
43
|
+
"typescript": "4.9.5",
|
|
44
|
+
"vitest": "0.31.1"
|
|
45
|
+
},
|
|
46
|
+
"keywords": [
|
|
47
|
+
"remotion",
|
|
48
|
+
"noise"
|
|
49
|
+
],
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
52
|
+
},
|
|
53
|
+
"scripts": {
|
|
54
|
+
"formatting": "prettier src --check",
|
|
55
|
+
"lint": "eslint src --ext ts,tsx",
|
|
56
|
+
"watch": "tsc -w",
|
|
57
|
+
"build": "rollup --config rollup.config.js && tsc -d",
|
|
58
|
+
"test": "vitest --run"
|
|
59
|
+
}
|
|
60
|
+
}
|
package/.prettierrc.js
DELETED
package/tsconfig.json
DELETED