{"_id":"phenomenon","_rev":"21-d30e7b31f503731cd6be95e060d01e8d","name":"phenomenon","dist-tags":{"latest":"1.6.0"},"versions":{"0.0.0":{"name":"phenomenon","version":"0.0.0","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Colin van Eenige"},"license":"MIT","_id":"phenomenon@0.0.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-rvikzKQYHnuq3q/bW/WTY3809hKBaV951Pb1LErwkPpz1VqgvjsaZsNciul7RmFJIvZDEr/kZMCJ6brQYy0+qA==","shasum":"9d57f1cd1f24cd18d66a4b4206e6b101aef9ab5a","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-0.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAHT243bBoCvQirzj1E3V/hcLvjio5fRO+cGBTlKHS1nAiEAsmA3gRNvn3DPRFPziBinirpJgonuaPLPqfeyofoyvio="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon-0.0.0.tgz_1505159108667_0.23207310144789517"},"directories":{}},"1.1.0":{"name":"phenomenon","version":"1.1.0","description":"A fast 2kB low-level WebGL API.","main":"dist/phenomenon.es.js","unpkg":"dist/phenomenon.iife.js","scripts":{"demo":"DEBUG=true rollup -c -w","build":"npm run es && npm run iife","es":"rollup -c -f es -o $npm_package_main && gzip-size $npm_package_main","iife":"rollup -c -f iife -o $npm_package_unpkg && gzip-size $npm_package_unpkg","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"files":["src","dist"],"keywords":["webgl","particles","shaders"],"devDependencies":{"babel-core":"^6.26.3","babel-plugin-external-helpers":"^6.22.0","babel-preset-es2015":"^6.24.1","babel-preset-stage-0":"^6.24.1","gzip-size-cli":"^3.0.0","rollup":"^0.62.0","rollup-plugin-babel":"^3.0.7","rollup-plugin-serve":"^0.4.2","rollup-plugin-uglify":"^3.0.0"},"bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-vb4ZpMmfIOHXhQAbhlwpPLNIEh7M0lMgzBevAghOfx+oJpPdWwMcaQL2UrMnoh/Nf71V9f00va4Wc6JktdrH7w==","shasum":"eb891cc67a1e8c234fa27aaf0e52e4329aa36ae9","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.1.0.tgz","fileCount":6,"unpackedSize":29184,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbRuvfCRA9TVsSAnZWagAAGcEP/j4y8xPFMEHl71Vd0L9z\ntW4u8yCltYPWCk003neK6wY2uupMEB30j0NrgjTGfxoM+qq8kVhLBHhaqiqx\nEUe5ywdCJsaL84aWJ79Zc/3JZeldoPNECyhGRZb5QI+8ogxn9xl4ff4Nu0O5\nInEwnsqFqWv78KEUsFwT0qXBJdYvrZzEaYCNljJntVhNx+WeZhWHom5aPfV2\nD85j1+Q7A1fpB9jd8tF3IMconReaAa/JxC5G9i/Syb1MEYOBXt2R38Wjko2I\nGPBP6ThcHx/qBET6+rg5yP3pQmtfdccUTCu/RKVtulKeRgys840G1rutXp2G\nDjvM4J9WcHfJdeQp1x15s5TLHzKUSmjqtpI10c7kARTv0zDe0Ex5jGu7zR9s\nf2WQzH/elHZSN7AiNPhH9p+44Vul0Xu/XHyrTsLebqgLGRsnkQOGMk11v7D5\nz35F0B20OZzTzPhtaMeGrQyiFhE/YNGcw1QtfIBNo1IUDGQvZEXvUNwDpDss\nXeJk3RV90Y+xzYQf/tDj15z2YbIXNJfuFdocdmxZG2SPYyriAkSBaCPIqsQX\n2ejOzE15WTZYVbwpNmXnRK0cLZLa8lBh3hqoGQN/tV89mJ0YJZ2BGfjf5vnh\nxIM3Tc3jzt6Ahlx4gHZaCxBmLdOu8EvHHVZiOKgyF5rIJkKhw4xZMq4vQ8qq\ncTr4\r\n=RtnI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGqtM+Mz63FJy2Q+H4/D3UIEMx3awCOOfXc0mLkoSmCwIgXXzjVcglVjXThitKNgqJcC2H8zu7kaCVCzZkC4TEO/o="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.1.0_1531374559247_0.10617783217232857"},"_hasShrinkwrap":false},"1.2.0":{"name":"phenomenon","version":"1.2.0","description":"A fast 2kB low-level WebGL API.","main":"dist/phenomenon.es.js","unpkg":"dist/phenomenon.iife.js","scripts":{"demo":"DEBUG=true rollup -c -w","build":"npm run es && npm run iife","es":"rollup -c -f es -o $npm_package_main && gzip-size $npm_package_main","iife":"rollup -c -f iife -o $npm_package_unpkg && gzip-size $npm_package_unpkg","prepare":"npm run build","test":"karmatic"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"files":["src","dist"],"keywords":["webgl","particles","shaders"],"devDependencies":{"babel-core":"^6.26.3","babel-plugin-external-helpers":"^6.22.0","babel-preset-env":"^1.7.0","eslint":"^4.19.1","eslint-config-airbnb-base":"^13.0.0","eslint-plugin-import":"^2.13.0","gzip-size-cli":"^3.0.0","karmatic":"^1.2.0","rollup":"^0.62.0","rollup-plugin-babel":"^3.0.7","rollup-plugin-eslint":"^4.0.0","rollup-plugin-serve":"^0.4.2","rollup-plugin-uglify":"^3.0.0","webpack":"^4.16.1"},"eslintConfig":{"extends":"airbnb-base","env":{"browser":true,"mocha":true}},"gitHead":"6fc98963c2aa012f221c9a55a5e637d6dcd2583a","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-+Xn3Op6d7NqpXCx8qbvUuzopmuxdpsaFhzD6ZmmjOEmPh87BZtWNqVdRFM2MML9hbh8igjxUl9YoxK8OSu1KlA==","shasum":"f14287563b56ddafd50227c9eb51dccaba92b696","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.2.0.tgz","fileCount":6,"unpackedSize":32479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbU4tgCRA9TVsSAnZWagAA20AP/1swWnm+A2VbulXxPNiI\nEPPu1oPQrEq/nvZ7CCIciotQZRpTRQai9YKe3Q0Zx5xGiDLcL/jqT3vAO5is\n/s00qlyAomCSY37ZE/+CG5mWsmXiyxALmel/gnOVTa3E7ODdqNMLgLDNuLgS\nBfgOlpwGIvNeAr4A0bOj/347HUK06lrqRIUT8vg5Y8KgYnFaOKpanQrLfOJ1\nSa0Y4jB4QsWD2/lAL1eRwNlln4FN8osvk816VRFg2NXvTyZcCBbIHFb/kvbN\nB1gCs+xj+PEC4YGgllDpPiAQTIBbgsr/Z/VINnOnOH11/yZrSBHPhC+5Xt0I\nb/Y5ktHErN1OgkXlZ5Nl8tpzVtyWUwqyRDR/LYd7YV7UX059rqmXrvlHRsCG\n94tyrWyTbouyYcVhFIyVAw8AXs55FSAdkZqvVTPmhGTb1M+YxtYJWunFH/+r\nvCpNaKyaDBykDBoXG/hq8Nuruk+NLJzrABwroncmSuywASFCN8NqRy3nOyaF\nc18HETWlJoxWCVEEfKrMAN5Srv9mX4cAGtVpq0M4nDB0EXndzyFdtFswTFG+\nBWUE6BJfAePY3Gi4IGaWDL5xxDEy4ojyxQbuyeLWXARBomCG+T58TrZZr0Mt\nzDWZ0Pe8hdK76Q/DsbSn5B0araBNw+0aBNVye6XTtVMeUHLxj7zT1iltyVgw\nJitS\r\n=7zQ/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB87LvFbvI4bmYoHx9eo2qr6o/kcZdrtemVdkJ4Wh+10AiEAmf6Qhmbn3Pw3V1JWfekWxj8lbphiUkO8uJhmx84FgOw="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.2.0_1532201824525_0.19731910987581514"},"_hasShrinkwrap":false},"1.3.0":{"name":"phenomenon","version":"1.3.0","description":"A fast 2kB low-level WebGL API.","main":"dist/phenomenon.es.js","unpkg":"dist/phenomenon.iife.js","scripts":{"demo":"cross-env DEBUG=true rollup -c -w","build":"npm run es && npm run iife","es":"rollup -c -f es -o $npm_package_main && gzip-size $npm_package_main","iife":"rollup -c -f iife -o $npm_package_unpkg && gzip-size $npm_package_unpkg","prepare":"npm run build","test":"karmatic"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"files":["src","dist"],"keywords":["webgl","particles","shaders"],"devDependencies":{"babel-core":"^6.26.3","babel-plugin-external-helpers":"^6.22.0","babel-preset-env":"^1.7.0","cross-env":"^5.2.0","eslint":"^4.19.1","eslint-config-airbnb-base":"^13.0.0","eslint-plugin-import":"^2.13.0","gzip-size-cli":"^3.0.0","karmatic":"^1.2.0","rollup":"^0.62.0","rollup-plugin-babel":"^3.0.7","rollup-plugin-eslint":"^4.0.0","rollup-plugin-serve":"^0.4.2","rollup-plugin-uglify":"^3.0.0","webpack":"^4.16.1"},"eslintConfig":{"extends":"airbnb-base","env":{"browser":true,"mocha":true}},"gitHead":"50855c964fc45052b913e8d2bad6948fcf76b292","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.3.0","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-3z4TLWRYFNbH2ww4v9E9sAOgnO1q3cPPhRqXqX89WqbcRK+K9jJ/6+zAWyu0HkLFfjUyakSvSBz1/OUjv6s6tw==","shasum":"ac52981485f78f0c7a32c62b1f1092b9c00345ee","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.3.0.tgz","fileCount":6,"unpackedSize":32535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWvzdCRA9TVsSAnZWagAAWhYP/3rv677hpYvUtQjCcWsw\nS4QfptLaud3N7GXYRFBznHU7qEJEQW0sWXukSWbtOcxI9p3YI9qC9DL90Kq/\nfN3pCxNdEXVkb1OHptNxIyFnk+XGyhFH9sNf17D9V1OTnQWbt5+6wtkLJG+d\naZFdTpcGRB/3jDBVCzbnF3YEhhH1uT7XANF2sI7U4U1zRQAt0pKjk+2aLMJw\nRbAkZfgPBLGse0VeY+MdARNZ5dPCS0QS2iFtpZ9WgJVbgESu+nrlXrwDMDBU\n4srnYzHLo7RBhWiIeYzhdxqggvf4yOfouzU2U0pjuQU9NbZmLuMXpSZebvpt\nmIuISHoXZd9Xi1zqNqeY04CYtiQDnmeB4+i88xJf4drsD2+Qr8Z1CgQ0pRhG\nP4bkktPC/8VYThHWiHwGKDqxDlNk6l5B6t3MJszsvnBFv8z2H0x0l5Iy8ZSs\nNuoYC6EAuWmpSL7gRtRMMEZl4bgq7AbL722DkqlM+8QXKd5OpjzlZCzbthwC\n73efw0RUazIkYPet4kbAUcs6QJQ5tdkKjCkVZtNZZedk+fek7CBozb/z0u/C\nDYWpMxzYmt9jFM5s0/8GmceGHB+gUtIm+AL/vCUqu9Xa7jkx9jRRkgQtuv4X\nVpcmYm/TE3KS6Y4X9GR7Pn/wxNdkxDzKqWUNKvYeJuWbRretdHwe7qCfwui6\nt9hP\r\n=d8nV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBPCp3H3d7+h7H1+avpN0dXLSyopr+tiWoiLgoL1XT0MAiEApJ0ha08SJEY7kJ0rhrFI4iIyDuXsQSBZx9Tw+d9XsuY="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.3.0_1532689629805_0.5834182527184739"},"_hasShrinkwrap":false},"1.3.1":{"name":"phenomenon","version":"1.3.1","description":"A fast 2kB low-level WebGL API.","main":"dist/phenomenon.mjs","unpkg":"dist/phenomenon.umd.js","scripts":{"start":"http-server demo --silent & npm run watch","watch":"microbundle watch --format umd --entry demo/src/index.js --output demo/dist/bundle.js","build":"microbundle --name Phenomenon --format es,umd --sourcemap false","eslint":"eslint src/index.js","test":"karmatic","prepare":"npm run eslint && npm run test && npm run build"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"keywords":["webgl","particles","shaders"],"devDependencies":{"eslint":"^4.19.1","eslint-config-airbnb-base":"^13.0.0","eslint-plugin-import":"^2.13.0","http-server":"^0.11.1","karmatic":"^1.2.0","microbundle":"^0.6.0","webpack":"^4.17.1"},"eslintConfig":{"extends":"airbnb-base","env":{"browser":true,"mocha":true}},"gitHead":"46263774e61dec4288baa81e3c5f69d4702ab839","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.3.1","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-2x+ecUrgOzT01xM+xXIVKlG9VaefLrzbhUUf8C8JXF8ZMY/tyUi9Elxlf3MkF3DBVCQBzEL5Oi5XHAqpElWdAQ==","shasum":"6bc1ee6f4337574f92221f92e29115f2716b11d0","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.3.1.tgz","fileCount":6,"unpackedSize":32113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbiOMBCRA9TVsSAnZWagAAUGsP/RcDYm05EOIBLGyufQ07\nWongXS7XVkA+asMOVuoqrRcUL1SefgROTWOhsbCIY+1W20yVCVvG8cwNzbKY\nubj66BpGDyHWJwf635kmr69RyngJYUuxELKedd6QNAU536YF66m8ee0dmyNB\nF9ZvygNwf2b7TTf11B1EwAagTsFRVJETAhGMC9Odi/6m2qp0ePSHrAzwcPXz\n/cgke7EdJnrvLK/edoihuFC8udYs1pz3b5Vbsl6e2oqtCsaMorMQYniGt8lm\nH9M/xZAdiho2VBKgeHIumN+e8PG7qboAHNdqImQmy6qWoMfgcEP/V/k878e7\nkgfAD4LyAnbJskWEcw2CY5xPzrhBibo7cZjYE7qNx4xkWXN9lh7NXNAXUI3u\n0Wl7CgW4x5AaEJV4TVJHKFkCcOWzj0vS3w1sI9ImPxpRI8tHeJqIv8aqveI8\n7dxzjMAgUdwBd/caCwrrkpEoNyegJjnDAkHBjBqwyTAsdhY6Y/1U8hw+NnkR\nTD2wgyfa/AKAcULxezhNe6xzUiDi7dbXws8E3SyrhHNg5uLyWYCSeFWsw7mR\nGVRV6z7CqtjlaBLg5gd4rm0zJDWHjw77vvnwTt/CmBohN85GSbL2nJABbFhO\ncP/qewrlwufqmJF2bmgvEHhDyZy3DSDi6cnlv1JvOj0K7IbIRrODYPeRjAxV\nRZ4f\r\n=2e27\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHOl+6unVrvZSSr0J/1BJxEcQdruhqZ9QFWY529pmE2VAiEAoFxPL+oasW2EwObJx4ewVnvprWPBCXMhoPijAB2VQ/Y="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.3.1_1535697664421_0.4496091851650146"},"_hasShrinkwrap":false},"1.4.0":{"name":"phenomenon","version":"1.4.0","description":"A fast 2kB low-level WebGL API.","main":"dist/phenomenon.mjs","unpkg":"dist/phenomenon.umd.js","scripts":{"start":"http-server demo --silent & $npm_execpath run watch","watch":"microbundle watch --format umd --entry demo/src/index.js --output demo/dist/bundle.js","build":"microbundle --name Phenomenon --format es,umd --sourcemap false","eslint":"eslint src/index.js","test":"karmatic","prepare":"$npm_execpath run eslint && $npm_execpath run test && $npm_execpath run build"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"keywords":["webgl","particles","shaders"],"devDependencies":{"eslint":"^5.9.0","eslint-config-airbnb-base":"^13.0.0","eslint-config-prettier":"^3.3.0","eslint-plugin-import":"^2.13.0","eslint-plugin-prettier":"^3.0.0","http-server":"^0.11.1","karmatic":"^1.2.0","microbundle":"^0.7.0","prettier":"^1.15.2","webpack":"^4.17.1"},"eslintConfig":{"extends":["airbnb-base","prettier"],"plugins":["prettier"],"rules":{"linebreak-style":"off","prettier/prettier":["error"]},"env":{"browser":true,"mocha":true}},"prettier":{"printWidth":100,"singleQuote":true},"gitHead":"1e5a9f762f350334fa0921045770f9e94bcbd645","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-HSuxce3NkFAH1PTLXNzyK50Sm5w1uqdRt4ZiJHWGKgHbuE58znnUtJip13ent/2DQdBtZg8FTsaxWjnBVaCteQ==","shasum":"2e131cec0f8b73848040dcd58cd3e5bbfec4c2f4","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.4.0.tgz","fileCount":6,"unpackedSize":33765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb7J/mCRA9TVsSAnZWagAASckQAIY8ySq31QjhlX7qFulD\niG0xDEVy5xLwYkrVL8QGztmNhj796MQHX6x4EAp0hM7RHacQAFXsZm42n7pb\n0IRIRNlY6k6pmoXQHYtDFvj7hGiO1rlrdywWR4WR4YVDIkXmujApDM1AEkpa\nAMWM3fGmPdvSMF9edVu9s18CrLEyveE4vBMucGIY9be4GGDDCJCfUP/x13Is\nh0RNnHgmYAeTvRgrAZ1y7LOYeTjl3KzMohdMkaZIH5WKbiSTTg5pannBbcQE\na6xDFB64ApnvwrkacdixOm/QjOxUnywXEr6ldSPvbissQUeRWHxznKR6sJXH\n6YuS7ioaYOFJFlX49cBLeuCxwPhWd4YkX/e6AfPWILI5b5rdISkyiUacDVMV\nrhooQIFO4PirUs4/CDWlHnepqnaRKNc5PYQI8EJh/y7576ySIH3hG0fh5KYq\nLasS+WtE1eXwcgIV/18IM+2ubAgQfd6MWt8WUuz/Ql4MsINrNg3noyUwoFz8\nmpeqIOiqUFsuW15MYUGBH6iYqt8aJ6IwURaMFAldGgxCq1bSeArrDHE1GX+I\neTAgCZV6ECAVMsJ3hnlaY5HG1uZz5KF73FlWj3IoyrdSxYAeudmYGbXF5dpJ\nHVWNJNHuLGwpfxgmUVBHjpGFQS4xK/4zEFX+lgtF8q2zalR/Pxt/l7dvq+dE\nbhuV\r\n=i3QR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrqgGQNyMDPsCbEAO2I7fVqTQP9pXCYAaIKGhh2R+tIgIgZxoAEBoqb9kSP/jfr9qmdXE/AmaIqyYFcxzVaFGwzT0="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.4.0_1542234085425_0.9128967996001547"},"_hasShrinkwrap":false},"1.5.0":{"name":"phenomenon","version":"1.5.0","description":"A fast 2kB low-level WebGL API.","source":"src/index.ts","main":"dist/phenomenon.mjs","unpkg":"dist/phenomenon.umd.js","types":"dist/index.d.ts","scripts":{"start":"http-server demo --silent & $npm_execpath run watch","watch":"microbundle watch --format umd --entry demo/src/index.js --output demo/dist/bundle.js","build":"microbundle --name Phenomenon --format es,umd --sourcemap false","test":"karmatic","prepare":"$npm_execpath run test && $npm_execpath run build"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"keywords":["webgl","particles","shaders"],"prettier":{"printWidth":100,"singleQuote":true,"trailingComma":"es5"},"devDependencies":{"http-server":"^0.11.1","karmatic":"^1.3.1","microbundle":"^0.11.0","webpack":"^4.31.0"},"gitHead":"c094838b71017e427c99d9516b15cbaba6670d5a","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.5.0","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-0sP9sHiBdkm3bA3+CD0DChoVDZlWB8S6a5WZgSn8nMVzijRtlp+gcgyMaCNAwOtYQ/SgUDJj+XgTMRgqXL79ug==","shasum":"bb72acbd80ede8d2ff7fbfa37a5ce67e302da959","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.5.0.tgz","fileCount":7,"unpackedSize":38030,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4tpGCRA9TVsSAnZWagAA96sQAJ4tveNNWTz4O2OFIQxj\nuXUy4UEeDXUBwxG/Xodg8RzyYl1PJF+drT4WYiJiLt1Gwn9phLWPwwxWQoI3\nCaXLnDS+4TkvPjm1yfhin+x9RodjCx205dSPafmx0SnPfUolVRoptyLIVdrI\n8yjsa7qdA/mVL7MhqPIeItOrjS3lz55LSF7ZSfZ70lIM+wAG6HfFeLRRmvdX\na+9KGr4EHs1h0dYe+eLYqZca9HkR91/WnKsw/6Fn/JduGE7/2OOCHTV/j12D\nRLKsKwAtHLMnT22al2a7/8FKAHv3uRwQgtCfD7BASHnyZHAaPBySsIOJq61Z\nFYrx5TLZUXH0VUiLJNDtMLrau9Rd6/HiryMp7o+engOlW1JQEkZ3+Kesty+e\nBBV8jlRonIbE/AGJ24Ca2K69YB7kKTAzBpDk7W0ssQQWab1Jm4dGJTdJ/Ju5\npBy3RceylCwmK1ynpA6TsEEO3kQsKRAJsK9ySbxZpwvBhnnSxINUSG8VZHnm\nTGFfDe5uCtXZtf6toK96hTebe0GfBWlWtUwwGH4GZdohJtr2CDsv+1WBxFMW\n6u0spmeguaz7wCQmxXxBNTdQybUTmmJJctwmVUVDQihu6IJ16dJzprNPC/nB\nG4bJ/xWE4WqXRPlOkJrvYmQ0KxZlLt235ZJSJdTLYfVWqmH0GB2csZhi14L1\nX7vN\r\n=LxIt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAzu6XUxN7MJrgI741gJJZDbntoHArK3hpS6h6P/enJQAiBe2dmxbJPwaWVEMHmRExDoGXiFZkRTSKpU3o3U3Izz+g=="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.5.0_1558370885526_0.34638460011979055"},"_hasShrinkwrap":false},"1.5.1":{"name":"phenomenon","version":"1.5.1","description":"A fast 2kB low-level WebGL API.","source":"src/index.ts","main":"dist/phenomenon.mjs","unpkg":"dist/phenomenon.umd.js","types":"dist/index.d.ts","scripts":{"start":"http-server demo --silent & $npm_execpath run watch","watch":"microbundle watch --format umd --entry demo/src/index.js --output demo/dist/bundle.js","build":"microbundle --name Phenomenon --format es,umd --sourcemap false","test":"npm run build && karmatic","prepare":"$npm_execpath run test"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"keywords":["webgl","particles","shaders"],"prettier":{"printWidth":100,"singleQuote":true,"trailingComma":"es5"},"devDependencies":{"http-server":"^0.11.1","karmatic":"^1.3.1","microbundle":"^0.11.0","webpack":"^4.31.0"},"gitHead":"174e05cbb3baad887159c3a1110388c0523df988","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.5.1","_npmVersion":"6.4.1","_nodeVersion":"8.16.0","_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"dist":{"integrity":"sha512-+WTR6N423bjTz4BtiDOuy2/upojvRq7JNMuAXxB5e9Uu8x5V09Ovx6NRASVpNgG3AB0i7IHE7WQvs3mNXxEpbg==","shasum":"1639ed48947087f130364e51f3132ae7425cf096","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.5.1.tgz","fileCount":7,"unpackedSize":38020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4vmQCRA9TVsSAnZWagAAUOMP/RhRxfVGcbCdT6j5I39s\nOIyIPPmA+JWWKPVDqBj67SRoBD+WwZLn5TI9lzlBl+Q42XpA3XbGbGdCs/6W\nFyCSAxvFqLxfP4heN2/zXZOEjkvtLAfvmkHxuQZGg7DBIJZj3AFqPLkuTkj1\nbOf/rWWNx57mGe81Fm93HKgY2hGS9Hs/mgjlefCPOQM/FKVDKDk/IF4dHog/\nQRiXXKCdYN9t67T6Z7q4NvIBe1QDIjHWNa3bBY7AkwmGwxqkITX3sFVTE14+\nbjkwZ7jgLuYStF3LnxZHqzbTXl1M3b3Dbni4Z0wU6nsKzDO2dj/De/zoxnpH\n1O9mmOydjFwA2XN3OAuc2GWRFwPP/HTdTYR6Gu/tl01wB/gnLAneEOoMVghM\nYjtV9wlQ1rIb+zSxkkT+282E+YVes/ZxzCox+uLXTIsfYtuSzXczIreRDcK5\n7c4cajT4d7h4nGCl77A5ymuVKau7VEiqmY5cUMq6vZPVTKTzHdrPwP+ON0jp\nQI0gxWp0ykBFFUIYnPi/h3a+wfMmlueyrZLyRikkN+1foSqJcxEJx4PQIDY4\noZd1D7PH2taFAPA6uI6sra4U3SeIRkRpI8WWVZcQH2wgNepuSXnlGChGeq/f\n0t2hb3GS0+m0CkQbBpybcOK+RmkLVNvgcDZhS2GJc8lOVZGI3qjSnC1LmJwa\nJm9G\r\n=CRYH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdRYOqx+6yQyg30/64+neop31tw1+grNbpjhWuXpR1hwIgDKAB03FASdjideh9iYfkhxlxlY/J4MIf/FPK0OuoJbU="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.5.1_1558378895788_0.8913040585741105"},"_hasShrinkwrap":false},"1.6.0":{"name":"phenomenon","version":"1.6.0","description":"A fast 2kB low-level WebGL API.","source":"src/index.ts","main":"dist/phenomenon.mjs","unpkg":"dist/phenomenon.umd.js","types":"dist/index.d.ts","scripts":{"start":"http-server demo --silent & $npm_execpath run watch","watch":"microbundle watch --format umd --entry demo/src/index.js --output demo/dist/bundle.js","build":"microbundle --name Phenomenon --format es,umd --sourcemap false","test":"npm run build && karmatic","prepare":"$npm_execpath run test"},"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"license":"MIT","author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"keywords":["webgl","particles","shaders"],"prettier":{"printWidth":100,"singleQuote":true,"trailingComma":"es5"},"devDependencies":{"http-server":"^0.11.1","karmatic":"^1.3.1","microbundle":"^0.11.0","webpack":"^4.31.0"},"gitHead":"b8550ba77edb25221642cde6cf40e2091ceb45c1","bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"},"homepage":"https://github.com/vaneenige/phenomenon#readme","_id":"phenomenon@1.6.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-7h9/fjPD3qNlgggzm88cY58l9sudZ6Ey+UmZsizfhtawO6E3srZQXywaNm2lBwT72TbpHYRPy7ytIHeBUD/G0A==","shasum":"7b5b7647d0b48152cc0846994da3d92e8f6da677","tarball":"https://registry.npmjs.org/phenomenon/-/phenomenon-1.6.0.tgz","fileCount":7,"unpackedSize":38482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdg51FCRA9TVsSAnZWagAAVfYQAJw0MsD7ZbJrDzlGDnzx\ngLQeM/pZtI+dSweaY8CLObQWGCeQX7ijCstoJ/i1sFusFSvC+2TqcxlDNU/n\nxH0ksfuxYbopLN9AXDB1nHzidLnsaAOfeuhkOCmONar5o//M3ICVpQEwGgdy\nUrfpGtc8KkOZnWTITFRppayR7FwwRwYN1I8+z/aediVnbfsa18NL5bbkjLVq\naJ1tHlOwrFAv5GJFIqAArK67uxl937WM8Gr08j4W9bGMV4zM1S3UeBYp3uWZ\njySTQhItpZAe3LKTn1Xc0xuN/VSAJnz5nbnV4xB5pmzUvyf5OTCI4E4Bq4fe\nAUje2SGm8E2VCFtMV2gnD31CtlsD0vIKmawcz6/WfkKFy9uEEs+FRLTcsDUG\nKdvrV/NitNOIy6+tfr3VGsuaAIs5ggrmEjDSZa56k2oFElssLSHpFEc7yVzg\nm/hwQ3qrod2wZLtA8pxRELkDEyCC+g/jC7iCLSynBEFHzVWZuVE7gFJ/qHTO\nBgytVDRWX15+rFAncWcXnanDcHvfHLfHeaexGWME1VaWyyR0dVl/lvPk2jY7\ngTH1Dm//hQp0lCD2b2CjHYIGR7bW+YOOKUvZXEJr4/fiEJf1IffnjhBaj00i\nyYPMejZMcXyUZamMxAatnfy/BNniEPdyyhYacpR4Z59CoTbSKWtRReq3eVpT\nRfBK\r\n=JT5X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHKJVFDiK+5jFkyR+7wA3gX461l0XRJFuI3mhXPBAUCJAiA4Si0ctYdN9G1Tnfsd1vbjad9FPe0H6sqrDIGbPl7UGQ=="}]},"maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"_npmUser":{"name":"vaneenige","email":"cvaneenige@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/phenomenon_1.6.0_1568906564333_0.5689952365416646"},"_hasShrinkwrap":false}},"readme":"\n# Phenomenon\n\n[![npm version](https://img.shields.io/npm/v/phenomenon.svg)](https://www.npmjs.com/package/phenomenon)\n[![travis build](https://img.shields.io/travis/vaneenige/phenomenon.svg)](https://travis-ci.org/vaneenige/phenomenon)\n[![gzip size](http://img.badgesize.io/https://unpkg.com/phenomenon/dist/phenomenon.umd.js?compression=gzip)](https://unpkg.com/phenomenon)\n[![license](https://img.shields.io/npm/l/phenomenon.svg)](https://github.com/vaneenige/phenomenon/blob/master/LICENSE)\n[![dependencies](https://img.shields.io/badge/dependencies-none-ff69b4.svg)](https://github.com/vaneenige/phenomenon/blob/master/package.json)\n[![TypeScript](https://img.shields.io/static/v1.svg?label=&message=TypeScript&color=294E80)](https://www.typescriptlang.org/)\n\nPhenomenon is a very small, low-level WebGL library that provides the essentials to deliver a high performance experience. Its core functionality is built around the idea of moving *millions of particles* around using the power of the GPU.\n\n#### Features:\n\n- Small in size, no dependencies\n- GPU based for high performance\n- Low-level & highly configurable\n- Helper functions with options\n- Add & destroy instances dynamically\n- Dynamic attribute switching\n\n*Want to see some magic right away? Have a look <a href=\"https://codepen.io/collection/AOpMrm/\">here</a>!*\n\n## Install\n\n```\n$ npm install --save phenomenon\n```\n\n## Usage\n\n```js\n// Import the library\nimport Phenomenon from 'phenomenon';\n\n// Create a renderer\nconst phenomenon = new Phenomenon(options);\n\n// Add an instance\nphenomenon.add(\"particles\", options);\n```\n\n> For a better understanding of how to use the library, read along or have a look at the demo!\n\n## API\n\n### Phenomenon(options)\n\nReturns an instance of Phenomenon.\n\n> Throughout this documentation we'll refer to an instance of this as `renderer`.\n\n#### options.canvas\nType: `HTMLElement` <br/>\nDefault: `document.querySelector('canvas')` <br/>\n\nThe element where the scene, with all of its instances, will be rendered to. The provided element has to be `<canvas>` otherwise it won't work.\n\n#### options.context\nType: `Object`<br/>\nDefault: `{}`<br/>\n\nOverrides that are used when getting the WebGL context from the canvas. The library overrides two settings by default.\n\n| Name      | Default | Description                                                                                                                             |\n| --------- | --------| --------------------------------------------------------------------------------------------------------------------------------------- |\n| Alpha     | `false` | Setting this property to `true` will result in the canvas having a transparent background. By default clearColor is used instead.   |\n| Antialias | `false` | Setting this property to `true` will make the edges sharper, but could negatively impact performance. See for yourself if it's worth it! |\n\n> Read more about all the possible overrides on <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext\">MDN</a>.\n\n#### options.contextType\nType: `String` <br/>\nDefault: `webgl`\n\nThe context identifier defining the drawing context associated to the canvas. For WebGL 2.0 use `webgl2`.\n\n#### options.settings\nType: `Object`<br/>\nDefault: `{}`<br/>\n\nOverrides that can be used to alter the behaviour of the experience.\n\n| Name                                     | Value      | Default         | Description                                                                 |\n| ---------------------------------------- | ---------- | --------------- | --------------------------------------------------------------------------- |\n| devicePixelRatio                         | `number`   | `1`             | The resolution multiplier by which the scene is rendered relative to the canvas' resolution. Use `window.devicePixelRatio` for the highest possible quality, `1` for the best performance. |\n| clearColor                               | `array`    | `[1,1,1,1]`     | The color in `rgba` that is used as the background of the scene. |\n| clip                                     | `array`    | `[0.001, 100]`  | The near and far clip plane in 3D space. |\n| position                                 | `number`   | `{x:0,y:0,z:2}` | The distance in 3D space between the center of the scene and the camera. |\n| shouldRender                             | `boolean`  | `true`          | A boolean indicating whether the scene should start rendering automatically. |\n| uniforms                                 | `object`   | `{}`            | Shared values between all instances that can be updated at any given moment. By default this feature is used to render all the instances with the same `uProjectionMatrix`, `uModelMatrix` and `uViewMatrix`. It's also useful for moving everything around with the same progress value; `uProgress`. |\n| onSetup(gl)                              | `function` | `undefined`     | A setup hook that is called before first render which can be used for gl context changes. |\n| onRender(renderer)                       | `function` | `undefined`     | A render hook that is invoked after every rendered frame. Use this to update `renderer.uniforms`. |\n\n### .resize()\n\nUpdate all values that are based on the dimensions of the canvas to make it look good on all screen sizes.\n\n### .toggle(shouldRender)\n\nToggle the rendering state of the scene. When shouldRender is false `requestAnimationFrame` is disabled so no resources are used.\n\n#### shouldRender\nType: `Boolean` <br/>\nDefault: `undefined` <br/>\n\nAn optional boolean to set the rendering state to a specific value. Leaving this value empty will result in a regular boolean switch.\n\n### .add(key, settings)\n\nThis function is used to add instances to the renderer. These instances can be as *simple* or *complex* as you'd like them to be. There's no limit to how many of these you can add. Make sure they all have a different key!\n\n#### key\nType: `String`<br/>\nDefault: `undefined`<br/>\n\nEvery instance should have a unique name. This name can also be used to destroy the instance specifically later.\n\n#### settings\nType: `Object`<br/>\nDefault: `{}`<br/>\n\nAn object containing overrides for parameters that are used when getting the WebGL context from the canvas.\n\n| Name        | Value      | Default      | Description                                                                 |\n| ----------- | ---------- | ------------ | --------------------------------------------------------------------------- |\n| attributes  | `array`    | `[]`         | Values used in the program that are stored once, directly on the GPU.       |\n| uniforms    | `object`   | `{}`         | Values used in the program that can be updated on the fly.                  |\n| vertex      | `string`   | -            | The vertex shader is used to position the geometry in 3D space.             |\n| fragment    | `string`   | -            | The fragment shader is used to provide the geometry with color or texture.  |\n| multiplier  | `number`   | `1`          | The amount of duplicates that will be created for the same instance.        |\n| mode        | `number`   | `0`          | The way the instance will be rendered. Particles = 0, triangles = 4.        |\n| geometry    | `object`   | `{}`         | Vertices (and optional normals) of a model.                                 |\n| modifiers   | `object`   | `{}`         | Modifiers to alter the attributes data on initialize.                       |\n| onRender    | `function` | `undefined`  | A render hook that is invoked after every rendered frame.                   |\n\n> Note: Less instances with a higher multiplier will be faster than more instances with a lower multiplier!\n\n### .remove(key)\n\nRemove an instance from the scene (and from memory) by its key.\n\n### .destroy()\n\nRemove all instances and the renderer itself. The canvas element will remain in the DOM.\n\n### .prepareAttribute(attribute)\n\nDynamically override an attribute with the same logic that is used during initial creation of the instance. The function requires an object with a name, size and data attribute.\n\n> Note: The calculation of the data function is done on the CPU. Be sure to check for dropped frames with a lot of particles.\n\nAttributes can also be switched. In the demo this is used to continue with a new start position identical to the end position. This can be achieved with `.prepareBuffer(attribute)` in which the data function is replaced with the final array.\n\n## Examples\n\n1. <a href=\"https://codepen.io/cvaneenige/full/odpVPW\">Particles</a>\n2. <a href=\"https://codepen.io/cvaneenige/full/GdGpaN\">Types</a>\n3. <a href=\"https://codepen.io/cvaneenige/full/Lmrzmd\">Transition</a>\n4. <a href=\"https://codepen.io/cvaneenige/full/zjaydg\">Easing</a>\n5. <a href=\"https://codepen.io/cvaneenige/full/wjXVgr\">Shapes</a>\n6. <a href=\"https://codepen.io/cvaneenige/full/MGBZpB\">Instances</a>\n7. <a href=\"https://codepen.io/cvaneenige/full/LmXWeM\">Movement</a>\n8. <a href=\"https://codepen.io/cvaneenige/full/QBwbEY\">Particle cube</a>\n9. <a href=\"https://codepen.io/cvaneenige/full/ajNjaN\">Dynamic intances</a>\n\n## Contribute\n\nAre you excited about this library and have interesting ideas on how to improve it? Please tell me or contribute directly! 🙌\n\n```\nnpm install > npm start > http://localhost:8080\n```\n\n## License\n\nMIT © <a href=\"https://use-the-platform.com\">Colin van Eenige</a>\n","maintainers":[{"name":"vaneenige","email":"cvaneenige@gmail.com"}],"time":{"modified":"2022-05-12T21:13:28.596Z","created":"2017-09-11T19:45:09.629Z","0.0.0":"2017-09-11T19:45:09.629Z","1.0.0":"2018-07-11T05:42:41.535Z","1.0.1":"2018-07-11T05:58:59.488Z","1.0.2":"2018-07-11T06:51:07.793Z","1.0.3":"2018-07-11T21:14:32.698Z","1.0.4":"2018-07-12T05:35:33.169Z","1.0.5":"2018-07-12T05:46:31.791Z","1.1.0":"2018-07-12T05:49:19.331Z","1.2.0":"2018-07-21T19:37:04.641Z","1.3.0":"2018-07-27T11:07:09.896Z","1.3.1":"2018-08-31T06:41:04.626Z","1.4.0":"2018-11-14T22:21:25.589Z","1.5.0":"2019-05-20T16:48:05.684Z","1.5.1":"2019-05-20T19:01:35.978Z","1.6.0":"2019-09-19T15:22:44.491Z"},"author":{"name":"Colin van Eenige","email":"cvaneenige@gmail.com","url":"https://use-the-platform.com"},"license":"MIT","readmeFilename":"README.md","description":"A fast 2kB low-level WebGL API.","homepage":"https://github.com/vaneenige/phenomenon#readme","keywords":["webgl","particles","shaders"],"repository":{"type":"git","url":"git+https://github.com/vaneenige/phenomenon.git"},"bugs":{"url":"https://github.com/vaneenige/phenomenon/issues"}}