{"_id":"gpupathtracer.js","_rev":"101-26a4f9402fd4342b944fc69f6151e017","name":"gpupathtracer.js","dist-tags":{"latest":"0.0.102"},"versions":{"0.0.1":{"name":"gpupathtracer.js","version":"0.0.1","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.1","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"b8ba7c98bb4d72e150021320de58c1ac5cad3ba4","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.1.tgz","fileCount":174,"integrity":"sha512-2WSNPPudtewZp7YfkDBnGcDX59bHFHvBU09OUxINlSKQa+xmSPW5y51pF7KZbfWX40z4vPkIk22Ovvwbi4VuhA==","signatures":[{"sig":"MEQCIE7+VtTR5tj96v47tyFcEu/ZzWoHq5XdFSGaHFO2pgYzAiB5cuA/DXDfAlNPhbjA/0/f+5tajvbAryaR1tWi2dYXiw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":754141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4ipBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqJXRAAmuFCaAWJnf9Gq5ZUHG3EXTZnGAA7mPHb4J0GIpzXBFg73/+j\r\nGzjMKhyp56l8Pz2TFLGlr7yGmqxvPdkiY8sT10OjiW56G53rmtc41qj+pQ5n\r\n9WbD793+xS3TBfZheI1vx/pHWDOl8yDJCri4ICcY7OhrFyDCJ+OY9xu/YXwB\r\ntIyHNjR/af8j8NgH0zRoU2lGBgq3TLfOa//qs9b5H0M74anBwT0G0GkoLa0k\r\n+I1RS2Ra1YkBpPZbVwMVQG59ZAIOmj6aowuupCWe6cA30MxZrLyc2na+lUFS\r\ngMGx9NFZmAy7PwVSvFXYQ6rYy335OVJqsv19CBQ1PAcZcr/pSFNEa0u45EIA\r\nJXG0qoRGhMDdHXvwKjy0xienzqUFYx2IXGzNdcyPUfhNkA3cIFHK4fVCvSPO\r\nRQpKKMjkGC0zrgIVtO0NxjK/ZM7yB/b+fw0GDYaVQovsBT2O5H6d3fRYmllW\r\nkg2L5prXftd64aWlwXg3OQzA5krePZhUktQmP5ps/QppCekMt9e5lGUAYbYv\r\nM9XNGCg4Rbhc+pUVqBEF6NUtiUx799vXYgXxl6l9riNMYfu14v5ALZArOv8p\r\nQBhC4g06giQGpSxzVZcpJbXIwPGfnN1Ro1L1OXGaQW3j4uwe596e98z0FjoM\r\nfwSRXgZGxn2u4rT9AYJ75oHM5XTtyP7vCP0=\r\n=eaQq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"a14eb91f6998b92e1952bff8bc103c3787ec0c5d","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"8.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"16.14.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.1_1658989121521_0.0545834039314963","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"gpupathtracer.js","version":"0.0.2","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.2","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"6b34778fcb072814215cfb7554f89a52fa97ff0c","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.2.tgz","fileCount":174,"integrity":"sha512-I0ojx0GsPLMIlMi0hxieO1AJ/5sVn8LPJcheehm5TzPYW9yhUkeZ5EKoHt8VXu63SDtWP+fP2GzEyvel89sJ0Q==","signatures":[{"sig":"MEUCICXSM7qr3AY8ZLFnPMeUd0TGh6zditBScS1DeQY3LEM1AiEA4bUbNwtlVZGSWnUa9VIHxvR64SnQq6ibxMREmeyOjKE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":754156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi6pFBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKsQ//U/8/fZG/mU1d+jDhvLk4Nhm0Ci1AI3lRScXfnBisqZZwsBPK\r\nqhsmM8NjGK31g9IMlfvulld1pcjVFnNnokpTCJrLelI56FU/P9QsXBBljx/0\r\nIcjKt2O62glurbyLbeDRBZitF9n9HGXpIRUe68CPYoFKDp2x8nKoiP+r76XY\r\noaE7Bcnc8ubUZYqhWv0li/WKIi+zwEkTUEfDYHQVrcznr8rdTUSvNOa51EYT\r\nxzE4dycDqYquTv2UpyISuGRoR0jVLbXojl2DW8cvKnyCfGWBOCxfI2fm34gf\r\newkWfJd7sQcXBqw/beDbGaw4tYyKZIUz1UpEkmrlzFvGvTzK/KpRX/jDOvQ/\r\n2UNqfrUP3/c5es/Yol7jxPvcdNNyn/mARKowZqHZbXkhKz1Pl88YXtJFZymu\r\nlvnGg5iK5ICYo8RPhIPo14r9R3dk/q1H4Nt6UT0Ax9+MLY2JkKQVDdWuq3oE\r\nRFIWLBN+Rczgcadau4vo+UZsToaj0ILxos6MqoeAhEmOZr7nqOmcRs/77RV4\r\nxahljvO5x8msSV/rFfqlsuzooDTVGG/m4CovOrhDem2hUYzxAqZ5FHMpL5fL\r\nzv00Q6s0TJXpvfQR6827mIMu9Od0P0p4syQKmPvMwUxfVzs8L5uhRslqF8VZ\r\nWAF3KTsJPyTpCshpzq5OIZvX3IbzRxFSQVg=\r\n=8Nzv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"7d86c416ca54b76853ddcfbe5ebde4c5259ba646","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"8.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"16.14.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.2_1659539777129_0.08344803357010289","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"gpupathtracer.js","version":"0.0.3","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.3","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"369dec0989ebb1e3d626fa97bfb0a039d27ff892","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.3.tgz","fileCount":174,"integrity":"sha512-wei9j3x/RIgGxhNi5Mu6Ow/1hQq7i05FKm3k/MVtG+6avVNpgvvdIF5XF/ORjLMc3w7Rz+DK1CNcQvNZqTD9IA==","signatures":[{"sig":"MEUCIQDPhjN4nJ9T3BAu+gVw5k1boJJag+mzTV0NPWEDtsoylAIgfbS0JUtkHzJOFu1X2YnahNP8nzEDLn3GpEFXJPr4EIw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":754618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7TDVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoxjA/+JD8wPd159fAYZ+3uGxTiYl1zB5pN51h8vlknbXuii3IrV8Zx\r\n/TRPWhWKhrRa+CWUrI1XpkAplLYBnzteE+zk5H+y5NNF6PqB6NGBeHhvlmPI\r\nrp/qvkne82/EWOoH7OET4dbWyJw299N5gSHz8Es4pctiW9gtXmf4VG9rAUqh\r\np+NFS1OeGCmO45GxI2lTtwZXgvm+XqttFrXBioIP9pIw5KzU4chIDn3SK/df\r\nbRSvzJVdldu5jPs+7DVbU9CASy9fcCSEcwdxVlBxwWlMGGyMrEv8rogMl/NC\r\ninmY7Na5L+xyN7HZW3u3jMojpJQtDrherfjz7Vh7LJ4fiH/Lg9I1RFxMXxxc\r\nrvM3GayODWw+bB9wyC/cQzI2ft4Yyvcjld8fSxRkSQiadFsQF9B4bil9cWVF\r\nWJ8oQbUdoFcWF0o9qNajs3hsvDdHFF4x/pSIOsn1nGYWpVgTkBaHiStQZmcg\r\nE2070UYxN5lYvkcrEidzAfMZRA6VGANmlRgfcvQelqvQr/eMxU0jSvNRc6x+\r\nuzEND5sqOC5SjU21SWUgcviH3SyhDuP9AdpwqFUqdTVZs8SM3r5U++xzOajJ\r\n1OtML7SaIbALKM186CODzsHRMtjxyoOB3W92ChUORCUn8/uPzFRx9djazRQN\r\n+IiQnKFm+H1dY1+JwKrt3FNxhqJfj9svCxk=\r\n=r04g\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"031d3c7517870a0aa6bc23dfdecdf9e9c8752456","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"8.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"16.14.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.3_1659711701010_0.6483156668819248","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"gpupathtracer.js","version":"0.0.4","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.4","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"f8de9b005b1fe6b6e0a35aed18280075b30e3195","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.4.tgz","fileCount":174,"integrity":"sha512-71FIW6mTkfsiipuh7k8FmvEqk4Es1MA6iExEaKL0jb5pBg/Mlo6Zlz2g9PS/9fEcbWG+td4/kKBMTnLkGpineg==","signatures":[{"sig":"MEYCIQDQBW/OsPKJTLALIB/ilbKf8QwImgIbXofTrDe4vnNF9QIhAL2WnLf7SYKPQ/xf9hBMymEi4x/elUAqY/yrJPGpIgWs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":754941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjALuYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTdw/+OgY2P33Z8JdeN7nHixBt2b33XVj75oXZllVAnfAKHz5AhFue\r\nJoiUxQ7tlZscYkCrX1mPHjC+Dlp8p3JNBWJW/bnaMaff4WFXvyHV6J62jJK2\r\nkvuuuWdCglbtWWo4pbIFPN3/6Wzc35HepM+olEu7+3QF43ruRJ0IrIXxrf/k\r\nb3PxXy1DFrwM5gC7P/T31K02a4z10BVZZ77209LmQ0B7u65B91U2b5r21adn\r\nn7hEARcRoXwRGUutH5knSgr+v4onPhD6Xgu9U+OuBWkQCXpfHUrfAGDK6rzH\r\n4FDqN/k9GMs6facD7f4PkeKiCAMPT7Vfx0fnuVkxARiBZGXmrksMnQSJuuFq\r\n+fLz5m4H8rs15eAYC+we5Wwrym3snYux0Si0VOeQ2ce+aboTohTTPbEf2hMs\r\nmU3S9zf6HAp2t+Ho5ejL7dqHpk5G73JJn6yG7MAfbbM7ecyw93EHDzy+0+pP\r\nRCNiIgLiE0ZsL+TB7wvN8FHkHUwjghZJgmRp4oIIv46leEx5KkqVMAi/TfiL\r\nycHsxGiN2Q6YXo+EAv725Y1mgpH6kwhbsY1IpFvAfisFhx4zjCX7Oqdm8C9Z\r\nOh/yU4JOUHE7lUrO/PHAPNNMKK9TwNaBN9Ems4NmqJBjoohFMvkbgAvaHNrC\r\nPrQf59NMpXusNHLXwpsdIo+NVWfYCL7q8To=\r\n=V55K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"91ec6d58a663810cfc3964f5008dc8292d93389b","scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"16.14.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.4_1660992408062_0.24759075322881263","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"gpupathtracer.js","version":"0.0.5","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.5","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9526e03007a2e0177602e6ece3d7eb62b2bdf422","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.5.tgz","fileCount":174,"integrity":"sha512-3ZXCsDUcBaJNpuJbkAeOggTNXF+37PRP53tp6qBkZBk0joCjvV2RTAPOxnmZEOGvsNSKh3pqnHZXZ8eIFUM88g==","signatures":[{"sig":"MEYCIQDb/iScc72xjV+ojQaYHaZebBX9z4l6i/CcH43k59KfwgIhAKaMSBhCk5Xco39sJJp++I02kNaPrl1kwLkD1yaY/6uD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":756727,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfFJ+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRfg//UjYmdlo8s0fZ+GllIeKbyYJeB7kGAuFb/eFTG4RY4fXfxSCJ\r\nuBTHTEMT03j5JCHI34VaFoH1/AjQHxxHix2Sg4J4pvn6pD7sEllnBDeP9plz\r\nMH+oDkpcwkYFplLTH6VAVFSDMhBJ3MPoUgg8HrtUZcM/bgFcBFu3zJBT15sX\r\nzvBxI4eRkpb5sSU5ZkoBI62d89GOThq9ccJJyAKbuaFRTjrFKIOQ1s5eBjPW\r\nKy5wx74zEhAHF6QlPR6M1xoRgMOA4TKYmYjqUc3ZhbiKThhod4FJahKlk4Gr\r\nkaS6FY4Jb8+AmFepHKM+GdkEAvviwtK0t6+2PtLy7F9zflxuamd6r2AXX45z\r\ndDbxW0pSBIJcKzlIJuUP1lxLpuwBq8EI3ERUwsXrVX2pSNTI1jyjC3MdxPz7\r\nIL4x5NdcKc1DfPcXgdRWOrIYJdpJ7q7OevO0mBm96RhmlpcgZ9P07ehJ3TCE\r\n52/tLCSp1cvpJqT83WayCTugHlFsaWcUAl9i3GCOs+xaz8qCmNOztNOQsHB1\r\nE7Uzu0hhFKdeKTDg+tM2avXFqpV2Rju5TOd4PdN/PhG1YYNHcCkAf8fR8Ozv\r\nFaMob31Sadq+kW9z/Deq0neGuO2pJplr7IPg6i0fAYjYrx+rpEM+urHnSx6E\r\nOsiQ73RiGY56/kG6HhY5hZyo+zy6d/kTDSc=\r\n=WbNN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"412e4194e37979b81c092bae859924b1e18c9a34","scripts":{"dev":"vite","build":"tsc && vite build","watch":"vite build -w","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"16.14.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.5_1669091965912_0.7617245167615494","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"gpupathtracer.js","version":"0.0.6","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.6","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"692e13ab0f4dfbccb6a9db66f734036a5711e39e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.6.tgz","fileCount":176,"integrity":"sha512-Nt0LEQrVVG94SNxq8cIwxtWBbCOoV4ccvCNR2fvpsrB7T1a/a3Pkq4nMtgn92qD66SAoWnaxeCsRQ4Z0P67XkA==","signatures":[{"sig":"MEQCIDrQYK0QR1rOU+Plgb3g0X2FNGGKT9CC651hWUtUAzfbAiAfpHvQOybshonEAHz/dm5dYdbf+yZ/Xp0BqMqZPYF3ag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":770641,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3lXbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1Kw/+IYPal1KekWn3uoPoTUgCET1LbEWFYlPUdobrFHQMQYhGVIU/\r\nxTnRtfjpIzEbItT/8QTT9Z37mFdGuLspcGMtA7ZUJu0U7qNBx7oAqf/Nw+4W\r\nhn5dPZ1szurGxoS53fri/F0JX0SgbYwlq/EC4UvOwHioiLX7Mmx41mcC1h5G\r\n89BEXk/t+zqPDdr/2UcVMT1yHFIIAU1z8GliZh1wx/VWlH2knnyZnG3BmDYu\r\nc17AKVwfCFvpqJ/yPGZeBoExvKt7TZMhZzoYnBAquvJa31LTYZrMblI2Olj5\r\ndGXIUtW4lT6puW52og62YqUYh70uXjMqjFEmnef3ar1XIgGFPgF97gCd70TB\r\nfvBWyeutC0HZ7c7UkUJ+rh4njp2OjkSAzodUbohze/qpSc7OSgVhNZ9lJHci\r\nx3rU3rVxbyowKRYZs2wgvJZy7nAHGVnMJdsvMAQVdh2VLJiGDz0Cso2K4WgM\r\nBoOtnKIsKSbYWRGPi18DLImn/h9YRGaOccVKysSxWUhbSY9F4yeizGcoPVNA\r\niM1gnGAhfjK/zFxpDVsh2RLa2G1k4Ju6eJMLMBpVlsJWE5YRZgtebYUsBBw+\r\nAJwsXpzXIUlDK7PU9UL0xzO+d3lVTiJ4oiz2NZ/zmJcIzIV2mc1PJTBkLHr7\r\nfXhp/La2iL3/CyKCezKkTvtrWwTPj8yCpPk=\r\n=Q2HR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"3f9b88c8a2d8b220530af0f93560a3d9ce91551a","scripts":{"dev":"vite","build":"tsc && vite build","watch":"vite build -w","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.6_1675515355523_0.14656442325048924","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"gpupathtracer.js","version":"0.0.7","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.7","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"b053e0aaf381482a384eb99e0539801eb44ff8c0","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.7.tgz","fileCount":177,"integrity":"sha512-MqmolkEdsbUElYL/gCwS+8J1S5mOlCwMUepz2nH6uK+pwAxVZXRqykjZQfEIUbJt9Es+v9IqT1FAbwRJGWvdbA==","signatures":[{"sig":"MEUCIQCE+65eTtlz5f6fORNqRj5xTp7aaPKTrsvwkFF9Kv8ygwIgD+NIZ4DaP6ar/DqZpUb1nVpDcQ4R841sB0ZtY6RiNLc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":775987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj57jLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo8rA/7BOUtUObjeXFXteoVa9Qn/nxiGuSNwEZfp0MNtIrEaoFKVfOO\r\ngVZH8xBGJU/TGdJiziaEJ1GQI7rT+gEu4iZM+pQLA1WUvpK+GyaiIjX2csRo\r\nq6sV3cvFgmrE2Th/1vnkO1oyT3SHT8/Zo2iXSNWjXC+ocrIvPoPDdaY2/swM\r\n5UZIU1hcwVgn7KTzuYRIZY2w+GU5rkYY1seE6itdIx6gEk+5IAyVIHJQpR85\r\nt5oLJ4AORHZ4PheHt265gmcTa6NpCUYo6I/td4tESvmopyY2YymTLVGD9jcn\r\nyfy6JFu8R6kXzDwCo7hczPoctmzHF8TD7aP7QuUTvf2nPp6IrYoJQLnOM4hI\r\nVMery9/ssVSxdna69C14YgTZ1j2/Dg+ycqhIp051joOyWLN46gnFAih+2E4z\r\nMhcU8hfyZOhlldt/8PQpgYEwcEUVLnk0e2MJOgzntetZntlgi8t2u90DRR17\r\nh528UcPlHwHikm9JvNHFP7rzfz5ld3nSyyOhoHMIzH2+HUYk3LwNq1a7z1Pt\r\nqpYwfa7tZ5YsLgVmKvtlOOrxbw45W9uJlDRt34EmdxyJAYJVF5/tzzSEt4JC\r\n9DDTQbPGNSIcBwXK+CyyIMxIxZCmeQb7MYbU6JSX9TW3HqtnvllYlJ8elOcf\r\ndEuy8YRAUVS2fmqPygIgEI+DyFBLZga7/Bc=\r\n=Hzfj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"ad330a9b391a63059fbe5b4d93da7f6283bea18a","scripts":{"dev":"vite","build":"tsc && vite build","watch":"vite build -w","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"gl-matrix":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^2.9.12","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.3.0","vite-plugin-glsl":"^0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.7_1676130507261_0.21399000737565488","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"gpupathtracer.js","version":"0.0.8","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.8","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"982e4b91be84ff0ed64c558d6deb64b232107e82","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.8.tgz","fileCount":173,"integrity":"sha512-4U2dBl31OIdp6UR4SwhVoSIYcCYLKJPi58Ru1n5SmsZ1DQ4BYLtUnVZSgefte1WHbvlysewclGtU1DKOjFwo7A==","signatures":[{"sig":"MEQCIBma2LBqmKAScIRrsJBuOmNRnigE5XeGc89t7U9rScYtAiBECGRwfXT5YmVqPDxD3VI9s7UnjNXUe6vwUHnGxeFfAQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1013057,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9ILcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpH1g/+Oz/L7gKjcKEYjuVgMnbjwNw/j4vzHaA93G4ON3VZLKMp4eqn\r\nAFIpLeqag/ArmleKmkbWuTjmGkmeQdHTVJkvJ++MdmlNC08IjG6Sev4XlpdY\r\nA00rAvq/gqKK/PtQwnkx0xsuYFEyWC/rtpbnAvoB/iymS5Mwi7p+QVsFwMwo\r\ngAsdRQycu6+IGhcBxNlkUwnLsnRgUKl2kvFfMwnK/bynQ+23C3KI2o02BA4k\r\nEtgnId24cqSGZ6UQYeDP5XlfQttxxjoqLtsG+wPrfBOekkm2NwGkUJR9mIqR\r\nVbKcPGnD/HWtuXDKybcYxjTysy8rjJ/EwdT9d0nSUfjqo5IPBJuiH41CXebk\r\nrYXMGi1tO1+OQBjtqdutx+QizZ0jCb8aPMi0qDkG/1ubeuvmfiNgml97171O\r\nVjk1vyWrDRSCUnLEQ2t+M7i67PfuKEopqVRWJYfoFJtjkOucq/vWpVXwnaY1\r\nk4lM0/CrcM13lQd7ifevune3WaE7FHxF1Lk3xkRkmiz+mnJEV0xjhdWRQU8g\r\nvVMF2O6TeXBDtz+GonQgylaN0UMtYahJz8U/02hW2pEUUOwYPJkYYxsZFB8e\r\nZsTBAGZKy0wMYiLjlSdiLHsKbu5zx44BxXbFNYHbY19AxtVYcBbxdGf6hU3o\r\nodhYnwSMdZDMTavampCJWp1ZL2IobfOShbM=\r\n=6IJv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"9365799b4f481b5dfa9b3cf150a3bc2106b6b487","scripts":{"dev":"vite","build":"tsc && vite build","watch":"vite build -w","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.11"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.7.3"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.8_1676968667818_0.22730254005417416","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"gpupathtracer.js","version":"0.0.9","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.9","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"548fa8a8dff99e357c2b77f175d005e7dcc2752e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.9.tgz","fileCount":174,"integrity":"sha512-MmXzvBe8qkNCiYZx8CdXRCl1PurS3jipoCpsYNjhl8bcGiPkzopEOBCeKTdXusbV3Ko7i4Luwg7JSvOUWXbn1g==","signatures":[{"sig":"MEUCIQCqSWQmIIfz5RubSez14e33Ag8itvisgRZu5ImpldRD8AIgDtplGeTPuybyDF/gdNc/tyry1yRxA8B5j0yCFizmUtE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1017610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9Mc5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrD3w/9G/mPNvck7PBQCJjLvFC8UA6vxEgkaYqfPoipsr7d96+HGWI2\r\n8L7SayrBoAECj8eZzmIy2bum01tI6JbTgqB8C99TWOrSWUvU4vEAB+WyzsuC\r\nt7Oi8NZ93TJHv573ualH+rwcoK1wrN4UQLYZo9GSmjw4xjMYeV0wMojyi8n7\r\nNUEaEepLcpCNP7LGMTIWBY39DRe7zdeWKFgKnJZsEwzSQGZEKa96c8xpGJew\r\n5J4a/Cyp0fJe6Ixr5w16P2JLXyRrK5MrHl8mmN+ux+Q5TCkqY9tENNc/bH7R\r\niJKaaptouQOUqQmieEcmA0Nkb6Rn/zQjj/9Z9aRqXIiXLuR5kB6LY4ZLesih\r\nT3FJgz6OYVGYP3KGe4CMf5pP6bibYbp971eYCYQfSJbiuDQLQsM+cqTs8iO0\r\nfwXdCFL/r2U8rRJhqmKHrZfiGYnxiEDUOETechxFlRyDaRpR44inNtVNiwtF\r\nNTzo5ZFAUws3c5NiYljLME/VN8sU3rE975xOLymPaWH7Tq4lXgwDQh+hiw4O\r\n2DLKBdyq0MIWuL1wJqBSqafsK4QFaVQoX+BUxach/oACmroEyU0L3wKESdeY\r\nJep6EBW7cWZZ3xjVmJIH8WI6slPgFKqWShBUf7Why/BUBqox3BuyJeTY7WZf\r\nJywKUW0TJ6IuatXQ66kxSSNU3pGt+jxxYY0=\r\n=XKLx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/gpupathtracer.es.js","types":"types/main.d.ts","gitHead":"43e3e432acb8610037e117b5b80291a85055ea2f","scripts":{"dev":"vite","build":"tsc && vite build","watch":"vite build -w","preview":"vite preview","prepublishOnly":"npm run build"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.11"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.7.3","@types/three":"^0.141.0","vite-plugin-dts":"^1.7.3"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.9_1676986169098_0.6500545770348967","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"gpupathtracer.js","version":"0.0.10","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.10","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"50e605de071838929ebc23dcf5daf957b2e84106","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.10.tgz","fileCount":297,"integrity":"sha512-oJToS3GIUku18qmbg0SSzN7vUDf7cACVhML4aLMSJlec1NYPLAMrVy5wXY6uJiak1gkHD/FHdwuAUBAJDo/i2w==","signatures":[{"sig":"MEQCIBRfjoS4rh1/roZlE/wuRSBD3jgfWbL2IXB1YVpNzA0NAiA6NdcB31DydJahM6NO3BKXzwcsCPs4opPiIBKgzRi4NA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1394553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9bnKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpxNA/8CR4F1XxXCLrGKhieqc9ioZRL9LvgaJ9/Rt0TzBrg3TviB4hs\r\nYrz9gPAOp2ZK++9ccaAJxTKtIAf+GzfjP463w5DCf9ZHN11WJQ9w768jd5fD\r\n+lzl6g0HAzlvfRWhw7r/E07K6c2LjaaJpTj8Cd9zSJSvKdSdp7Unuf9vQpt2\r\n6aiVbVQEGtPl2NvMScCl1gKf1b7f/pRyKBZ5K44Cih/TJbOTYikoidlVI80V\r\nUTEaHit38ToqadXMmmVSJ7A+Q7aZhFSEN0Lqm6TNTYlr6ksWba20fXIx+H0p\r\ne8K8ra/gJA6JZRZfjHEaeu7yvaJlwOQauzrhAIf42hJtanRNSbHOYrBstNd0\r\nQh2rT+XIw452iaY4ALhNEylIBJc44Fci20OEig5zyvtOnn7gjqV6P7Yf0mcy\r\ng3R1sdfDuw/WmWvuqf+K7tTb2BqG5F3iLnZZ5CDodwedI5iTezXuLLa3tL9d\r\nqvi5YPkp0UD0vYCNZkeb2h3TXBTXEkvyEdS9jB9JC/HRnlttnehodZCj20bD\r\nF8ex3kg6wxGfhbie5UDogy1Xke4WHaVvXY8R/lD2kVaHX+sbn+SfCSSiLf/u\r\njH7tigUbEKHHsDpVgzXh7gLirV1zMquRLWemz+QcKuQtLyO78670rKM09yTi\r\nfwv9ETPG15FQg6jpYlnkM3UBfFuziLLyHgk=\r\n=thsE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"c354f241bd129a9b8a07b4758819cf4b423b288c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.12"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.10_1677048265714_0.5581760570544732","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"gpupathtracer.js","version":"0.0.11","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.11","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"fa1e59cdb942ea891b0cdaf498cb65d978ca7d02","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.11.tgz","fileCount":297,"integrity":"sha512-ih25hTf4CpV1kM5PTek5RUVjs6VNy/6zi/3eUPhNnwXnusl9DPW6pP9oCDBCJ55aD8XlhWfyQPCS8lHTVxmtAw==","signatures":[{"sig":"MEQCIDzx8Cd5JnLx3WndLtHvhQ7TgXXrQeLga+4C2hxgFMg1AiAlsjLM3tuLHFDmwhOQrvCJooPWiMugW2JQkHZ4D8iUdw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1394357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9cxpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqyRw//SXYqeAnX8GeggDuFNd1Ua5Mk0e2q0xQy+tztDZ0AHLqcHY9c\r\n4sXZT37zoqHZ9csNWcs3UCzIJDm4FscZUSdQ4yaxmyX6KES4RNVMLh4kXxgL\r\nQYBZYm9+m7LsBgfQoukN8vFmsmSmDlkrloEQKnVV5dyYg9g1YeBwnRCCJV+S\r\nXDd2qmONKbtQiboL1YP+e8+gCao3F8kyMbv05Mw1e5jh7yTRgfhZArIxJBgO\r\ndrL+FmulhSIaB665e3kKqhhfs07GpH3B+AnizOdHV8iBiFcm8qgFeLnTIQ0Z\r\noNtJVj1Yi0ccQiRyEPnilyJXhIR5cFNzi4BZTNVsdKaN9h+ucgve2joQvmN/\r\njh8dJy1h8ykozUCM37dUkhWFGTaZzUjlVAEPYvoeLsdImA0rrJzeK3graoOV\r\n7z2OOp/++tuqbYuSoQ/ne7mDORLj5I7tWF0/915fEYsnjeTPJuxirj9Beq3+\r\n1X/LkaR3aKFs0pGjARqlZz1xLFz+5QcX55a5JlZGAbuLEKL2QUO+9wFw69VB\r\n4lElAV+RGkvZqqlqYLZ/Dbw5I/cvuPmZw3PumM0H9DeBAXh4aSyfsgi8BLZT\r\n3QKV+l/g9pGp3MvKzLUsq+RjimA9gbgV7P0XkuYMCvib7V6JwzPBChvV4OdE\r\nKdZQZ2XQfYbZJpYkiM0Hzjd8dLqCfN/bgpo=\r\n=+FmO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"f2fbec07b5c2211e2da5fb41f67e42d74e604577","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.13"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.11_1677053033024_0.5756724598453891","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"gpupathtracer.js","version":"0.0.12","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.12","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"708dc71547f061bc8e4bbff69d8a3aa100cfc50a","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.12.tgz","fileCount":297,"integrity":"sha512-JvfHdzY+284PsOawZrsk9noDnoo9kmdaEoH4eo1ji8ruFKHHXqxAWrl4u1BaFlVPGi99+FM+0k/1tv3FghdVaA==","signatures":[{"sig":"MEQCIA8ngMNzpiQG8Yj3fnSzD3M4uc6mdoBa+lsFhlLYAeLXAiARUiCnk+uSo/RpbOuD6trJFPCNeyszImIkWqF1stFtyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1394357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9c/YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUhg/+M7SZSGkksIY6ncK/oZ7WLUNFyh5wNX2tDaaH0HhXma/1st4f\r\nQaR/kWMjQZ94yGpJPEOFPe9O6K0ymbDNqfP8HRVyndEwBAD2NMiJtjYtTCcr\r\nxABs98BfmyGLdU7mFQVDMm+NjObXhIZOklP8ZvCYqnBoiHOIcUl2ACG4yJE+\r\n7+v4RQdDiSSt8w54SqkPYVSqD72fuUeLGp54mIANAbCWtTxR3kC0XzZ1+GTe\r\nMJlyL0kJJQ+Qqdgglfp9sBfisxZfGmIfaReo9CNn2sOiu3Io8F3pvq8scc42\r\n0OAmYNYNirkRq4MVjRIXn8AAklKhDHQWeUjF5wvMQbjhlT0ThzsMg3gZVtpC\r\nIuikXqYCBv4yipeg1D2e34l65qCW4mj7wn1DSnsx0H/OFei3G/j5oK3yz2F+\r\n1fswHhbGDhOy8RLfhf1W0oICDh0+Vh8NJjb7ubX4BQxv7R9j/MOON86h4zyn\r\njpINIm5Qq2AmT0GJsiALCpfrWnwla9N+EzTvjQJI1mLA+0nCE0mBViucpRqe\r\ndwmpZtgES3Ap8EcvQi+NNPUuhIRgA8oczyWKDEkqtojZvECIRuYcJ8GMarMA\r\nU0LQlf13nsGVY3VI1VDIrzv/fm3uAJPSNuj2kjYGUWCMIExm7DS0cmuNwZ1Q\r\nhbAjQKvO6OHMt2b/Zd24r018nqZLoPBc4KI=\r\n=8XP+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"0b9e6092c69a3559c3b19c4229e0a9ac4c3753eb","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.14"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.12_1677053911967_0.4018827615010525","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"gpupathtracer.js","version":"0.0.13","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.13","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"54ef092b84de6fe07858c2c25b6ed4fa0ba5e469","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.13.tgz","fileCount":297,"integrity":"sha512-TsS/GkMUUhOOB4TC4G54XFKFtk6e9q1jazIz+RQ7YqMy4tHrXyNsdDcTNwWN5d0TaEE/VstCYNzwzzCG0E/5CA==","signatures":[{"sig":"MEQCIEHOA8cErgCboDDLCqGc+DSyA1iuYGHTyg2t2LYQHWhjAiApdeDQu+OQ/y13nQcvAZO/4MXKAoRRFDzIMrmpGU5c3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1854330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj90k3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3DBAAjFI2GTjA1JVpu33clMYmWwjqsijpvDIw5BsxRmMH7mhZbK6b\r\nX5YV5QgCqv6EpSyeKGj3yc/oGNPYAK/806OP01WpDd77x0fIashjW7hs4vVH\r\n7CyUtUt6sbC5Bp9xgukSeprwV9uzbmJWkFQlLmIAylUOOBr/o/i09YnJlp2z\r\nt4isIGtUIqMxZxRFM49txwMOpRZHupKpXQhMtDY+gRsxzAZwDEB4+AFbZMwn\r\nU7Ok2arshLGtnErTZbYdXMDJRHaY1XHNitPE9vZpI4IJp2jHU+EAuSfIDyIm\r\n/lQSxp4lMNuLJEf90l96QXKNRJXlHuDqhJGC7guxEPO2wCe5WhU7vYzd2VDy\r\n+wlExGO1nW2R7hBQdh7qjbcteXZKTN08cBgFwrYqSQsHswHFZS1U4NNHXARJ\r\nDLmINA2KH5owySFnytIBjAEQ1NQcP645uwwh5ExB2DW4kIKJL1T9/YJercUn\r\n6zRUbcw5fbFytd/uDIsDO3oqDO/N4M2J6/9UU+GeoWCQIuQJCLrNMIMAeBhP\r\nKgap6u6GSuf/gOdRP4dR7HAX2oHhSN2tJxJKY7FtKqkFu5HRwu+monJLievY\r\nxPS7WquBRyRTuYgnwdPiet7kcPnFmQhYFpMq3eUipYKf+PE0EhK1kgbcbl76\r\nYrQKGgn23qnWaB2jJIZ4QDZmSkVe46KGPIU=\r\n=IZL1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"9f7d47a021aac8462d591bb588c7e2c26a8bd899","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.15"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.13_1677150519652_0.8665766383537472","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"gpupathtracer.js","version":"0.0.14","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.14","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"965622da954a0fd716b5fa6e2d7b6b90bde256e5","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.14.tgz","fileCount":297,"integrity":"sha512-E6xC4lmmgR56VSKzsw3UXDLTmanRA9ReIiusWXqfdxGefEr8Vf2oxr/C5rR6cTPmdrZtcpCEOKvDdsT3ueQ9cw==","signatures":[{"sig":"MEUCIQDWtuwG1AZzrC05sbbg4pnSRSwXhF8RCAyOGFM2NnlaHgIgKZKUGiMKbJlw14FnhSOFyaTnjVLO7g7B3DN9pcd8q8o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1401798,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj90tHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqH2Q/+MKR4HlGYUh75BXwqk1SqYb5b7yhFfqgHFgeD7LXKYyC2Qj80\r\nclajhjrMD41Wq9f7RAmEqABmWoVDE77N5ewaUJDbvMvHCkXGnQHginVfcnrN\r\n6wmTm6i/cJmgOWgeLFgMjVwgPpuMd+9ZbUZTtEukSiddmSc9f33EDQm4PvB1\r\nKnjWozzI48esAj8kILoHEUNX7TuC8uOeLxcbeUjfhGCzQPLuey7fpDgZma/z\r\nt5bcqB9hkwVSIgR/uu5dlCplbcNmODIFg4bG3AZKUGbRs4FdA+ZfzD/kJ5wQ\r\nq8rGyFVMwjAhuteSK0QkJMsLMqV+a5whKy3SUloSzrV8UCdIb1hK2ntXo81a\r\nYoAV6TndR0yZfgFVsB1Vv7fvTwHf5+ay3N1+MPU0kEpsfcarjDK7o3qPH2E7\r\nIBRA+r2/BPbADQIBklYTgPenGv3KWBcR7tB7YSvzMxfKRV+NJPSnia8XPfgo\r\nM9IVxgBc+4h1kIApdPlzy1ZiJGLbxC2aEZxk4fuh4Qi4xdguV0wv4XSpX/tk\r\n010LtbPpsKnahh8atrxdJe5ECAmnBqod2FiwvZQEIiPg0dmmsFFvmeAENzyv\r\nQsfq5Y0TiACJ6Jvp3pZdJqsJPgi1AXD3c7SWsZC1jS9yDW3BUL5rUagekFIZ\r\n3UC1EDyGsTepFBPyvkOnvgs1NWfhbBjOTz4=\r\n=BTcL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"0fee2f7681b25af21b772cccb6092d4d8e3cb3aa","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.15"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.14_1677151047416_0.3066993989683229","host":"s3://npm-registry-packages"}},"0.0.15":{"name":"gpupathtracer.js","version":"0.0.15","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.15","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"dad6dd430c22b2a6474f3e22fae0cd57a663ab39","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.15.tgz","fileCount":297,"integrity":"sha512-OOISAfXANE1ob09wSCXuXNp2NufFjyfe/91Yr8gpGe2+VmwA2du1+ejRLL8uHxIusFyeo3Qot368aKXh1VvxPA==","signatures":[{"sig":"MEYCIQC2wBGF4u2QvDgj+OCgJ++4/LCYMn6YcuQkJNTHcae19QIhAJnQeC+B411oMBFjqW2XW5wiPjq+pU6yfMJJ431Qcl8v","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1402385,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+NBSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp5wQ//RcH/25lqypD/D7djOWbjQ7HHmPDAMSp8VhAT9cfz6N+di8vF\r\n7ppRdOTYeE5q1NuDN/4OLOlzJb18KxcDwDxQAhFxijB2cTA0+RHC3VbJrbx6\r\nkU1CnMszbcSRRnyBT9S903i/uJspVOvI3XUmPGw5Ln6thD3F3ZMuiEyPAVKk\r\nOBUWPCapQ7x3mQj6Rmu5vTjvDwSedHnVBTOXLCH75N/jRgunAoRDsglGIqK9\r\n49SiqhyBtP4cONtyh9d3YSRlo20izvzYlOeesxCt6ynQVQwrWTiYHiPxiqDX\r\nD/qc0Z768GHhiTnVnRzMi/iPD5lvAIlVLCwVtN8vdzXIUDmKk9dZWKrJR6iQ\r\n3fAjQPaf4QxDubl+rzKG1IcfqQr67Q2CDSjRffyY/QO83YRcVzF/l/k537lr\r\nAZ28IgBaKVdhhRizu+XIydtlTtWmI6PH6u/do23I2IBV9AZUZdHlWPvL8WdR\r\n9PgcoaKltAcIG8czP9oKyLNWjNEfoGh6wqS2RZMBjOa73Xj6IGhhXDta3igf\r\nmCSkPriqZn9wpirKsNa7c4dRg32T3myrj9Vp9gx7LQITMKYGuhQYkqo7XX1b\r\nPc1EMHBgoKKLyZLFO6WARWRNRkb5ZWibeFBpzaxsHEInW5rKeOd+zlILgdF6\r\nT08Pcsbjo+EGoO7vjTjNWKXHhT++kajCWE0=\r\n=OhDi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"06867420f1381c04c1d572fa0cc4eba64195d521","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.16"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.15_1677250642587_0.9733195869096218","host":"s3://npm-registry-packages"}},"0.0.16":{"name":"gpupathtracer.js","version":"0.0.16","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.16","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"0b59971ea395ebe9d64ab09dc38d4290f844dd48","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.16.tgz","fileCount":297,"integrity":"sha512-Kaov/lEeFgf6zpDO0fTcOfThY1ibQ7eyw76d3vSONpPpNdIV1WGMvJOWGrs+HbiaA8/9C6ynFSj7N/hE7UIHJg==","signatures":[{"sig":"MEQCIEvW/6mCB8uPd/ujVHyo+Ds71Gg+FWNZmpw2+NbaUHDOAiBKMaf9IXiiEnG4bJd/cAcqAQDIJ3XhGMtZ0iVWcTOjHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1417010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkC+UzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+cQ//UhAg5Ht0sqyUdeDgGBJe1SxAqI0wpVs8Odw+hzntlvKZm20t\r\n1UV7PoJCC/gbKOwS+MP4uLdPWJxciyK7a9pJMWSgExBvwA4uEgSLN1yDqcvW\r\nVlM8LOQtc9DLx+jKLCQYi9uIjqv14Kd888Cl+upkg40/vGj1ImytQiMFvBqD\r\nzMyojZdbft618nTcCfcQTpDhVn25gwUhQk/jpNUc3Q1nK4rmWftDAthp7dRb\r\nSVIAwcgYJebCGLtbl4BeLqU9pgC8+MqMGf7qhoQzN8yzQFn4gAI3KxtZ27UI\r\nMYzVv1DbsM/k/Mj/A68lD0YbDh9Qu1yjeg/Y7PIl3Dn5Q6nsNvMGL2zoCivG\r\nlQ8pvY3MoqlwXbPCnAOyypkwTBK7q9fJRF8qKOAUKzyr3Jx+JpUBYbqq4X07\r\n1ILXfbsdqyE+4vvMBZ370XCohO4+1RLmNmhClmoDVxGCc/lkOxP9bJ0UIZUx\r\nQtx6CXDEiHWsfIBDqORG6XIVWiR9n/dCyC/cod8Y1i5mnmsv6qqUSbQnUZjG\r\nirCUiEkFGBjw5YVttZ23L7mO+W8xRiCfnF1uOW4ZOtaoMOz6K+R4J+WD6Tti\r\ntaEZBDr9QaS1vHyQ0A0AHkmWZN5VgxKaikeHHzGtaHstI+iIqExBPIr1DZAM\r\n/JTynZNPIY4Gr+HDddanvChttmenNA/p7j8=\r\n=mE+o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"c2c88e7c3fc249a2d9c842ac6306ba3afd419323","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.19"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.16_1678501171680_0.5698718889625745","host":"s3://npm-registry-packages"}},"0.0.17":{"name":"gpupathtracer.js","version":"0.0.17","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.17","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"15cc49f806b38eec6eb86a12fb66b83824628626","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.17.tgz","fileCount":297,"integrity":"sha512-GaPJMfTVGceGWLLzgj1K3EsfQdJ6G7BbNDQ+nbVrTlBatqbVzw/HfjViQad0STXloUBQBCZjxCkeJRg7I5lUeg==","signatures":[{"sig":"MEUCIQCB6FWeOkdc4o5+RcJWNfx+IZtCyxtvUY73aX4M3xFWIQIgeP/L6ubVD0IwxDpFeAa1u9SOMZUHMADJMHsJU2yzxQw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1401801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkEdhbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmorFw//bIT7FAwnH85/gpuuOFlyg3HFNEm94Vb7jP+hno1VBJIM5hbw\r\nklqQvQkfQLdY14fdl9KvnXLk7t+pE/3khtxiO0/l+47pEetGoGwlmy99Aqe9\r\nwgGdhRGGdhXhqZfVntx6TcB0zN38p8PB4jBnLGJZ1759NchjjZO9vJqAHHQ/\r\nmb9kzprnHiFw0LfUNzrRJe5kZToO6bvu0hHJvihpgMa9e72lb5JAChbYs8vq\r\nBWxG1JK7q5XuV3yx2ee6UnW+opiRmL24G4oZp98wzvdknQNikrquvyDwRWLX\r\nN+xaEnwEJwmJQ5gIbXftr0SsHdlqoSENZWWbuJKcCCIeOCo2La5HK5LcA1Ih\r\nopKRbvXQT/QZrBZ7mSDQw/i1PCpR3h1Iwy/SWhJgagi2HsTBcDswbaii1ujk\r\nY9m0s68elwY2/ma6etKirStwCCAIh9tkC13q7l94OcsHd6sniXMS/1IlvNiX\r\nw7cQ02fQu26rllRlk025nuX4jpHUPo+Ne6IctulFCf7FcuzuenGppZdLfpJw\r\nRKrhc0uEsAF32lFlNZ/Wp63ry3MOs6pZKyZXRSCrrHH1eqU7gAf7oKvv5gZD\r\n2rk1ucgxfqXIi4h92HmkSMYygzrhJUKe7pX6Y/xRCEXe+YI80QuNjHk801fr\r\nRQIL9uo05pKfrjtepLmDFlCchAVy+U8g7L8=\r\n=4YPa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"78dc7063ae3e5bc4fbf538626594933e0b770b42","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"6.14.15","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"14.18.2","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.20"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.17_1678891099405_0.5327695468457725","host":"s3://npm-registry-packages"}},"0.0.18":{"name":"gpupathtracer.js","version":"0.0.18","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.18","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"45089d0daa2f0107ebdc79143ba10093128a7200","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.18.tgz","fileCount":300,"integrity":"sha512-nGRiffZ2wWPeo4Y9XOzwOjElSI/UROpsrKG8ZRK/rgIfXJraKIFJwTXytVMu5EeblIAFhpLOhkl13BGwWGqfTQ==","signatures":[{"sig":"MEUCIHl8ZmEbk33Ua72SpKisO2GZ35ohW+eh0Ln8XFkLPt5wAiEAtT78O/odFjMJVrj3sA/1cZ2qSSjzvmMtUg0WZhP1Kpw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1436197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkR54JACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoeIQ/9FAFHY8s+l4lvOx42d4M1qAZKcajBVwz2801nRSg14lMfqe4v\r\naxHFFdMPjavDdPUJoPY7U3GuyOVKsCofNkSvYLIGiPZP4wlr+U6BpsnlZ6JO\r\nHoynYWrb3LA55orfMyiQie2X2z1Cl6dHdA3m9XHTSQDdmD6hwlyIg/zVsunE\r\nmnXv+RGvA1d55EckqzK7lK6pSsTnE7GB8D7VZj6BiuMR39jcIiCrON9UFT+d\r\n69xLUX9sekFbMfEkkEgiwqNdNJJsVCI8tr0rej0YiyGgWjDvM2+TsJ60GEWR\r\nk+4TVjOvdOYN8QSooWx3G2VcKY+l4ComgVkvvK9bY7IMpnAnsN4Hl/R6dXxh\r\nvcetGHYTpZcb1Wh26VAb7pr+bd+wGuNnMawbTol810Jj2x80YMfP2hkDc2m1\r\nYMVFo2q7ax86qt6IaTPtASP9yhXOfVUMlYRGpCntpdsGVVNmSID8OWed78o6\r\nEk0DfFe6Rj1cokCk8/9e3ADIHMC8EBSFNwLn+n6T2KmNoY+3b6eAuasKHN+e\r\nsLCLGqmvjKBeFnTh01sc8bvYmV4end/SW+PNZ6InI2j4JKrSqQ8LGH5/f2qK\r\nzv4i6WZTChXC5TgfDXaUl0Va5RoJqIWXJGUhHvqA7GuTNrVqalhBr+YNTcm2\r\n/V9wj956IMuaLizDhJO6PrBg/+FL9BZhkQ8=\r\n=YZPv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"6a81212388fa80a8adbe8de007883f60020144ad","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.23"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.18_1682415113187_0.3023432040080287","host":"s3://npm-registry-packages"}},"0.0.19":{"name":"gpupathtracer.js","version":"0.0.19","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.19","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"5b6291bc9825dd1b6fc73e204995f735dbb7d530","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.19.tgz","fileCount":300,"integrity":"sha512-fWSBSnu8yEZtGvlwnZxqf/bMRtOJS6mI4YkIYWfghmhtZKTpsewHMLYILmj6s3YI7pub23Ejrl2soD2/AqS/9w==","signatures":[{"sig":"MEQCIE1WYLnuyLbEKq/nZcRblPRHJwIDWcXeNRPQA53ZX0/yAiAagM4gvKs/ng/7OsnGScTSrf033XlLAoOHYvyHSMqzIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1442376},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"8d1c7073e20de49ab11f40515a764993c66c6e36","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.24"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.19_1683809458101_0.1991600802819542","host":"s3://npm-registry-packages"}},"0.0.20":{"name":"gpupathtracer.js","version":"0.0.20","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.20","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"4973e742a77c90e3ff9eb909a3617409d15467a4","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.20.tgz","fileCount":299,"integrity":"sha512-yTlyavizzS9J65MsyleT4GOAN4HXiF/oXN/GjyFR69M0lFMV75OwGd30BXNKwOEXC2QX2ClBL6d2u4g+3ZLQyw==","signatures":[{"sig":"MEUCIFEr37M9GpS4EvNIjRXCVOAwOr/qJZFI7ldtt5SKXX2UAiEAzzfhpMeTr9svFQb9AN+Q2H3kyEL/UPYOaj3+iswZjYA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1439190},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"160b86073f03981e2855ecea521da2026f02abbc","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.25"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.20_1686298764628_0.8704730759879811","host":"s3://npm-registry-packages"}},"0.0.21":{"name":"gpupathtracer.js","version":"0.0.21","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.21","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"7bae4d9dc01d9373966d91ecc508634cc405f084","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.21.tgz","fileCount":311,"integrity":"sha512-YKvKawNW+/gWui2sgU7GeTUgmgp2auNDWkaS0PTI8LZa3gn1wWUCNpD3+QYXIPiA4+cHAOINsP3rVumwwrKZpQ==","signatures":[{"sig":"MEYCIQCPvJE+P/Q7sAgeYbAQa9Da3fGlYZiBxSv2T6cYVcNWjAIhAIa9o6aRa6RFf7DBJZUPDRRj8dkIVc6tBKH5tZgWPBAV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1480258},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"f86d3f0a9d0b65762396256aa4eec005eb7e46b1","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.26"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.21_1689060890129_0.6396679958853444","host":"s3://npm-registry-packages"}},"0.0.22":{"name":"gpupathtracer.js","version":"0.0.22","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.22","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"b642e6db5e952ded3c1419d3b68a6c1b8a9364d3","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.22.tgz","fileCount":311,"integrity":"sha512-qga2owW2CBMwJ+LtBrCLFciINVXJfnwOFTMX+R+9iYXV6BSFNsEEeXZMgrVrBJ39yoYyStMAocnoi4ADLp9QGA==","signatures":[{"sig":"MEYCIQCMkbE8mdVPMlaqcD9Ve1jCy3CZcfRgFVwx1H3zmN5STQIhAPa0UT8OmzWw9Aa5D0e32TaAE5N82LOb5Xl1hdRgm6G3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1480995},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"92c9bdc11b28c29bce268f4b3ecf5fb487faf24e","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.26"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.22_1689403078426_0.9185842130901838","host":"s3://npm-registry-packages"}},"0.0.23":{"name":"gpupathtracer.js","version":"0.0.23","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.23","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"460b36173c8c7e32e03b3b569de596fd2a04e945","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.23.tgz","fileCount":311,"integrity":"sha512-upTM9Z4i/YLSCpFhflhWuyaJFLZg2ExEtRCelD14pbOnPJsdRa/xMFVukWeQ2cmUH9awLE9M8wn2pzdP86WEXw==","signatures":[{"sig":"MEQCIAp4G4jUuHgKJe9yyc1wq5QaVBz73nYx6sMmdnqyOZXMAiB3bBue0TSbdj06ekctiYrirpStligtY8qrDfjEHC1wxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1492435},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"28de1cdcb9f1e2e60ffefd26c909f743d65c7be2","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.27"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.23_1689866967136_0.6134506219466449","host":"s3://npm-registry-packages"}},"0.0.24":{"name":"gpupathtracer.js","version":"0.0.24","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.24","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9cb70f0cf3631aec0ce3bdcf60a3a94664f1ae4c","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.24.tgz","fileCount":314,"integrity":"sha512-S4c7fiLX89L7lV4jetNr0pFnRmJuCB97df1LHp/NxjxtiLXQb0KZlZNjeQV51H20mTEaUxG9CgjOjiPNiNV5YA==","signatures":[{"sig":"MEUCIQCU21Y/EQIXBfcba1/2yhvGEHWCHkGTTM7xB2I/29hxDQIge9Y1b8ghlxOfnwE3C7sKBSvCrEhLWt75WYDcMQorj74=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1496133},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"4de4668a43d9c7ce5b18428a9f8ce1183153bd32","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.28"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.24_1690551417527_0.6510217560263387","host":"s3://npm-registry-packages"}},"0.0.25":{"name":"gpupathtracer.js","version":"0.0.25","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.25","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"2da33977197c12e4a269c56063dcfa292a89c96a","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.25.tgz","fileCount":314,"integrity":"sha512-4BP/9L9EF7Tm8iIXiQi4LORMoQ5S55FFtpahAlDTZy5GThg54M2AVSo39fee1FN0DjSNYhdzRrLTW1TE2zYBqA==","signatures":[{"sig":"MEUCIGTseotsLejihKWtQpSTkX35yYA0FqbuRPNpnjcKVgY3AiEA5uA7lwtjqYF2xnFFnP4/R3lx5ApV08zV/xVhl2E4PG4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1496365},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"f540f93626f0a3a7bd200b179a9867ea644cad91","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.28"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.25_1690555302947_0.26642459179134703","host":"s3://npm-registry-packages"}},"0.0.26":{"name":"gpupathtracer.js","version":"0.0.26","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.26","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"b4ba97c3a3c9fb5684ad10489ac9b537b8a888a8","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.26.tgz","fileCount":314,"integrity":"sha512-9/xSnB+cbGl4erTrhNGZI6GaE38Nip8TXucL4752ajoJp/XYXGLyf/EM28is7pGaDZgYySEojqOjaBafvfyz3w==","signatures":[{"sig":"MEQCIEGOfAQQGFnvXsOb2VTyfi7N/QOsN8Fan63i/s2WrP7PAiAm53YTGCs9V6V2c4On0qq5x/m9152cJZ1RYn86k8CNtQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1504833},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"08cc1a7b54c481556ce8d356ea4cd9b8c66c8f36","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.29"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.26_1690644925869_0.9601826377220597","host":"s3://npm-registry-packages"}},"0.0.27":{"name":"gpupathtracer.js","version":"0.0.27","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.27","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"a57d8d2c68067c4271a72325a3499f4b2b0f4087","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.27.tgz","fileCount":323,"integrity":"sha512-SHR/n29K4CfAkBXZhXmIMegXFNyiiOHogjI5UfNxy25N8mCuuj0A+w/ua0h3CSgbX1CFRLyNiKe1EdAsN/mPmw==","signatures":[{"sig":"MEQCIBlMxNeywEtcoeJRw03kJqJZIG2QzgkzF0pviiKyAe4MAiAmyv+f8PDGbWdXdluURVjpmhVPCAIfjVimiXV1QDoJnQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1538194},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"0d2f97ef9434ff43c3318d0e52147c182188304e","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.30"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.27_1691483017372_0.25143233702020673","host":"s3://npm-registry-packages"}},"0.0.28":{"name":"gpupathtracer.js","version":"0.0.28","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.28","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"28a62529626900c305be2c463037aab3811acd5e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.28.tgz","fileCount":323,"integrity":"sha512-xgt/zO/UH/eBZN6WCOjGz+EHKHPnft+0q2flDI9vVrWk8KiNUba2hKmV+Zq6wc+fz1sUqLW4cH4Ff0lB3GLXiw==","signatures":[{"sig":"MEUCIQC/IKXerjQ7quuQJQOgv7OVfN0q+Miwy/QngyP7K5sJQAIgA1HYN9Du7v7OIG6eHDD6zhcnhad1bVoEllB4gDUTBT8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1543860},"main":"lib/main.js","types":"lib/main.d.ts","gitHead":"831bbb65dbdeb741800994396aab7aabdf2e7c55","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.30"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.28_1692081620321_0.977594749069943","host":"s3://npm-registry-packages"}},"0.0.29":{"name":"gpupathtracer.js","version":"0.0.29","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.29","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"323e806bfac8cdb159b3acf5515b9f615ed240b1","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.29.tgz","fileCount":308,"integrity":"sha512-qCMJNshPSCQvI3qXIHKYT4fZQJKuTe3xlC9eV+ev6p5vgFduAjVmTEmhbTU29UwqjoK0yAiOt/ZjcZzFf7lEiQ==","signatures":[{"sig":"MEQCIBX/Fg2oYPxwGktSZP3MDhLOO7qcJF10LkkIJJlkYYSxAiA1r8yUu5A0CPzZp9MkDuQaflm7F//6YDQi+A3MNKCLlA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1491057},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"c8ecbeb3336468069f358589a54c1f492c7ce1c3","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.32"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.29_1692443859017_0.8896694266186997","host":"s3://npm-registry-packages"}},"0.0.30":{"name":"gpupathtracer.js","version":"0.0.30","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.30","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"d8a5dfc61468d288382e53ce6ca72a06396224b7","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.30.tgz","fileCount":308,"integrity":"sha512-kncgajjT4lHCtDPI+ikEcMfYeLdyA5b+WyrZD+D3yT1uvolnXglm3noMzS6C2P9Qub+d3fjxaY6lk53X4b8hdw==","signatures":[{"sig":"MEYCIQDHZWoAF/SjRH4W7/GzU/O7IZVeKxQJ52ThR2QaHH1xNQIhAJOpvc6uINE8Fss4tu6sp/CS9QiTJc6m+6Bix+G0UkfC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1496141},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"0e94f2f7884d482ff1097678bc2e0e1a6221a11c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.32"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.30_1694506453176_0.9301689557123698","host":"s3://npm-registry-packages"}},"0.0.31":{"name":"gpupathtracer.js","version":"0.0.31","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.31","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"59cb1ca8c9ed457acae7c50dad0f52d537b5b06d","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.31.tgz","fileCount":320,"integrity":"sha512-WHqjcj94esoYPCKMrT+a25nE7eAnkvY61iZf/T+c5efjpJxfMLN0zb3NV1OiHjCryzt20JYruYrFMUVR6dKpJw==","signatures":[{"sig":"MEUCIDu+2TkXzMcUSbA1tWkjH1Y5Atq2YxkyDDryB3HcYGnuAiEAjLjTUcIa/Xxn2a/c4ZyOxZeMAMGqhb43J7jgIRd7ubY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1575193},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"5f1837dc5a811adbedc9cb90be30e13a2bcea86a","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.33"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.31_1697122259485_0.545221840313824","host":"s3://npm-registry-packages"}},"0.0.32":{"name":"gpupathtracer.js","version":"0.0.32","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.32","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"dd4a4acc22734a4e09e6e0213b767b064adee480","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.32.tgz","fileCount":320,"integrity":"sha512-qYTVji+JKjyb6CQbkCRqfRvSqHEqYQTehagNfSCFkn6QENOyhT7N6voiCzHre3jNhLfENXbRM4Jfw0QQvf2wGg==","signatures":[{"sig":"MEYCIQDPAHlWOExtA7Qtm8d8G7MKhyQ1gw6gzGV/gwrtcZVffgIhAJLQWioZbG8HvFH3WnnOqaujiXkvkAj/wCidt5kpqK5F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1575237},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"be1ee2c4e9061a2d2df0b2ac08edee93198fb6d9","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.33"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.32_1697124742520_0.25964987822756114","host":"s3://npm-registry-packages"}},"0.0.33":{"name":"gpupathtracer.js","version":"0.0.33","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.33","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"7f4047a5543adf2e1dd02b401713fa7e3c082b15","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.33.tgz","fileCount":320,"integrity":"sha512-dyyHeeEAE4RidJmm6a3bJfWvMt2/8tGR3Z8pcCh7j197nyVKwWsrZzyiBA+4YDl/TmP4FsLjJXcBuBvUWG0uBg==","signatures":[{"sig":"MEQCIDY2Hh69pYpjxLw82kGI+QKOVQcyFXgpyDl3igPZAC0wAiB3quWFORFgwekZTrVB1pYXgacSmxL6ufrUvvS15tnrgg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1575491},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"a83010c046f74c183c6ba63233f75290fcba48e6","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.33"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.33_1699510615531_0.9291411990582688","host":"s3://npm-registry-packages"}},"0.0.34":{"name":"gpupathtracer.js","version":"0.0.34","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.34","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"ae141738bcbe69626949650649080f73351a3c36","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.34.tgz","fileCount":319,"integrity":"sha512-rSAjPlyp/wZn4QSwUuC3713s08FoCewuunowXPW0aY8a0sDdk4tqMQIER16cRVuhmmoKBRrPzCK4ERYU2SE1ow==","signatures":[{"sig":"MEYCIQCuMVDYIG6sSkhSUqKT/sq0cic0af4IxluP9hA7XZ5aqAIhALbCvV4Bh5McpoKOLLohBQBYdYh0agrrTSRIufWti/iW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1569244},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"6640b14e0eafed1bd23f747cc6662eb70977ed8c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.33"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.34_1699792261020_0.5543299171178879","host":"s3://npm-registry-packages"}},"0.0.35":{"name":"gpupathtracer.js","version":"0.0.35","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.35","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"1a99ea37b1063cb20ee337d97b19404e2cd1452c","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.35.tgz","fileCount":319,"integrity":"sha512-c9Xn/uYT2KxDpkxBjFjuBdTsXOTp2Mpt/zAnorZmZ735ttV+ahtwJSuLYXQ+WJUYcrg1VzQKcQthBzXIRk46Mg==","signatures":[{"sig":"MEUCIQCZv+dRr5scwYsLBcvyDCRzGFth759Rs6IUwci/ZZjY2gIgaLfQId2oMcGc+/U+uNXVas0SC9lWTuAg9HwTfmcazWw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1580423},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"e5b6f25148fa2d8a5953404f3050075019a7f276","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.34"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.35_1700192570898_0.4769533062564415","host":"s3://npm-registry-packages"}},"0.0.36":{"name":"gpupathtracer.js","version":"0.0.36","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.36","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"46623270b5e14a674c71bf5e9296731375fafc0f","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.36.tgz","fileCount":319,"integrity":"sha512-ZGtF2hJlrwtqAWx2w+V+MNRPp5u9WQ+p/T7CgJGug6S6oZEda/Fd0BJXM8w2uH0+THtuBJOXfTlD96lEnHInPg==","signatures":[{"sig":"MEUCIQDxLSMhKz+Z7LO5NYNRf488A9APGM6qe11yjjZGfmSwTgIgE4xeaAnXbaNMuAtAAHe9fyDM9kMj1Q40fILlrY3yfPg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1580250},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"8df3cede909788bde44f65747d530c937ece9ce7","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.36_1700475840623_0.18185946325200786","host":"s3://npm-registry-packages"}},"0.0.37":{"name":"gpupathtracer.js","version":"0.0.37","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.37","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9f78ed34bdd429e200688b8946bad084c02346f2","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.37.tgz","fileCount":319,"integrity":"sha512-42YwD3phlwXhhsrcZFcYHfs6JP6Ny9TcjE/EtUJLn7VMpvlVcafBS6oVOg8wrpFBw2BKfBSuoc/TTr7Y62WI3g==","signatures":[{"sig":"MEQCID1eVICHERJMCdRm+pWRmxD3RwJfAnBIaP09ZZetnKG9AiA+2qNDFvPhCG992CXJ3iQ4FotnOPG8MiadnuBsf6atIw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1579115},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"67420f5b0d5b1f25ab78fadcc48de4eae0b864a2","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.37_1701592372693_0.3029552885830138","host":"s3://npm-registry-packages"}},"0.0.38":{"name":"gpupathtracer.js","version":"0.0.38","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.38","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"48bb4f441dcf13d2a7cf5ca897dc474d137fb8e9","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.38.tgz","fileCount":319,"integrity":"sha512-7CVeuupoTOPMGVZU1QhG8SPS1E2fZVyPQgeIpz9Fe/aBAe3Ahh6hrFE5Pv65kjulAZ8wGt8+Du8mIAOrirz6Vw==","signatures":[{"sig":"MEUCIGY81SPpGVWMTW/BEzvxfGdhs1SbIRBxkjJ4zAx0RWiUAiEArUULxXbil5x5LpBGQ8MiydsVbStoSIuzUh1iQdUFaqM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1577979},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"e41d157180e232ed6f9fb025b5c3a6ebfe78c945","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.38_1701654590054_0.6573854868578162","host":"s3://npm-registry-packages"}},"0.0.39":{"name":"gpupathtracer.js","version":"0.0.39","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.39","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9315290125b9660b728b51d2c447dc15e93cdb6f","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.39.tgz","fileCount":319,"integrity":"sha512-+VK+dzZvl7c0Chm7GOiikjH2t1tdQOTFzs+JF6IqOqxLdzqoKEGXAXItzwdH2wPin22vR4dMJfCuq07fJc7C3g==","signatures":[{"sig":"MEUCIQCXcpMh6D2PvRdGaGG0VB9H/T6d480GtZL67i8bEOlsWQIgFkY+r8Ayfy2rutD9zBdwvsA6gtTsVNoA+P21TN+UtlU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1578325},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"140a7e50d756ff909991ec3fa28bd70f544a97b0","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.39_1701773942124_0.635334035655102","host":"s3://npm-registry-packages"}},"0.0.40":{"name":"gpupathtracer.js","version":"0.0.40","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.40","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"61b99092a878e5b88642bea7f604fcdb6ee58b0b","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.40.tgz","fileCount":319,"integrity":"sha512-Dv6y4E/I8NeHTZ53ZaQAafsSbT7G9EhRIm3Fkn6kXaIP13agHFjKRZQvyedSiR3YaPnwOICZ+T2bsHCsAxzz4Q==","signatures":[{"sig":"MEUCICnBA5kXcvtmZfhAOBXo7zkmRJTu1688weObuNtYXPatAiEAov7+WCfVvaBGNJjDGRziwi82Az18l9X3Zk6BoZ88Mi0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1579353},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"4ae206e13e639808b8a76fd52cd573da66096b9b","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.40_1702393625737_0.11431512968877522","host":"s3://npm-registry-packages"}},"0.0.41":{"name":"gpupathtracer.js","version":"0.0.41","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.41","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"7451a0b0c386a5521a3ec205390ed1784e8b2e76","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.41.tgz","fileCount":319,"integrity":"sha512-nufPhIC4xfcQ209nm/4GQkTzu0PmD3AAQwUQvbxFCBpNmQvtKwNYAtLQBE/cWn4QmdfYCUNgEvuLevoj4jiNtg==","signatures":[{"sig":"MEQCIFpIWyDjRWqjm8L5jt498pj0/BPA2xQlYn9o+fgOv4/2AiBEARVCUbJpNR75qs8Dzxomve3AxZRwkIE+Lhs+bM1A+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1584830},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"adc1df156169492db870d0df5b518d904344ee0e","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.41_1702401776697_0.09584270015181406","host":"s3://npm-registry-packages"}},"0.0.42":{"name":"gpupathtracer.js","version":"0.0.42","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.42","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"7d57b497825d0a6cfdab542c4cefb8a0a8ca15e9","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.42.tgz","fileCount":319,"integrity":"sha512-F8KGzF49ZlxV9naPTcnG7yW+FBJAOBNYcW2lta42wPmds7fm/a2qY09VYWNxTrHHHfHvArYjMWNN14JyXkZNEw==","signatures":[{"sig":"MEYCIQD7HiOB9zE6oKs2joKz0MxTfBTTXIL2q+K4ejRaW9UoMgIhANO/K6OC8JlCzJVli/pgbUOufvxoLOsJjQluAi3+NetE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1584981},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"c5cdb938bba66cef3bc5179897cabfdbd65a45fd","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.42_1702685328747_0.22743265210809427","host":"s3://npm-registry-packages"}},"0.0.43":{"name":"gpupathtracer.js","version":"0.0.43","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.43","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"edb852d466a34db86cd0f9e9c39ea121fcff0de6","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.43.tgz","fileCount":349,"integrity":"sha512-YiUk3+y8MDtUBgEyM1bGYM/miKj7oASya6NC8fa3BqpHfX13PBN/ncUW6MRkwW7uK5d34mRIsA/UXQwajDNSiQ==","signatures":[{"sig":"MEYCIQD8yBFVeMMNO2+xUx0Hc2HVDDcVJ5wUxcn9PH5SLCUNWAIhANlsG7m1o9zKy5j1gZ2Stum9ayu652A+35YvV3Qx07e4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626624},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"1a1da92d1ecc4aa3912f71ff2d4b3d70bec891a2","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.43_1703121025120_0.6710064812915955","host":"s3://npm-registry-packages"}},"0.0.44":{"name":"gpupathtracer.js","version":"0.0.44","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.44","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"f74cc21ac7552ac49f1b996075207019b88050c0","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.44.tgz","fileCount":349,"integrity":"sha512-TPEdFy2gLyr5CvxZG82KNSIDHl83GUkVQWQN/VKKLK4KsRsPSDo6RSL/R3S080KZz/NXW4SzpAz40qTmlps0/Q==","signatures":[{"sig":"MEUCICOwf7oLP3bjKJfGmtBx5wAi5sIV78agwRQTKfnV1aw2AiEA6UuRlXDapJvsPQmfV+4jTZof4tBv8ClJMdSbgQFN6Ow=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627120},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"71b8eb8d7e5398f8a9726f92af67a0b205930f71","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.44_1703141256738_0.7160357014883538","host":"s3://npm-registry-packages"}},"0.0.45":{"name":"gpupathtracer.js","version":"0.0.45","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.45","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"08f7f5912205da599f03a3f7cf89b1478b7c635f","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.45.tgz","fileCount":349,"integrity":"sha512-bbypabZQjY9R5IzgvvdipAltwdtE4avoyKO0SevIKlJNhjjZsh3bIGynzOMe+osfiTlPIalDOeKS4A3pYcNuzg==","signatures":[{"sig":"MEUCIFW6CNTkc7y6IOcQ6PVUkANLLxRQgqNx8IwYu8GLyw2TAiEAu7Vg+IpYkVmCbRqmQBMX4R7fmy+QLGzT6jyyoo8UlkA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1627927},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"e164619287dd6b3babeba18bb6a4121ae181af4d","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.45_1704253739996_0.5167383275354798","host":"s3://npm-registry-packages"}},"0.0.46":{"name":"gpupathtracer.js","version":"0.0.46","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.46","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"15385141ca99c82fe3d22c018b7fef6ddd4406bc","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.46.tgz","fileCount":471,"integrity":"sha512-RLOFloUz4BdhX7ceDI1js+cRsIexJSS0le5ROOAgGwuvKpijjNj7KqPii2ZqEE75JzyYFycD5QZZdU4rfHa+Hw==","signatures":[{"sig":"MEUCIQCbO60aWe9Lqy5k1OZAiCKblGkQiL+dVz4o4+fO3gq4qAIgaiBu5406neb/7l24sA2eKRVWNNr604m7VDdCId8mRQA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2223365},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"b9fb9cdbd3748c8a81323592fe2ae1c7c48f7dfe","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.46_1705589595665_0.976084185810731","host":"s3://npm-registry-packages"}},"0.0.47":{"name":"gpupathtracer.js","version":"0.0.47","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.47","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"73a89320b28f71147c94bc50fd1a589c9c643a47","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.47.tgz","fileCount":470,"integrity":"sha512-GE4yys0q3a1XpUUBHfWnZ2QQb8Bq0SMjSjrDjHiOjbeHm8Fs8DZCC3ofmcOPz+CUYakAju/OTbiTB1d+39F+HA==","signatures":[{"sig":"MEYCIQCNAlzZ8SjkwqvDx9gvwLeHIAf2NqoDBmcwkQwEzjlwWAIhAIpbW27yo1/II3hUGq0gkiRVTJfTp+qgx6CXSrUPguck","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2244020},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"ee48553ac5205e32f0e840539eb3e9f05dc64c45","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.47_1705898543903_0.544197571611847","host":"s3://npm-registry-packages"}},"0.0.48":{"name":"gpupathtracer.js","version":"0.0.48","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.48","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"251f686170062b2ea4990022b5d9b5ecff6e2e58","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.48.tgz","fileCount":470,"integrity":"sha512-Ny+SUnuUxXT4um2WLrRr1mev1tn54DPK9DjQE4sD4Ju2/AlktOXrnLbMDC5RZxmOQ+nOQrus55JSRvH94hMcTA==","signatures":[{"sig":"MEUCIC4/DyA9btPuQUKjPzbMLamGrk5pAhl3zdfAD00rLvD5AiEA8iqJ3Aa1qz2AysFOLkAMQ/Ucj69ueRzZscpG2jVabn0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2244029},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"da7c8af9c91da4415d88d73073ad97e3a4f391bb","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.48_1705923634938_0.17771556822823964","host":"s3://npm-registry-packages"}},"0.0.49":{"name":"gpupathtracer.js","version":"0.0.49","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.49","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"b8a1d2692a411b104ffd0f8dcbc6dbcb6fa38231","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.49.tgz","fileCount":470,"integrity":"sha512-a13/SNgHbEHRfmcnaBRZ4bTypbEhiYUGq9QCvj8tFDTgTxxR6vDc9c/Q3t1kxRQbJpOEqY3wQMi/Yj6pJWt+cA==","signatures":[{"sig":"MEQCIAKr+Q70V6VNdAZM1zzIX1vm7wKtt4+zSsAHGfcHVJNvAiBfbd63NfkCIl0mij9E0xuhd0WsYO4aVzQxXCWyooZVfA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2244134},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"f36d401b8c6671af6906dd74f237c86a5743ca63","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.49_1705929348071_0.830339117118541","host":"s3://npm-registry-packages"}},"0.0.50":{"name":"gpupathtracer.js","version":"0.0.50","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.50","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"d3c82322f3b15a5886b94ea631bd5c27291417a6","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.50.tgz","fileCount":470,"integrity":"sha512-zD6JXBqW+nmToGct63RjHPxqArR79vEnTSQgS2gX2pPvQWS3aMb47vWlf7Q0uPDw8Z3/c2eT5sWmfrMs/yI4ag==","signatures":[{"sig":"MEUCICxDpqbd6LmJOEdVXhwpYbYny/TEPUdl2cY+rGHFMBsaAiEA42FmrlcR3KO9MsEI3f8PIm0xUBniBNt3yfiQA2ZkTic=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2244238},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"9d08db2fe9e543e5eca713d485994310082fa78d","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.50_1705977775798_0.8252872887598484","host":"s3://npm-registry-packages"}},"0.0.51":{"name":"gpupathtracer.js","version":"0.0.51","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.51","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"dd72923b3f8fc0eeffbdbd0d40effb682cb4312e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.51.tgz","fileCount":470,"integrity":"sha512-eYqxds0PnRWNgVAdXUz73Tg6wjJLewjPh5TVi+goEr92LEGDYFNVHihlaGZg8w7H4anp9kP+UL/xIwbTneCCwg==","signatures":[{"sig":"MEUCIQDrhQDyNGK0d1tz+onwkFXuZ685YEuIIKrEbM01mfxpXwIgGjjQOOIz/xiH7dWyRikv6WISdbbAK0am/1pPpU3QHF8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2243139},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"59a4b78b677e191ce280958112859ac08c149db9","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.51_1706062107057_0.9576332729426966","host":"s3://npm-registry-packages"}},"0.0.52":{"name":"gpupathtracer.js","version":"0.0.52","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.52","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"f58a5fa8c01970359ee2ee2a975603542765bc6b","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.52.tgz","fileCount":470,"integrity":"sha512-KQax74x5lkD5qq60Yd15majiI4afarPJIDF+JRxEtrMkvSCz8XQwZsN6MFzF+63HUI3Dke61dJTzBffdS/7TqQ==","signatures":[{"sig":"MEUCIGbbiegMCZU72gLnYdXEizQm+fwOroQXafqtiz8zbLoSAiEArxoARrbXdidu8/koP6T8Bgibuf+2wMR7q6mUxQ3B1LQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2275525},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"0b2d3f811ae3f13b60ed1db776f4c7fec847a8b5","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.52_1710671343949_0.5256934096067136","host":"s3://npm-registry-packages"}},"0.0.53":{"name":"gpupathtracer.js","version":"0.0.53","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.53","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"67f39e4eb2b295b41f337ef76d9bfa88e2cf6c86","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.53.tgz","fileCount":470,"integrity":"sha512-vcVcfgcteprPyYM9FUdUI9WLMMnyj5thPW/Q+ixMsYirIdVt7Ba+hrvJ6OAtaLhgCZwvIS2nw0B8aewdSwHV9w==","signatures":[{"sig":"MEYCIQC+5cMu2a5qvPbmzKuP3SKAMDfRRfue5cL5ZgCpt0QFbQIhAPyXgxBOs9SD3VblC52OXKgYDUVu6ctKqG3w9S2NMn3P","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2276548},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"92b63a4909fb86508d557e5b00ecc414a820b0e7","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.53_1710679282290_0.3042086667138404","host":"s3://npm-registry-packages"}},"0.0.54":{"name":"gpupathtracer.js","version":"0.0.54","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.54","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"99eeb38d9b492c1e8fff4a5aa790896d9dbf2c32","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.54.tgz","fileCount":470,"integrity":"sha512-j3boq6x4i8gPD4JO5nNxnOONdE1typP+Pk9nCV0Wi7lIulN6xgTgs5VoCq8V3Pf+hEqAWSi3YBGabZaS9MHL5Q==","signatures":[{"sig":"MEYCIQD2PmKe/5JRCa2xRAZRtk5o4F7uXdCu06rY+LMPzKBn2AIhAMFFUHfxpDzGv3gzuPbW44Urn0vEcCc9S2EwYBmRMrEv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2277838},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"46f45fd0c02657511d78d3ad594b76ab8d6b1392","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.54_1710734512973_0.6245080753626762","host":"s3://npm-registry-packages"}},"0.0.55":{"name":"gpupathtracer.js","version":"0.0.55","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.55","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"3abebc24ffd33772665e4fddc61859451321f0ca","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.55.tgz","fileCount":469,"integrity":"sha512-arGXBMokZ62m+//dicKuc8JcquNEbtUy/Kk66AreDdcyHaob442RZeqGlnI0icMcROFwPh1IF3kls/HMefcncw==","signatures":[{"sig":"MEQCIFf7/VLML3vwLGdcXrSMuG6KpkSyu+t0bNLH6Sh/ZlMkAiAk/8QW5XkcWQbi6dz2wTO5x3BQSfFfucgqOvzDuDBbBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2301894},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"20d2d22e66d0723f62c2cc5c6db7dbe7fdd81b67","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.55_1711162039495_0.2932161128183748","host":"s3://npm-registry-packages"}},"0.0.56":{"name":"gpupathtracer.js","version":"0.0.56","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.56","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"840cd30f69fa896210152d73bc6e1842dcd0b852","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.56.tgz","fileCount":469,"integrity":"sha512-2ccfoh3j4a8xcLdMdIvivvOouEVFzPwsenHRhe1v1PZMQWWK/Dc9/Zo+Wvq3/wMZQawIuu+HfxV++2MQ7RXm4Q==","signatures":[{"sig":"MEUCIQDnsNiwGcOO6LdDIPlDl7PuQYVQL7VNN2+P8WFSNGxJTQIgG9YN0YghNW8yvUnNmeLeUVZo57HTT0tq6FlMtHyqozI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2304714},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"f77a71ce5a9577f69527cf72e63638441cce1130","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.36"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.56_1711892454624_0.2184327825545569","host":"s3://npm-registry-packages"}},"0.0.57":{"name":"gpupathtracer.js","version":"0.0.57","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.57","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"19079ae1bea865ff79402c659e91e1b84320f482","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.57.tgz","fileCount":469,"integrity":"sha512-wh87by7EF4DFY68RX+bTaL2MebJeIczc89gwXocUTKZKIBEbPEtnJKJN7e0RpoTLecYC6hYb0Q8gOIM1Js3u+A==","signatures":[{"sig":"MEYCIQCjhnlbhho7tox4yFW4Wq6KK0GrBaetPQlLPj10fc/uTwIhAMnT0hmghXEHOjkVd1le0oAI2GX6RLpLD0Ly2u+zT3Fq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2337356},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"efd9dfab4e31d38a0a5f9f291b03bb73ba778e00","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.41"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.57_1713954507838_0.4336861885803649","host":"s3://npm-registry-packages"}},"0.0.58":{"name":"gpupathtracer.js","version":"0.0.58","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.58","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"77350e6d6010f6f8eda9212400b429b1158552b5","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.58.tgz","fileCount":469,"integrity":"sha512-VANOgqp6tEkY+Bv31c3RU0sRK/2GOc4huTqwCK77p5DbNzz+PZyso27Y1S7zL4M7O8zas2Pfjsfvdu4aAzk6sw==","signatures":[{"sig":"MEUCIQC5tMudDhxWYhtsKEJCawlRPJxiEs6qwWk/SvTyl9bFNQIgAT5RH1PihBUTjxgSfXlcscWAp3+7qEDLwrwZrTQzyqk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2337112},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"e0cabff45582878574f6d4a91b5da087bd095614","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.41"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.58_1714223345625_0.9677556294700189","host":"s3://npm-registry-packages"}},"0.0.59":{"name":"gpupathtracer.js","version":"0.0.59","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.59","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"fb63d932d942a88d06947bd0fcd7e4d656fb0552","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.59.tgz","fileCount":469,"integrity":"sha512-AKIgIyBD71RSe9LiFpOozVI6cmQLorLh5nTzW9ve1cVrP2KmN2TlafaGHGw2kKGxzbr0wX7pHHUHEUioxm3T8g==","signatures":[{"sig":"MEUCIFbuaTvywkz/7S3I2vyM4kxp4hHsa2izIQaRXB4SKDDNAiEAkuWFx8WSibxhArAotXX+Da6vG8RfeJZLOuechGHLP5s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2348255},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"bf8b055c7ab51c73259a09f7742f068beafdc1ed","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.42"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.59_1715056504810_0.055698391199049624","host":"s3://npm-registry-packages"}},"0.0.60":{"name":"gpupathtracer.js","version":"0.0.60","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.60","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"bab8f557d4be653194df82a57bf949e0e6e969dc","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.60.tgz","fileCount":475,"integrity":"sha512-AgId5jIHKBJ+6A0jphD5h2usvF9H0LrHxxLIMSxLJ6VF7ndOBt5ofqE1L6EPKbX2Kue+qjkj38di6YphUFH/zw==","signatures":[{"sig":"MEUCIEPh+udzfAKRH8v2lfET4ds5I5KS/mRqIEjWof0Q8FYCAiEA9DaSVctVBqaswIpaIpSWAJuh0/ZIBej/7FDjOmyWlqs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2368290},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"db7cf7bdd3a44d83763a7d3798a942ea7a2e133b","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.42"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.60_1716112245378_0.7291113139272252","host":"s3://npm-registry-packages"}},"0.0.61":{"name":"gpupathtracer.js","version":"0.0.61","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.61","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"d230d8c7a480faa1ebaa2b92302de49b9471bd90","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.61.tgz","fileCount":476,"integrity":"sha512-f9dAKKs25Gl4jT7riGosEtxid5Is9tupU/IIViHRa06UEKT7Ljlj0bG2yRx43lLLA6o6o9wnj1tWVwMnndVQEA==","signatures":[{"sig":"MEUCIAQokjw8cREPAsy2a3ewoVVk4w7jCAr7JPN4rpkzxNL/AiEA5P93bHIgqekdg2eQUD0MX+SO9DgOIxKOf04LdbCqYi8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2434959},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"58913a2e19ce417b68660b5ca80fdb470c5aa21c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.61_1716426185664_0.27787010796392386","host":"s3://npm-registry-packages"}},"0.0.62":{"name":"gpupathtracer.js","version":"0.0.62","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.62","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"6fd43f7c172f8d5071675d2fb51ab3a7849e9d81","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.62.tgz","fileCount":476,"integrity":"sha512-N4gpVRTWJjjhTWyJB0QeToIfJEDnbEdMiCbkNv/6NLOeUUpGcDkK/7rHpeRO1evYa4sDm90hWdHbD2qRCM96dA==","signatures":[{"sig":"MEYCIQCOXGkDIBQ4KMFD6MpXmFm6TKqZpqEpHR/YL7P2H7ihhQIhAL+ew+JSlhzkW9G68LBFd1qR7kPbXawRHBRmgiKXyyGH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2439237},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"ddb3179e7eb9f9c9008fa71262586a1dd13e4e6f","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.62_1716446801063_0.1121404410471436","host":"s3://npm-registry-packages"}},"0.0.63":{"name":"gpupathtracer.js","version":"0.0.63","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.63","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"1b9bb30ab9f8a1a25417a5c5ee9547b07c3dca6e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.63.tgz","fileCount":476,"integrity":"sha512-6FzMsiGgQH6hUKJKgkiAO9FR1cU5WdvxkjOOcAX+Ht+28n9bavTMA1pErmPJ0gLw+QSbxL65I58WytE5jojVSA==","signatures":[{"sig":"MEYCIQD3/ISSUx8r5or4CTdSvTsDgTyi/fnqW5lCtqcHVkva3QIhALj99o50JJEnshwkABdre/x4tjTKDSNXneZvs6UXtapg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2453410},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"9e7c490e8f464ecb0c80b562a39741ce701916f1","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.63_1717336997749_0.9124758504546349","host":"s3://npm-registry-packages"}},"0.0.64":{"name":"gpupathtracer.js","version":"0.0.64","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.64","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"2bf809f35666bf10781c8c62481b8d7f6fd3372c","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.64.tgz","fileCount":476,"integrity":"sha512-nyKy8UDER0870o7GWcnj2SoUllymSYwjrZOj9NUae4f0nSyUpCQa6xj8W+cZbzx9uEgeL/bZVQzEt10RuDqTUw==","signatures":[{"sig":"MEUCIQDRY2xcLJKnErhBkzxm0yEWZBeT0qlj9ifbVYTxhio26QIgeWyZfIBxpUuBilHs7OloRnobgdHVv4FABzG6jE3Zx70=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2453698},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"b30e0be46cba368029ea57d4b721a74b52f77982","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.64_1717379989341_0.43438154687480823","host":"s3://npm-registry-packages"}},"0.0.65":{"name":"gpupathtracer.js","version":"0.0.65","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.65","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"cb6632910bda69525c78a5c82f2cda8a45f18444","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.65.tgz","fileCount":476,"integrity":"sha512-gDq0UpdyDWMS9z0pVjyRqKLEHsA/dcaKO1gie0Jrw5faaGpNd7xfNr7UaoCafUSJHSRXtWIB/bmhbj7LV11Eqw==","signatures":[{"sig":"MEQCIF2QcZb+kV3oY4T43jPzPWVPtk5uLMbhPpPMcWkI7WJTAiBA7Bf+FDzDGzlCvW7FyJ8lHfM5EQwuxZOhUOznU/QodA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2453698},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"b30e0be46cba368029ea57d4b721a74b52f77982","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.65_1717380102539_0.2653798124029769","host":"s3://npm-registry-packages"}},"0.0.66":{"name":"gpupathtracer.js","version":"0.0.66","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.66","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9869a94c60f9634c21a9a39000cde8f2c65dde98","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.66.tgz","fileCount":476,"integrity":"sha512-Ir8SHXUj+RFQ/IFZhJI8/3jWF+VInFabKte2cDckINb8DbmwdIiXmeqYIWgKGQeGkSQNnZaMv7bDSoVouY6nbw==","signatures":[{"sig":"MEYCIQDMx4gPIrc+b1m+W4NchuFuN9WFovs3AmO705kVOOHS+AIhAJgvRbej1UOFW7aUAkjLawV/TLPKUe4r8nYlYRU/UXqz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2455721},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"f9b5b9fc4250877c39a1f31328258307e3eece80","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.66_1717668013920_0.5106679634194433","host":"s3://npm-registry-packages"}},"0.0.67":{"name":"gpupathtracer.js","version":"0.0.67","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.67","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"18e7fda9e275dfe16156f0d0972778934f7ec4e3","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.67.tgz","fileCount":480,"integrity":"sha512-thEaHONbkgjiv8JJUh6EstDkpmuBluhs+sFQXsu4rR9thFluvWXgDV0fT0HJ6pD88E45wLJyQNUV+eY3zq/dkw==","signatures":[{"sig":"MEUCICvFTTaQtrLuxFgiEa06cp2+mvXr3hsp7P5NYdR1R5irAiEA4wLy7hjcOvl1EP1PckfplUxJXnsR6OXVAqKos0Y7FdU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2544989},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"8e21f449e947863e62aa42990a912cc15b1ad099","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.1.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.67_1718601771875_0.8294773503050599","host":"s3://npm-registry-packages"}},"0.0.68":{"name":"gpupathtracer.js","version":"0.0.68","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.68","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"d48bc05c213225fcfbfccfb26c127001e630f120","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.68.tgz","fileCount":480,"integrity":"sha512-ibc3XJpp61/OE6DWcyNDCdjtKM0I1ABd5FwHvWB6h5fWyLiGuwKjsppSIfDELxaoEV1VMq2AsPRvj8Hb1VfBNA==","signatures":[{"sig":"MEQCIAMzvJh82Q9NfnBp1sxPy41dOeOYuqLNYrOfgYDLBIj7AiBvnMvHp5PdJ/QXX/EkbK2W745L2N8lteREsdgrJAdpxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2551410},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"2a5d91cf31c4fca7d5d76f8ebb98b5784d10728a","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.1.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.68_1718707334519_0.0700208784263896","host":"s3://npm-registry-packages"}},"0.0.69":{"name":"gpupathtracer.js","version":"0.0.69","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.69","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"bf723096756350b638eb0074613a4efe8f065a7b","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.69.tgz","fileCount":480,"integrity":"sha512-VsPP35YWFeOR2l7TmxC9R8rsPQAC9lwCH+TqGRo7XX2ZH+oejP4PrqlUfCm0yDVbJOAkiZZ5cCbhVJQfE/bpQw==","signatures":[{"sig":"MEQCIHdOHLAL7J8niU36y1ObDc593UoJlSER4R7XKvRBZVdpAiACtL6K45CdBrCbRtaNk0NsTfpXgLTAhz1n0ZNnS4o+Ag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2551335},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"e9ed64de6bd103033f452da8117479fbe4d478ca","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.1.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.69_1718708552160_0.6055279268199749","host":"s3://npm-registry-packages"}},"0.0.70":{"name":"gpupathtracer.js","version":"0.0.70","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.70","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"08ef6841a400ac71acc322e0bd3fa7743d789bf5","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.70.tgz","fileCount":480,"integrity":"sha512-BUErrfXma5IdgJ8jc9IVhqoKt9nJ0HNZBPA/vmsFpcl8ChpcsYyf0mLy1LgDn4lWlZZENtgj2ZKYVy5hBfKe5A==","signatures":[{"sig":"MEUCIQDxaKzayQ5aNXsPaNAfdgEHAZQNd3OM5QlH1cXxYDzBtQIgAev89oswwp95xxBoCSKkQTjtn8cOMY/lx6BT0CMGWnw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2552234},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"958f5a52f9a306fe3184787c0304c40c398137f6","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.1.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.70_1718762782282_0.6923685986890908","host":"s3://npm-registry-packages"}},"0.0.71":{"name":"gpupathtracer.js","version":"0.0.71","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.71","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9d7d6c9afdaa42e5c23d0c5d668968717ad290af","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.71.tgz","fileCount":480,"integrity":"sha512-egKlMfySq0NjKx4RQAWrNt3NF+QlgRIMJJO9CCh6mjQ8/B4JegZEMsgqc4N05CUwAFgmbUTdSg78KTk3ArhkUQ==","signatures":[{"sig":"MEYCIQDc+trWjRnIrNvABhHSxQYL8SvhmNohLkjP7eBq0LJ74AIhAP+SzMviHMWqX+LK8yR3/loZXc4pHXTVqTEVpCRD76Ha","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2552714},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"bdcc6108af523d5a7b424fbc7e1b9abae924e0d6","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.1.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.71_1718766372884_0.007796412806688524","host":"s3://npm-registry-packages"}},"0.0.72":{"name":"gpupathtracer.js","version":"0.0.72","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.72","dist":{"shasum":"6655950b1058a30946808b0207065214b05ee345","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.72.tgz","fileCount":484,"integrity":"sha512-pz2oX8chWJL+LvRAi3t9uD/ahZOMTM6x5XVPDtcFx1m1lOV3aUJP0r5oTfXEqkz2VCKEYHwk1eaUI0iRu0a3YQ==","signatures":[{"sig":"MEYCIQCfsHNG3p7y/GBuAfResxZR79Dhtvh2YRBCMsGhVmsjugIhAKk/dvJZQ9T/z5GTphkiqgqbP7XoEZuBDAW3Rf9t93hO","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2644443},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"2d6cff75e8ed1d2a5922f9c34387093046d4da33","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.2.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.72_1719732026285_0.004661833004219629","host":"s3://npm-registry-packages"}},"0.0.73":{"name":"gpupathtracer.js","version":"0.0.73","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.73","dist":{"shasum":"4ce9e56ed84632b72a976627e68cc9329d9cf2e9","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.73.tgz","fileCount":484,"integrity":"sha512-wFXdlYQA3ewRn8Ac3/mjXNljk8Jrbra+/8fxeyx9qG8P398Ot/VptRhRQ35OG03TJ/pbdTtRPM0Qs+ZnRLUGkQ==","signatures":[{"sig":"MEUCIFSk285oq3rag3v42LIMDEDXOmMfWVZeK0Oifv6RoW7nAiEAh2p9KRi/0la2xb7X8Tp5UazRw4FDB5CU34oGh9w0XVI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2619976},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"f6b7798d0cb8a2082e3f9a8e43dff36d560fd3e2","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.1.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.73_1719765997459_0.9105152444004105","host":"s3://npm-registry-packages"}},"0.0.74":{"name":"gpupathtracer.js","version":"0.0.74","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.74","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"fccab718020124c93dcbfc1eb9ffb1c694262af9","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.74.tgz","fileCount":484,"integrity":"sha512-7ckNuTsJ7HI3DgSDX5r0pjuSpTzGMJfcYszfrV80v6m44C2hKUxYmdm/S7W/mmkrrZEKQHBZvXM6Mw4zXYxAMw==","signatures":[{"sig":"MEYCIQC39MEO1p0r0rhfsESL41aFb4XB7SurfcgUUWr2jJ44BQIhALVGXKSsL652Ax5HiyqyjL7UIDV8MniZZxSAoC7+wF//","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2613373},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"a72cef51548fea0792ed59b13dddc320c4f8d10c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.74_1722341690127_0.8377144917568713","host":"s3://npm-registry-packages"}},"0.0.75":{"name":"gpupathtracer.js","version":"0.0.75","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.75","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"52bd064dd546273d4753676340d6d0925f5df210","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.75.tgz","fileCount":535,"integrity":"sha512-k1XlmAgzXg4UnyrSLsYKYH/aqP5IJbY5N+1axVyYgCCAq8udnY4gspJFPIsmjBz1Tp/o9MExqNCj5w6s/wAEQw==","signatures":[{"sig":"MEYCIQDZaR8PaLzooGYgcwC3u0uFgNiE7a6IxfUg0aI29qX+owIhAImVLHYZSuGodrjPzJJIiURvIfsSLhoofrU/KAUaNr5F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2980600},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"07c407fe8e392fc39ac3ddc74f9b80abcc0c5950","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.75_1724770976828_0.3238899516206355","host":"s3://npm-registry-packages"}},"0.0.76":{"name":"gpupathtracer.js","version":"0.0.76","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.76","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"737c60e643e447b493b068f7816da5f06ea7f5e7","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.76.tgz","fileCount":535,"integrity":"sha512-KkX3kuctO7sYX1Wus72x5j0a0q/znCAf+84hnozQW83D4Ohi0GsoclUjAn8n+HqXLQ57dN+aWa5bw7l4/tZmtQ==","signatures":[{"sig":"MEUCIFpoW1g97dnCSBHFc5mw6WyVq/mtlp1bDFTuWiHPjfMBAiEA7YnZaxmI7hef8D/gs8IcrAfOwdIFrsIFd4A1Bs73g38=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2980781},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"afb36541948c87c0795e31dce2e746f360b73c8f","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.76_1724775525618_0.7462060912858433","host":"s3://npm-registry-packages"}},"0.0.77":{"name":"gpupathtracer.js","version":"0.0.77","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.77","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"db2418ce0ced7c5f74590d2f6cad56da70e65218","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.77.tgz","fileCount":539,"integrity":"sha512-ZfEGkcGYYTD6gWpQhmdPCF/chwx5SkuFbLHyZSw5CtNemYjXfa5mDvtKPDRO5ty3IpjbItr+bQvSIj15tA+18w==","signatures":[{"sig":"MEUCIQDaipyhJO+OzVw/3+iO2IJbxqw/WEucZFVjesHANY3eoQIgXYnT8Zm1i7ov2p2OCSXqLc75afAY7t3aYWYGJ3gDs7w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3053219},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"4acefd733e35b377e59940acc6a26540afe2779c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.77_1727523637196_0.5225585307344185","host":"s3://npm-registry-packages"}},"0.0.78":{"name":"gpupathtracer.js","version":"0.0.78","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.78","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"40d2d5d59e42cb45802ca9091e217ee205ed8442","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.78.tgz","fileCount":539,"integrity":"sha512-bxjaQ3jVkZf0DfUqO6YUXP2bk/2/x377Wg1kI9pIisM3xwOhQWp/w/s/YpgP7cpEvYcwxr3aIiWTFAsRRXVRKQ==","signatures":[{"sig":"MEYCIQDffRxL4YUQ+KBkp2f9jzCC5hslbzgEXBdFq/rNHqti5AIhAPmepndkVfSHoek+S/B3yaS0S3BbxZn5MufFkswtduzN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3053031},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"c7bc124749012c9db642aab15ceb8cd9a04cba9b","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.78_1728226340440_0.9843955430066396","host":"s3://npm-registry-packages"}},"0.0.79":{"name":"gpupathtracer.js","version":"0.0.79","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.79","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"c32858dc4b5e5cf79c71574f0e299e9e231dfec9","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.79.tgz","fileCount":539,"integrity":"sha512-txKUPz+Qg2ZUVKOwPmRFunHqCeDq1expJelNJEKXQ4ng0jj2HDW7j60r7oDVoj5+z7T8Yr2dr6DCK5/VSYQdgg==","signatures":[{"sig":"MEUCIC2GHtVmm6ap/d+um5JV0B865CPviUXrTnzcNsDXy4wHAiEAus8tRtbMRwRtyKFHXpGkmoAnDFoY5L3/2MpepXgjE4I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3057414},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"ba4b80cc46e2019eb4901f637c39cbbd82e966ff","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"9.5.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"18.15.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.43","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.79_1729215825917_0.6579044997962522","host":"s3://npm-registry-packages"}},"0.0.80":{"name":"gpupathtracer.js","version":"0.0.80","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.80","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"a725c8d7cb641875ec0d43f44c6f3198e6b05c1c","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.80.tgz","fileCount":559,"integrity":"sha512-dBxQBd7FlVwCV7mBcw0iFWZjr47ahAPfIlAzcFgx5KX4NLiR+qYGS1e+swLIagw4rI9uqwU4nDNVMVTxPrf78g==","signatures":[{"sig":"MEYCIQC520+Pus7FXSqiC/Hz8wfW+CB8YT3W5ehwd1D6npArHQIhAKDijj2aMFLn+Hs0hy89SnIIwAL2ZAAWnVpHK/Ao5tdv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3076015},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"d8f3b58265e9174a348d2f6ff5d220622d816511","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.80_1731636009353_0.39290372957005393","host":"s3://npm-registry-packages"}},"0.0.81":{"name":"gpupathtracer.js","version":"0.0.81","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.81","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"12dc8a71198dc842c5a25630598cc8d3025be2ae","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.81.tgz","fileCount":559,"integrity":"sha512-BecpSCASsiCaRgEQeQ2ypVDr9hEva2M5nGa7KUJG8prNLX4LcL2W67lzJdiYrOwguxCH7nVBrDR9IzDaaYNZ1A==","signatures":[{"sig":"MEUCIF6gSQ107vbsiBlGgNYoOfAFVaZWXUA642tNIIzdJ6JeAiEAq9Aq0yKHxzF8Cs/95sRLwVUkaegGnHQGlOa+fXaYcuA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3067144},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"d730ab1d4f29481abbbc185b1295a40c8991e1e7","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.81_1731999103662_0.5582147556807016","host":"s3://npm-registry-packages"}},"0.0.82":{"name":"gpupathtracer.js","version":"0.0.82","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.82","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"ac56214f8a44851ed88788bb6393a086e21b020f","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.82.tgz","fileCount":560,"integrity":"sha512-AVbmGbEW/Y85SE4GFWCz8sMLQqAzdyGWAmIWtzm0gf3jqZYvt76h0A84KkGHMkXngieEKxZgZsjezulS9yZBBg==","signatures":[{"sig":"MEYCIQDqwDsCqD1jX8sAFH0O3ViAvDr9oimRGOD7HET/ljCnlwIhAMAyJIV3c8s1uWdhZshfeO5O6FdPr1601XQlIP0jZocv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3087842},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"e127466ff5be0c12477c286bee5594e9c740e3b2","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.82_1732169611175_0.0700212142875345","host":"s3://npm-registry-packages"}},"0.0.83":{"name":"gpupathtracer.js","version":"0.0.83","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.83","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"ef558fe834495eb1b6c273e60bc79ec3e69b8780","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.83.tgz","fileCount":578,"integrity":"sha512-sB4W0FofSBKXpEQROfelSO7fF2GTFNX2daVIsxcBZsVjGQwOeSSCo0gqBlqhWEnm46kMzRAMI995Qdbg0aLUUQ==","signatures":[{"sig":"MEQCIDqX5gE6mtZXbHA1UgTneQqP8e4T8iYwnctvEsZJFwrwAiAs9HJq403ey6hWf9Eg1v0rH2gohlvbsCbem/f9L1Q2mQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3495972},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"46b7ba803de6849c00132d50d2debf36a75773bc","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.83_1734618474035_0.07775761544669835","host":"s3://npm-registry-packages-npm-production"}},"0.0.84":{"name":"gpupathtracer.js","version":"0.0.84","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.84","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"f16a4ef8c6213edcf2f82a06ce2bafb729410d78","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.84.tgz","fileCount":578,"integrity":"sha512-RVZ8KiMPIY5DMOx8t7BqQkxy1t4zR7AjJL/joQ7yaKwBPEDD5seqieMIw/v0IM7py76gHAmWXbi4pRZJHYLdow==","signatures":[{"sig":"MEUCIQC409BAsviBCjiXLyw0Jf9IT10E+Nb4JnkthBLpW4jTPAIgePKzVFY0AZNKKOLFlGRsKqPVzvKeFpNBUbtDv/vXzsg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3498383},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"f78bebdea683d3231c6adf87922c154cf14b3da0","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.84_1734622809359_0.6280520388506241","host":"s3://npm-registry-packages-npm-production"}},"0.0.85":{"name":"gpupathtracer.js","version":"0.0.85","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.85","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"47a62d7dc800f9aef926da72d6db6ccff0f1a78f","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.85.tgz","fileCount":578,"integrity":"sha512-lqwoeMw7Gp9extClAkG28+KcQvUqY96068lfI2GTl9BAAkHlGcelukqxNwIXPaJM/XP/gqOUIfDPluVEUH/90g==","signatures":[{"sig":"MEQCIAcL+QTniujHEhU/Yb4ZEjB+jL71tzMCRaf0oG+gIBJ5AiApwwZzMJ1OZcdNUhd91PeWAn+VyzKA+vW8myG8kteUoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3498717},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"a7d0922591fa64cb37b9725e7b68e5a6cc76f820","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.85_1734623770455_0.32275935017742974","host":"s3://npm-registry-packages-npm-production"}},"0.0.86":{"name":"gpupathtracer.js","version":"0.0.86","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.86","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"6426223a082cc2f0f6a28e25673412163a3ada6f","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.86.tgz","fileCount":578,"integrity":"sha512-mk1TRU/atWqCVIEnAcsLQGWLRSyhW/XrsEIqPr58ytEX5J4Uc80R8rbGTt7sBL6anXw9EOag4Ug2lbWbrLiGYA==","signatures":[{"sig":"MEQCIFuZ2iVGei0lXWzZRvTNe06RSTGOf9otzFnhV6fpWVBvAiBiICWcFrfm7CFELA4IbFD1bHvxF6QrLG1FwoyrXb2Gbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3500868},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"00bfbb892a6dc6e65c67bf2a02f191cb4a4a7ca6","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.86_1734697295265_0.9830820214748215","host":"s3://npm-registry-packages-npm-production"}},"0.0.87":{"name":"gpupathtracer.js","version":"0.0.87","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.87","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"1ee992a42d1e8a5c4d82ed42749cb16eecf69ce2","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.87.tgz","fileCount":578,"integrity":"sha512-QPqDNHboAtLWfMQEKXm2Z4TRcjjugkZ/P1cI8qnmDgrJDJBGAmXSAIZtGIgkUVfWyQQlhCTAtzMbQn0l218sDw==","signatures":[{"sig":"MEYCIQC+sDfQ7bJwOO0PN5enk8kroNmusEoOiulqIoaZfcKAAQIhAOPGAW1r1OsL7E/ZxsFRCE+pbU70ni4kpTr/bopb36Bv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3508172},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"0fbe883789c7e3e7e130931d32762766bffb3e93","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.87_1735050721610_0.0829269042976084","host":"s3://npm-registry-packages-npm-production"}},"0.0.88":{"name":"gpupathtracer.js","version":"0.0.88","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.88","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"9f3f1fa858fbf1185363b59f4d834a98eb2d0e8d","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.88.tgz","fileCount":582,"integrity":"sha512-NBqiI5WuFWCPr/SShMI4kTYcWiFWYKTLduhMKyJVBHhLNNPB8Uc+ctEzhwNA06C1DJVy04OJw8cF3vwpgLenww==","signatures":[{"sig":"MEQCIAqel+H401EF4Bb8wxGH3Xv7509XSrpVnTiWWACYHSdcAiATotRavvEWpgsjhYDeribaQ58LKf9Iu+t6IRGYMIFEYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3488690},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"5eb462f9a3e495221c743205b2de5160433efd0e","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.88_1740032834894_0.9418724145512667","host":"s3://npm-registry-packages-npm-production"}},"0.0.90":{"name":"gpupathtracer.js","version":"0.0.90","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.90","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"ceaba3f97c829c362faf8f66be549a1765fb726e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.90.tgz","fileCount":582,"integrity":"sha512-iTIGiIoQu3MJ+fz/kfw7FSV4D9/WM9BIVuLKg4PyJc3q/PANivrCqb2g/qpMPJlexu281o6c5htky9ZJXnI9sQ==","signatures":[{"sig":"MEYCIQCV5wpx2Rw22467zhUEnx9NYRIJWnoF3l7/gvXc9c5n2gIhALBCwcYlpDPIVXtcokC4iTQuvhGO8NdRm0JOnpp0ZXsi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3494096},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"0440497218da10c442b8a73195c26fa241de92d4","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.90_1740464256489_0.07450957806018343","host":"s3://npm-registry-packages-npm-production"}},"0.0.91":{"name":"gpupathtracer.js","version":"0.0.91","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.91","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"77d13467775018773bc2f107a49b0d9a0aadac3e","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.91.tgz","fileCount":582,"integrity":"sha512-3PeLqXkHTahks6vhN6ZZVOKprSzmSNMr9CDX4WamYh2pCpiZmpyF9veB4tFNyrG2ebGsAlq8wZizQ4y7HPqbsA==","signatures":[{"sig":"MEYCIQCTXmMea0IbEzumAS8p1cHjxIUxdCoMKuSqbDmC2SZvmgIhAKCYFelvqfdaENP7rCBjKUbahwYhxZOFStobeQeBOuJl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3495603},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"636238f3f3d216839f879b1b0bc30bebf92c95b7","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.91_1741076555388_0.924784495138808","host":"s3://npm-registry-packages-npm-production"}},"0.0.92":{"name":"gpupathtracer.js","version":"0.0.92","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.92","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"ed74dcb442238c872f7ed91f83f1a0cbc3cf81e8","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.92.tgz","fileCount":582,"integrity":"sha512-Ucoj8LSSH8yC0xdQu7bN/3k4q0qyouiQppUPyCl19G/OUTxUorYbJCxTpo1Azfzm6DOKOYPT509hHk8nRHch7g==","signatures":[{"sig":"MEYCIQCkiuGD/wrjbEBzUBFtrJqGhShqo5WvCQt6vMtBQwmXKgIhALValtL+3FGcloKZpHYGohcfcgtbLZHsEYonyk4N2Tve","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3516214},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"190a9fb1700aee6d32ebf291cc28c3c31af7e606","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.92_1741528630632_0.9257058420934896","host":"s3://npm-registry-packages-npm-production"}},"0.0.93":{"name":"gpupathtracer.js","version":"0.0.93","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.93","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"d409e2b256a15fba288f9c62d3d2a151c6329717","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.93.tgz","fileCount":582,"integrity":"sha512-G9p0MDW/7hVJwXB/TPD2CM8P+Cit57v4gUFPyVed5TnYhFu8JcDRSfESzbMlG1L3BMIJt0IodHzZRsnMMXRdIQ==","signatures":[{"sig":"MEQCICLLQ8M44fIgx+K/WPyPZX2hd8f9vSn5Ivo3KRvYXfujAiAELv/ZMvAfNRDpc+PFVXx/w3Ke4cguTsFcOVzFx92mKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3516960},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"a163dd0d5544c5cad84bee8506450e48f05e02ed","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.93_1741583787478_0.8921621591479969","host":"s3://npm-registry-packages-npm-production"}},"0.0.94":{"name":"gpupathtracer.js","version":"0.0.94","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.94","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"03fbe593878604b7cd607aa7d13ed3b04520f903","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.94.tgz","fileCount":582,"integrity":"sha512-GzoKyUijlwxNXSGaceVRLN6JY2dQC1qN+hnA/1gVSunLZFXIHMRPoLH1dgIsXGe3aXv4TnQ3hihlLcGeqawLCQ==","signatures":[{"sig":"MEUCIQD+OmGuXSH/iJuq3ijWQPDt5MrOFXsg3Biv+uC9l801aAIgAmRWq6Uw2YzckKygYw8WGgSMPG5jixRP3Cm8R2lKfaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3516734},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"108b94c4526ec7c17c5da3d96f80c8023490f0b3","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.94_1741590153447_0.2727146817874493","host":"s3://npm-registry-packages-npm-production"}},"0.0.95":{"name":"gpupathtracer.js","version":"0.0.95","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.95","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"35d91a81bdbdb041898aa292b05d2eb262f8da76","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.95.tgz","fileCount":582,"integrity":"sha512-0IRm5syi+TFd2/5bq2l+lkHcmyFRTqwT9OLwNloFdPY8Ancz+0Ii4GO9XthDHx9BQx3YDZkowl8Khb2DJVfcRA==","signatures":[{"sig":"MEYCIQCw9u2bm+mv11ZkBnqf+wLAFnyJxrslPl1yA+FN5OWgjgIhAJ0KGVMffaNy2JANUY7MDQ6ceu65FGZTac9TNXtFIz38","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3517988},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"f65a0d871c57883b5eb3359fce4442ee6ef4a0e2","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^4.9.5","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.95_1741660300243_0.9305778366485657","host":"s3://npm-registry-packages-npm-production"}},"0.0.96":{"name":"gpupathtracer.js","version":"0.0.96","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.96","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"0b9ffc215922cbed36dcd9a76f3beb3de66ae338","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.96.tgz","fileCount":582,"integrity":"sha512-nG1VOEj8h1R+6W6dsaSaEO4up7siquqKtREqb/S7lAgd1rRoOdszuBaKqCoyMarnGA6bYnqdG02/kHvM7T0cBQ==","signatures":[{"sig":"MEQCIHGbpkfruvje5uOYbKSvY5ItiKrG49Vl5B8m5IWsSiSRAiAZJ8lWQ20X6+720l8pLJBz2qS7LA02Ih9MkaURR7DCXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3598383},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"bfa646830b00cf8d80ecfe61b565627974424693","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^5.8.2","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","dat.gui.image":"^1.0.4","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.96_1742744370277_0.4321507753525615","host":"s3://npm-registry-packages-npm-production"}},"0.0.97":{"name":"gpupathtracer.js","version":"0.0.97","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.97","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"7af0bd87004517f4e7780d846e7aedf48e15d9d8","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.97.tgz","fileCount":582,"integrity":"sha512-Zc79g2NT8mRR+Gm8BBnSUtUHkik4U7gnZNiNvTcSqB/3NHzX1GVA9uZJZck31xDJ7t0Wae5NIjgz7pOXzfHfsg==","signatures":[{"sig":"MEYCIQDTliIKBUA9+yZEYE1kOtQj8tinNDR6HildTc8yz1kXugIhAPPkBemTT73vv2PD3b025e261SX953QE42OD5imwj3cT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3598480},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"1e2c073ef0cad5facf1df441984d6a8940b0d35d","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^5.8.2","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","dat.gui.image":"^1.0.4","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.97_1743054781785_0.5058083746514559","host":"s3://npm-registry-packages-npm-production"}},"0.0.98":{"name":"gpupathtracer.js","version":"0.0.98","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.98","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"48c77441630fa394a5675fc069cf1b8a06394237","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.98.tgz","fileCount":582,"integrity":"sha512-0mFjpvRHw2QOGoXyrPtPOvqpb48zR7AbnGwV3oArSiGoHOjDHLDUAHGMB2XSttpF6HQq8TBBw8EiCkYTFDtUcw==","signatures":[{"sig":"MEUCIFpDrB5ztAHN8bofV3n7RiqoSsaWAogz23HTH8kU/o3EAiEAxUeSqy+El3+3ofyLC+tBsx80/stnlcUvx6SHBfhFJ1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3598989},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"bad05f44d95650a93e36b2e4ec2fde48c9d6fe4c","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^5.8.2","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","dat.gui.image":"^1.0.4","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.98_1748517659614_0.7808190072327927","host":"s3://npm-registry-packages-npm-production"}},"0.0.99":{"name":"gpupathtracer.js","version":"0.0.99","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.99","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"68e294ec072dbd1810fedb91461bb2c4405b98b8","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.99.tgz","fileCount":582,"integrity":"sha512-l/ykupNzk3+hFSOCpjXD5YO3B4cpRvW/9iuuz2EXt4HLste3NG/mWUoQOXoVSfCMcISkA+maessKVQo6HrLXog==","signatures":[{"sig":"MEYCIQCvbtOYPCDpL095cCNIF1V3SbbCDd3BeYzAl1D4G/ahqgIhAJdIaPZFG3T9BwHerSRNOjeyuNkU60HwF1cOLTng6s85","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3600648},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"0b2d10303167dfe7e3d5f18715c69993f3739e76","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","actor":{"name":"lang","type":"user","email":"shenyi.914@gmail.com"},"email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^5.8.2","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","dat.gui.image":"^1.0.4","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.99_1752127958408_0.13710071754003983","host":"s3://npm-registry-packages-npm-production"}},"0.0.100":{"name":"gpupathtracer.js","version":"0.0.100","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.100","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"bdbae58a94f5d2de39f0dcb055635a109884193a","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.100.tgz","fileCount":582,"integrity":"sha512-lY3jX9zEq3UtvGnh+zu+To8521V5ngNaSDWO4w2geJlFd53uypd2a4CWRlZHkI85ibs9dMYePfaIoMgaDGxhZQ==","signatures":[{"sig":"MEUCIGvy+3Oei7cVCtwByainWYuBRF5dHPpz3b7HuxQftPPVAiEA4c0fFm0iH+otAb3OUjm8kGid2a9isEhWy8KqJRdP7Xg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3634655},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"bb6de712093226f4f6ac65e04688ea9a0bfba505","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.0","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.11.0","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^5.8.2","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","dat.gui.image":"^1.0.4","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.100_1759391533010_0.12573203500374475","host":"s3://npm-registry-packages-npm-production"}},"0.0.101":{"name":"gpupathtracer.js","version":"0.0.101","author":"","license":"MIT","_id":"gpupathtracer.js@0.0.101","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"dist":{"shasum":"cc77b44250ea550f3a160569a14096729af7cf56","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.101.tgz","fileCount":582,"integrity":"sha512-jFFYoNo3BaN5oTg1IudnxnK3mv/benXbQbNDQ7uKcfHsD8I6gSKEJcaKJ5MoKJMxIEJi27UzofAhi7ApwStpCw==","signatures":[{"sig":"MEUCIDIiNwOVgsXgEUYLFL8rftwxk7x19nryBqpoKzfZHYq6AiEAobHtNNOkcInHFnQDHgfcY/wwTh87vyQqifMXn5pQe0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3634753},"main":"lib/main.js","type":"module","types":"lib/main.d.ts","gitHead":"860b4166f2e023edbd0a144a447506633ddb4f2b","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","watch":"vite build -w","preview":"vite preview","build:lib":"tsc","watch:lib":"tsc --watch","prepublishOnly":"npm run build && npm run build:lib"},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"_npmVersion":"10.9.4","description":"A WebGL 2.0 and WebGPU Path Tracer","directories":{},"_nodeVersion":"22.21.1","dependencies":{"claygl":"npm:claygl-next@^2.0.0-alpha.46","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.2","three":"^0.141.0","dat.gui":"^0.7.9","oidn-web":"^0.3.0","typescript":"^5.8.2","@types/three":"^0.141.0","@babel/parser":"^7.22.10","@webgpu/types":"^0.1.40","dat.gui.image":"^1.0.4","@babel/traverse":"^7.22.10","@babel/generator":"^7.22.10","vite-plugin-mkcert":"^1.17.6"},"_npmOperationalInternal":{"tmp":"tmp/gpupathtracer.js_0.0.101_1770285736165_0.49898591842343","host":"s3://npm-registry-packages-npm-production"}},"0.0.102":{"name":"gpupathtracer.js","version":"0.0.102","description":"A WebGL 2.0 and WebGPU Path Tracer","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","import":"./lib/main.js","default":"./lib/main.js"},"./oidn":{"types":"./lib/oidn.d.ts","import":"./lib/oidn.js","default":"./lib/oidn.js"},"./oidn/weights/*":"./oidn/weights/*","./package.json":"./package.json"},"type":"module","scripts":{"dev":"vite","build":"tsc --noEmit && vite build","test":"vitest run","test:watch":"vitest","benchmark":"vitest bench --run benchmarks/rendering.bench.ts","typecheck:examples":"tsc --noEmit -p tsconfig.examples.json","watch":"vite build -w","preview":"vite preview","prepublishOnly":"npm run build && npm run build:lib","build:lib":"node -e \"require('node:fs').rmSync('lib',{recursive:true,force:true})\" && tsc","watch:lib":"tsc --watch"},"author":"","license":"MIT","devDependencies":{"@babel/generator":"^7.22.10","@babel/parser":"^7.22.10","@babel/traverse":"^7.22.10","@types/three":"^0.141.0","@webgpu/types":"^0.1.40","dat.gui":"^0.7.9","dat.gui.image":"^1.0.4","three":"^0.141.0","typescript":"^5.8.2","vite":"^4.1.2","vitest":"^1.6.1"},"dependencies":{"gl-matrix":"^3.4.4","oidn-web":"^0.4.0","seedrandom":"^3.0.5","webgpu-utils":"^1.9.3"},"gitHead":"4347e16ca717502f6d57df3c0c51362b1bb2e76d","_id":"gpupathtracer.js@0.0.102","_nodeVersion":"22.21.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-HrZY8I3hv/wdpFLMFSBHP39zFUGVsK0FSnPrygYiPzasEgIVCbG4LqtsbDbd/7XfahgoLStJnn10s5FDNk5wCg==","shasum":"2a53a99014882a1d6d1562f6fb1b02fed37b1058","tarball":"https://registry.npmjs.org/gpupathtracer.js/-/gpupathtracer.js-0.0.102.tgz","fileCount":485,"unpackedSize":20614668,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBsfSiclbWVsln7TaDIqykXBqnaYYD3207f79ZP+dDgjAiAYUXCWqgIRL7lIcAyHGvTQtAtCbh2zfw0CDBUXMvADrA=="}]},"_npmUser":{"name":"lang","email":"shenyi.914@gmail.com"},"directories":{},"maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gpupathtracer.js_0.0.102_1787231095448_0.5140152331573509"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-28T06:18:41.520Z","modified":"2026-08-20T13:04:55.900Z","0.0.1":"2022-07-28T06:18:41.670Z","0.0.2":"2022-08-03T15:16:17.464Z","0.0.3":"2022-08-05T15:01:41.400Z","0.0.4":"2022-08-20T10:46:48.245Z","0.0.5":"2022-11-22T04:39:26.219Z","0.0.6":"2023-02-04T12:55:55.778Z","0.0.7":"2023-02-11T15:48:27.528Z","0.0.8":"2023-02-21T08:37:48.056Z","0.0.9":"2023-02-21T13:29:29.306Z","0.0.10":"2023-02-22T06:44:25.977Z","0.0.11":"2023-02-22T08:03:53.249Z","0.0.12":"2023-02-22T08:18:32.226Z","0.0.13":"2023-02-23T11:08:39.907Z","0.0.14":"2023-02-23T11:17:27.622Z","0.0.15":"2023-02-24T14:57:22.840Z","0.0.16":"2023-03-11T02:19:31.912Z","0.0.17":"2023-03-15T14:38:19.594Z","0.0.18":"2023-04-25T09:31:53.403Z","0.0.19":"2023-05-11T12:50:58.326Z","0.0.20":"2023-06-09T08:19:24.768Z","0.0.21":"2023-07-11T07:34:50.492Z","0.0.22":"2023-07-15T06:37:58.699Z","0.0.23":"2023-07-20T15:29:27.337Z","0.0.24":"2023-07-28T13:36:57.809Z","0.0.25":"2023-07-28T14:41:43.137Z","0.0.26":"2023-07-29T15:35:26.148Z","0.0.27":"2023-08-08T08:23:37.752Z","0.0.28":"2023-08-15T06:40:20.552Z","0.0.29":"2023-08-19T11:17:39.408Z","0.0.30":"2023-09-12T08:14:13.584Z","0.0.31":"2023-10-12T14:50:59.714Z","0.0.32":"2023-10-12T15:32:22.798Z","0.0.33":"2023-11-09T06:16:55.837Z","0.0.34":"2023-11-12T12:31:01.331Z","0.0.35":"2023-11-17T03:42:51.234Z","0.0.36":"2023-11-20T10:24:00.830Z","0.0.37":"2023-12-03T08:32:52.887Z","0.0.38":"2023-12-04T01:49:50.299Z","0.0.39":"2023-12-05T10:59:02.309Z","0.0.40":"2023-12-12T15:07:06.084Z","0.0.41":"2023-12-12T17:22:56.889Z","0.0.42":"2023-12-16T00:08:49.057Z","0.0.43":"2023-12-21T01:10:25.322Z","0.0.44":"2023-12-21T06:47:37.045Z","0.0.45":"2024-01-03T03:49:00.247Z","0.0.46":"2024-01-18T14:53:15.859Z","0.0.47":"2024-01-22T04:42:24.102Z","0.0.48":"2024-01-22T11:40:35.153Z","0.0.49":"2024-01-22T13:15:48.271Z","0.0.50":"2024-01-23T02:42:55.973Z","0.0.51":"2024-01-24T02:08:27.316Z","0.0.52":"2024-03-17T10:29:04.167Z","0.0.53":"2024-03-17T12:41:22.595Z","0.0.54":"2024-03-18T04:01:53.231Z","0.0.55":"2024-03-23T02:47:19.744Z","0.0.56":"2024-03-31T13:40:54.893Z","0.0.57":"2024-04-24T10:28:28.037Z","0.0.58":"2024-04-27T13:09:05.971Z","0.0.59":"2024-05-07T04:35:04.992Z","0.0.60":"2024-05-19T09:50:45.618Z","0.0.61":"2024-05-23T01:03:05.926Z","0.0.62":"2024-05-23T06:46:41.281Z","0.0.63":"2024-06-02T14:03:17.984Z","0.0.64":"2024-06-03T01:59:49.631Z","0.0.65":"2024-06-03T02:01:42.775Z","0.0.66":"2024-06-06T10:00:14.208Z","0.0.67":"2024-06-17T05:22:52.101Z","0.0.68":"2024-06-18T10:42:14.783Z","0.0.69":"2024-06-18T11:02:32.304Z","0.0.70":"2024-06-19T02:06:22.601Z","0.0.71":"2024-06-19T03:06:13.203Z","0.0.72":"2024-06-30T07:20:26.540Z","0.0.73":"2024-06-30T16:46:37.679Z","0.0.74":"2024-07-30T12:14:50.445Z","0.0.75":"2024-08-27T15:02:57.116Z","0.0.76":"2024-08-27T16:18:45.895Z","0.0.77":"2024-09-28T11:40:37.573Z","0.0.78":"2024-10-06T14:52:20.782Z","0.0.79":"2024-10-18T01:43:46.173Z","0.0.80":"2024-11-15T02:00:09.769Z","0.0.81":"2024-11-19T06:51:43.873Z","0.0.82":"2024-11-21T06:13:31.470Z","0.0.83":"2024-12-19T14:27:54.443Z","0.0.84":"2024-12-19T15:40:09.645Z","0.0.85":"2024-12-19T15:56:10.773Z","0.0.86":"2024-12-20T12:21:35.648Z","0.0.87":"2024-12-24T14:32:01.945Z","0.0.88":"2025-02-20T06:27:15.191Z","0.0.90":"2025-02-25T06:17:36.821Z","0.0.91":"2025-03-04T08:22:35.641Z","0.0.92":"2025-03-09T13:57:10.913Z","0.0.93":"2025-03-10T05:16:27.750Z","0.0.94":"2025-03-10T07:02:33.777Z","0.0.95":"2025-03-11T02:31:40.542Z","0.0.96":"2025-03-23T15:39:30.500Z","0.0.97":"2025-03-27T05:53:02.029Z","0.0.98":"2025-05-29T11:20:59.840Z","0.0.99":"2025-07-10T06:12:38.694Z","0.0.100":"2025-10-02T07:52:13.267Z","0.0.101":"2026-02-05T10:02:16.354Z","0.0.102":"2026-08-20T13:04:55.778Z"},"license":"MIT","description":"A WebGL 2.0 and WebGPU Path Tracer","maintainers":[{"name":"lang","email":"shenyi.914@gmail.com"}],"readme":"# gpupathtracer.js\n\nA browser path-tracing library with WebGPU and WebGL 2 backends. It includes a\nsmall scene API, glTF 2.0 loading, analytic and environment lights, OpenPBR\nmaterials, BVH acceleration, accumulation, bloom, and denoising.\n\n> The API is still pre-1.0. Pin the package version while integrating it.\n\n## Contents\n\n- [Installation and browser requirements](#installation-and-browser-requirements)\n- [Run the examples](#run-the-examples)\n- [Minimal usage](#minimal-usage)\n- [Renderer lifecycle and configuration](#renderer-lifecycle-and-configuration)\n- [Using gpupathtracer.js with Three.js](#using-gpupathtracerjs-with-threejs)\n- [Efficiently synchronizing a Three.js scene](#efficiently-synchronizing-a-threejs-scene)\n- [Materials](#materials)\n- [Textures, UVs, displacement, and bevel](#textures-uvs-displacement-and-bevel)\n- [Lights and backgrounds](#lights-and-backgrounds)\n- [Scene updates and accumulation invalidation](#scene-updates-and-accumulation-invalidation)\n- [Performance checklist](#performance-checklist)\n- [TinyBVH acceleration](#tinybvh-acceleration)\n- [Intel Open Image Denoise](#intel-open-image-denoise-oidn)\n- [Lightmap baking](#lightmap-baking)\n\n## Installation and browser requirements\n\n```bash\nnpm install gpupathtracer.js\n```\n\nInstall Three.js as well when using `fromTHREEScene` or `fromTHREECamera`:\n\n```bash\nnpm install gpupathtracer.js three\n```\n\nThe package is ESM-only and includes TypeScript declarations. It is intended\nfor bundlers such as Vite, webpack, Rollup, or esbuild:\n\n```ts\nimport { Renderer, OpenPBRMaterial } from 'gpupathtracer.js';\n```\n\nThe renderer requires either WebGPU or WebGL 2. Set `preferWebGPU: true` to\ntry WebGPU first and automatically fall back to WebGL 2 if initialization\nfails. WebGPU normally requires a secure context (`https://`), except on\n`localhost`. WebGL 1 is not supported. OIDN and lightmap baking require WebGPU;\nthe camera path tracer itself works on both backends.\n\n## Run the examples\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen an HTML entry under [examples/](./examples/). The complete React scene\neditor is developed independently as **AssetFlow 3D Studio** in the sibling\n`assetflow-3d-studio` repository.\n\nThe React viewer demonstrates:\n\n- loading and managing glTF scenes with Three.js;\n- uploading one `.glb`, or a `.gltf` together with its `.bin` and image files;\n- selecting meshes from the object list or directly on the canvas;\n- editing per-object PBR material values and texture usage;\n- adding, removing, positioning, and editing rectangle, sphere, and directional lights;\n- switching between a Three.js real-time view and path tracing;\n- switching the path tracer between WebGPU and WebGL 2;\n- building BVH2 or BVH4 acceleration structures with TinyBVH WebAssembly;\n- using OIDN GPU-buffer denoising on the WebGPU backend, including the\n  Shadow Catcher mask;\n- switching the interface between Chinese and English with locale persistence;\n- tuning bounce count, sample count, clamping, and exposure.\n\nSee [examples/README.md](./examples/README.md) for the smaller focused examples.\n\n## Minimal usage\n\n```ts\nimport {\n  Camera,\n  CameraViewControl,\n  EnvironmentLight,\n  Renderer,\n  loadGLTF,\n  loadRGBE\n} from 'gpupathtracer.js';\n\nconst camera = new Camera('perspective', 45, innerWidth / innerHeight, 0.1, 1000);\nconst renderer = new Renderer({\n  canvas: document.querySelector('canvas')!,\n  preferWebGPU: true\n});\nrenderer.setSize(innerWidth, innerHeight);\n\nconst controls = new CameraViewControl({ camera, domElement: renderer.canvas });\nconst [{ meshes }, environment] = await Promise.all([\n  loadGLTF('/model.glb'),\n  loadRGBE('/studio.hdr')\n]);\ncontrols.fitToMeshes(meshes);\n\nconst lights = environment ? [new EnvironmentLight(environment)] : [];\nfunction frame() {\n  requestAnimationFrame(frame);\n  controls.update();\n  renderer.render({ meshes, lights }, camera);\n}\nframe();\n```\n\nThe first `render()` call initializes the selected GPU backend\nasynchronously. Calling `render()` on every animation frame is expected: the\nrenderer progressively accumulates samples until `maxSamples`, then becomes\ncheap while the scene is unchanged. Camera, material, mesh-transform, and\ngeometry-version changes are detected and restart accumulation automatically.\n\nFor a high-DPI canvas, keep CSS size separate from drawing-buffer size and cap\nthe pixel ratio if necessary:\n\n```ts\nfunction resize() {\n  const width = innerWidth;\n  const height = innerHeight;\n  const pixelRatio = Math.min(devicePixelRatio, 2);\n  renderer.canvas.style.width = `${width}px`;\n  renderer.canvas.style.height = `${height}px`;\n  renderer.setSize(\n    Math.round(width * pixelRatio),\n    Math.round(height * pixelRatio)\n  );\n  camera.aspect = width / height;\n}\n\naddEventListener('resize', resize);\nresize();\n```\n\n## Renderer lifecycle and configuration\n\n`Renderer` accepts the following constructor options:\n\n| Option | Default | Description |\n| --- | --- | --- |\n| `canvas` | a new canvas | Canvas receiving the rendered image. |\n| `preferWebGPU` | `false` | Try WebGPU, falling back to WebGL 2 on failure. |\n| `preserveDrawingBuffer` | `true` | WebGL drawing-buffer preservation. Useful for screenshots, with a possible performance cost. |\n\nCommon runtime settings are plain properties and can be changed at any time:\n\n| Property | Default | Purpose |\n| --- | ---: | --- |\n| `maxSamples` | `2048` | Target progressive sample count. |\n| `bounces` | `3` | Maximum path depth. Glass, SSS, and indirect lighting usually need more. |\n| `clamping` | `0` | Radiance clamp; `0` disables it. A moderate value reduces fireflies but can remove real highlights. |\n| `useStratifiedSampling` | `true` | Use the low-discrepancy stratified sequence instead of white noise. |\n| `interactivePreview` | `true` | Use a cheaper preview while the camera moves. |\n| `previewResolutionScale` | `0.5` | Maximum resolution scale of the interactive preview. |\n| `previewBounces` | `2` | Path depth while previewing motion. |\n| `previewIdleDelayMs` | `150` | Idle delay before full-quality accumulation resumes. |\n| `oidnRealtime` | `false` | When OIDN is attached, render one sample per camera state and coalesce camera changes while denoising. |\n| `denoiseStrength` | `0` | Built-in NLM denoise strength; ignored when OIDN is attached. |\n| `toneMappingExposure` | `1` | Output exposure. This redraws post-processing without rebuilding scene data. |\n| `toneMapping` | `'agx'` | Output tone-mapping curve: `agx`, `aces`, `cineon`, `reinhard`, or `linear`. |\n| `contrast` | `1` | Linear-scene contrast around middle gray. |\n| `saturation` | `1` | Output color saturation. |\n| `temperature` | `0` | Warm/cool color balance in the `-1` to `1` range. |\n| `tint` | `0` | Green/magenta color balance in the `-1` to `1` range. |\n| `vignette` | `0` | Edge darkening amount in the `0` to `1` range. |\n| `bloomIntensity` | `0` | Bloom amount; `0` disables bloom. |\n| `bloomThreshold` | `1` | Bloom luminance threshold. |\n| `bloomRadius` | `0.6` | Bloom radius. |\n| `output` | `'final'` | `'final'`, `'shadow'`, `'albedo'`, `'normal'`, or `'shadowCatcher'`. |\n\n`render()` returns a status constant that can drive a progress indicator:\n\n```ts\nimport {\n  RENDER_STATUS_COMPILING_SHADER,\n  RENDER_STATUS_DENOISING,\n  RENDER_STATUS_FINISHED,\n  RENDER_STATUS_RENDERING\n} from 'gpupathtracer.js';\n\nrenderer.onSampleRendered = (samples, isFirstFrame, frameTimeMs) => {\n  console.log({ samples, isFirstFrame, frameTimeMs });\n};\n\nconst status = renderer.render(scene, camera);\nif (status === RENDER_STATUS_COMPILING_SHADER) console.log('Compiling');\nif (status === RENDER_STATUS_RENDERING) console.log('Sampling');\nif (status === RENDER_STATUS_DENOISING) console.log('Denoising');\nif (status === RENDER_STATUS_FINISHED) console.log('Finished');\n```\n\nBackend and texture-atlas diagnostics are available after initialization:\n\n```ts\nconst { device, adapter, adapterInfo } =\n  await renderer.getGPUDeviceAndAdapter();\nconsole.log(renderer.isUsingWebGPU(), adapterInfo);\nconsole.log(renderer.getDiagnostics());\n```\n\nCall `renderer.dispose()` when the renderer is no longer used. If OIDN was\ninitialized separately, dispose that model as well. `getRawOutput()` returns\nlinear floating-point RGBA pixels; call `prepareForExport()` before exporting\nthe displayed WebGPU canvas.\n\n## Using gpupathtracer.js with Three.js\n\n`fromTHREEScene()` converts a Three.js scene into the small scene structure\nused by the path tracer. `fromTHREECamera()` supports both perspective and\northographic cameras.\n\n```ts\nimport * as THREE from 'three';\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\nimport {\n  Camera,\n  Renderer,\n  fromTHREECamera,\n  fromTHREEScene\n} from 'gpupathtracer.js';\n\nconst threeScene = new THREE.Scene();\nconst gltf = await new GLTFLoader().loadAsync('/model.glb');\nthreeScene.add(gltf.scene);\n\nconst threeCamera = new THREE.PerspectiveCamera(\n  45,\n  innerWidth / innerHeight,\n  0.1,\n  1000\n);\nthreeCamera.position.set(2, 1.5, 3);\nthreeCamera.lookAt(0, 0, 0);\n\nconst pathScene = fromTHREEScene(threeScene);\nconst pathCamera = fromTHREECamera(threeCamera);\nconst renderer = new Renderer({ preferWebGPU: true });\nrenderer.setSize(innerWidth, innerHeight);\ndocument.body.append(renderer.canvas);\n\nfunction frame() {\n  requestAnimationFrame(frame);\n  renderer.render(pathScene, pathCamera);\n}\nframe();\n```\n\n### What the Three.js converter supports\n\n- `THREE.Mesh` with `BufferGeometry` and `MeshStandardMaterial` or\n  `MeshPhysicalMaterial`;\n- indexed and non-indexed position, normal, tangent, and primary UV data,\n  including normalized and interleaved attributes;\n- generated vertex normals when the source has no normal attribute;\n- geometry groups and material arrays; each group becomes one path-tracer\n  mesh so it can keep its material;\n- `DirectionalLight`, `AmbientLight`, `RectAreaLight`, and `PointLight` (mapped\n  to a sphere light);\n- `DataTexture` environments and backgrounds, plus color backgrounds;\n- perspective and orthographic cameras.\n\nThe converter copies data; it does not retain a live binding to Three.js.\nSkinned meshes, morph targets, per-instance `InstancedMesh` transforms, custom\nshader materials, and animation tracks are not converted automatically.\nGeneral `Object3D.visible` state is also not used as a mesh filter. Remove or\nfilter hidden objects before conversion when that distinction matters.\n\n### Three.js material mapping\n\n| Three.js input | Path-tracer input |\n| --- | --- |\n| `color`, `map` | `baseColor`, `map` |\n| `roughness`, `roughnessMap` | `specularRoughness`, `roughnessMap` |\n| `metalness`, `metalnessMap` | `baseMetalness`, `metalnessMap` |\n| shared metalness/roughness texture | `metallicRoughnessMap` (G = roughness, B = metalness) |\n| `emissive`, `emissiveIntensity`, `emissiveMap` | emission inputs |\n| `normalMap`, `normalScale` | normal inputs |\n| `displacementMap`, `displacementScale`, `displacementBias` | displacement inputs |\n| `transmission`, `attenuationColor`, `attenuationDistance` | transmission weight, color, and depth |\n| `ior`, `specularIntensity`, `specularColor` | specular inputs |\n| `clearcoat`, `clearcoatRoughness` | coat inputs |\n| `sheen`, `sheenColor` | fuzz inputs |\n| `opacity`, `transparent` | opacity and base-map alpha usage |\n| `iridescence`, `iridescenceIOR`, `iridescenceThicknessRange` | thin-film inputs |\n\nThe converter also recognizes these opt-in `material.userData` fields:\n\n| Field | Meaning |\n| --- | --- |\n| `gpuPathTracerOpenPBR` | Object containing additional OpenPBR layer values. |\n| `gpuPathTracerThin` | Treat transmission as thin-walled. |\n| `gpuPathTracerDispersion` | Transmission dispersion scale. |\n| `gpuPathTracerAnisotropy` | Specular anisotropy. |\n| `gpuPathTracerThinFilmThickness` | Thin-film thickness in nanometres; converted to micrometres. |\n| `gpuPathTracerThinFilmIor` | Thin-film IOR. |\n| `gpuPathTracerThinFilmMap` | Thin-film thickness texture. |\n| `gpuPathTracerBevelSize` | Shader bevel radius in scene units. |\n| `gpuPathTracerDisplacementMode` | `'projective'` (default) or `'tessellated'`. |\n| `gpuPathTracerDisplacementStepSize` | Projective ray-marching step size. |\n| `gpuPathTracerDisplacementTessellationMode` | `'adaptive'` or `'uniform'`. |\n| `gpuPathTracerDisplacementMaxSubdivisionLevel` | Explicit-tessellation depth limit. |\n| `gpuPathTracerDisplacementMaxError` | Adaptive object-space error threshold. |\n| `gpuPathTracerDisplacementMaxTriangles` | Per-geometry triangle budget. |\n| `gpuPathTracerDisplacementScreenSpaceDicing` | Let the Viewer assign camera-derived OpenSubdiv levels per source face; defaults to `false`. |\n| `gpuPathTracerDisplacementDicingRate` | Viewer screen-space target edge length in pixels when enabled; defaults to `1`. |\n| `gpuPathTracerDisplacementOffscreenDicingScale` | Gradually coarsen faces outside the camera view; Cycles-style default `4`. |\n| `gpuPathTracerDisplacementHeightPrefilter` | Filter geometry heights to the emitted triangle footprint. |\n| `gpuPathTracerDisplacementBumpStrength` | Reuse the displacement height map as shading-only bump detail; `0` disables it. |\n| `gpuPathTracerShadowCatcher` | Convert the material to a shadow catcher. |\n\nPoint-light radius can be set with\n`pointLight.userData.gpuPathTracerRadius`. Setting\n`scene.userData.gpuPathTracerHiddenBackground = true` keeps environment\nlighting while making the background transparent.\n\n## Efficiently synchronizing a Three.js scene\n\nDo not call `fromTHREEScene()` in every animation frame. Conversion copies\nvertex attributes and materials; doing it continuously creates garbage and\ncan repeatedly upload scene data. Use a persistent geometry cache, keep the\nconverted scene alive, and synchronize only the part that changed.\n\n### Recommended update policy\n\n| Three.js change | Recommended action | Relative cost |\n| --- | --- | --- |\n| Camera transform or projection | Copy into one reusable path camera each frame. | Low |\n| Object transform | Copy `matrixWorld` into the already-converted mesh. | Low on WebGPU (TLAS refit); higher on WebGL 2 |\n| Path material scalar/color | Edit the existing `OpenPBRMaterial` in place. | Medium; accumulation and material data restart |\n| Three.js material or texture assignment | Reconvert on commit, debounced, with the same geometry cache. | Medium |\n| Light value or transform | Update the path light, then replace the `lights` array reference. | Medium |\n| Add/remove/reorder mesh, change groups, or change material count | Reconvert the scene. | High |\n| Change Three.js vertex/index data | Evict that `BufferGeometry` from the cache and reconvert. | High; BLAS rebuild/refit |\n| Change native path `Geometry` attribute data | Mutate the array, update bounds when needed, then call `geometry.markUpdated()`. | High |\n\nThe following adapter records the relationship between each source Three.js\nmesh and its converted mesh groups. It preserves converted geometry and BVHs\nacross deliberate reconversions:\n\n```ts\nimport * as THREE from 'three';\nimport {\n  Camera,\n  type FromTHREEGeometryCache,\n  type Mesh as PathMesh,\n  type Scene,\n  fromTHREECamera,\n  fromTHREEScene\n} from 'gpupathtracer.js';\n\nconst geometryCache: FromTHREEGeometryCache = new WeakMap();\nlet pathScene: Scene;\nconst pathCamera = new Camera('perspective');\n\nfunction rebuildPathScene(threeScene: THREE.Scene) {\n  // Recreate this map because a reconversion creates new path Mesh objects.\n  const nextSourceToPath = new WeakMap<THREE.Mesh, PathMesh[]>();\n  pathScene = fromTHREEScene(threeScene, {\n    geometryCache,\n    onMeshConverted(pathMesh, sourceMesh) {\n      const converted = nextSourceToPath.get(sourceMesh) ?? [];\n      converted.push(pathMesh);\n      nextSourceToPath.set(sourceMesh, converted);\n    }\n  });\n  return nextSourceToPath;\n}\n\nfunction copyCamera(threeCamera: THREE.PerspectiveCamera) {\n  // Camera.copy keeps pathCamera's identity stable. Camera conversion is\n  // small; geometry conversion is the operation that must not run per frame.\n  const converted = fromTHREECamera(threeCamera);\n  converted.aperture = 0;       // scene units\n  converted.focusDistance = 10; // scene units\n  Camera.copy(converted, pathCamera);\n}\n\nfunction copyTransforms(\n  threeScene: THREE.Scene,\n  mapping: WeakMap<THREE.Mesh, PathMesh[]>\n) {\n  threeScene.updateMatrixWorld(true);\n  threeScene.traverse((object) => {\n    if (!(object as THREE.Mesh).isMesh) return;\n    const source = object as THREE.Mesh;\n    const targets = mapping.get(source);\n    if (!targets) return;\n    for (const target of targets) {\n      // Keep the same matrix object if possible and copy its 16 values.\n      for (let i = 0; i < 16; i++) {\n        target.matrixWorld[i] = source.matrixWorld.elements[i];\n      }\n    }\n  });\n}\n\nlet mapping = rebuildPathScene(threeScene);\n\nfunction frame() {\n  requestAnimationFrame(frame);\n  controls.update();\n  copyCamera(threeCamera);\n  copyTransforms(threeScene, mapping);\n  renderer.render(pathScene, pathCamera);\n}\nframe();\n```\n\nA production adapter can avoid the small camera allocation too by directly\ncopying the camera fields and 16 matrix elements.\n\nFor a continuously dragged material slider, update an existing path material\ndirectly instead of reconverting:\n\n```ts\nconst pathMaterial = mapping.get(threeMesh)![0].materials[0];\n\nfunction onRoughnessInput(value: number) {\n  threeMaterial.roughness = value;       // realtime Three.js view\n  pathMaterial.specularRoughness = value; // path-traced view\n  // No meshes-array replacement and no manual reset are required.\n}\n```\n\nWhen maintaining a second material mapper is not desirable, debounce\n`rebuildPathScene()` and run it on the control's commit/end event. The shared\n`geometryCache` avoids recopying unchanged `BufferGeometry` and preserves its\nprecomputed BVH:\n\n```ts\nlet rebuildTimer = 0;\nfunction scheduleMaterialRebuild() {\n  clearTimeout(rebuildTimer);\n  rebuildTimer = window.setTimeout(() => {\n    mapping = rebuildPathScene(threeScene);\n  }, 120);\n}\n```\n\nIf a Three.js `BufferGeometry` is edited in place, the cache cannot discover\nthat change by itself. Evict it before rebuilding:\n\n```ts\npositionAttribute.needsUpdate = true; // for the Three.js renderer\ngeometry.computeVertexNormals();\ngeometry.computeBoundingBox();\ngeometryCache.delete(geometry);       // for the path-tracer conversion\nmapping = rebuildPathScene(threeScene);\n```\n\n### Avoiding unnecessary accumulation resets\n\n- Keep `pathScene`, `pathScene.meshes`, and mesh objects stable when nothing\n  changed. The renderer still checks mesh matrices, material values, and\n  `Geometry.version` on each call.\n- Do not create new color arrays, materials, textures, or meshes every frame.\n- Call controls/animation updates before `renderer.render()` so the newest\n  camera state is rendered immediately.\n- Material and camera changes deliberately discard old samples. Debounce\n  expensive UI changes when a fully converged frame is more important than\n  live feedback; otherwise leave `interactivePreview` enabled.\n- The renderer only calls `setLights()` when `scene.lights` has a new array\n  reference. After changing a light in place, use\n  `pathScene = { ...pathScene, lights: [...pathScene.lights] }`.\n\n## Materials\n\n`OpenPBRMaterial` implements the OpenPBR 1.1 layer model. `StandardMaterial`\nis a deprecated source-compatible alias. New code should import\n`OpenPBRMaterial`.\n\n```ts\nimport { Mesh, OpenPBRMaterial, createSphereGeometry } from 'gpupathtracer.js';\n\nconst material = new OpenPBRMaterial();\nmaterial.baseColor = [0.18, 0.42, 0.8]; // linear RGB\nmaterial.specularRoughness = 0.25;\nmaterial.specularIor = 1.5;\n\nconst sphere = new Mesh(createSphereGeometry(64, 32), material);\n```\n\n### OpenPBR inputs\n\n| Layer | Inputs | Notes |\n| --- | --- | --- |\n| Base | `baseWeight`, `baseColor`, `baseDiffuseRoughness`, `baseMetalness` | Diffuse/metal base layer. Most weights and roughness values conventionally use 0–1. |\n| Specular | `specularWeight`, `specularColor`, `specularRoughness`, `specularIor`, `specularAnisotropy` | Dielectric or metallic reflection. IOR defaults to 1.5. |\n| Transmission | `transmissionWeight`, `transmissionColor`, `transmissionDepth`, `transmissionScatter`, `transmissionScatterAnisotropy`, `transmissionDispersionScale`, `transmissionDispersionAbbeNumber` | Solid or thin-walled transmission, absorption, scattering, and spectral dispersion. |\n| Subsurface | `subsurfaceWeight`, `subsurfaceColor`, `subsurfaceRadius`, `subsurfaceRadiusScale`, `subsurfaceAnisotropy` | Multi-scattering SSS. Radius uses scene units. |\n| Fuzz | `fuzzWeight`, `fuzzColor`, `fuzzRoughness` | Cloth/velvet-like grazing response. |\n| Coat | `coatWeight`, `coatColor`, `coatRoughness`, `coatAnisotropy`, `coatIor`, `coatDarkening` | Clear coat layered above the base. |\n| Thin film | `thinFilmWeight`, `thinFilmThickness`, `thinFilmIor` | Interference layer; thickness is in micrometres (`0.45` = 450 nm). |\n| Emission | `emissionColor`, `emissionLuminance` | Emissive surfaces participate in lighting. Higher bounce/sample counts may be needed for small emitters. |\n| Geometry | `opacity`, `thinWalled` | Surface opacity and zero-thickness transmission behavior. |\n\nAll colors are linear RGB arrays. `transmissionDepth` and `subsurfaceRadius`\nuse scene units, so physically similar materials must be rescaled when the\nmodel's units change. `transmissionColor` is the color remaining after one\n`transmissionDepth`, while `transmissionScatter` controls volume scattering.\n\nCommon recipes:\n\n```ts\n// Rough plastic\nconst plastic = new OpenPBRMaterial();\nplastic.baseColor = [0.05, 0.2, 0.8];\nplastic.baseMetalness = 0;\nplastic.specularRoughness = 0.3;\n\n// Brushed metal\nconst metal = new OpenPBRMaterial();\nmetal.baseColor = [0.9, 0.55, 0.2];\nmetal.baseMetalness = 1;\nmetal.specularRoughness = 0.2;\nmetal.specularAnisotropy = 0.75;\n\n// Solid tinted glass\nconst glass = new OpenPBRMaterial();\nglass.baseWeight = 0;\nglass.transmissionWeight = 1;\nglass.specularIor = 1.5;\nglass.specularRoughness = 0.03;\nglass.transmissionColor = [0.65, 0.9, 1];\nglass.transmissionDepth = 0.5;\n\n// Thin window glass: no solid-volume distance or refraction thickness\nconst windowGlass = new OpenPBRMaterial();\nwindowGlass.baseWeight = 0;\nwindowGlass.transmissionWeight = 1;\nwindowGlass.thinWalled = true;\n\n// Wax / skin-like SSS\nconst wax = new OpenPBRMaterial();\nwax.subsurfaceWeight = 0.8;\nwax.subsurfaceColor = [1, 0.45, 0.25];\nwax.subsurfaceRadius = 0.08;\nwax.subsurfaceRadiusScale = [1, 0.5, 0.25];\n\n// Emissive panel\nconst emitter = new OpenPBRMaterial();\nemitter.baseWeight = 0.05;\nemitter.emissionColor = [1, 0.55, 0.25];\nemitter.emissionLuminance = 20;\n```\n\nThe legacy names `color`, `roughness`, `metallic`, `ior`, `transmission`,\n`anisotropy`, `dispersion`, `thin`, `alpha`, `emission`, and\n`emissiveIntensity` forward to their OpenPBR replacements. See the\n[OpenPBR material and migration guide](./docs/openpbr-material.md) for the\nvolume model, compatibility behavior, and implementation notes.\n\n## Textures, UVs, displacement, and bevel\n\n```ts\nimport { OpenPBRMaterial, Texture } from 'gpupathtracer.js';\n\nconst image = new Image();\nawait new Promise<void>((resolve, reject) => {\n  image.onload = () => resolve();\n  image.onerror = () => reject(new Error('Texture failed to load'));\n  image.src = '/textures/base-color.jpg';\n});\n\nconst map = new Texture(image);\nmap.flipY = false;\nmap.uvScale = [2, 2];\nmap.uvOffset = [0, 0];\n\nconst material = new OpenPBRMaterial();\nmaterial.map = map;\n```\n\nSupported material texture slots are:\n\n| Slot | Interpretation |\n| --- | --- |\n| `map` | Base color; alpha can also control opacity or transmission. |\n| `normalMap` | Tangent-space normal map, scaled by `normalScale`. |\n| `emissiveMap` | Multiplies emission. |\n| `metallicRoughnessMap` | glTF packing: G = roughness, B = metalness. |\n| `roughnessMap` | Standalone roughness from the green channel. |\n| `metalnessMap` | Standalone metalness from the blue channel. |\n| `thinFilmMap` | Thin-film thickness modulation. |\n| `displacementMap` | Height displacement. |\n\nSet `mapAlphaUsage` to\n`OpenPBRMaterial.mapAlphaUsageOpaque`, `.mapAlphaUsageAlpha`, or\n`.mapAlphaUsageTransmission`. `uvProjection` accepts `'none'`, `'triplanar'`,\n`'spherical'`, or `'cylindrical'`; `uvScale` controls procedural projection\nscale. `Texture.uvScale` and `Texture.uvOffset` carry ordinary texture repeat\nand offset.\n\nDisplacement defaults to the tessellation-free projective path. It has its own\ncontrols: `displacementUvProjection`, `displacementUvScale`,\n`displacementScale`, and `displacementStepSize`. Smaller step sizes improve\ndetail but cost more ray-marching work. Projective displacement needs\nconservative acceleration bounds and may prevent a geometry from using BVH4.\n\nSet `displacementMode = 'tessellated'` to generate explicit, displaced\ntriangles instead. The generated mesh follows the ordinary triangle path on\nboth WebGPU and WebGL 2, produces a real silhouette, and can use BVH4:\n\n```ts\nmaterial.displacementMap = heightMap;\nmaterial.displacementScale = 0.08;\nmaterial.displacementBias = -0.04;\nmaterial.displacementMode = 'tessellated';\nmaterial.displacementTessellationMode = 'opensubdiv';\nmaterial.displacementMaxSubdivisionLevel = 4;\nmaterial.displacementMaxError = 0.0025; // object-space distance\nmaterial.displacementMaxTriangles = 1_000_000;\nmaterial.displacementHeightPrefilter = true;\nmaterial.displacementBumpStrength = 40; // shading detail, no extra triangles\n```\n\nAdaptive mode combines displaced edge-midpoint and triangle-center error with\na min/max height pyramid, so a narrow spike between the ordinary sample points\nstill requests refinement. Conforming edge bisection propagates splits across\nindexed shared edges and therefore produces no T-junctions. Uniform mode is a\nuseful reference and grows by roughly 4x per level. The generated mesh gets new\ngeometric normals and tangents before it enters ordinary triangle rendering and\nlight sampling.\n\n`displacementBumpStrength` enables a hybrid workflow similar to sub-polygon\ndisplacement plus bump in DCC tools. Explicit tessellation carries the\nlow-frequency shape, silhouettes, intersections, and shadows. The same scalar\nheight map is sampled again during shading to retain texel-scale detail without\nforcing flat regions to subdivide. Bump changes the shading normal only; it\ndoes not change the silhouette or BVH. It can be combined with an ordinary\nnormal map.\n\nExplicit tessellation is CPU- and memory-intensive, so start with a low level\nand always keep a triangle budget. The height texture must be static and\nCPU-readable (`Image`, `Canvas`, or `TextureDataSource`). The first version is\nlimited to indexed triangles and one displacement material per path mesh. A UV\nseam whose two sides sample different heights is inherently discontinuous;\nassets that need a watertight seam must use matching boundary heights. Adaptive\nsplit propagation follows shared indices, so duplicated seam vertices also need\nseam-safe UVs and compatible refinement on both sides. Min/max spike detection\ncurrently applies to ordinary UV projection; procedural projection modes still\nuse midpoint and center error.\n\nThe interactive Viewer exposes a single **OpenSubdiv adaptive displacement**\npath. Imported Uniform, Explicit Adaptive, and Projective Viewer settings are\nmigrated to OpenSubdiv. By default, the configured maximum level and geometry\nerror remain camera-independent and height-adaptive. Optional **Screen-space\ndicing** measures every source triangle's projected edge length after camera\ninteraction ends and derives a local level from **Screen dicing rate (px)**.\nThe camera target controls only faces selected by the height-error mask, so flat\nregions can still stay coarse. Faces outside the frustum are retained for\nreflections and shadows but become progressively coarser according to\n**Offscreen dicing scale**, matching Cycles' high-level policy. With the switch\noff, the CPU height-error pass alone assigns each source face an adaptive\nlevel. The OpenSubdiv Bfr bridge evaluates only the required local limit\nsurfaces. Planar cages use Bilinear subdivision to match Blender Simple\ndisplacement. Regular coplanar cells and conservative curved exporter pairs are\nrestored to quad patches, removing exported cell diagonals before Bfr creates\nthe grid. Curved recovery requires consecutive triangles, a plausible 3D\ndiagonal, convex continuous UVs, and locally smooth normals; uncertain pairs\nand sphere poles remain triangles. Recovered curved cages retain Catmull–Clark\nsmoothing. Shared edges use the maximum level requested by either neighbor and\nemit crack-free transition patterns.\nFlat faces can remain at level zero, so there is no dense uniform intermediate\nmesh or post-displacement simplification pass. The material panel exposes\n**Hybrid bump strength** next to displacement scale and bias. Triangle count is\ncontrolled independently by **Maximum geometry error**; bump-strength changes\nupdate shading without rerunning tessellation or BVH construction. Linear\ngeometry height sampling is footprint-prefiltered from the emitted triangle UV\nspacing in camera-independent mode, while screen-space dicing samples the\nlinear height map directly because its raster target already supplies the\nfootprint. Hybrid bump retains the original full-resolution map. The OpenSubdiv\npath runs dicing,\nnormal/tangent rebuild, and BVH construction in the TinyBVH worker; their cache\nkey includes source and texture versions, tessellation settings, and the\ncombined height/camera face-level mask. Expensive sliders commit on release, height\nanalysis is reused, and only affected geometries rebuild. A progress bar\nreports micro-triangle generation and BVH construction. The generated\ngeometry is also used by the real-time Viewer, GLB export, and lightmap/AO\nbaking, so their displaced silhouettes and receiver surfaces match path\ntracing after the worker completes. Open the viewport's **Show wireframe**\npopover to inspect either the evaluated or pre-tessellation mesh, change the\noverlay color, or toggle it. Recovered quad patches hide only their\nrender-triangle diagonal. The\nheader diagnostics show source/generated triangle counts, tessellation and BVH\nbuild time, BVH memory, and time per sample. See the\n[explicit displacement and subdivision technical notes](./docs/explicit-displacement.md)\nfor mode behavior, local-space units, face-varying UV handling, hard-contour\nremeshing, performance measurements, and Blender comparisons.\n\nFor unconfigured Viewer materials, OpenSubdiv starts with camera-independent\nheight adaptation, maximum level `8`, and a mesh-local error equal to `0.02%`\nof the source geometry's characteristic size. Optional screen-space LOD uses a\n`1 px` rate and `4×` offscreen falloff when enabled. Authored or previously\nsaved values remain unchanged, and the triangle budget still provides the hard\nupper bound.\n\nFor direct API use, `tessellateDisplacementGeometry()` returns an ordinary\n`Geometry`; `getDisplacementTessellationStats()` reads its generation counts,\ntiming, and budget flag. When using the exported worker helpers, pass\n`preparedData.tessellations` as the fifth argument to `precompute()` before\ncalling `resolveFromPrecompute()`.\n\n`bevelSize` adds a shader bevel in scene units without changing topology.\n`renderer.bevelSamples` controls its local sample count. Shader bevel is useful\nfor product edges but adds work to every affected hit and does not change the\ntrue silhouette.\n\nTexture pixels are uploaded as part of material/scene preparation. After\nmutating an existing image, canvas, or data array, call `texture.markUpdated()`\nto invalidate GPU uploads and cached explicit tessellation. Assigning a new\npath `Texture` reference works as well.\n\n## Lights and backgrounds\n\n```ts\nimport {\n  AmbientLight,\n  DirectionalLight,\n  EnvironmentLight,\n  RectLight,\n  SphereLight,\n  loadRGBE\n} from 'gpupathtracer.js';\n\nconst lights = [\n  new DirectionalLight([1, 2, 1], [1, 0.95, 0.9], 2),\n  new RectLight([2, 1], [1, 1, 1], 15),\n  new SphereLight([0, 2, 0], [1, 0.8, 0.6], 8, 0.15),\n  new AmbientLight([0.03, 0.03, 0.04], 1)\n];\n\nconst hdr = await loadRGBE('/studio.hdr');\nif (hdr) lights.push(new EnvironmentLight(hdr));\n```\n\n`RectLight` inherits `matrixWorld`; its local rectangle lies in the XY plane\nand emits toward local negative Z. Scene backgrounds can be independent of\nlighting:\n\n```ts\npathScene.background = [0.02, 0.02, 0.025, 1]; // linear RGBA\npathScene.background = hdr;                     // visible environment\npathScene.background = undefined;               // transparent/no background\n```\n\nA grounded environment projects the lower hemisphere onto a virtual ground:\n\n```ts\npathScene.background = {\n  type: 'GroundedSkybox',\n  map: hdr,\n  height: 1.6,\n  radius: 20,\n  groundHeight: 0,\n  center: [0, 0]\n};\n```\n\nTo receive shadows on transparent output, set\n`material.shadowCatcher = true` on a plane and adjust\n`renderer.shadowCatcherColor` and `renderer.shadowCatcherAlpha`.\n\n## Scene updates and accumulation invalidation\n\nThe scene object is deliberately small:\n\n```ts\ninterface Scene {\n  meshes: Mesh[];\n  lights: SceneLight[];\n  background?: [number, number, number, number] | Texture | GroundedSkybox;\n}\n```\n\nThe following rules are important for interactive applications:\n\n- Mesh list/order, mesh identity, geometry identity/version, material\n  identity/value, and every `matrixWorld` component are checked by the\n  renderer. In-place mesh material and transform edits are detected.\n- Mutating native geometry arrays requires `geometry.markUpdated()`. If\n  positions change, keep normals and `boundingBox` correct as well.\n- Lights are refreshed when the `lights` array reference changes. Replace the\n  array after an in-place light edit.\n- Background colors are compared by value. Texture/grounded-background\n  changes should use a new background object/reference.\n- Camera projection fields, depth-of-field fields, and `matrixWorld` are\n  checked every frame.\n- Changing scene, camera, sampling, or integrator inputs restarts progressive\n  accumulation. Exposure, bloom, and some output operations only redraw the\n  accumulated result.\n\n## Performance checklist\n\n- Prefer WebGPU for transform-heavy scenes; it can refit the top-level BVH\n  when only instance transforms changed.\n- Reuse mesh, geometry, material, texture, scene-array, and camera objects.\n- With Three.js, cache converted geometries and never convert the whole scene\n  in the animation loop.\n- Use instancing at the application level carefully: the Three.js converter\n  does not expand `InstancedMesh` instances automatically.\n- Cap drawing-buffer resolution on high-DPI/mobile displays. Doubling both\n  dimensions quadruples the rays per sample.\n- Keep `interactivePreview` enabled for orbit controls and transform gizmos.\n- Start with 3–5 bounces. Increase them for glass, SSS, caustic paths, or\n  difficult indirect lighting rather than using a high value everywhere.\n- Use clamping only as much as needed. It reduces variance by introducing\n  bias.\n- Large texture sets are assembled into texture arrays/atlases. Inspect\n  `renderer.getDiagnostics()?.textureAtlas` when hitting GPU limits.\n- Prefer analytic rectangle/sphere lights to tiny emissive meshes when clean\n  direct-light sampling is important.\n- Denoise only after a useful sample budget. OIDN has a larger download and\n  memory cost than the built-in NLM filter.\n\n## TinyBVH acceleration\n\nAssetFlow 3D Studio owns the optional\n[jbikker/tinybvh](https://github.com/jbikker/tinybvh) WebAssembly integration,\nincluding its worker, adapter, checked-in WASM binary, build script, and\nvendored license. Those files live in the sibling `assetflow-3d-studio`\nrepository under `lib/tinybvh/`. The published `gpupathtracer.js` package\ncontinues to use its built-in JavaScript BVH builder unless an application\nprovides another preprocessing integration.\n\n## Intel Open Image Denoise (OIDN)\n\nAssetFlow uses [oidn-web](https://github.com/pissang/oidn-web) to run Intel\nOpen Image Denoise on the path tracer's WebGPU device, without a CPU readback.\nShadow Catcher masks are denoised in a second GPU pass with the same\nalbedo/normal guides and weights, then composited over the background. A\nseparate alpha-denoising model is not required.\n\nIn AssetFlow, choose the **WebGPU** path-tracing backend and enable\n**Intel Open Image Denoise** in the **Render** tab. The model is loaded lazily\nand runs after `maxSamples` is reached. OIDN is unavailable with WebGL 2.\n\nThis checkout keeps OIDN assets in [`oidn/weights`](./oidn/weights). It\nincludes the standard `rt_hdr_alb_nrm.tza` model and the higher-quality\n`rt_hdr_calb_cnrm_large.tza` model. The interactive viewer lets you select\neither one and defaults to Clean Aux Large. Before that clean-aux model runs,\nthe renderer lazily loads the smaller `rt_alb.tza` and `rt_nrm.tza` feature\nmodels and prefilters the noisy albedo and normal guides once. The same clean\nguides and final clean-aux model are then reused for the beauty image and the\nshadow catcher. The large beauty model has a larger download, memory, and\ninference cost than the standard model.\n\n### Quick start\n\nInstall the renderer. `oidn-web` is installed as its OIDN runtime dependency:\n\n```bash\nnpm install gpupathtracer.js\n```\n\nMaterials use the OpenPBR parameter model through `OpenPBRMaterial`.\n`StandardMaterial` is retained as a deprecated compatibility alias. See the\n[OpenPBR material and migration guide](./docs/openpbr-material.md).\n\nCopy one of the packaged `.tza` files from\n`node_modules/gpupathtracer.js/oidn/weights/` into your application's public\nassets, then initialize OIDN with the optional subpath entry:\n\n```ts\nimport {\n  Mesh,\n  Renderer,\n  OpenPBRMaterial,\n  createPlaneGeometry\n} from 'gpupathtracer.js';\nimport { initializeOIDN } from 'gpupathtracer.js/oidn';\n\nconst renderer = new Renderer({\n  canvas: document.querySelector('canvas')!,\n  preferWebGPU: true\n});\n\nconst denoiser = await initializeOIDN(renderer, { model: 'standard' });\n\n// Add this plane to the rendered meshes and place it under the model.\nconst shadowCatcher = new Mesh(\n  createPlaneGeometry(),\n  new OpenPBRMaterial()\n);\nshadowCatcher.material.shadowCatcher = true;\n\n// When the renderer is no longer needed:\ndenoiser.dispose();\n```\n\n`initializeOIDN` performs the following work:\n\n- initializes the renderer and verifies that it actually selected WebGPU;\n- downloads the weights with a clear HTTP error if the URL is invalid;\n- initializes OIDN for HDR color plus albedo and normal guides;\n- attaches the model to `renderer.oidn`.\n\nThe renderer starts OIDN after `maxSamples` is reached. The weights URL must be\nreachable in production, and WebGPU usually requires HTTPS outside\n`localhost`.\n\n### Models and options\n\nSelect `model: 'cleanAuxLarge'` to load the Clean Aux Large model. The packaged\nmodel loader defaults to `/oidn/weights/`; use `weightsBaseUrl` if the assets\nare deployed elsewhere. For a model selector, load without attaching, cache\nthe returned model, and assign it when selected:\n\n```ts\nconst model = await initializeOIDN(renderer, {\n  model: 'cleanAuxLarge',\n  attach: false,\n  maxTileSize: 1024,\n  weightsBaseUrl: '/static/oidn/'\n});\n\nrenderer.oidn = model;\n```\n\nTo load custom OIDN-compatible weights, use the explicit URL API:\n\n```ts\nimport { initializeOIDNFromURL } from 'gpupathtracer.js/oidn';\n\nconst customModel = await initializeOIDNFromURL(\n  renderer,\n  '/models/my_custom_hdr_aux.tza'\n);\n```\n\nBoth APIs accept `attach`, `maxTileSize`, and `signal`.\n`initializeOIDNFromURL` additionally accepts `aux` and `hdr` for custom model\ninput layouts; both default to `true`. `attach` defaults to `true`. Sampling\nstrategy remains independent; set `renderer.useStratifiedSampling` explicitly\nwhen desired. Compatible alternative weights are available from\n[oidn-weights](https://github.com/RenderKit/oidn-weights).\n\n## Lightmap baking\n\n`LightmapBaker` progressively bakes linear HDR irradiance or finite-distance\nPBR ambient occlusion into an external UV atlas on WebGPU. The lightmap UV\nattribute is passed with each bake target and is not added to the renderer's\nregular `Geometry`, so camera path tracing keeps\nits existing single-UV layout. The result can be uploaded to a Three.js\n`DataTexture` and assigned to `material.lightMap` or `material.aoMap`.\n\n```ts\nimport {\n  GeometryAttribute,\n  LightmapBaker\n} from 'gpupathtracer.js';\nimport { initializeOIDNLightmap } from 'gpupathtracer.js/oidn';\n\nconst baker = new LightmapBaker(renderer);\nconst denoiser = await initializeOIDNLightmap(renderer);\nconst result = await baker.bake(scene, {\n  targets: [\n    {\n      mesh,\n      lightmapUv: new GeometryAttribute(uv2Array, 2)\n    }\n  ],\n  width: 1024,\n  height: 1024,\n  samples: 64,\n  output: 'irradiance', // or 'ambientOcclusion'\n  occlusionDistance: 1,\n  bounces: 5,\n  padding: 4,\n  denoiser,\n  adaptiveSampling: true,\n  onProgress: ({ data }) => {\n    // Upload progressive HDR previews to the realtime renderer when present.\n  }\n});\n```\n\n`initializeOIDNLightmap` loads the packaged color-only HDR\n`rtlightmap_hdr.tza` network without attaching it to the camera renderer. The\ninteractive viewer's dedicated **Lightmap** tab uses xatlas in a worker to\ngenerate `uv2`, previews both the UV charts and the atlas, and applies\nprogressive bake results to Three.js in realtime mode. Lightmap baking\nintentionally has no WebGL 2 fallback.\n\nCovered chart edges are conservatively rasterized exactly at the texel center\nor closest triangle edge. Covered texels are never moved, eroded, or modified\nby a seam solver. After baking, a Cycles-style **Adjacent Faces** margin maps\nempty gutter texels through real mesh-edge adjacency, with ordinary dilation\nas the fallback for open, corner, narrow, and non-manifold cases.\n\nWhen OIDN is enabled, `samples` is treated as an average ray budget. A uniform\n16–32 sample pilot estimates per-texel color variance, then the remaining rays\nare concentrated in noisy indirect-light and occlusion regions while flat\nareas keep fewer samples. Set `adaptiveSampling: false` for uniform sampling.\nThe GPUBuffer path also applies OIDN's HDR auto-exposure before inference and\nundoes it afterward; this improves the RTLightmap network's behavior across\nvery dark and very bright environments without changing output radiance.\nCamera NLM is not part of the lightmap path.\n\nAfter chart-aware padding, the nearest padded colors are propagated through\nthe rest of the atlas. Final runtime and cached lightmaps are fully opaque and\ncontain no transparent black background; original chart coverage remains\navailable separately in `LightmapBakeResult.coverage`.\n\nThe viewer keeps xatlas solving, UV result preparation, and preview drawing in\nworkers. All meshes are charted and packed together in one global, single-page\natlas; multi-page output and invalid page indices are rejected. Once xatlas has\nproduced that atlas, real charts are applied and drawn incrementally per mesh.\nGenerated remap/index/`uv2` data is\nstored in IndexedDB under the model cache key and restored only when the source\nmesh topology still matches. Cached UV2 restoration starts only after the model\nand its BVH are visible, then applies geometry in idle-frame time slices so a\nlarge atlas does not extend the viewer's blocking load state.\n\nCompleted Float32 HDR lightmaps and scalar AO atlases are cached in separate\nIndexedDB stores. Lightmaps are restored against compatible UV2; AO is baked\nand restored independently against the model's primary UV set. The baking\npanel can hide or clear each result independently. AO uses one `aoMap` per mesh\nso independently overlapping UV0 layouts cannot overwrite each other, and it\nexports through standard glTF `occlusionTexture` with `texCoord: 0`. Clearing\neither output removes only its pixels and cache.\n\nglTF defines `TEXCOORD_1` but has no core lightmap material slot. When both UV2\nand a lightmap are present, the viewer displays them immediately. It recognizes\n`MX_lightmap`, `WEBGI_materials_lightmap`, `EXT_lightmap`, material\n`extras.lightmapTexture`, and legacy `commonConstant.lightmapTexture`\nconventions. A bare `uv2` is not assumed to be a valid lightmap atlas because\nThree.js may synthesize it for an AO map.\n\nSee [Lightmap Baking Technical Notes](./docs/lightmap-baking.md) for the full\narchitecture, UV remapping and cache behavior, WebGPU irradiance integration,\nOIDN contract, seam handling, Three.js application, performance guidance, and\nknown limitations.\n\n## TODO\n\n- Add a position- and orientation-aware Light Tree for many-light scenes on\n  both WebGPU and WebGL 2. Include analytic lights, emissive triangles/meshes,\n  and a separate distant-light branch for directional and environment lights.\n  Keep direct-light and light-hit/environment MIS probabilities consistent,\n  retain the existing global alias/CDF sampler as a small-scene fallback, and\n  validate the implementation with equal-budget multi-light visual regressions\n  and GPU performance benchmarks.\n\n## Development and tests\n\n```bash\nnpm test                    # unit and glTF integration tests\nnpm run test:watch          # watch mode\nnpm run typecheck:examples  # type-check the library, examples, and test sources\nnpm run build               # production library build\n```\n\nTests are split into fast units under `tests/unit` and loader integration tests\nunder `tests/integration`. GPU rendering remains a browser smoke test because\nCI environments do not expose a consistent WebGPU/WebGL implementation.\n\n## License\n\n[MIT](./LICENSE)\n\nThird-party components keep their own licenses: `oidn-web` is MIT, and the\nincluded OIDN network weights use the\n[Apache 2.0 license](./oidn/weights/LICENSE.txt).\n","readmeFilename":"README.md"}