From ca53215124264e21c1cb39741abcd2d2aa0761e0 Mon Sep 17 00:00:00 2001 From: mirzaev Date: Sun, 15 Dec 2024 00:02:35 +0700 Subject: [PATCH] continiuing transition from steam --- css/fira.css | 139 ++++++ css/hack.css | 63 +++ css/main.css | 63 +++ index.html | 46 +- js/perlin.js | 1072 ++++++++++++++++++++++--------------------- js/womb3-simplex.js | 1 + project.json | 903 +++++++++++++++++------------------- womb3-simplex.js | 1 + 8 files changed, 1269 insertions(+), 1019 deletions(-) create mode 100644 css/fira.css create mode 100644 css/hack.css create mode 100644 css/main.css create mode 120000 js/womb3-simplex.js create mode 160000 womb3-simplex.js diff --git a/css/fira.css b/css/fira.css new file mode 100644 index 0000000..4aba5f3 --- /dev/null +++ b/css/fira.css @@ -0,0 +1,139 @@ +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-Hair.woff2') format('woff2'), url('../fonts/fira/FiraSans-Hair.woff') format('woff'); + font-weight: 100; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-HairItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-HairItalic.woff') format('woff'); + font-weight: 100; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-UltraLight.woff2') format('woff2'), url('../fonts/fira/FiraSans-UltraLight.woff') format('woff'); + font-weight: 200; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-UltraLightItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-UltraLightItalic.woff') format('woff'); + font-weight: 200; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-Light.woff2') format('woff2'), url('../fonts/fira/FiraSans-Light.woff') format('woff'); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-LightItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-LightItalic.woff') format('woff'); + font-weight: 300; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-Regular.woff2') format('woff2'), url('../fonts/fira/FiraSans-Regular.woff') format('woff'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-Italic.woff2') format('woff2'), url('../fonts/fira/FiraSans-Italic.woff') format('woff'); + font-weight: 400; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraMono-Medium.woff2') format('woff2'), url('../fonts/fira/FiraMono-Medium.woff') format('woff'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-MediumItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-MediumItalic.woff') format('woff'); + font-weight: 500; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-SemiBold.woff2') format('woff2'), url('../fonts/fira/FiraSans-SemiBold.woff') format('woff'); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-SemiBoldItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-SemiBoldItalic.woff') format('woff'); + font-weight: 600; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-Bold.woff2') format('woff2'), url('../fonts/fira/FiraSans-Bold.woff') format('woff'); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-BoldItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-BoldItalic.woff') format('woff'); + font-weight: 700; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-ExtraBold.woff2') format('woff2'), url('../fonts/fira/FiraSans-ExtraBold.woff') format('woff'); + font-weight: 800; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-ExtraBoldItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-ExtraBoldItalic.woff') format('woff'); + font-weight: 800; + font-style: italic; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-Heavy.woff2') format('woff2'), url('../fonts/fira/FiraSans-Heavy.woff') format('woff'); + font-weight: 900; + font-style: normal; +} + +@font-face { + font-family: Fira; + src: url('../fonts/fira/FiraSans-HeavyItalic.woff2') format('woff2'), url('../fonts/fira/FiraSans-HeavyItalic.woff') format('woff'); + font-weight: 900; + font-style: italic; +} + +@font-face { + font-family: Fira Mono; + src: url('../fonts/fira/FiraMono-Regular.woff2') format('woff2'), url('../fonts/fira/FiraMono-Regular.woff') format('woff'); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: Fira Mono; + src: url('../fonts/fira/FiraMono-Bold.woff2') format('woff2'), url('../fonts/fira/FiraMono-Bold.woff') format('woff'); + font-weight: 600; + font-style: normal; +} diff --git a/css/hack.css b/css/hack.css new file mode 100644 index 0000000..d9c2023 --- /dev/null +++ b/css/hack.css @@ -0,0 +1,63 @@ +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-regular.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-regular.woff?sha=3114f1256') format('woff'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-bold.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-bold.woff?sha=3114f1256') format('woff'); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-italic.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-italic.woff?sha=3114f1256') format('woff'); + font-weight: 400; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-bolditalic.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-bolditalic.woff?sha=3114f1256') format('woff'); + font-weight: 700; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-regular-subset.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-regular-subset.woff?sha=3114f1256') format('woff'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-bold-subset.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-bold-subset.woff?sha=3114f1256') format('woff'); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-italic-subset.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-italic-subset.woff?sha=3114f1256') format('woff'); + font-weight: 400; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Hack'; + src: url('../fonts/hack/hack-bolditalic-subset.woff2?sha=3114f1256') format('woff2'), url('../fonts/hack/hack-bolditalic-subset.woff?sha=3114f1256') format('woff'); + font-weight: 700; + font-style: italic; + font-display: swap; +} diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..a68cd46 --- /dev/null +++ b/css/main.css @@ -0,0 +1,63 @@ +@font-face { + font-family: comissioner; + src: url("../fonts/commissioner.ttf") format("ttf"); + font-weight: normal; + font-style: normal; +} + +* { + text-decoration: none; + outline: none; + border: none; + color: var(--text); + transition: 0.1s ease-out; +} + +html { + width: 100%; + height: 100%; + filter: blur(var(--blur, unset)) contrast(var(--contrast, unset)); +} + +body { + zoom: var(--zoom, 1); + margin: 0; + margin-left: var(--left, unset); + margin-top: var(--top, unset); + height: 100%; + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; + background-color: black; + filter: blur(var(--blur, 3px)) contrast(var(--contrast, 30)); +} + +header { + z-index: 1000; + position: absolute; + width: 100vw; + height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} + +header>h1 { + margin: 0; + margin-left: var(--left, unset); + margin-top: var(--top, unset); + width: max-content; + opacity: var(--opacity, 1); + line-height: 0; + white-space: nowrap; + font-size: 15rem; + font-weight: var(--font-weight, 900); + font-family: var(--font, 'Commissioner'), Roboto, sans-serif; + text-shadow: var(--text-shadow, 'unset'); +} + +canvas { + transform: scale(var(--scale, 1)); + filter: url("#blob"); +} diff --git a/index.html b/index.html index e9c810a..3bd9769 100644 --- a/index.html +++ b/index.html @@ -2,34 +2,34 @@ - - + + - womb3 - - - + mirzaev/wallpaper-womb3-simplex + + + -
-

УТРОБА 3

-
- +
+

WOMB 3

+
+ - - - - - - - - - + + + + + + + + + - - + - \ No newline at end of file + diff --git a/js/perlin.js b/js/perlin.js index 1d3b443..fe30a5c 100644 --- a/js/perlin.js +++ b/js/perlin.js @@ -1,527 +1,550 @@ -var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var commonjsGlobal = typeof globalThis !== "undefined" + ? globalThis + : typeof window !== "undefined" + ? window + : typeof global !== "undefined" + ? global + : typeof self !== "undefined" + ? self + : {}; function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function(path, base) { - return commonjsRequire(path, base === void 0 || base === null ? module.path : base); - } - }, fn(module, module.exports), module.exports; + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire( + path, + base === void 0 || base === null ? module.path : base, + ); + }, + }, + fn(module, module.exports), + module.exports; } function commonjsRequire() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); + throw new Error( + "Dynamic requires are not currently supported by @rollup/plugin-commonjs", + ); } -var perlin = createCommonjsModule(function(module, exports) { - (function(root, factory) { - { - module.exports = factory(); - } - })(commonjsGlobal, function() { - var Perlin = {}; - function Grad(x, y, z) { - this.x = x; - this.y = y; - this.z = z; - } - Grad.prototype.dot2 = function(x, y) { - return this.x * x + this.y * y; - }; - Grad.prototype.dot3 = function(x, y, z) { - return this.x * x + this.y * y + this.z * z; - }; - var grad3 = [ - new Grad(1, 1, 0), - new Grad(-1, 1, 0), - new Grad(1, -1, 0), - new Grad(-1, -1, 0), - new Grad(1, 0, 1), - new Grad(-1, 0, 1), - new Grad(1, 0, -1), - new Grad(-1, 0, -1), - new Grad(0, 1, 1), - new Grad(0, -1, 1), - new Grad(0, 1, -1), - new Grad(0, -1, -1) - ]; - var p = [ - 151, - 160, - 137, - 91, - 90, - 15, - 131, - 13, - 201, - 95, - 96, - 53, - 194, - 233, - 7, - 225, - 140, - 36, - 103, - 30, - 69, - 142, - 8, - 99, - 37, - 240, - 21, - 10, - 23, - 190, - 6, - 148, - 247, - 120, - 234, - 75, - 0, - 26, - 197, - 62, - 94, - 252, - 219, - 203, - 117, - 35, - 11, - 32, - 57, - 177, - 33, - 88, - 237, - 149, - 56, - 87, - 174, - 20, - 125, - 136, - 171, - 168, - 68, - 175, - 74, - 165, - 71, - 134, - 139, - 48, - 27, - 166, - 77, - 146, - 158, - 231, - 83, - 111, - 229, - 122, - 60, - 211, - 133, - 230, - 220, - 105, - 92, - 41, - 55, - 46, - 245, - 40, - 244, - 102, - 143, - 54, - 65, - 25, - 63, - 161, - 1, - 216, - 80, - 73, - 209, - 76, - 132, - 187, - 208, - 89, - 18, - 169, - 200, - 196, - 135, - 130, - 116, - 188, - 159, - 86, - 164, - 100, - 109, - 198, - 173, - 186, - 3, - 64, - 52, - 217, - 226, - 250, - 124, - 123, - 5, - 202, - 38, - 147, - 118, - 126, - 255, - 82, - 85, - 212, - 207, - 206, - 59, - 227, - 47, - 16, - 58, - 17, - 182, - 189, - 28, - 42, - 223, - 183, - 170, - 213, - 119, - 248, - 152, - 2, - 44, - 154, - 163, - 70, - 221, - 153, - 101, - 155, - 167, - 43, - 172, - 9, - 129, - 22, - 39, - 253, - 19, - 98, - 108, - 110, - 79, - 113, - 224, - 232, - 178, - 185, - 112, - 104, - 218, - 246, - 97, - 228, - 251, - 34, - 242, - 193, - 238, - 210, - 144, - 12, - 191, - 179, - 162, - 241, - 81, - 51, - 145, - 235, - 249, - 14, - 239, - 107, - 49, - 192, - 214, - 31, - 181, - 199, - 106, - 157, - 184, - 84, - 204, - 176, - 115, - 121, - 50, - 45, - 127, - 4, - 150, - 254, - 138, - 236, - 205, - 93, - 222, - 114, - 67, - 29, - 24, - 72, - 243, - 141, - 128, - 195, - 78, - 66, - 215, - 61, - 156, - 180 - ]; - var perm = new Array(512); - var gradP = new Array(512); - Perlin.seed = function(seed2) { - if (seed2 > 0 && seed2 < 1) { - seed2 *= 65536; - } - seed2 = Math.floor(seed2); - if (seed2 < 256) { - seed2 |= seed2 << 8; - } - for (var i = 0; i < 256; i++) { - var v; - if (i & 1) { - v = p[i] ^ seed2 & 255; - } else { - v = p[i] ^ seed2 >> 8 & 255; - } - perm[i] = perm[i + 256] = v; - gradP[i] = gradP[i + 256] = grad3[v % 12]; - } - }; - Perlin.seed(0); - var F2 = 0.5 * (Math.sqrt(3) - 1); - var G2 = (3 - Math.sqrt(3)) / 6; - var F3 = 1 / 3; - var G3 = 1 / 6; - Perlin.simplex2 = function(xin, yin) { - var n0, n1, n2; - var s = (xin + yin) * F2; - var i = Math.floor(xin + s); - var j = Math.floor(yin + s); - var t = (i + j) * G2; - var x0 = xin - i + t; - var y0 = yin - j + t; - var i1, j1; - if (x0 > y0) { - i1 = 1; - j1 = 0; - } else { - i1 = 0; - j1 = 1; - } - var x1 = x0 - i1 + G2; - var y1 = y0 - j1 + G2; - var x2 = x0 - 1 + 2 * G2; - var y2 = y0 - 1 + 2 * G2; - i &= 255; - j &= 255; - var gi0 = gradP[i + perm[j]]; - var gi1 = gradP[i + i1 + perm[j + j1]]; - var gi2 = gradP[i + 1 + perm[j + 1]]; - var t0 = 0.5 - x0 * x0 - y0 * y0; - if (t0 < 0) { - n0 = 0; - } else { - t0 *= t0; - n0 = t0 * t0 * gi0.dot2(x0, y0); - } - var t1 = 0.5 - x1 * x1 - y1 * y1; - if (t1 < 0) { - n1 = 0; - } else { - t1 *= t1; - n1 = t1 * t1 * gi1.dot2(x1, y1); - } - var t2 = 0.5 - x2 * x2 - y2 * y2; - if (t2 < 0) { - n2 = 0; - } else { - t2 *= t2; - n2 = t2 * t2 * gi2.dot2(x2, y2); - } - return 70 * (n0 + n1 + n2); - }; - Perlin.simplex3 = function(xin, yin, zin) { - var n0, n1, n2, n3; - var s = (xin + yin + zin) * F3; - var i = Math.floor(xin + s); - var j = Math.floor(yin + s); - var k = Math.floor(zin + s); - var t = (i + j + k) * G3; - var x0 = xin - i + t; - var y0 = yin - j + t; - var z0 = zin - k + t; - var i1, j1, k1; - var i2, j2, k2; - if (x0 >= y0) { - if (y0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } else if (x0 >= z0) { - i1 = 1; - j1 = 0; - k1 = 0; - i2 = 1; - j2 = 0; - k2 = 1; - } else { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 1; - j2 = 0; - k2 = 1; - } - } else { - if (y0 < z0) { - i1 = 0; - j1 = 0; - k1 = 1; - i2 = 0; - j2 = 1; - k2 = 1; - } else if (x0 < z0) { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 0; - j2 = 1; - k2 = 1; - } else { - i1 = 0; - j1 = 1; - k1 = 0; - i2 = 1; - j2 = 1; - k2 = 0; - } - } - var x1 = x0 - i1 + G3; - var y1 = y0 - j1 + G3; - var z1 = z0 - k1 + G3; - var x2 = x0 - i2 + 2 * G3; - var y2 = y0 - j2 + 2 * G3; - var z2 = z0 - k2 + 2 * G3; - var x3 = x0 - 1 + 3 * G3; - var y3 = y0 - 1 + 3 * G3; - var z3 = z0 - 1 + 3 * G3; - i &= 255; - j &= 255; - k &= 255; - var gi0 = gradP[i + perm[j + perm[k]]]; - var gi1 = gradP[i + i1 + perm[j + j1 + perm[k + k1]]]; - var gi2 = gradP[i + i2 + perm[j + j2 + perm[k + k2]]]; - var gi3 = gradP[i + 1 + perm[j + 1 + perm[k + 1]]]; - var t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0; - if (t0 < 0) { - n0 = 0; - } else { - t0 *= t0; - n0 = t0 * t0 * gi0.dot3(x0, y0, z0); - } - var t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1; - if (t1 < 0) { - n1 = 0; - } else { - t1 *= t1; - n1 = t1 * t1 * gi1.dot3(x1, y1, z1); - } - var t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2; - if (t2 < 0) { - n2 = 0; - } else { - t2 *= t2; - n2 = t2 * t2 * gi2.dot3(x2, y2, z2); - } - var t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3; - if (t3 < 0) { - n3 = 0; - } else { - t3 *= t3; - n3 = t3 * t3 * gi3.dot3(x3, y3, z3); - } - return 32 * (n0 + n1 + n2 + n3); - }; - function fade(t) { - return t * t * t * (t * (t * 6 - 15) + 10); - } - function lerp(a, b, t) { - return (1 - t) * a + t * b; - } - Perlin.perlin2 = function(x, y) { - var X = Math.floor(x), Y = Math.floor(y); - x = x - X; - y = y - Y; - X = X & 255; - Y = Y & 255; - var n00 = gradP[X + perm[Y]].dot2(x, y); - var n01 = gradP[X + perm[Y + 1]].dot2(x, y - 1); - var n10 = gradP[X + 1 + perm[Y]].dot2(x - 1, y); - var n11 = gradP[X + 1 + perm[Y + 1]].dot2(x - 1, y - 1); - var u = fade(x); - return lerp(lerp(n00, n10, u), lerp(n01, n11, u), fade(y)); - }; - Perlin.perlin3 = function(x, y, z) { - var X = Math.floor(x), Y = Math.floor(y), Z = Math.floor(z); - x = x - X; - y = y - Y; - z = z - Z; - X = X & 255; - Y = Y & 255; - Z = Z & 255; - var n000 = gradP[X + perm[Y + perm[Z]]].dot3(x, y, z); - var n001 = gradP[X + perm[Y + perm[Z + 1]]].dot3(x, y, z - 1); - var n010 = gradP[X + perm[Y + 1 + perm[Z]]].dot3(x, y - 1, z); - var n011 = gradP[X + perm[Y + 1 + perm[Z + 1]]].dot3(x, y - 1, z - 1); - var n100 = gradP[X + 1 + perm[Y + perm[Z]]].dot3(x - 1, y, z); - var n101 = gradP[X + 1 + perm[Y + perm[Z + 1]]].dot3(x - 1, y, z - 1); - var n110 = gradP[X + 1 + perm[Y + 1 + perm[Z]]].dot3(x - 1, y - 1, z); - var n111 = gradP[X + 1 + perm[Y + 1 + perm[Z + 1]]].dot3(x - 1, y - 1, z - 1); - var u = fade(x); - var v = fade(y); - var w = fade(z); - return lerp(lerp(lerp(n000, n100, u), lerp(n001, n101, u), w), lerp(lerp(n010, n110, u), lerp(n011, n111, u), w), v); - }; - return Perlin; - }); +var perlin = createCommonjsModule(function (module, exports) { + (function (root, factory) { + { + module.exports = factory(); + } + })(commonjsGlobal, function () { + var Perlin = {}; + function Grad(x, y, z) { + this.x = x; + this.y = y; + this.z = z; + } + Grad.prototype.dot2 = function (x, y) { + return this.x * x + this.y * y; + }; + Grad.prototype.dot3 = function (x, y, z) { + return this.x * x + this.y * y + this.z * z; + }; + var grad3 = [ + new Grad(1, 1, 0), + new Grad(-1, 1, 0), + new Grad(1, -1, 0), + new Grad(-1, -1, 0), + new Grad(1, 0, 1), + new Grad(-1, 0, 1), + new Grad(1, 0, -1), + new Grad(-1, 0, -1), + new Grad(0, 1, 1), + new Grad(0, -1, 1), + new Grad(0, 1, -1), + new Grad(0, -1, -1), + ]; + var p = [ + 151, + 160, + 137, + 91, + 90, + 15, + 131, + 13, + 201, + 95, + 96, + 53, + 194, + 233, + 7, + 225, + 140, + 36, + 103, + 30, + 69, + 142, + 8, + 99, + 37, + 240, + 21, + 10, + 23, + 190, + 6, + 148, + 247, + 120, + 234, + 75, + 0, + 26, + 197, + 62, + 94, + 252, + 219, + 203, + 117, + 35, + 11, + 32, + 57, + 177, + 33, + 88, + 237, + 149, + 56, + 87, + 174, + 20, + 125, + 136, + 171, + 168, + 68, + 175, + 74, + 165, + 71, + 134, + 139, + 48, + 27, + 166, + 77, + 146, + 158, + 231, + 83, + 111, + 229, + 122, + 60, + 211, + 133, + 230, + 220, + 105, + 92, + 41, + 55, + 46, + 245, + 40, + 244, + 102, + 143, + 54, + 65, + 25, + 63, + 161, + 1, + 216, + 80, + 73, + 209, + 76, + 132, + 187, + 208, + 89, + 18, + 169, + 200, + 196, + 135, + 130, + 116, + 188, + 159, + 86, + 164, + 100, + 109, + 198, + 173, + 186, + 3, + 64, + 52, + 217, + 226, + 250, + 124, + 123, + 5, + 202, + 38, + 147, + 118, + 126, + 255, + 82, + 85, + 212, + 207, + 206, + 59, + 227, + 47, + 16, + 58, + 17, + 182, + 189, + 28, + 42, + 223, + 183, + 170, + 213, + 119, + 248, + 152, + 2, + 44, + 154, + 163, + 70, + 221, + 153, + 101, + 155, + 167, + 43, + 172, + 9, + 129, + 22, + 39, + 253, + 19, + 98, + 108, + 110, + 79, + 113, + 224, + 232, + 178, + 185, + 112, + 104, + 218, + 246, + 97, + 228, + 251, + 34, + 242, + 193, + 238, + 210, + 144, + 12, + 191, + 179, + 162, + 241, + 81, + 51, + 145, + 235, + 249, + 14, + 239, + 107, + 49, + 192, + 214, + 31, + 181, + 199, + 106, + 157, + 184, + 84, + 204, + 176, + 115, + 121, + 50, + 45, + 127, + 4, + 150, + 254, + 138, + 236, + 205, + 93, + 222, + 114, + 67, + 29, + 24, + 72, + 243, + 141, + 128, + 195, + 78, + 66, + 215, + 61, + 156, + 180, + ]; + var perm = new Array(512); + var gradP = new Array(512); + Perlin.seed = function (seed2) { + if (seed2 > 0 && seed2 < 1) { + seed2 *= 65536; + } + seed2 = Math.floor(seed2); + if (seed2 < 256) { + seed2 |= seed2 << 8; + } + for (var i = 0; i < 256; i++) { + var v; + if (i & 1) { + v = p[i] ^ seed2 & 255; + } else { + v = p[i] ^ seed2 >> 8 & 255; + } + perm[i] = perm[i + 256] = v; + gradP[i] = gradP[i + 256] = grad3[v % 12]; + } + }; + Perlin.seed(0); + var F2 = 0.5 * (Math.sqrt(3) - 1); + var G2 = (3 - Math.sqrt(3)) / 6; + var F3 = 1 / 3; + var G3 = 1 / 6; + Perlin.simplex2 = function (xin, yin) { + var n0, n1, n2; + var s = (xin + yin) * F2; + var i = Math.floor(xin + s); + var j = Math.floor(yin + s); + var t = (i + j) * G2; + var x0 = xin - i + t; + var y0 = yin - j + t; + var i1, j1; + if (x0 > y0) { + i1 = 1; + j1 = 0; + } else { + i1 = 0; + j1 = 1; + } + var x1 = x0 - i1 + G2; + var y1 = y0 - j1 + G2; + var x2 = x0 - 1 + 2 * G2; + var y2 = y0 - 1 + 2 * G2; + i &= 255; + j &= 255; + var gi0 = gradP[i + perm[j]]; + var gi1 = gradP[i + i1 + perm[j + j1]]; + var gi2 = gradP[i + 1 + perm[j + 1]]; + var t0 = 0.5 - x0 * x0 - y0 * y0; + if (t0 < 0) { + n0 = 0; + } else { + t0 *= t0; + n0 = t0 * t0 * gi0.dot2(x0, y0); + } + var t1 = 0.5 - x1 * x1 - y1 * y1; + if (t1 < 0) { + n1 = 0; + } else { + t1 *= t1; + n1 = t1 * t1 * gi1.dot2(x1, y1); + } + var t2 = 0.5 - x2 * x2 - y2 * y2; + if (t2 < 0) { + n2 = 0; + } else { + t2 *= t2; + n2 = t2 * t2 * gi2.dot2(x2, y2); + } + return 70 * (n0 + n1 + n2); + }; + Perlin.simplex3 = function (xin, yin, zin) { + var n0, n1, n2, n3; + var s = (xin + yin + zin) * F3; + var i = Math.floor(xin + s); + var j = Math.floor(yin + s); + var k = Math.floor(zin + s); + var t = (i + j + k) * G3; + var x0 = xin - i + t; + var y0 = yin - j + t; + var z0 = zin - k + t; + var i1, j1, k1; + var i2, j2, k2; + if (x0 >= y0) { + if (y0 >= z0) { + i1 = 1; + j1 = 0; + k1 = 0; + i2 = 1; + j2 = 1; + k2 = 0; + } else if (x0 >= z0) { + i1 = 1; + j1 = 0; + k1 = 0; + i2 = 1; + j2 = 0; + k2 = 1; + } else { + i1 = 0; + j1 = 0; + k1 = 1; + i2 = 1; + j2 = 0; + k2 = 1; + } + } else { + if (y0 < z0) { + i1 = 0; + j1 = 0; + k1 = 1; + i2 = 0; + j2 = 1; + k2 = 1; + } else if (x0 < z0) { + i1 = 0; + j1 = 1; + k1 = 0; + i2 = 0; + j2 = 1; + k2 = 1; + } else { + i1 = 0; + j1 = 1; + k1 = 0; + i2 = 1; + j2 = 1; + k2 = 0; + } + } + var x1 = x0 - i1 + G3; + var y1 = y0 - j1 + G3; + var z1 = z0 - k1 + G3; + var x2 = x0 - i2 + 2 * G3; + var y2 = y0 - j2 + 2 * G3; + var z2 = z0 - k2 + 2 * G3; + var x3 = x0 - 1 + 3 * G3; + var y3 = y0 - 1 + 3 * G3; + var z3 = z0 - 1 + 3 * G3; + i &= 255; + j &= 255; + k &= 255; + var gi0 = gradP[i + perm[j + perm[k]]]; + var gi1 = gradP[i + i1 + perm[j + j1 + perm[k + k1]]]; + var gi2 = gradP[i + i2 + perm[j + j2 + perm[k + k2]]]; + var gi3 = gradP[i + 1 + perm[j + 1 + perm[k + 1]]]; + var t0 = 0.6 - x0 * x0 - y0 * y0 - z0 * z0; + if (t0 < 0) { + n0 = 0; + } else { + t0 *= t0; + n0 = t0 * t0 * gi0.dot3(x0, y0, z0); + } + var t1 = 0.6 - x1 * x1 - y1 * y1 - z1 * z1; + if (t1 < 0) { + n1 = 0; + } else { + t1 *= t1; + n1 = t1 * t1 * gi1.dot3(x1, y1, z1); + } + var t2 = 0.6 - x2 * x2 - y2 * y2 - z2 * z2; + if (t2 < 0) { + n2 = 0; + } else { + t2 *= t2; + n2 = t2 * t2 * gi2.dot3(x2, y2, z2); + } + var t3 = 0.6 - x3 * x3 - y3 * y3 - z3 * z3; + if (t3 < 0) { + n3 = 0; + } else { + t3 *= t3; + n3 = t3 * t3 * gi3.dot3(x3, y3, z3); + } + return 32 * (n0 + n1 + n2 + n3); + }; + function fade(t) { + return t * t * t * (t * (t * 6 - 15) + 10); + } + function lerp(a, b, t) { + return (1 - t) * a + t * b; + } + Perlin.perlin2 = function (x, y) { + var X = Math.floor(x), Y = Math.floor(y); + x = x - X; + y = y - Y; + X = X & 255; + Y = Y & 255; + var n00 = gradP[X + perm[Y]].dot2(x, y); + var n01 = gradP[X + perm[Y + 1]].dot2(x, y - 1); + var n10 = gradP[X + 1 + perm[Y]].dot2(x - 1, y); + var n11 = gradP[X + 1 + perm[Y + 1]].dot2(x - 1, y - 1); + var u = fade(x); + return lerp(lerp(n00, n10, u), lerp(n01, n11, u), fade(y)); + }; + Perlin.perlin3 = function (x, y, z) { + var X = Math.floor(x), Y = Math.floor(y), Z = Math.floor(z); + x = x - X; + y = y - Y; + z = z - Z; + X = X & 255; + Y = Y & 255; + Z = Z & 255; + var n000 = gradP[X + perm[Y + perm[Z]]].dot3(x, y, z); + var n001 = gradP[X + perm[Y + perm[Z + 1]]].dot3(x, y, z - 1); + var n010 = gradP[X + perm[Y + 1 + perm[Z]]].dot3(x, y - 1, z); + var n011 = gradP[X + perm[Y + 1 + perm[Z + 1]]].dot3(x, y - 1, z - 1); + var n100 = gradP[X + 1 + perm[Y + perm[Z]]].dot3(x - 1, y, z); + var n101 = gradP[X + 1 + perm[Y + perm[Z + 1]]].dot3(x - 1, y, z - 1); + var n110 = gradP[X + 1 + perm[Y + 1 + perm[Z]]].dot3(x - 1, y - 1, z); + var n111 = gradP[X + 1 + perm[Y + 1 + perm[Z + 1]]].dot3( + x - 1, + y - 1, + z - 1, + ); + var u = fade(x); + var v = fade(y); + var w = fade(z); + return lerp( + lerp(lerp(n000, n100, u), lerp(n001, n101, u), w), + lerp(lerp(n010, n110, u), lerp(n011, n111, u), w), + v, + ); + }; + return Perlin; + }); }); export default perlin; var perlin2 = perlin.perlin2; @@ -529,4 +552,11 @@ var perlin3 = perlin.perlin3; var seed = perlin.seed; var simplex2 = perlin.simplex2; var simplex3 = perlin.simplex3; -export {perlin as __moduleExports, perlin2, perlin3, seed, simplex2, simplex3}; +export { + perlin as __moduleExports, + perlin2, + perlin3, + seed, + simplex2, + simplex3, +}; diff --git a/js/womb3-simplex.js b/js/womb3-simplex.js new file mode 120000 index 0000000..6d51c30 --- /dev/null +++ b/js/womb3-simplex.js @@ -0,0 +1 @@ +womb3-simplex.js/womb3-simplex.js \ No newline at end of file diff --git a/project.json b/project.json index 746d3b1..63f8c44 100644 --- a/project.json +++ b/project.json @@ -1,549 +1,502 @@ { - "contentrating" : "Everyone", - "description" : "Powerful wallpaper maker! Generation in real time!\nYou can edit 43 parameters, including the color math matrix!\n\n2023.11.21 WORK IS COMPLETED\n\nbut i have ~20 todo`s below (translate it for yourself)\nif I see that you like it, I will continue\n\n1. градиент с настройкой плавности\n2. настройка анимации приближения и отдаления (скорость, кривая движения, время движения)\n3. генерация случайных значений для всех параметров раз в заданный промежуток времени, чтобы обои всегда были уникальны\n4. список моих любимых предустановок\n5. добавление и позиционирование картинки с прозрачным фоном\n6. внедрение html-кода\n7. самостоятельно бегающий фонарь\n8. анимация приближения и отдаления для маски circle\n9. анимация размытия для масок\n10. анимация постоянно меняющихся всех параметров. то есть меняться будет скорость ширина и высота квадратов цвет надпись размытие контраст и прочее\n11. часы вместо надписи с возможностью редактирования через препроцессор\n12. воспроизвести видео \n13. прозрачный фон и наложение поверх видео или изображения\n14. инверсия маски\n15. перевод на русский язык\n16. z-index\n17. многослойный хаотично\n18. многослойный построение ландшафта\n19. backdrop-filter: url(#blob) hue-rotate(59deg); (matrix alpha 2 -22 -42 -2 -0.9)\n\n??? появляющиеся блоки на экране вступающие в контакт с окружением. в них можно засунуть какую-либо информацию, например iframe сайт или видео\n\nRepository: https://git.mirzaev.sexy/mirzaev/womb3-simplex.js\nEdit in real time: https://codepen.io/mirzaev-sexy/pen/BaxQjYo", - "file" : "index.html", - "general" : - { - "properties" : - { - "background" : - { - "index" : 22, - "order" : 122, - "text" : "Background color", - "type" : "color", - "value" : "0 0 0" + "contentrating": "Everyone", + "description": "Powerful wallpaper maker! Generation in real time!\nYou can edit 43 parameters, including the color math matrix!\n\n2023.11.21 WORK IS COMPLETED\n\nbut i have ~20 todo`s below (translate it for yourself)\nif I see that you like it, I will continue\n\n1. градиент с настройкой плавности\n2. настройка анимации приближения и отдаления (скорость, кривая движения, время движения)\n3. генерация случайных значений для всех параметров раз в заданный промежуток времени, чтобы обои всегда были уникальны\n4. список моих любимых предустановок\n5. добавление и позиционирование картинки с прозрачным фоном\n6. внедрение html-кода\n7. самостоятельно бегающий фонарь\n8. анимация приближения и отдаления для маски circle\n9. анимация размытия для масок\n10. анимация постоянно меняющихся всех параметров. то есть меняться будет скорость ширина и высота квадратов цвет надпись размытие контраст и прочее\n11. часы вместо надписи с возможностью редактирования через препроцессор\n12. воспроизвести видео \n13. прозрачный фон и наложение поверх видео или изображения\n14. инверсия маски\n15. перевод на русский язык\n16. z-index\n17. многослойный хаотично\n18. многослойный построение ландшафта\n19. backdrop-filter: url(#blob) hue-rotate(59deg); (matrix alpha 2 -22 -42 -2 -0.9)\n\n??? появляющиеся блоки на экране вступающие в контакт с окружением. в них можно засунуть какую-либо информацию, например iframe сайт или видео\n\nRepository: https://git.mirzaev.sexy/mirzaev/womb3-simplex.js\nEdit in real time: https://codepen.io/mirzaev-sexy/pen/BaxQjYo", + "file": "index.html", + "general": { + "properties": { + "background": { + "index": 22, + "order": 122, + "text": "Background color", + "type": "color", + "value": "0 0 0" }, - "blocks_height" : - { - "fraction" : false, - "index" : 18, - "max" : 1000, - "min" : 10, - "order" : 118, - "text" : "Blocks height", - "type" : "slider", - "value" : 29 + "blocks_height": { + "fraction": false, + "index": 18, + "max": 1000, + "min": 10, + "order": 118, + "text": "Blocks height", + "type": "slider", + "value": 29 }, - "blocks_width" : - { - "fraction" : false, - "index" : 17, - "max" : 1000, - "min" : 10, - "order" : 117, - "text" : "Blocks width", - "type" : "slider", - "value" : 33 + "blocks_width": { + "fraction": false, + "index": 17, + "max": 1000, + "min": 10, + "order": 117, + "text": "Blocks width", + "type": "slider", + "value": 33 }, - "blur" : - { - "fraction" : false, - "index" : 19, - "max" : 300, - "min" : 0, - "order" : 119, - "text" : "Blur", - "type" : "slider", - "value" : 5 + "blur": { + "fraction": false, + "index": 19, + "max": 300, + "min": 0, + "order": 119, + "text": "Blur", + "type": "slider", + "value": 5 }, - "contrast" : - { - "fraction" : false, - "index" : 20, - "max" : 80, - "min" : 1, - "order" : 120, - "text" : "Contrast", - "type" : "slider", - "value" : 30 + "contrast": { + "fraction": false, + "index": 20, + "max": 80, + "min": 1, + "order": 120, + "text": "Contrast", + "type": "slider", + "value": 30 }, - "drawing" : - { - "index" : 25, - "order" : 125, - "text" : "Drawing", - "type" : "bool", - "value" : false + "drawing": { + "index": 25, + "order": 125, + "text": "Drawing", + "type": "bool", + "value": false }, - "drawing_decay" : - { - "condition" : "drawing.value === true", - "fraction" : false, - "index" : 26, - "max" : 500, - "min" : 1, - "order" : 126, - "text" : "Drawing decay time (tiks)", - "type" : "slider", - "value" : 120 + "drawing_decay": { + "condition": "drawing.value === true", + "fraction": false, + "index": 26, + "max": 500, + "min": 1, + "order": 126, + "text": "Drawing decay time (tiks)", + "type": "slider", + "value": 120 }, - "drawing_delay" : - { - "condition" : "drawing.value === true", - "fraction" : false, - "index" : 28, - "max" : 3000, - "min" : 0, - "order" : 128, - "text" : "Drawing delay (ms)", - "type" : "slider", - "value" : 0 + "drawing_delay": { + "condition": "drawing.value === true", + "fraction": false, + "index": 28, + "max": 3000, + "min": 0, + "order": 128, + "text": "Drawing delay (ms)", + "type": "slider", + "value": 0 }, - "drawing_diameter" : - { - "condition" : "drawing.value === true", - "fraction" : false, - "index" : 27, - "max" : 500, - "min" : 1, - "order" : 127, - "text" : "Drawing brush diameter", - "type" : "slider", - "value" : 40 + "drawing_diameter": { + "condition": "drawing.value === true", + "fraction": false, + "index": 27, + "max": 500, + "min": 1, + "order": 127, + "text": "Drawing brush diameter", + "type": "slider", + "value": 40 }, - "drawing_render" : - { - "condition" : "drawing.value === true", - "fraction" : false, - "index" : 29, - "max" : 300, - "min" : 3, - "order" : 129, - "text" : "Drawing render frequency (ms)", - "type" : "slider", - "value" : 50 + "drawing_render": { + "condition": "drawing.value === true", + "fraction": false, + "index": 29, + "max": 300, + "min": 3, + "order": 129, + "text": "Drawing render frequency (ms)", + "type": "slider", + "value": 50 }, - "flashlight_delay" : - { - "condition" : "mask.value === 'flashlight'", - "fraction" : false, - "index" : 35, - "max" : 3000, - "min" : 0, - "order" : 135, - "text" : "Flashlight delay (ms)", - "type" : "slider", - "value" : 0 + "flashlight_delay": { + "condition": "mask.value === 'flashlight'", + "fraction": false, + "index": 35, + "max": 3000, + "min": 0, + "order": 135, + "text": "Flashlight delay (ms)", + "type": "slider", + "value": 0 }, - "flashlight_diameter" : - { - "condition" : "mask.value === 'flashlight'", - "fraction" : false, - "index" : 34, - "max" : 1000, - "min" : 0, - "order" : 134, - "text" : "Flashlight diameter", - "type" : "slider", - "value" : 300 + "flashlight_diameter": { + "condition": "mask.value === 'flashlight'", + "fraction": false, + "index": 34, + "max": 1000, + "min": 0, + "order": 134, + "text": "Flashlight diameter", + "type": "slider", + "value": 300 }, - "flashlight_render" : - { - "condition" : "mask.value === 'flashlight'", - "fraction" : false, - "index" : 36, - "max" : 200, - "min" : 3, - "order" : 136, - "text" : "Flashlight render frequency (ms)", - "type" : "slider", - "value" : 20 + "flashlight_render": { + "condition": "mask.value === 'flashlight'", + "fraction": false, + "index": 36, + "max": 200, + "min": 3, + "order": 136, + "text": "Flashlight render frequency (ms)", + "type": "slider", + "value": 20 }, - "font" : - { - "condition" : "text.value.length > 0", - "index" : 11, - "options" : - [ + "font": { + "condition": "text.value.length > 0", + "index": 11, + "options": [ { - "label" : "Commissioner", - "value" : "'Commissioner'" + "label": "Commissioner", + "value": "'Commissioner'" }, { - "label" : "Sans-serif", - "value" : "sans-seri" + "label": "Sans-serif", + "value": "sans-seri" }, { - "label" : "Hack", - "value" : "Hack" + "label": "Hack", + "value": "Hack" }, { - "label" : "Fira", - "value" : "Fira" + "label": "Fira", + "value": "Fira" }, { - "label" : "Roboto", - "value" : "Roboto" + "label": "Roboto", + "value": "Roboto" } ], - "order" : 111, - "text" : "Font", - "type" : "combo", - "value" : "'Commissioner'" + "order": 111, + "text": "Font", + "type": "combo", + "value": "'Commissioner'" }, - "font_weight" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 12, - "max" : 9, - "min" : 1, - "order" : 112, - "text" : "Font weight", - "type" : "slider", - "value" : 8 + "font_weight": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 12, + "max": 9, + "min": 1, + "order": 112, + "text": "Font weight", + "type": "slider", + "value": 8 }, - "left" : - { - "fraction" : false, - "index" : 13, - "max" : 100, - "min" : -100, - "order" : 113, - "text" : "Left offset (%)", - "type" : "slider", - "value" : 0 + "left": { + "fraction": false, + "index": 13, + "max": 100, + "min": -100, + "order": 113, + "text": "Left offset (%)", + "type": "slider", + "value": 0 }, - "mask" : - { - "index" : 30, - "options" : - [ + "mask": { + "index": 30, + "options": [ { - "label" : "Disabled", - "value" : "unset" + "label": "Disabled", + "value": "unset" }, { - "label" : "Flashlight", - "value" : "flashlight" + "label": "Flashlight", + "value": "flashlight" }, { - "label" : "Circle", - "value" : "circle" + "label": "Circle", + "value": "circle" }, { - "label" : "Custom", - "value" : "custom" + "label": "Custom", + "value": "custom" } ], - "order" : 130, - "text" : "Mask", - "type" : "combo", - "value" : "unset" + "order": 130, + "text": "Mask", + "type": "combo", + "value": "unset" }, - "mask_blur" : - { - "condition" : "mask.value !== 'unset' && mask_target.value === 'noise_text'", - "fraction" : false, - "index" : 32, - "max" : 10, - "min" : 0, - "order" : 132, - "text" : "Mask blur", - "type" : "slider", - "value" : 0 + "mask_blur": { + "condition": "mask.value !== 'unset' && mask_target.value === 'noise_text'", + "fraction": false, + "index": 32, + "max": 10, + "min": 0, + "order": 132, + "text": "Mask blur", + "type": "slider", + "value": 0 }, - "mask_circle" : - { - "condition" : "mask.value === 'circle'", - "fraction" : false, - "index" : 38, - "max" : 100, - "min" : 0, - "order" : 138, - "text" : "Mack: circle", - "type" : "slider", - "value" : 30 + "mask_circle": { + "condition": "mask.value === 'circle'", + "fraction": false, + "index": 38, + "max": 100, + "min": 0, + "order": 138, + "text": "Mack: circle", + "type": "slider", + "value": 30 }, - "mask_contrast" : - { - "condition" : "mask.value !== 'unset' && mask_target.value === 'noise_text'", - "fraction" : false, - "index" : 33, - "max" : 50, - "min" : 1, - "order" : 133, - "text" : "Mask contrast", - "type" : "slider", - "value" : 1 + "mask_contrast": { + "condition": "mask.value !== 'unset' && mask_target.value === 'noise_text'", + "fraction": false, + "index": 33, + "max": 50, + "min": 1, + "order": 133, + "text": "Mask contrast", + "type": "slider", + "value": 1 }, - "mask_custom" : - { - "condition" : "mask.value === 'custom'", - "index" : 37, - "order" : 137, - "text" : "Mask: custom", - "type" : "textinput", - "value" : "circle(20% at 60% 40%)" + "mask_custom": { + "condition": "mask.value === 'custom'", + "index": 37, + "order": 137, + "text": "Mask: custom", + "type": "textinput", + "value": "circle(20% at 60% 40%)" }, - "mask_target" : - { - "condition" : "mask.value !== 'unset'", - "index" : 31, - "options" : - [ + "mask_target": { + "condition": "mask.value !== 'unset'", + "index": 31, + "options": [ { - "label" : "Noise", - "value" : "noise" + "label": "Noise", + "value": "noise" }, { - "label" : "Text", - "value" : "text" + "label": "Text", + "value": "text" }, { - "label" : "Noise + text", - "value" : "noise_text" + "label": "Noise + text", + "value": "noise_text" } ], - "order" : 131, - "text" : "Mask target", - "type" : "combo", - "value" : "noise_text" + "order": 131, + "text": "Mask target", + "type": "combo", + "value": "noise_text" }, - "matrix_1" : - { - "index" : 39, - "order" : 139, - "text" : "Matrix red by [r g b a w]", - "type" : "textinput", - "value" : "1 0 0 0 0" + "matrix_1": { + "index": 39, + "order": 139, + "text": "Matrix red by [r g b a w]", + "type": "textinput", + "value": "1 0 0 0 0" }, - "matrix_2" : - { - "index" : 40, - "order" : 140, - "text" : "Matrix green by [r g b a w]", - "type" : "textinput", - "value" : "0 1 0 0 0" + "matrix_2": { + "index": 40, + "order": 140, + "text": "Matrix green by [r g b a w]", + "type": "textinput", + "value": "0 1 0 0 0" }, - "matrix_3" : - { - "index" : 41, - "order" : 141, - "text" : "Matrix blue by [r g b a w]", - "type" : "textinput", - "value" : "0 0 1 0 0" + "matrix_3": { + "index": 41, + "order": 141, + "text": "Matrix blue by [r g b a w]", + "type": "textinput", + "value": "0 0 1 0 0" }, - "matrix_4" : - { - "index" : 42, - "order" : 142, - "text" : "Matrix alpha by [r g b a w]", - "type" : "textinput", - "value" : "0 0 0 19 -9" + "matrix_4": { + "index": 42, + "order": 142, + "text": "Matrix alpha by [r g b a w]", + "type": "textinput", + "value": "0 0 0 19 -9" }, - "noise_blur" : - { - "fraction" : false, - "index" : 21, - "max" : 500, - "min" : 0, - "order" : 121, - "text" : "Noise blur", - "type" : "slider", - "value" : 20 + "noise_blur": { + "fraction": false, + "index": 21, + "max": 500, + "min": 0, + "order": 121, + "text": "Noise blur", + "type": "slider", + "value": 20 }, - "render" : - { - "condition" : "speed.value > 0", - "fraction" : false, - "index" : 24, - "max" : 300, - "min" : 3, - "order" : 124, - "text" : "Render frequency (ms)", - "type" : "slider", - "value" : 19 + "render": { + "condition": "speed.value > 0", + "fraction": false, + "index": 24, + "max": 300, + "min": 3, + "order": 124, + "text": "Render frequency (ms)", + "type": "slider", + "value": 19 }, - "schemecolor" : - { - "order" : 0, - "text" : "ui_browse_properties_scheme_color", - "type" : "color", - "value" : "1 0 0" + "schemecolor": { + "order": 0, + "text": "ui_browse_properties_scheme_color", + "type": "color", + "value": "1 0 0" }, - "speed" : - { - "condition" : "", - "fraction" : false, - "index" : 23, - "max" : 800, - "min" : 0, - "order" : 123, - "text" : "Speed", - "type" : "slider", - "value" : 40 + "speed": { + "condition": "", + "fraction": false, + "index": 23, + "max": 800, + "min": 0, + "order": 123, + "text": "Speed", + "type": "slider", + "value": 40 }, - "stick" : - { - "fraction" : true, - "index" : 16, - "max" : 2, - "min" : 1, - "order" : 116, - "precision" : 2, - "step" : 0.1, - "text" : "Stick to edges", - "type" : "slider", - "value" : 1 + "stick": { + "fraction": true, + "index": 16, + "max": 2, + "min": 1, + "order": 116, + "precision": 2, + "step": 0.1, + "text": "Stick to edges", + "type": "slider", + "value": 1 }, - "text" : - { - "index" : 0, - "order" : 100, - "text" : "Text", - "type" : "textinput", - "value" : "УТРОБА 3" + "text": { + "index": 0, + "order": 100, + "text": "Text", + "type": "textinput", + "value": "УТРОБА 3" }, - "text_border_blur" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 7, - "max" : 500, - "min" : 0, - "order" : 107, - "text" : "Text border blur (px)", - "type" : "slider", - "value" : 150 + "text_border_blur": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 7, + "max": 500, + "min": 0, + "order": 107, + "text": "Text border blur (px)", + "type": "slider", + "value": 150 }, - "text_border_color" : - { - "condition" : "text.value.length > 0 && (text_border_x.value > 0 || text_border_y.value > 0 || text_border_blur.value > 0)", - "index" : 9, - "order" : 109, - "text" : "Text border color", - "type" : "color", - "value" : "0 0 0" + "text_border_color": { + "condition": "text.value.length > 0 && (text_border_x.value > 0 || text_border_y.value > 0 || text_border_blur.value > 0)", + "index": 9, + "order": 109, + "text": "Text border color", + "type": "color", + "value": "0 0 0" }, - "text_border_depth" : - { - "condition" : "text.value.length > 0 && (text_border_x.value !== 0 || text_border_y.value !== 0 || text_border_blur.value !== 0)", - "fraction" : false, - "index" : 8, - "max" : 100, - "min" : 1, - "order" : 108, - "text" : "Text border depth", - "type" : "slider", - "value" : 3 + "text_border_depth": { + "condition": "text.value.length > 0 && (text_border_x.value !== 0 || text_border_y.value !== 0 || text_border_blur.value !== 0)", + "fraction": false, + "index": 8, + "max": 100, + "min": 1, + "order": 108, + "text": "Text border depth", + "type": "slider", + "value": 3 }, - "text_border_x" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 5, - "max" : 300, - "min" : -300, - "order" : 105, - "text" : "Text border X (px)", - "type" : "slider", - "value" : 0 + "text_border_x": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 5, + "max": 300, + "min": -300, + "order": 105, + "text": "Text border X (px)", + "type": "slider", + "value": 0 }, - "text_border_y" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 6, - "max" : 300, - "min" : -300, - "order" : 106, - "text" : "Text border Y (px)", - "type" : "slider", - "value" : 0 + "text_border_y": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 6, + "max": 300, + "min": -300, + "order": 106, + "text": "Text border Y (px)", + "type": "slider", + "value": 0 }, - "text_color" : - { - "condition" : "text.value.length > 0", - "index" : 10, - "order" : 110, - "text" : "Text color", - "type" : "color", - "value" : "1 1 1" + "text_color": { + "condition": "text.value.length > 0", + "index": 10, + "order": 110, + "text": "Text color", + "type": "color", + "value": "1 1 1" }, - "text_left" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 1, - "max" : 100, - "min" : -100, - "order" : 101, - "text" : "Text left offset (%)", - "type" : "slider", - "value" : 0 + "text_left": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 1, + "max": 100, + "min": -100, + "order": 101, + "text": "Text left offset (%)", + "type": "slider", + "value": 0 }, - "text_opacity" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 4, - "max" : 100, - "min" : 0, - "order" : 104, - "text" : "Text opacity (%)", - "type" : "slider", - "value" : 65 + "text_opacity": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 4, + "max": 100, + "min": 0, + "order": 104, + "text": "Text opacity (%)", + "type": "slider", + "value": 65 }, - "text_size" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 3, - "max" : 200, - "min" : 0, - "order" : 103, - "text" : "Text size (rem)", - "type" : "slider", - "value" : 12 + "text_size": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 3, + "max": 200, + "min": 0, + "order": 103, + "text": "Text size (rem)", + "type": "slider", + "value": 12 }, - "text_top" : - { - "condition" : "text.value.length > 0", - "fraction" : false, - "index" : 2, - "max" : 100, - "min" : -100, - "order" : 102, - "text" : "Text top offset (%)", - "type" : "slider", - "value" : 0 + "text_top": { + "condition": "text.value.length > 0", + "fraction": false, + "index": 2, + "max": 100, + "min": -100, + "order": 102, + "text": "Text top offset (%)", + "type": "slider", + "value": 0 }, - "top" : - { - "fraction" : false, - "index" : 14, - "max" : 100, - "min" : -100, - "order" : 114, - "text" : "Top offset (%)", - "type" : "slider", - "value" : 0 + "top": { + "fraction": false, + "index": 14, + "max": 100, + "min": -100, + "order": 114, + "text": "Top offset (%)", + "type": "slider", + "value": 0 }, - "zoom" : - { - "fraction" : true, - "index" : 15, - "max" : 5, - "min" : 0.2, - "order" : 115, - "precision" : 3, - "step" : 0.01, - "text" : "Zoom", - "type" : "slider", - "value" : 1 + "zoom": { + "fraction": true, + "index": 15, + "max": 5, + "min": 0.2, + "order": 115, + "precision": 3, + "step": 0.01, + "text": "Zoom", + "type": "slider", + "value": 1 } } }, - "preview" : "preview.jpg", - "ratingsex" : "none", - "ratingviolence" : "none", - "tags" : [ "Abstract" ], - "title" : "womb3-simplex.js", - "type" : "Web", - "version" : 3, - "visibility" : "public", - "workshopid" : "3087430455", - "workshopurl" : "steam://url/CommunityFilePage/3087430455" -} \ No newline at end of file + "preview": "preview.jpg", + "ratingsex": "none", + "ratingviolence": "none", + "tags": [ + "Abstract" + ], + "title": "womb3-simplex.js", + "type": "Web", + "version": 3, + "visibility": "public", + "workshopid": "3087430455", + "workshopurl": "steam://url/CommunityFilePage/3087430455" +} diff --git a/womb3-simplex.js b/womb3-simplex.js new file mode 160000 index 0000000..c86be37 --- /dev/null +++ b/womb3-simplex.js @@ -0,0 +1 @@ +Subproject commit c86be37622ef98483a92081952dacb6b57f92aaf