{"versions":{"0.0.1":{"name":"@takram/three-atmosphere","version":"0.0.1","license":"MIT","type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.1","astronomy-engine":"^2.1.19","lodash-es":"^4.17.21","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.0.1","description":"A Three.js and R3F (React Three Fiber) implementation of Eric Bruneton’s [Precomputed Atmospheric Scattering](https://ebruneton.github.io/precomputed_atmospheric_scattering/).","_integrity":"sha512-jtDx/IEd2BeGVS1g/0FVuKG+U6IEaQisYliQ9HCWTLPKb9yBzdzurcFWoXHuwTgEj4kPWCAmuvWe2JpVBwdm4g==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/83d3a7c9f3fd85849f7d03d23a55414f/takram-three-atmosphere-0.0.1.tgz","_from":"file:takram-three-atmosphere-0.0.1.tgz","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-jtDx/IEd2BeGVS1g/0FVuKG+U6IEaQisYliQ9HCWTLPKb9yBzdzurcFWoXHuwTgEj4kPWCAmuvWe2JpVBwdm4g==","shasum":"94fbd6d480e75c8754e20034c507e6417c7bb55d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.0.1.tgz","fileCount":74,"unpackedSize":34615293,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAwq7/Tt2C3afQA8QvEMYlzXaP3p7e7hdGNJbhKoBwyXAiA6JiTUsbucjxyuSZTgbR1FlFgIcblmoe1OWBCs1vDLjg=="}],"size":21704513},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/three-atmosphere_0.0.1_1732975092993_0.7284605221874296"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-11-30T13:58:13.479Z","publish_time":1732975093479,"_source_registry_name":"default","contributors":[]},"0.0.2":{"name":"@takram/three-atmosphere","version":"0.0.2","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.2","astronomy-engine":"^2.1.19","lodash-es":"^4.17.21","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.0.2","_integrity":"sha512-ziC9YUcNXrgT/71ssTHDXoyxr8yh3/cIE0qF0jb4XDLF9xb8IhHzMJgctXsdpWZWkXGp/ej8X9XRPvJvyjsDZQ==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/9124183382010162843a25361d1486f2/takram-three-atmosphere-0.0.2.tgz","_from":"file:takram-three-atmosphere-0.0.2.tgz","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-ziC9YUcNXrgT/71ssTHDXoyxr8yh3/cIE0qF0jb4XDLF9xb8IhHzMJgctXsdpWZWkXGp/ej8X9XRPvJvyjsDZQ==","shasum":"bc38fdd232e9110d6772c569542b8e5945579b2d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.0.2.tgz","fileCount":78,"unpackedSize":34502831,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF6NGNryFlLKDlSgSlPfzKBVMVGzrXi8iyOJb4atR6M8AiEA1mHztgA2Rbk0Xl88QDpJm+afEBgMHLHrZzEtMxBaZzY="}],"size":26640782},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/three-atmosphere_0.0.2_1733220351145_0.33790633954079374"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-03T10:05:51.692Z","publish_time":1733220351692,"_source_registry_name":"default","contributors":[]},"0.1.0":{"name":"@takram/three-atmosphere","version":"0.1.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.2","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.1.0","_integrity":"sha512-ykvtQhMYdMhOZm73JfjnK/HTqqBoTuj5SOqmOhCUVHsybc28qQcxiDwQcvp3Z2M6wgWB3p4xJHQNSeCb0e+Q6A==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/fc5b0ab90316a36b446578a19c5c546e/takram-three-atmosphere-0.1.0.tgz","_from":"file:takram-three-atmosphere-0.1.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-ykvtQhMYdMhOZm73JfjnK/HTqqBoTuj5SOqmOhCUVHsybc28qQcxiDwQcvp3Z2M6wgWB3p4xJHQNSeCb0e+Q6A==","shasum":"3a90fefdfb52dd2c2e60bf66103a1bb31d0418c0","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.1.0.tgz","fileCount":79,"unpackedSize":34506568,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZEGVoHC+R5EmKXTEd/TgrYQOz8HBmX1QdShLooKP9zAiEA5GZDBV0bFO08md+72zFf/fDcoxoCgtsJ5925tQd6tX4="}],"size":26641816},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/three-atmosphere_0.1.0_1733446563286_0.8319190245278145"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-06T00:56:03.693Z","publish_time":1733446563693,"_source_registry_name":"default","contributors":[]},"0.2.0":{"name":"@takram/three-atmosphere","version":"0.2.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.2","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.2.0","_integrity":"sha512-MN257FsoFvN/RTTMB7u76Rm5aCdfiqfHxjLoRWRIpMRXaYSF1rm1kuHLV43makRsEl0wSgP3W0i3SBc0gE/OPA==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/c973031a93ddb319fdcc1dff1ef04ec3/takram-three-atmosphere-0.2.0.tgz","_from":"file:takram-three-atmosphere-0.2.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-MN257FsoFvN/RTTMB7u76Rm5aCdfiqfHxjLoRWRIpMRXaYSF1rm1kuHLV43makRsEl0wSgP3W0i3SBc0gE/OPA==","shasum":"a8952aa8bbf8eebe8e6d307b67d32524b4aceb48","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.2.0.tgz","fileCount":79,"unpackedSize":34506872,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsy33MbpeqXy/9cUqVpfWR5dxKCe+qwO5hQC9ZfZ2fPgIhALsRhlALtUgaubGF1krhMij5WnwBBi8VFI3aK9/43NYZ"}],"size":26641884},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.2.0_1733764982717_0.0441092911270442"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-09T17:23:03.337Z","publish_time":1733764983337,"_source_registry_name":"default","contributors":[]},"0.3.0":{"name":"@takram/three-atmosphere","version":"0.3.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.2","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.3.0","_integrity":"sha512-6ffR35Jqo9Mf9DGbEjO2KQANRjrkjnXvWlzEgjnc3aT9aq0moSuJfum6sdjWJIejjv/dkAFbzTkyawCcCV8+mg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/026198ce1cd733e5cd3e1e50f3eab1a3/takram-three-atmosphere-0.3.0.tgz","_from":"file:takram-three-atmosphere-0.3.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-6ffR35Jqo9Mf9DGbEjO2KQANRjrkjnXvWlzEgjnc3aT9aq0moSuJfum6sdjWJIejjv/dkAFbzTkyawCcCV8+mg==","shasum":"1c8851709f278c2bc2a779160f59cb187d87368c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.3.0.tgz","fileCount":79,"unpackedSize":34512466,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRV4udCVNnvalLIT0MZrtmm7MHySx1oAfk3OzHs5eKAwIgHAnDwDMTrjIbebnH3HAnxsLdaar/E3Kl8FuxfjChJF0="}],"size":26643136},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.3.0_1733926815997_0.08886411917278747"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-11T14:20:16.420Z","publish_time":1733926816420,"_source_registry_name":"default","contributors":[]},"0.4.0":{"name":"@takram/three-atmosphere","version":"0.4.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.3","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.4.0","_integrity":"sha512-O6p5pWCBbEc3DwCLsjtdWMiwCQ8KR5qahCklE+wnqii+EshvKCfnlWuWBKci/g5nUwg6/Cozq9c1ykqHJrbHgQ==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/08436be4cad1104b18b04e3952ac49e2/takram-three-atmosphere-0.4.0.tgz","_from":"file:takram-three-atmosphere-0.4.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-O6p5pWCBbEc3DwCLsjtdWMiwCQ8KR5qahCklE+wnqii+EshvKCfnlWuWBKci/g5nUwg6/Cozq9c1ykqHJrbHgQ==","shasum":"3875a87b4defdb3062bf578222483227f745e8a6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.4.0.tgz","fileCount":79,"unpackedSize":34518827,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFn0Of5/J2LfvjEKR2W0C7wFpXQxTR97LPnMGjlcBcuVAiEAz/DT45fcmwRkVE/Dlm27PpRDDAoZIIB8f6feddUrYIM="}],"size":26644526},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.4.0_1734253352270_0.7789516970666979"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-15T09:02:32.709Z","publish_time":1734253352709,"_source_registry_name":"default","contributors":[]},"0.5.0":{"name":"@takram/three-atmosphere","version":"0.5.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.4","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.5.0","_integrity":"sha512-T00AqrE+TYdbpwK/3G9ZNFZbXCMYIIOBs5lbpQytzKMuq/CRxE4RUu6n5ODb4tJocqa7O5g0iLFifIfoKvfd8g==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/adaa8a6130f76a1e7413a196a35a94b6/takram-three-atmosphere-0.5.0.tgz","_from":"file:takram-three-atmosphere-0.5.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-T00AqrE+TYdbpwK/3G9ZNFZbXCMYIIOBs5lbpQytzKMuq/CRxE4RUu6n5ODb4tJocqa7O5g0iLFifIfoKvfd8g==","shasum":"a5654b404867fbea5ae90ed58dd7d89fc9d2e9d6","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.5.0.tgz","fileCount":80,"unpackedSize":34533659,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP8jxozVHRqe0TM2S/yMZWBXIqkySyoMfmyWl7jfH4aQIgavwZcDhFvkFSoRh4xcyF+830vLWLuzJYoz48QBb+0pE="}],"size":26647580},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.5.0_1734578550855_0.4837775341130306"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2024-12-19T03:22:31.292Z","publish_time":1734578551292,"_source_registry_name":"default","contributors":[]},"0.6.0":{"name":"@takram/three-atmosphere","version":"0.6.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.5","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.6.0","_integrity":"sha512-UVLhexKdlM90t9s9BXaA5CKAsNxayD+/BuVPRse+XCpOLJIY416RME7RxKaki6XqkKvbvDoiEMQGA6OGbIsFTg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/bf91563e83614117f2399066c53e5df0/takram-three-atmosphere-0.6.0.tgz","_from":"file:takram-three-atmosphere-0.6.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-UVLhexKdlM90t9s9BXaA5CKAsNxayD+/BuVPRse+XCpOLJIY416RME7RxKaki6XqkKvbvDoiEMQGA6OGbIsFTg==","shasum":"77ba714e22068ef72cdeb384b0c7647a75ebe9dc","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.6.0.tgz","fileCount":80,"unpackedSize":34548117,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAHeIPkPOyyGwjEVZ5e7rJGNscPe5RQp6FXSDPWHN9vWAiEAsJlZPhj803pPHp3OqTQwzDh+ajZAz1FK76xUW6YOw3k="}],"size":26649778},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.6.0_1737213068698_0.9826403814579687"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-01-18T15:11:09.881Z","publish_time":1737213069881,"_source_registry_name":"default","contributors":[]},"0.7.0":{"name":"@takram/three-atmosphere","version":"0.7.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.6","astronomy-engine":"^2.1.19","jotai":"^2.11.0","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0","type-fest":"^4.33.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.7.0","_integrity":"sha512-dpR+G8998e5+h/Q8LwntRGy13XAnIscR+Kli8ZHZSCa4/JMDE7ppsAZXuIoq/fgtOAfSlGUdpEtopJPT816BfQ==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/1e3ac5b09da43ccc3af49bc29862d734/takram-three-atmosphere-0.7.0.tgz","_from":"file:takram-three-atmosphere-0.7.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-dpR+G8998e5+h/Q8LwntRGy13XAnIscR+Kli8ZHZSCa4/JMDE7ppsAZXuIoq/fgtOAfSlGUdpEtopJPT816BfQ==","shasum":"93f2d4b5ccac4ce71a3dc508f7e0c578f20e2b7e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.7.0.tgz","fileCount":94,"unpackedSize":34673476,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDA3vxA8Pr/hGaWdn/DNs0mYYgClWCqBT/MOePo47nSfAIhALeSSELAyd9JozxOb9jHiC0hrdWeNYJj17Wc5JCyWDGo"}],"size":26684413},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.7.0_1738446356991_0.8517793692077442"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-01T21:45:57.439Z","publish_time":1738446357439,"_source_registry_name":"default","contributors":[]},"0.7.1":{"name":"@takram/three-atmosphere","version":"0.7.1","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.6","astronomy-engine":"^2.1.19","jotai":"^2.11.0","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0","type-fest":"^4.33.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.7.1","_integrity":"sha512-6o8WPBbMcGFI2HEeu8gP/COzzTMgvJJIMIktHsTxCRdapz5D1t7GPrTtsVHGPVq1fjwM4hoWzhotEzs4hw7UIw==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/13d88be810476dfefbf7826bccb21b68/takram-three-atmosphere-0.7.1.tgz","_from":"file:takram-three-atmosphere-0.7.1.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-6o8WPBbMcGFI2HEeu8gP/COzzTMgvJJIMIktHsTxCRdapz5D1t7GPrTtsVHGPVq1fjwM4hoWzhotEzs4hw7UIw==","shasum":"eedbb7524d918d25e4d3a632c78a8b4ab0ed71c5","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.7.1.tgz","fileCount":94,"unpackedSize":34673644,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICKsr45a4AzJAoxlxjk/pPxQMHBN7BgfHhjmQ+eV0McNAiEAjGWqWWZxA6lT7KVR49IVJPIDo6Uj0rKMx05I55tKSXY="}],"size":21534450},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.7.1_1739244952648_0.2487552192870126"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-11T03:35:53.066Z","publish_time":1739244953066,"_source_registry_name":"default","contributors":[]},"0.8.0":{"name":"@takram/three-atmosphere","version":"0.8.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.7","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0","type-fest":"^4.33.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.8.0","_integrity":"sha512-9dN4D7RS0lWmiRwi8ZJ84hQ6ZGceIHr1ebTBXtitQah2tDMRmC4c93ZrnO2vUM+wj714Fv1/iu7AWMxwOVX8bA==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/73db202f9c3dd1c9a3e1e849391c9dd4/takram-three-atmosphere-0.8.0.tgz","_from":"file:takram-three-atmosphere-0.8.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-9dN4D7RS0lWmiRwi8ZJ84hQ6ZGceIHr1ebTBXtitQah2tDMRmC4c93ZrnO2vUM+wj714Fv1/iu7AWMxwOVX8bA==","shasum":"407ad2ef8092cd1b13c60a45844458db56051c65","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.8.0.tgz","fileCount":94,"unpackedSize":34627029,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEgVRm1mcWyzRQUUi8UoOmyngo1wrZtH7dS/B2VX6GU7AiBl9W9EUro//8m7jHidD5SenMyr+DUQiHV6EC7kvbagSg=="}],"size":21519597},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.8.0_1739339986863_0.9969384723990342"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-12T05:59:47.297Z","publish_time":1739339987297,"_source_registry_name":"default","contributors":[]},"0.9.0":{"name":"@takram/three-atmosphere","version":"0.9.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.8","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","tiny-invariant":"^1.3.3","type-fest":"^4.33.0","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.9.0","_integrity":"sha512-AdOM0NR8d7W31sustzhU/eX1DbMCiNDg9HGa7tCVzOjwud/P6h5UanP72vnpnqO6pHP3C+cmvlp1k3QEovE/Qg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/47d671223f8d90c51e3309657d728607/takram-three-atmosphere-0.9.0.tgz","_from":"file:takram-three-atmosphere-0.9.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-AdOM0NR8d7W31sustzhU/eX1DbMCiNDg9HGa7tCVzOjwud/P6h5UanP72vnpnqO6pHP3C+cmvlp1k3QEovE/Qg==","shasum":"5ea4afa92ebf7de313b788fa7dc390ab112cdadb","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.9.0.tgz","fileCount":94,"unpackedSize":34614134,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCoj/YE6cScWA8o6WoBqGJFWX5jfX9+QgURNt6yg6RF2wIhAMcau0X46ArwgdlP3nj5Is5p7Wiu+K3zc8jqyyqNYWwF"}],"size":21518215},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.9.0_1740286018697_0.12707653775759886"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-02-23T04:46:59.154Z","publish_time":1740286019154,"_source_registry_name":"default","contributors":[]},"0.10.0":{"name":"@takram/three-atmosphere","version":"0.10.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.0.1-alpha.9","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.10.0","_integrity":"sha512-1t5+jCXKn5LK5ANHbL9iPLikVEd0YpGr1Qtzof3MSwpTGoyggWTMWXPdDCZCkAYD5HN8JFWmhCRCqNfiYIXnVQ==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/fd407046cb4997363f69f92692985550/takram-three-atmosphere-0.10.0.tgz","_from":"file:takram-three-atmosphere-0.10.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-1t5+jCXKn5LK5ANHbL9iPLikVEd0YpGr1Qtzof3MSwpTGoyggWTMWXPdDCZCkAYD5HN8JFWmhCRCqNfiYIXnVQ==","shasum":"bd2593760893468cd8742cf4d0a6129832919412","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.10.0.tgz","fileCount":96,"unpackedSize":13585894,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHI5K2X5G2N7VGx4wurGhFilp19vUjbZVN1zFnB7LT1nAiEAr41W0FNl9OQ4tQPMkkNSFSWPlSigtEhoxEfOH1ByFoU="}],"size":10495196},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.10.0_1740882832749_0.26497433381144764"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-02T02:33:53.120Z","publish_time":1740882833120,"_source_registry_name":"default","contributors":[]},"0.10.1":{"name":"@takram/three-atmosphere","version":"0.10.1","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.1.0","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.10.1","_integrity":"sha512-2aQFYS/6GfJHihvLH3WjpsdDVWNrN5oKfc4SplqOLJcZ9ohDjbO31bM2L8txPNSF5CS8jXOjVD+1l/niOlJsNw==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/0d3ce510d47d0eeb9719f6117cf59240/takram-three-atmosphere-0.10.1.tgz","_from":"file:takram-three-atmosphere-0.10.1.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-2aQFYS/6GfJHihvLH3WjpsdDVWNrN5oKfc4SplqOLJcZ9ohDjbO31bM2L8txPNSF5CS8jXOjVD+1l/niOlJsNw==","shasum":"6ebdea792eba00dc3815d1a0c8db017e4ea58d16","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.10.1.tgz","fileCount":96,"unpackedSize":13585980,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAsWn6OFwxrxmBTc0vL8aqQUzNkQJ8K36wsH/2EBz6DuAiBv9haAf3aYhPShzoj9inYL4S473ejsGw2g3SznK0oKGg=="}],"size":10495227},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.10.1_1741508229872_0.20379106816852333"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-09T08:17:10.228Z","publish_time":1741508230228,"_source_registry_name":"default","contributors":[]},"0.10.2":{"name":"@takram/three-atmosphere","version":"0.10.2","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.1.0","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.10.2","_integrity":"sha512-cxEBcpHJNeSDQg9SX9kPqCQlrKb5XSfT3rqgzA9o1FZqYPq1J9TOs6vO9khixazaroqmSDene1P1eNopVsMYzA==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/74076f67773f7e914cbbe2ebe319d64c/takram-three-atmosphere-0.10.2.tgz","_from":"file:takram-three-atmosphere-0.10.2.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-cxEBcpHJNeSDQg9SX9kPqCQlrKb5XSfT3rqgzA9o1FZqYPq1J9TOs6vO9khixazaroqmSDene1P1eNopVsMYzA==","shasum":"a001c892fff25fbff88a81a41a904f4389b5cd60","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.10.2.tgz","fileCount":96,"unpackedSize":13586663,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDQiXQOUhokhooEwPq8ZgiBQmGQZqyy7YG1rtNFY3uZLgIhAOso1gcvRmRUCm20wdad5lMa4njiH1y6w1E2KvK5g96O"}],"size":10495487},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.10.2_1741509814532_0.05957465452928634"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-09T08:43:34.912Z","publish_time":1741509814912,"_source_registry_name":"default","contributors":[]},"0.11.0":{"name":"@takram/three-atmosphere","version":"0.11.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.2.0","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.11.0","_integrity":"sha512-LiQnJAu+Dwi5N5IK6bdRYPwKep+JEaNtITU9YFlUS4/Ev1ylDbIP7v1GxPHSSBxhiMYwJmQWbBDO3OvD6DfgPw==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/2947bae41d8eb992137f86eb1bccc27f/takram-three-atmosphere-0.11.0.tgz","_from":"file:takram-three-atmosphere-0.11.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-LiQnJAu+Dwi5N5IK6bdRYPwKep+JEaNtITU9YFlUS4/Ev1ylDbIP7v1GxPHSSBxhiMYwJmQWbBDO3OvD6DfgPw==","shasum":"9283755d1d5b0e65acf9e85d9e68b9080fc80185","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.11.0.tgz","fileCount":96,"unpackedSize":13583723,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCkvuXl6NjVg4+T7j05nSPQAIe5I3L8zzhfuloJGa/GUgIgPHZhiiAKcbRAWyFRGeBLHjbllpB9BOA6Mz/29mHfoBE="}],"size":10494938},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.11.0_1741509891269_0.5063670615016551"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-09T08:44:51.613Z","publish_time":1741509891613,"_source_registry_name":"default","contributors":[]},"0.10.3":{"name":"@takram/three-atmosphere","version":"0.10.3","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.1.0","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=9.117.3","@react-three/fiber":">=8.17.10","@react-three/postprocessing":">=2.16.3","postprocessing":">=6.36.4","react":">=18.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.10.3","_integrity":"sha512-j1MuQvhdYsDef56yhNybAEopsb8K1Vn2e+NIafBlflEbBlFyCN5V1K8fNYVm48CPcERT5JGKbVW5RHxI0FAPhQ==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/4437a82a40b686cec74c1359df8377d7/takram-three-atmosphere-0.10.3.tgz","_from":"file:takram-three-atmosphere-0.10.3.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-j1MuQvhdYsDef56yhNybAEopsb8K1Vn2e+NIafBlflEbBlFyCN5V1K8fNYVm48CPcERT5JGKbVW5RHxI0FAPhQ==","shasum":"bdbd109375204e3319d4554990675f837c38d43b","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.10.3.tgz","fileCount":96,"unpackedSize":13589478,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB8uYlu8UWR+kr/kvyj5427uN1KDETPtDvM+a7hVKCDSAiBL/gSswyLpYoOI7w4SpeZ2dcRUUIcFfVw1cgney4ackw=="}],"size":10496360},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.10.3_1741933774974_0.1793256750989909"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-14T06:29:35.308Z","publish_time":1741933775308,"_source_registry_name":"default","contributors":[]},"0.11.1":{"name":"@takram/three-atmosphere","version":"0.11.1","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.2.0","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.11.1","_integrity":"sha512-mP76Gv0rMxbndj//04bwzdo+pP75XtWbVjz34sm/BtykTnww/PWzYbtyU3kUo4PzMcUb5XDYw1SHuQ7zhMpRDg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/fa1276ff6460528f06b254c012162655/takram-three-atmosphere-0.11.1.tgz","_from":"file:takram-three-atmosphere-0.11.1.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-mP76Gv0rMxbndj//04bwzdo+pP75XtWbVjz34sm/BtykTnww/PWzYbtyU3kUo4PzMcUb5XDYw1SHuQ7zhMpRDg==","shasum":"3da761b32c53f32ada7ea31016bc7fbc481a7ca1","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.11.1.tgz","fileCount":96,"unpackedSize":13586529,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH4PoqRn75DrqHUyXT1R7U874ksDRQjIkbi+eFIf2T4fAiEA5b0NLXqUhpJO406xsgYv5HUPQ7d2O+AuNDFXqBx5EfI="}],"size":10495892},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.11.1_1741934421671_0.4557640443721551"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-03-14T06:40:22.497Z","publish_time":1741934422497,"_source_registry_name":"default","contributors":[]},"0.11.2":{"name":"@takram/three-atmosphere","version":"0.11.2","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.2.1","astronomy-engine":"^2.1.19","react-merge-refs":"^2.1.1","three-stdlib":"2.35.14","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.11.2","_integrity":"sha512-I++Ry987+TIvD6TSpn9jfS/x5uxfoth9L1m0NrQ3Rk7TB8elg968YCWpwmJ7kT1YXKuPpHortB+KmTag/Vwd8A==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/b05dcc2061493c6dca909707899a042c/takram-three-atmosphere-0.11.2.tgz","_from":"file:takram-three-atmosphere-0.11.2.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-I++Ry987+TIvD6TSpn9jfS/x5uxfoth9L1m0NrQ3Rk7TB8elg968YCWpwmJ7kT1YXKuPpHortB+KmTag/Vwd8A==","shasum":"175dfdd0fa5cb5568f4696eaaa4a5eeec0095140","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.11.2.tgz","fileCount":96,"unpackedSize":14189304,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDSFQwLT/RiAo9sm2Ht9AvrWR/ME1GfyYLY2h3uu7ReUwIgbt6Ezg8Pj8bxavMa1udr7xWLXjwI5YoFKI2VQ/wMFzw="}],"size":10513276},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.11.2_1747943982440_0.17520291915873298"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-05-22T19:59:42.808Z","publish_time":1747943982808,"_source_registry_name":"default","contributors":[]},"0.12.0":{"name":"@takram/three-atmosphere","version":"0.12.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.2.2","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","three-stdlib":"2.36.0","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.12.0","_integrity":"sha512-SVmzn7Nuwp2V0mHexJoSuK+qSLH+sT4WkaRLS1IuAucnPlDX65j9lHN7AJEhib4kCSG+qspuoiNqOu2IC8vJ0g==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/5211bf4420c8ae21c82cff728a048637/takram-three-atmosphere-0.12.0.tgz","_from":"file:takram-three-atmosphere-0.12.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-SVmzn7Nuwp2V0mHexJoSuK+qSLH+sT4WkaRLS1IuAucnPlDX65j9lHN7AJEhib4kCSG+qspuoiNqOu2IC8vJ0g==","shasum":"36b5b2a318617ea869dc91b57ff03890ad3e58a3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.12.0.tgz","fileCount":101,"unpackedSize":14262428,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCHwF9w4HD6xcepyNC08wIfHQ8RNFX0ry5qEHdLFqiToECIQCca9Z++8fzecWthSdgQGV6+Gso0ZT4EgPCAk3M9D0qRw=="}],"size":10524667},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.12.0_1749692565798_0.9661071889251951"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-06-12T01:42:46.241Z","publish_time":1749692566241,"_source_registry_name":"default","contributors":[]},"0.13.0":{"name":"@takram/three-atmosphere","version":"0.13.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"},"./shaders/bruneton":{"import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs","types":"./types/shaders/bruneton/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.3.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.13.0","_integrity":"sha512-UCyo7PYenX3dOUv7krGizx7HHX+V/LCgZWPeisN6rtErwpGaD0fu6O3NyKI+L2oEAYRzHsemyLd9rwbwXMX/2g==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/1f5c741dd8f07029ecf9e0447dd630b1/takram-three-atmosphere-0.13.0.tgz","_from":"file:takram-three-atmosphere-0.13.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-UCyo7PYenX3dOUv7krGizx7HHX+V/LCgZWPeisN6rtErwpGaD0fu6O3NyKI+L2oEAYRzHsemyLd9rwbwXMX/2g==","shasum":"6768bea3cd96664a1df30b5e24072527a6945323","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.13.0.tgz","fileCount":125,"unpackedSize":36084379,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHnp8siTD8oKFXHQUKczysE+2FoBBO0CpGFsmiPoQjowAiAG5Yf37WgWzUSu82sUPYCVq7xlW1XKiupFAd8zZ2Qj0A=="}],"size":24136593},"_npmUser":{"name":"anonymous","email":"shota@takram.com","actor":{"name":"shotamatsuda","email":"shota@takram.com","type":"user"}},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.13.0_1751670843177_0.06248005532249179"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-04T23:14:03.659Z","publish_time":1751670843659,"_source_registry_name":"default","contributors":[]},"0.13.1":{"name":"@takram/three-atmosphere","version":"0.13.1","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"},"./shaders/bruneton":{"import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs","types":"./types/shaders/bruneton/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.3.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.13.1","_integrity":"sha512-Zc11gOFXLXPCBpioxNwZYp0smLaNt6G02YZaorS74ZNkXlj8q1Kp3a8KQ8Ddxb3tJpbgT+cGmEmzyqCZziIwzw==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/b0fcfa3d0ebfd6b298f71a329a536651/takram-three-atmosphere-0.13.1.tgz","_from":"file:takram-three-atmosphere-0.13.1.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-Zc11gOFXLXPCBpioxNwZYp0smLaNt6G02YZaorS74ZNkXlj8q1Kp3a8KQ8Ddxb3tJpbgT+cGmEmzyqCZziIwzw==","shasum":"fa9dcd127d60b4b1051a26acfd0f64c179809f10","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.13.1.tgz","fileCount":125,"unpackedSize":36681028,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICPl5Wu+AfuxnA5Pc5bBJSVuzq3+LMpM2pEd6p2rl1gpAiEAhPUlJEYUoJT7X4Ds/NvqigC3bjEb6S7RfVdLajs7uiQ="}],"size":24152869},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.13.1_1752439660860_0.8948525579689643"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-13T20:47:41.349Z","publish_time":1752439661349,"_source_registry_name":"default","contributors":[]},"0.13.2":{"name":"@takram/three-atmosphere","version":"0.13.2","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"},"./shaders/bruneton":{"import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs","types":"./types/shaders/bruneton/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.3.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.13.2","_integrity":"sha512-zTYGAw8EhTnYNlnS8Z6NizlUXKPqgPy4R7LMMxvrroWkWi/gnLMa7Fe7dk5GUicgt7Q3N2Fz0Uv3n/Qwbe85/w==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/07e686680e634b6113bcc4406b490622/takram-three-atmosphere-0.13.2.tgz","_from":"file:takram-three-atmosphere-0.13.2.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-zTYGAw8EhTnYNlnS8Z6NizlUXKPqgPy4R7LMMxvrroWkWi/gnLMa7Fe7dk5GUicgt7Q3N2Fz0Uv3n/Qwbe85/w==","shasum":"9bd51f729d49d911f74ca041b0f41c45663b1ee7","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.13.2.tgz","fileCount":125,"unpackedSize":36681986,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/yGPhlr6DyKwQ4dmJrkiibi4ma8mKKWdi4V39SxN9ewIhAKWujs3i3Cl6SQu5ZG+fa6LzFeHJ0Y1NjuCwSMD9TMS8"}],"size":24153047},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.13.2_1752482778834_0.891225094443673"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-07-14T08:46:19.470Z","publish_time":1752482779470,"_source_registry_name":"default","contributors":[]},"0.14.0":{"name":"@takram/three-atmosphere","version":"0.14.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"import":"./build/index.js","require":"./build/index.cjs","types":"./types/index.d.ts"},"./r3f":{"import":"./build/r3f.js","require":"./build/r3f.cjs","types":"./types/r3f/index.d.ts"},"./shaders":{"import":"./build/shaders.js","require":"./build/shaders.cjs","types":"./types/shaders/index.d.ts"},"./shaders/bruneton":{"import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs","types":"./types/shaders/bruneton/index.d.ts"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.4.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.14.0","_integrity":"sha512-AV/db1zwvLlUUCL8YBVilEBW/XMwv2u3JQzWDA03mAxD5Ot0+qXOQo6EiDVKTZeJtW7ijCXcTl+deaYVqGujNg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/ca479222996a59c6c2090df1f60b602e/takram-three-atmosphere-0.14.0.tgz","_from":"file:takram-three-atmosphere-0.14.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-AV/db1zwvLlUUCL8YBVilEBW/XMwv2u3JQzWDA03mAxD5Ot0+qXOQo6EiDVKTZeJtW7ijCXcTl+deaYVqGujNg==","shasum":"dbfc96b735a495f5e3172f08317465511ee1a223","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.14.0.tgz","fileCount":125,"unpackedSize":36687048,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHwRwE1mNWjv470fphPKX6I24h/M9LihSmgKICMG/BKPAiBk8KJ/+lEDqpMS8Fr20OKWKheO9fh2LxuPzvaT7OrQ7Q=="}],"size":24155215},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.14.0_1755545622931_0.4066688229400064"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-08-18T19:33:43.404Z","publish_time":1755545623404,"_source_registry_name":"default","contributors":[]},"0.15.0":{"name":"@takram/three-atmosphere","version":"0.15.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"types":"./types/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./r3f":{"types":"./types/r3f/index.d.ts","import":"./build/r3f.js","require":"./build/r3f.cjs"},"./shaders":{"types":"./types/shaders/index.d.ts","import":"./build/shaders.js","require":"./build/shaders.cjs"},"./shaders/bruneton":{"types":"./types/shaders/bruneton/index.d.ts","import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs"},"./webgpu":{"types":"./types/webgpu/index.d.ts","import":"./build/webgpu.js","require":"./build/webgpu.cjs"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.5.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.15.0","_integrity":"sha512-Ak/HXvkxW8Xp1AOXasmQNKeBA3lLKaEeOaSZtsaq3NoYNFs8bIch1UaFfe+wrxdh1FHZMcQVsSOSlbilazxIag==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/11d243b83d23083d5ab8e7ac8bffdea2/takram-three-atmosphere-0.15.0.tgz","_from":"file:takram-three-atmosphere-0.15.0.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-Ak/HXvkxW8Xp1AOXasmQNKeBA3lLKaEeOaSZtsaq3NoYNFs8bIch1UaFfe+wrxdh1FHZMcQVsSOSlbilazxIag==","shasum":"1ae33132ef0393fdcf3d8da368518243c9e95f1c","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.15.0.tgz","fileCount":173,"unpackedSize":36727807,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH8Ju4MbayPZr8P0PDHQKg3DMYw2TjMB4K6nzsmcu0iRAiBkMjnxbHTG6Zl1MK20aUS5NIA2eu/lcTkDlBm0OqHOdQ=="}],"size":24278861},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.15.0_1761987714087_0.15912090817457814"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-01T09:01:54.575Z","publish_time":1761987714575,"_source_registry_name":"default","contributors":[]},"0.15.1":{"name":"@takram/three-atmosphere","version":"0.15.1","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"types":"./types/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./r3f":{"types":"./types/r3f/index.d.ts","import":"./build/r3f.js","require":"./build/r3f.cjs"},"./shaders":{"types":"./types/shaders/index.d.ts","import":"./build/shaders.js","require":"./build/shaders.cjs"},"./shaders/bruneton":{"types":"./types/shaders/bruneton/index.d.ts","import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs"},"./webgpu":{"types":"./types/webgpu/index.d.ts","import":"./build/webgpu.js","require":"./build/webgpu.cjs"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.5.1","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.15.1","_integrity":"sha512-+ocmaP8H0wMkiFuMq3Jaoc6Pxpu+TL7VSspEJTzl+DLFV3PAsxn59VlY1rCNj0/PWwCpYdNHtHTML4CIIL8uBw==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/2beff0cb58ede0986e14a42919c5e71a/takram-three-atmosphere-0.15.1.tgz","_from":"file:takram-three-atmosphere-0.15.1.tgz","_nodeVersion":"22.12.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-+ocmaP8H0wMkiFuMq3Jaoc6Pxpu+TL7VSspEJTzl+DLFV3PAsxn59VlY1rCNj0/PWwCpYdNHtHTML4CIIL8uBw==","shasum":"1c40bfd79930f4ef1531994ccb18c7e018aac07b","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.15.1.tgz","fileCount":173,"unpackedSize":36718717,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCpnzqudLq2stdY1IiURDJEcQ2bKsFwHrGkZuVh0qaqhQIgUmuQMgVKl0JFC9csquCHBA11RVqCY9LacgonMbZB/Aw="}],"size":24276478},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.15.1_1761990739803_0.34503820291224874"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-01T09:52:20.317Z","publish_time":1761990740317,"_source_registry_name":"default","contributors":[]},"0.16.0":{"name":"@takram/three-atmosphere","version":"0.16.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"types":"./types/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./r3f":{"types":"./types/r3f/index.d.ts","import":"./build/r3f.js","require":"./build/r3f.cjs"},"./shaders":{"types":"./types/shaders/index.d.ts","import":"./build/shaders.js","require":"./build/shaders.cjs"},"./shaders/bruneton":{"types":"./types/shaders/bruneton/index.d.ts","import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs"},"./webgpu":{"types":"./types/webgpu/index.d.ts","import":"./build/webgpu.js","require":"./build/webgpu.cjs"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.6.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.16.0","_integrity":"sha512-CKE9qi0e6LO2esILXsjC6VeENHTVcy8MyFv9CmCsQuBRNXPj92HccJhO4CV9xpEdBajbukvK1HSrVfvrbaomQw==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/687ec95c3f68d58b8fc090af003896cd/takram-three-atmosphere-0.16.0.tgz","_from":"file:takram-three-atmosphere-0.16.0.tgz","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-CKE9qi0e6LO2esILXsjC6VeENHTVcy8MyFv9CmCsQuBRNXPj92HccJhO4CV9xpEdBajbukvK1HSrVfvrbaomQw==","shasum":"ce7e3e8203e1051bd993387e4c36f4661a21f149","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.16.0.tgz","fileCount":173,"unpackedSize":36718658,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAXx0YPUyRr+1O9Dvs9cuD0oEJudvbZmzJKWfAM2jU4EAiEA3Ujfl+z2GCtxU3a3PxLQ6ooBQGy4yyolWdwQrcsaVFY="}],"size":24276694},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.16.0_1766553344386_0.9065350344589709"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-24T05:15:45.245Z","publish_time":1766553345245,"_source_registry_name":"default","contributors":[]},"0.17.0":{"name":"@takram/three-atmosphere","version":"0.17.0","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"types":"./types/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./r3f":{"types":"./types/r3f/index.d.ts","import":"./build/r3f.js","require":"./build/r3f.cjs"},"./shaders":{"types":"./types/shaders/index.d.ts","import":"./build/shaders.js","require":"./build/shaders.cjs"},"./shaders/bruneton":{"types":"./types/shaders/bruneton/index.d.ts","import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs"},"./webgpu":{"types":"./types/webgpu/index.d.ts","import":"./build/webgpu.js","require":"./build/webgpu.cjs"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.7.0","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.38.0","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.17.0","_integrity":"sha512-Ai4dbxCjUkqPYCc4up+yevHERyVhT4m63qYUbX9wLFqooikdsEQhjeMUgSwXR2gMf9++9MbbKMjX66/giavUQg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/4ce8c80382f0d98c6661a63378298611/takram-three-atmosphere-0.17.0.tgz","_from":"file:takram-three-atmosphere-0.17.0.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-Ai4dbxCjUkqPYCc4up+yevHERyVhT4m63qYUbX9wLFqooikdsEQhjeMUgSwXR2gMf9++9MbbKMjX66/giavUQg==","shasum":"0e32c7280d678e2359c24b21a782311a29544b0e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.17.0.tgz","fileCount":171,"unpackedSize":36710358,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID+qeUU1OpzZQTwePOE9ZlPJWVdnQx58IlVZeTSxsotXAiEAyzBnIwVaq3TqbewysqXbDdfYatqn/vaAVuUU2dBTs8c="}],"size":24274921},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.17.0_1773041468285_0.9826396246782503"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-09T07:31:09.041Z","publish_time":1773041469041,"_source_registry_name":"default","contributors":[]},"0.17.1":{"name":"@takram/three-atmosphere","version":"0.17.1","description":"A Three.js and R3F implementation of Precomputed Atmospheric Scattering","keywords":["three","three.js","geospatial","atmosphere","sun","sky"],"homepage":"https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/atmosphere","bugs":{"url":"https://github.com/takram-design-engineering/three-geospatial/issues"},"repository":{"type":"git","url":"git+https://github.com/takram-design-engineering/three-geospatial.git"},"license":"MIT","author":{"name":"Shota Matsuda","email":"shota@takram.com"},"type":"module","exports":{".":{"types":"./types/index.d.ts","import":"./build/index.js","require":"./build/index.cjs"},"./r3f":{"types":"./types/r3f/index.d.ts","import":"./build/r3f.js","require":"./build/r3f.cjs"},"./shaders":{"types":"./types/shaders/index.d.ts","import":"./build/shaders.js","require":"./build/shaders.cjs"},"./shaders/bruneton":{"types":"./types/shaders/bruneton/index.d.ts","import":"./build/shaders/bruneton.js","require":"./build/shaders/bruneton.cjs"},"./webgpu":{"types":"./types/webgpu/index.d.ts","import":"./build/webgpu.js","require":"./build/webgpu.cjs"}},"main":"./build/index.cjs","module":"./build/index.js","types":"./types/index.d.ts","dependencies":{"@takram/three-geospatial":"0.7.1","astronomy-engine":"^2.1.19","react-merge-refs":"^3.0.2","tiny-invariant":"^1.3.3","url-join":"^5.0.0"},"peerDependencies":{"@react-three/drei":">=10.0.2","@react-three/fiber":">=9.0.4","@react-three/postprocessing":">=3.0.4","postprocessing":">=6.36.7","react":">=19.0","three":">=0.170.0"},"peerDependenciesMeta":{"@react-three/drei":{"optional":true},"@react-three/fiber":{"optional":true},"@react-three/postprocessing":{"optional":true},"react":{"optional":true}},"publishConfig":{"access":"public"},"_id":"@takram/three-atmosphere@0.17.1","_integrity":"sha512-aLRyBU4vtudKLxAIq+akx6MuPEaAa2QT7dEAnenQjrpgvIjXUn+u5nwAuhTRSo3Cp/HgpGLWJovaGl9Kxi7pBg==","_resolved":"/private/var/folders/dp/36650_jx1svgxp8b1h1bwjlh0000gn/T/3142c5d8841de517fc300d8a16b5a71e/takram-three-atmosphere-0.17.1.tgz","_from":"file:takram-three-atmosphere-0.17.1.tgz","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-aLRyBU4vtudKLxAIq+akx6MuPEaAa2QT7dEAnenQjrpgvIjXUn+u5nwAuhTRSo3Cp/HgpGLWJovaGl9Kxi7pBg==","shasum":"1f681d9b203808f7540b5d30028e876353fce32d","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@takram/three-atmosphere/-/three-atmosphere-0.17.1.tgz","fileCount":171,"unpackedSize":36710872,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFfEFycpp42skGppoPfT6pEHb6RsFetQQXQAzqYp81vpAiEA4AQnnEmFHHnBT0TgP59IQF8xD1VdYzXGYm+cLttx584="}],"size":24275018},"_npmUser":{"name":"anonymous","email":"shota@takram.com"},"directories":{},"maintainers":[{"name":"anonymous","email":"shota@takram.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/three-atmosphere_0.17.1_1774204707381_0.3258597838053585"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-22T18:38:28.113Z","publish_time":1774204708113,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"0.17.1"},"name":"@takram/three-atmosphere","time":{"created":"2024-11-30T13:59:58.613Z","modified":"2026-03-22T18:38:42.943Z","0.0.1":"2024-11-30T13:58:13.479Z","0.0.2":"2024-12-03T10:05:51.692Z","0.1.0":"2024-12-06T00:56:03.693Z","0.2.0":"2024-12-09T17:23:03.337Z","0.3.0":"2024-12-11T14:20:16.420Z","0.4.0":"2024-12-15T09:02:32.709Z","0.5.0":"2024-12-19T03:22:31.292Z","0.6.0":"2025-01-18T15:11:09.881Z","0.7.0":"2025-02-01T21:45:57.439Z","0.7.1":"2025-02-11T03:35:53.066Z","0.8.0":"2025-02-12T05:59:47.297Z","0.9.0":"2025-02-23T04:46:59.154Z","0.10.0":"2025-03-02T02:33:53.120Z","0.10.1":"2025-03-09T08:17:10.228Z","0.10.2":"2025-03-09T08:43:34.912Z","0.11.0":"2025-03-09T08:44:51.613Z","0.10.3":"2025-03-14T06:29:35.308Z","0.11.1":"2025-03-14T06:40:22.497Z","0.11.2":"2025-05-22T19:59:42.808Z","0.12.0":"2025-06-12T01:42:46.241Z","0.13.0":"2025-07-04T23:14:03.659Z","0.13.1":"2025-07-13T20:47:41.349Z","0.13.2":"2025-07-14T08:46:19.470Z","0.14.0":"2025-08-18T19:33:43.404Z","0.15.0":"2025-11-01T09:01:54.575Z","0.15.1":"2025-11-01T09:52:20.317Z","0.16.0":"2025-12-24T05:15:45.245Z","0.17.0":"2026-03-09T07:31:09.041Z","0.17.1":"2026-03-22T18:38:28.113Z"},"readme":"# @takram/three-atmosphere\n\n[![npm version](https://img.shields.io/npm/v/@takram/three-atmosphere.svg?style=flat-square)](https://www.npmjs.com/package/@takram/three-atmosphere) [![Storybook](https://img.shields.io/badge/-Storybook-FF4785?style=flat-square&logo=storybook&logoColor=white)](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-atmosphere--basic)\n\nA Three.js and R3F (React Three Fiber) implementation of Eric Bruneton's [Precomputed Atmospheric Scattering](https://ebruneton.github.io/precomputed_atmospheric_scattering/).\n\nThis library is part of a project to prototype the rendering aspect of a Web GIS engine. For more details on the background and current status of this project, please refer to the [main README](/README.md).\n\n**For WebGPU / TSL usage, see [the separate documentation](WEBGPU.md)**\n\n## Installation\n\n```sh\nnpm install @takram/three-atmosphere\npnpm add @takram/three-atmosphere\nyarn add @takram/three-atmosphere\n```\n\nPeer dependencies include `three` and `postprocessing`, as well as `@react-three/fiber`, `@react-three/postprocessing`, and `@react-three/drei` when using R3F.\n\n```\nthree postprocessing\n@react-three/fiber @react-three/postprocessing @react-three/drei\n```\n\n## Usage\n\n### Post-process lighting\n\nSuitable for large-scale scenes, but supports only Lambertian BRDF.\n\nLighting is applied in [`AerialPerspectiveEffect`](#aerialperspectiveeffect). Materials must be unlit (e.g. `MeshBasicMaterial`) and the render buffer is considered albedo.\n\n```tsx\nimport { EffectComposer } from '@react-three/postprocessing'\nimport {\n  AerialPerspective,\n  Atmosphere,\n  Sky\n} from '@takram/three-atmosphere/r3f'\n\nconst Scene = () => (\n  <Atmosphere date={/* Date object or timestamp */}>\n    <Sky />\n    <mesh>\n      <meshBasicMaterial />\n    </mesh>\n    <EffectComposer enableNormalPass>\n      <AerialPerspective sunLight skyLight />\n    </EffectComposer>\n  </Atmosphere>\n)\n```\n\n![Example of post-process lighting](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/manhattan.jpg)\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-3d-tiles-renderer-integration--manhattan)\n\n![Example of post-process lighting](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/fuji.jpg)\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-3d-tiles-renderer-integration--fuji)\n\n### Light-source lighting\n\nCompatible with built-in Three.js materials and shadows, but both direct and indirect irradiance are approximated only for small-scale scenes.\n\nObjects are lit by [`SunDirectionalLight`](#sundirectionallight), [`SkyLightProbe`](#skylightprobe), and possibly other light sources.\n\n```tsx\nimport { EffectComposer } from '@react-three/postprocessing'\nimport {\n  AerialPerspective,\n  Atmosphere,\n  Sky,\n  SkyLight,\n  SunLight\n} from '@takram/three-atmosphere/r3f'\n\nconst Scene = () => (\n  <Atmosphere date={/* Date object or timestamp */}>\n    <Sky />\n    <group position={/* ECEF coordinate in meters */}>\n      <SkyLight />\n      <SunLight />\n    </group>\n    <mesh>\n      <meshPhysicalMaterial />\n    </mesh>\n    <EffectComposer>\n      <AerialPerspective />\n    </EffectComposer>\n  </Atmosphere>\n)\n```\n\n![Example of light-source lighting](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/littlest-tokyo.jpg)\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-atmosphere--moving-ellipsoid)\n\n### Mixed lighting\n\nSelectively applies the post-process and light-source lighting using [`LightingMaskPass`](#lightingmaskpass) or an MRT texture. It combines the advantages of both, but transparency over the post-process lighting is not supported.\n\n```tsx\nimport { EffectComposer } from '@react-three/postprocessing'\nimport {\n  AerialPerspective,\n  Atmosphere,\n  LightingMask,\n  Sky,\n  SkyLight,\n  SunLight\n} from '@takram/three-atmosphere/r3f'\nimport { Layers } from 'three'\n\nconst LIGHTING_MASK_LAYER = 10\nconst layers = new Layers()\nlayers.enable(LIGHTING_MASK_LAYER)\n\nconst Scene = () => (\n  <Atmosphere date={/* Date object or timestamp */}>\n    <Sky />\n    <group position={/* ECEF coordinate in meters */}>\n      <SkyLight />\n      <SunLight />\n    </group>\n    <mesh>\n      {/* This mesh is lit in post-process. */}\n      <meshBasicMaterial />\n    </mesh>\n    <mesh layers={layers}>\n      {/* This mesh is lit by light sources. */}\n      <meshPhysicalMaterial />\n    </mesh>\n    <EffectComposer enableNormalPass>\n      <LightingMask selectionLayer={LIGHTING_MASK_LAYER} />\n      <AerialPerspective sunLight skyLight />\n    </EffectComposer>\n  </Atmosphere>\n)\n```\n\n![Example of mixed lighting](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/iss.jpg)\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-atmosphere--lighting-mask)\n\n### Transient update by date\n\n```tsx\nimport { useFrame } from '@react-three/fiber'\nimport {\n  Atmosphere,\n  Sky,\n  type AtmosphereApi\n} from '@takram/three-atmosphere/r3f'\nimport { useRef } from 'react'\n\nconst Scene = () => {\n  const atmosphereRef = useRef<AtmosphereApi>(null)\n  useFrame(() => {\n    atmosphereRef.current?.updateByDate(new Date())\n  })\n  return (\n    <Atmosphere ref={atmosphereRef}>\n      <Sky />\n      ...\n    </Atmosphere>\n  )\n}\n```\n\n### Vanilla Three.js\n\nSee the [story](/storybook/src/atmosphere/Atmosphere-Vanilla.tsx) for complete example.\n\n```ts\nconst position = new Vector3(/* ECEF coordinate in meters */)\n\n// SkyMaterial disables projection. Provide a plane that covers clip space.\nconst skyMaterial = new SkyMaterial()\nconst sky = new Mesh(new PlaneGeometry(2, 2), skyMaterial)\nsky.frustumCulled = false\nsky.position.copy(position)\nscene.add(sky)\n\n// SkyLightProbe computes sky irradiance of its position.\nconst skyLight = new SkyLightProbe()\nskyLight.position.copy(position)\nscene.add(skyLight)\n\n// SunDirectionalLight computes sunlight transmittance to its target position.\nconst sunLight = new SunDirectionalLight()\nsunLight.target.position.copy(position)\nscene.add(sunLight)\nscene.add(sunLight.target)\n\n// Demonstrates light-source lighting here. For post-process lighting, set\n// sunLight and skyLight to true, remove SkyLightProbe and\n// SunDirectionalLight, and provide a normal buffer to AerialPerspectiveEffect.\nconst aerialPerspective = new AerialPerspectiveEffect(camera)\n\n// Use floating-point render buffer, as radiance/luminance is stored here.\nconst composer = new EffectComposer(renderer, {\n  frameBufferType: HalfFloatType\n})\ncomposer.addPass(new RenderPass(scene, camera))\ncomposer.addPass(\n  new EffectPass(\n    camera,\n    aerialPerspective,\n    new ToneMappingEffect({ mode: ToneMappingMode.AGX })\n  )\n)\n\nconst generator = new PrecomputedTexturesGenerator(renderer)\ngenerator.update().catch((error: unknown) => {\n  console.error(error)\n})\n\nconst { textures } = generator\nObject.assign(skyMaterial, textures)\nsunLight.transmittanceTexture = textures.transmittanceTexture\nskyLight.irradianceTexture = textures.irradianceTexture\nObject.assign(aerialPerspective, textures)\n\nconst sunDirection = new Vector3()\nconst moonDirection = new Vector3()\n\nfunction render(): void {\n  // Suppose `date` is updated elsewhere.\n  getSunDirectionECEF(date, sunDirection)\n  getMoonDirectionECEF(date, moonDirection)\n\n  skyMaterial.sunDirection.copy(sunDirection)\n  skyMaterial.moonDirection.copy(moonDirection)\n  sunLight.sunDirection.copy(sunDirection)\n  skyLight.sunDirection.copy(sunDirection)\n  aerialPerspective.sunDirection.copy(sunDirection)\n\n  sunLight.update()\n  skyLight.update()\n  composer.render()\n}\n```\n\n## Limitations\n\n- The reference frame is fixed to ECEF and cannot be configured, [#11](https://github.com/takram-design-engineering/three-geospatial/issues/11).\n\n- The aerial perspective (specifically the inscatter term) includes a [workaround for the horizon artifact](https://github.com/ebruneton/precomputed_atmospheric_scattering/pull/32#issuecomment-480523982), but due to finite floating-point precision, this artifact cannot be removed completely.\n\n- Volumetric light shaft is not implemented as it requires ray tracing or an additional depth pass from the sun. You may notice scattered light is not occluded by scene objects.\n\n- Although you can generate custom precomputed textures, the implementation is effectively limited to Earth's atmosphere. For rendering atmospheres of other planets, consider implementing Sébastien Hillaire's [A Scalable and Production Ready Sky and Atmosphere Rendering Technique](https://sebh.github.io/publications/egsr2020.pdf).\n\n- Currently developed using GLSL. It does not use node-based TSL yet, and WebGPU is not supported, but both are planned.\n\n## Note on lighting methods\n\nI have observed some confusion between the _post-process lighting_ and _light-source lighting_. This is a follow-up note.\n\nThe _post-process lighting_ represents the correct lighting model, except that the current implementation only supports the Lambertian BRDF. Surfaces are lit in the post-processing stage by [`AerialPerspectiveEffect`](#aerialperspectiveeffect) when [`sunLight` and `skyLight`](#sunlight-skylight) are enabled. It could support various BRDFs if we could afford deferred rendering, but not quite yet, especially without TSL.\n\nPixel values in the render buffer (the output of [`RenderPass`](https://pmndrs.github.io/postprocessing/public/docs/class/src/passes/RenderPass.js~RenderPass.html)) are considered _surface albedo_ and are usually rendered using [`MeshBasicMaterial`](https://threejs.org/docs/#api/en/materials/MeshBasicMaterial). `MeshBasicMaterial` is an unlit material and is not affected by light sources in the scene.\n\nThe _light-source lighting_ approximates the post-process lighting by taking the incoming radiance computed at a single point in the scene using [`SunDirectionalLight`](#sundirectionallight) and [`SkyLightProbe`](#skylightprobe) and applying it to every point in the scene.\n\nIt offers other BRDFs using built-in materials such as [`MeshPhysicalMaterial`](https://threejs.org/docs/#api/en/materials/MeshPhysicalMaterial). Such materials are lit materials, and their outgoing radiance (lit by light sources) is stored in the render buffer (completely black if there are no light sources), so they cannot be considered surface albedo.\n\nFortunately, since `MeshBasicMaterial` is always unlit regardless of light sources, we can store both albedo and lit surface radiance information in a single render buffer. This will produce the correct results if we enable `sunLight` and `skyLight` only for albedo pixels. That's the purpose of [`LightingMaskPass`](#lightingmaskpass).\n\nRules of thumb:\n\n- Use `MeshBasicMaterial` under _post-process lighting_.\n- Any materials can be used under _light-source lighting_.\n- Don't enable `sunLight` or `skyLight` on `AerialPerspectiveEffect` when using `SunDirectionalLight` and `SkyLightProbe`, unless correctly masked using `LightingMaskPass`.\n\n# API\n\nThe underlying concepts of these components and classes might be a bit complex. If you have any questions, feel free to ask in the Issues or Discussions.\n\n**Interfaces**\n\n- [`PrecomputedTextures`](#precomputedtextures)\n\n**R3F components**\n\n- [`Atmosphere`](#atmosphere)\n- [`Sky`](#sky)\n- [`Stars`](#stars)\n- [`SkyLight`](#skylight)\n- [`SunLight`](#sunlight)\n- [`AerialPerspective`](#aerialperspective)\n- [`LightingMask`](#lightingmask)\n\n**Three.js**\n\n- [`AtmosphereMaterialBase`](#atmospherematerialbase)\n- [`SkyMaterial`](#skymaterial)\n- [`StarsMaterial`](#starsmaterial)\n- [`SkyLightProbe`](#skylightprobe)\n- [`SunDirectionalLight`](#sundirectionallight)\n- [`AerialPerspectiveEffect`](#aerialperspectiveeffect)\n- [`LightingMaskPass`](#lightingmaskpass)\n- [`PrecomputedTexturesGenerator`](#precomputedtexturesgenerator)\n- [`PrecomputedTexturesLoader`](#precomputedtexturesloader)\n\n**Functions**\n\n- [`getSunDirectionECEF`](#getsundirectionecef-getmoondirectionecef)\n- [`getMoonDirectionECEF`](#getsundirectionecef-getmoondirectionecef)\n- [`getECIToECEFRotationMatrix`](#getecitoecefrotationmatrix)\n- [`getSunLightColor`](#getsunlightcolor)\n\n## PrecomputedTextures\n\nAn interface for the collection of precomputed textures.\n\n```ts\ninterface PrecomputedTextures {\n  irradianceTexture: Texture\n  scatteringTexture: Data3DTexture\n  transmittanceTexture: Texture\n  singleMieScatteringTexture?: Data3DTexture\n  higherOrderScatteringTexture?: Data3DTexture\n}\n```\n\n### Properties\n\n#### transmittanceTexture\n\nA 2D LUT texture that contains the transmittance between an arbitrary point in the atmosphere and the atmosphere's top boundary. The LUT is parameterized by view height and the angle between view direction and zenith.\n\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-building-blocks--transmittance)\n\n#### scatteringTexture\n\nA 4D LUT packed into a 3D texture. It contains the Rayleigh scattering and the red component of single Mie scattering terms. The LUT is parameterized by view height, the angle between view direction and zenith, the angle between sun direction and zenith, and the angle between view and sun direction.\n\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-building-blocks--scattering)\n\n#### irradianceTexture\n\nA 2D LUT texture that contains the indirect irradiance on horizontal surfaces. The LUT is parameterized by view height and the angle between sun direction and zenith.\n\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-building-blocks--irradiance)\n\n#### singleMieScatteringTexture\n\nAn optional LUT texture that contains the full RGB components of the single Mie scattering term. This might reduce artifacts when the red component of the single Mie scattering term is very small.\n\nThis texture is not required until you encounter problems.\n\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-building-blocks--single-mie-scattering)\n\n#### higherOrderScatteringTexture\n\nAn optional LUT texture that contains only higher-order (N ≥ 2) scattering terms. By using this information, it can attenuate only single scattering in the shadowed segments of rays.\n\nThis texture is not required unless you have shadow length information, or you use the [clouds package](https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/clouds) with the [`lightShafts`](https://github.com/takram-design-engineering/three-geospatial/tree/main/packages/clouds#lightshafts) option enabled.\n\n→ [Storybook](https://takram-design-engineering.github.io/three-geospatial/?path=/story/atmosphere-building-blocks--higher-order-scattering)\n\n## Atmosphere\n\nProvides and synchronizes props of atmosphere components. It's the recommended way to configure components unless you need finer control over properties of individual components.\n\n→ [Source](/packages/atmosphere/src/r3f/Atmosphere.tsx)\n\n```tsx\nimport { useFrame, useLoader, useThree } from '@react-three/fiber'\nimport {\n  DEFAULT_PRECOMPUTED_TEXTURES_URL,\n  PrecomputedTexturesLoader\n} from '@takram/three-atmosphere'\nimport {\n  Atmosphere,\n  Sky,\n  type AtmosphereApi\n} from '@takram/three-atmosphere/r3f'\nimport { useRef } from 'react'\n\nconst loader = new PrecomputedTexturesLoader()\n\nconst Scene = () => {\n  const atmosphereRef = useRef<AtmosphereApi>(null)\n  useFrame(() => {\n    // Computes sun direction, moon direction and ECI to ECEF rotation\n    // matrix by the date, then propagates them to descendant components via\n    // context.\n    atmosphereRef.current?.updateByDate(new Date())\n  })\n\n  const renderer = useThree(({ gl }) => gl)\n  const textures = useLoader(\n    loader.setType(renderer),\n    DEFAULT_PRECOMPUTED_TEXTURES_URL\n  )\n  return (\n    <Atmosphere ref={atmosphereRef} {...textures}>\n      <Sky />\n      ...\n    </Atmosphere>\n  )\n}\n```\n\n### Props\n\n#### textures\n\n```ts\ntextures: PrecomputedTextures | string = undefined\n```\n\nThe [precomputed textures](#precomputedtextures), or a URL to the directory containing them.\n\nIf left undefined, the textures will be generated using [`PrecomputedTexturesGenerator`](#precomputedtexturesgenerator).\n\n#### ellipsoid\n\n```ts\nellipsoid: Ellipsoid = Ellipsoid.WGS84\n```\n\nThe ellipsoid model representing Earth.\n\n#### correctAltitude\n\n```ts\ncorrectAltitude: boolean = true\n```\n\nWhether to adjust the atmosphere's inner sphere to osculate (touch and share a tangent with) the ellipsoid.\n\nThe atmosphere is approximated as a sphere, with a radius between the ellipsoid's major and minor axes. The difference can exceed 10,000 meters in worst cases, roughly equal to the cruising altitude of a passenger jet. This option compensates for this difference.\n\nAn example at an altitude of 2,000 meters and a latitude of 35°:\n\n<!-- prettier-ignore -->\n| `correctAltitude = false` | `correctAltitude = true` |\n| :-: | :-: |\n| ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/altitude-correction-false.jpg) | ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/altitude-correction-true.jpg) |\n\n#### date\n\n```ts\ndate: number | Date = undefined\n```\n\nSpecifies the date used to obtain the directions of the sun, moon, and ECI to ECEF rotation matrix.\n\nThe behavior when used together with the [`updateByDate`](#updatebydate) function is not defined.\n\n### Ref\n\n#### sunDirection, moonDirection\n\n```ts\nsunDirection: Vector3\nmoonDirection: Vector3\n```\n\nThe normalized direction to the sun and moon in ECEF coordinates. This value is shared with descendant components and is overwritten by the [`date`](#date) prop or the [`updateByDate`](#updatebydate) function.\n\nThe default values are [0, 0, 0].\n\n#### inertialToECEFMatrix\n\n```ts\ninertialToECEFMatrix: Matrix4\n```\n\nThe rotation matrix for converting ECI to ECEF coordinates. This value is shared with descendant components and is overwritten by the [`date`](#date) prop or the [`updateByDate`](#updatebydate) function.\n\nThe default value is an identity matrix.\n\n#### worldToECEFMatrix\n\n```ts\nworldToECEFMatrix: Matrix4\n```\n\nThe matrix for converting world coordinates to ECEF coordinates. Use this matrix to define a reference frame or, more commonly, to orient the ellipsoid for working near the world space origin and adapting to Three.js's Y-up coordinate system.\n\nThe default value is an identity matrix, and it must be orthogonal and consist only of translation and rotation (no scaling).\n\n```ts\nimport { type AtmosphereApi } from '@takram/three-atmosphere/r3f'\nimport { Ellipsoid } from '@takram/three-geospatial'\nimport { Vector3 } from 'three'\n\nconst position = new Vector3(/* ECEF coordinate in meters */)\nconst east = new Vector3()\nconst north = new Vector3()\nconst up = new Vector3()\n\ndeclare const atmosphere: AtmosphereApi\n\n// Move and rotate the ellipsoid so that the world space origin locates at\n// the given geographic coordinate, and the scene's orientation aligns with\n// X: north, Y: up, Z: east, for example.\nEllipsoid.WGS84.getEastNorthUpVectors(position, east, north, up)\natmosphere.worldToECEFMatrix.makeBasis(north, up, east).setPosition(position)\n\n// Alternatively in this case, simply:\nEllipsoid.WGS84.getNorthUpEastFrame(position, atmosphere.worldToECEFMatrix)\n```\n\nSee the [story](/storybook/src/atmosphere/Atmosphere-WorldOriginRebasing.tsx) for complete example.\n\n#### updateByDate\n\n```ts\nfunction updateByDate(date: number | Date): void\n```\n\nUpdates the directions of the sun, moon, and the ECI to ECEF rotation matrix for the specified date. Use this function via the `ref` instead of the `date` prop if you want to update it smoothly.\n\nThe behavior when used together with the `date` prop is not defined.\n\n## Sky\n\nDisplays the sky in a screen quad.\n\nSee [`SkyMaterial`](#skymaterial) for further details.\n\n→ [Source](/packages/atmosphere/src/r3f/Sky.tsx)\n\n```tsx\nimport { useLoader } from '@react-three/fiber'\nimport {\n  getMoonDirectionECEF,\n  getSunDirectionECEF\n} from '@takram/three-atmosphere'\nimport { Sky } from '@takram/three-atmosphere/r3f'\n\nconst sunDirection = getSunDirectionECEF(/* Date object or timestamp */)\nconst moonDirection = getMoonDirectionECEF(/* Date object or timestamp */)\n\nconst Scene = () => (\n  <Sky sunDirection={sunDirection} moonDirection={moonDirection} />\n)\n```\n\n### Props\n\nThe parameters of [`AtmosphereMaterialBase`](#atmospherematerialbase) and [`SkyMaterial`](#skymaterial) are exposed as props.\n\n## Stars\n\nRepresents the brightest stars as points at an infinite distance.\n\nSee [`StarsMaterial`](#starsmaterial) for further details.\n\n→ [Source](/packages/atmosphere/src/r3f/Stars.tsx)\n\n```tsx\nimport { useLoader } from '@react-three/fiber'\nimport {\n  getECIToECEFRotationMatrix,\n  getSunDirectionECEF\n} from '@takram/three-atmosphere'\nimport { Stars } from '@takram/three-atmosphere/r3f'\nimport { ArrayBufferLoader } from '@takram/three-geospatial'\n\nconst sunDirection = getSunDirectionECEF(/* Date object or timestamp */)\nconst inertialToECEFMatrix =\n  getECIToECEFRotationMatrix(/* Date object or timestamp */)\n\nconst Scene = () => {\n  const starsData = useLoader(ArrayBufferLoader, '/assets/stars.bin')\n  return (\n    <Stars\n      data={starsData}\n      sunDirection={sunDirection}\n      matrix={inertialToECEFMatrix}\n    />\n  )\n}\n```\n\n### Props\n\nThe parameters of [`AtmosphereMaterialBase`](#atmospherematerialbase) and [`StarsMaterial`](#starsmaterial) are also exposed as props.\n\n#### data\n\n```ts\ndata: ArrayBuffer | string = DEFAULT_STARS_DATA_URL\n```\n\nThe data containing the position and magnitude of the stars, or a URL to it.\n\nIf left undefined, the data will be loaded directly from GitHub.\n\n## SkyLight\n\nA light probe for indirect sky irradiance.\n\nSee [`SkyLightProbe`](#skylightprobe) for further details.\n\n→ [Source](/packages/atmosphere/src/r3f/SkyLight.tsx)\n\n```tsx\nimport { useLoader, useLoader, useThree } from '@react-three/fiber'\nimport {\n  DEFAULT_PRECOMPUTED_TEXTURES_URL,\n  getSunDirectionECEF,\n  PrecomputedTexturesLoader\n} from '@takram/three-atmosphere'\nimport { SkyLight } from '@takram/three-atmosphere/r3f'\nimport { DataTexture, Vector3 } from 'three'\n\nconst position = new Vector3(/* ECEF coordinate in meters */)\nconst sunDirection = getSunDirectionECEF(/* Date object or timestamp */)\n\nconst loader = new PrecomputedTexturesLoader()\n\nconst Scene = () => {\n  const renderer = useThree(({ gl }) => gl)\n  const { irradianceTexture } = useLoader(\n    loader.setType(renderer),\n    DEFAULT_PRECOMPUTED_TEXTURES_URL\n  )\n  return (\n    <SkyLight\n      irradianceTexture={irradianceTexture}\n      position={position}\n      sunDirection={sunDirection}\n    />\n  )\n}\n```\n\n### Props\n\nThe parameters of [`SkyLightProbe`](#skylightprobe) are exposed as props.\n\n## SunLight\n\nA directional light representing the sun.\n\nSee [`SunDirectionalLight`](#directionalsunlight) for further details.\n\n→ [Source](/packages/atmosphere/src/r3f/SunLight.tsx)\n\n```tsx\nimport { useLoader, useLoader, useThree } from '@react-three/fiber'\nimport {\n  DEFAULT_PRECOMPUTED_TEXTURES_URL,\n  getSunDirectionECEF,\n  PrecomputedTexturesLoader\n} from '@takram/three-atmosphere'\nimport { SunLight } from '@takram/three-atmosphere/r3f'\nimport { DataTexture, Vector3 } from 'three'\n\nconst position = new Vector3(/* ECEF coordinate in meters */)\nconst sunDirection = getSunDirectionECEF(/* Date object or timestamp */)\n\nconst loader = new PrecomputedTexturesLoader()\n\nconst Scene = () => {\n  const renderer = useThree(({ gl }) => gl)\n  const { transmittanceTexture } = useLoader(\n    loader.setType(renderer),\n    DEFAULT_PRECOMPUTED_TEXTURES_URL\n  )\n  return (\n    <SunLight\n      transmittanceTexture={transmittanceTexture}\n      position={position}\n      sunDirection={sunDirection}\n    />\n  )\n}\n```\n\n### Props\n\nThe parameters of [`SunDirectionalLight`](#directionalsunlight) are exposed as props.\n\n## AerialPerspective\n\nA post-processing effect that renders atmospheric transparency and inscattered light.\n\nSee [`AerialPerspectiveEffect`](#aerialperspectiveeffect) for further details.\n\n→ [Source](/packages/atmosphere/src/r3f/AerialPerspective.tsx)\n\n```tsx\nimport { useLoader, useLoader, useThree } from '@react-three/fiber'\nimport { EffectComposer } from '@react-three/postprocessing'\nimport {\n  DEFAULT_PRECOMPUTED_TEXTURES_URL,\n  getSunDirectionECEF,\n  PrecomputedTexturesLoader\n} from '@takram/three-atmosphere'\nimport { AerialPerspective } from '@takram/three-atmosphere/r3f'\nimport { Vector3 } from 'three'\n\nconst sunDirection = getSunDirectionECEF(/* Date object or timestamp */)\n\nconst loader = new PrecomputedTexturesLoader()\n\nconst Scene = () => {\n  const renderer = useThree(({ gl }) => gl)\n  const textures = useLoader(\n    loader.setType(renderer),\n    DEFAULT_PRECOMPUTED_TEXTURES_URL\n  )\n  return (\n    <EffectComposer>\n      <AerialPerspective {...textures} sunDirection={sunDirection} />\n    </EffectComposer>\n  )\n}\n```\n\n### Props\n\nThe parameters of [`AerialPerspectiveEffect`](#aerialperspectiveeffect) are exposed as props.\n\n## LightingMask\n\nA post-processing pass that renders a mask for the [mixed lighting](#mixed-lighting).\n\nSee [`LightingMaskPass`](#lightingmaskpass) for further details.\n\n→ [Source](/packages/atmosphere/src/r3f/LightingMask.tsx)\n\n```tsx\nimport { EffectComposer } from '@react-three/postprocessing'\nimport { Atmosphere, LightingMask } from '@takram/three-atmosphere/r3f'\nimport { Layers } from 'three'\n\nconst LIGHTING_MASK_LAYER = 10\nconst layers = new Layers()\nlayers.enable(LIGHTING_MASK_LAYER)\n\nconst Scene = () => {\n  return (\n    <Atmosphere>\n      <mesh>\n        {/* This mesh is included in the mask. */}\n        <meshBasicMaterial />\n      </mesh>\n      <mesh layers={layers}>\n        {/* This mesh is masked out. */}\n        <meshPhysicalMaterial />\n      </mesh>\n      <EffectComposer>\n        <LightingMask selectionLayer={LIGHTING_MASK_LAYER} />\n      </EffectComposer>\n    </Atmosphere>\n  )\n}\n```\n\n### Props\n\nThe parameters of [`LightingMaskPass`](#lightingmaskpass) are exposed as props.\n\n## AtmosphereMaterialBase\n\nThe base class of [`SkyMaterial`](#skymaterial) and [`StarsMaterial`](#starsmaterial).\n\n→ [Source](/packages/atmosphere/src/AtmosphereMaterialBase.ts)\n\n### Parameters\n\n#### irradianceTexture, scatteringTexture, transmittanceTexture, singleMieScatteringTexture, higherOrderScatteringTexture\n\n```ts\nirradianceTexture: Texture | null = null\nscatteringTexture: Data3DTexture | null = null\ntransmittanceTexture: Texture | null = null\nsingleMieScatteringTexture: Data3DTexture | null = null\nhigherOrderScatteringTexture: Data3DTexture | null = null\n```\n\nThe [precomputed textures](#precomputedtextures).\n\n#### ellipsoid\n\n```ts\nellipsoid: Ellipsoid = Ellipsoid.WGS84\n```\n\nSee [ellipsoid](#ellipsoid).\n\n#### worldToECEFMatrix\n\n```ts\nworldToECEFMatrix: Matrix4\n```\n\nSee [worldToECEFMatrix](#worldtoecefmatrix).\n\n#### correctAltitude\n\n```ts\ncorrectAltitude: boolean = true\n```\n\nSee [correctAltitude](#correctaltitude).\n\n#### sunDirection\n\n```ts\nsunDirection: Vector3 = new Vector3()\n```\n\nThe normalized direction to the sun in ECEF coordinates.\n\n#### sunAngularRadius\n\n```ts\nsunAngularRadius: number = 0.004675\n```\n\nThe angular radius of the sun, in radians.\n\nIncrease this value if the sun flickers in a low-resolution environment map. Modifying this value does not affect the sky's total radiance unless the sun is partially visible.\n\n<!-- prettier-ignore -->\n| `sunAngularRadius = 0.004675` | `sunAngularRadius = 0.1` |\n| :-: | :-: |\n| ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/sun-angular-radius-default.jpg) | ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/sun-angular-radius-01.jpg) |\n\n## SkyMaterial\n\nA material for displaying the sky. Apply this to a screen quad.\n\nDespite its name, this material renders the atmosphere itself, along with the sun and moon. When viewed from within the atmosphere, it appears as the sky. From space, it represents Earth's atmosphere with a flat ground.\n\n→ [Source](/packages/atmosphere/src/SkyMaterial.ts)\n\n```ts\nconst material = new SkyMaterial()\ngetSunDirectionECEF(date, material.sunDirection)\nconst sky = new Mesh(new PlaneGeometry(2, 2), material)\nsky.frustumCulled = false\nscene.add(sky)\n```\n\n### Parameters\n\nExtends [`AtmosphereMaterialBase`](#atmospherematerialbase).\n\n#### sun, moon\n\n```ts\nsun: boolean = true\nmoon: boolean = true\n```\n\nWhether to display the sun and moon.\n\n#### moonDirection\n\n```ts\nmoonDirection: Vector3 = new Vector()\n```\n\nThe normalized direction to the moon in ECEF coordinates.\n\n#### moonAngularRadius\n\n```ts\nmoonAngularRadius: number = 0.0045\n```\n\nThe angular radius of the moon, in radians.\n\n#### lunarRadianceScale\n\n```ts\nlunarRadianceScale: number = 1\n```\n\nA scaling factor to adjust the brightness of the moon.\n\n<!-- prettier-ignore -->\n| `lunarRadianceScale = 1` | `lunarRadianceScale = 5` |\n| :-: | :-: |\n| ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/lunar-radiance-scale-1.jpg) | ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/lunar-radiance-scale-5.jpg) |\n\n#### groundAlbedo\n\n```ts\ngroundAlbedo: Color = new Color()\n```\n\nThe albedo of the ground. Defaults to 0.\n\n## StarsMaterial\n\nRepresents the brightest stars as points at an infinite distance.\n\nThe provided data ([stars.bin](/packages/atmosphere/assets/stars.bin)) contains the J2000 ECI directions, magnitudes and black body chromaticities of the 9,096 stars listed in [Yale Bright Star Catalog version 5](http://tdc-www.harvard.edu/catalogs/bsc5.html).\n\n→ [Source](/packages/atmosphere/src/StarsMaterial.ts)\n\n```ts\nconst material = new StarsMaterial({\n  irradianceTexture,\n  scatteringTexture,\n  transmittanceTexture\n})\ngetSunDirectionECEF(date, material.sunDirection)\nconst stars = new Points(\n  new StarsGeometry(await new ArrayBufferLoader(url).loadAsync()),\n  material\n)\nstars.setRotationFromMatrix(getECIToECEFRotationMatrix(date))\nscene.add(stars)\n```\n\n### Parameters\n\nExtends [`AtmosphereMaterialBase`](#atmospherematerialbase).\n\n#### pointSize\n\n```ts\npointSize: number = 1\n```\n\nThe size of each star, in points.\n\n#### intensity\n\n```ts\nintensity: number = 1\n```\n\nA scaling factor to adjust the brightness of the stars.\n\n#### background\n\n```ts\nbackground: boolean = true\n```\n\nWhether to display the stars at an infinite distance, otherwise, they appear on a unit sphere.\n\n## SkyLightProbe\n\nA light probe for indirect sky irradiance.\n\nIt calculates spherical harmonics of sky irradiance at its position by sampling the precomputed irradiance texture on the CPU.\n\n→ [Source](/packages/atmosphere/src/SkyLightProbe.ts)\n\n```ts\nconst skyLight = new SkyLightProbe({ irradianceTexture })\nskyLight.position.set(position)\ngetSunDirectionECEF(date, skyLight.sunDirection)\nscene.add(skyLight)\n\nskyLight.update()\n```\n\n### Parameters\n\nExtends [`LightProbe`](https://threejs.org/docs/?q=lightprobe#api/en/lights/LightProbe)\n\n#### irradianceTexture\n\n```ts\nirradianceTexture: Texture | null = null\n```\n\nThe [precomputed irradiance texture](#irradiancetexture).\n\n#### ellipsoid\n\n```ts\nellipsoid: Ellipsoid = Ellipsoid.WGS84\n```\n\nSee [ellipsoid](#ellipsoid).\n\n#### worldToECEFMatrix\n\n```ts\nworldToECEFMatrix: Matrix4\n```\n\nSee [worldToECEFMatrix](#worldtoecefmatrix).\n\n#### correctAltitude\n\n```ts\ncorrectAltitude: boolean = true\n```\n\nSee [correctAltitude](#correctaltitude)\n\n#### sunDirection\n\n```ts\nsunDirection: Vector3 = new Vector3()\n```\n\nSee [sunDirection](#sundirection).\n\n## SunDirectionalLight\n\nA directional light representing the sun.\n\nIt calculates the sun's radiance by sampling the precomputed transmittance texture on the CPU.\n\n→ [Source](/packages/atmosphere/src/SunDirectionalLight.ts)\n\n```ts\nconst sunLight = new SunDirectionalLight({ transmittanceTexture })\nsunLight.target.position.set(position)\ngetSunDirectionECEF(date, sunLight.sunDirection)\nscene.add(sunLight)\nscene.add(sunLight.target)\n\nsunLight.update()\n```\n\n### Parameters\n\nExtends [`DirectionalLight`](https://threejs.org/docs/?q=DirectionalLight#api/en/lights/DirectionalLight)\n\n#### transmittanceTexture\n\n```ts\ntransmittanceTexture: Texture | null = null\n```\n\nThe [precomputed transmittance texture](#transmittancetexture).\n\n#### ellipsoid\n\n```ts\nellipsoid: Ellipsoid = Ellipsoid.WGS84\n```\n\nSee [ellipsoid](#ellipsoid).\n\n#### worldToECEFMatrix\n\n```ts\nworldToECEFMatrix: Matrix4\n```\n\nSee [worldToECEFMatrix](#worldtoecefmatrix).\n\n#### correctAltitude\n\n```ts\ncorrectAltitude: boolean = true\n```\n\nSee [correctAltitude](#correctaltitude)\n\n#### sunDirection\n\n```ts\nsunDirection: Vector3 = new Vector3()\n```\n\nSee [sunDirection](#sundirection).\n\nNote it's the direction to the sun, not that of light.\n\n#### distance\n\n```ts\ndistance: number = 1\n```\n\nThe distance from the target. Adjust this value if shadows are enabled for the light, as it may need to cover the entire scene.\n\n## AerialPerspectiveEffect\n\nA post-processing effect that renders atmospheric transparency and inscattered light. It can optionally render sun and sky irradiance as post-process lighting.\n\nThis is for use with the [`postprocessing`](https://github.com/pmndrs/postprocessing)'s `EffectComposer` and is not compatible with the one in Three.js examples.\n\n→ [Source](/packages/atmosphere/src/AerialPerspectiveEffect.ts)\n\n```ts\nconst aerialPerspective = new AerialPerspectiveEffect(camera, {\n  irradianceTexture,\n  scatteringTexture,\n  transmittanceTexture,\n  higherOrderScatteringTexture\n})\ngetSunDirectionECEF(position, aerialPerspective.sunDirection)\n\nconst composer = new EffectComposer(renderer, {\n  frameBufferType: HalfFloatType\n})\ncomposer.addPass(new RenderPass(scene, camera))\ncomposer.addPass(\n  new EffectPass(\n    camera,\n    aerialPerspective,\n    new ToneMappingEffect({ mode: ToneMappingMode.AGX })\n  )\n)\n```\n\n### Parameters\n\nExtends [`postprocessing`](https://github.com/pmndrs/postprocessing)'s [`Effect`](https://pmndrs.github.io/postprocessing/public/docs/class/src/effects/Effect.js~Effect.html).\n\n#### normalBuffer\n\n```ts\nnormalBuffer: Texture | null = null\n```\n\nThe normal buffer used for post-process lighting. It is not required if both `sunLight` and `skyLight` are disabled.\n\n`EffectComposer`'s default normal buffer lacks sufficient precision, causing banding in shaded areas. Using a floating-point normal buffer resolves this issue.\n\n#### octEncodedNormal\n\n```ts\noctEncodedNormal: boolean = false\n```\n\nIndicates that the normal is oct-encoded and stored in the first two elements of the normal buffer texels.\n\n#### reconstructNormal\n\n```ts\nreconstructNormal: boolean = false\n```\n\nWhether to reconstruct normals from depth buffer.\n\n#### irradianceTexture, scatteringTexture, transmittanceTexture, singleMieScatteringTexture, higherOrderScatteringTexture\n\n```ts\nirradianceTexture: Texture | null = null\nscatteringTexture: Data3DTexture | null = null\ntransmittanceTexture: Texture | null = null\nsingleMieScatteringTexture: Data3DTexture | null = null\nhigherOrderScatteringTexture: Data3DTexture | null = null\n```\n\nThe [precomputed textures](#precomputedtextures).\n\n#### ellipsoid\n\n```ts\nellipsoid: Ellipsoid = Ellipsoid.WGS84\n```\n\nSee [ellipsoid](#ellipsoid).\n\n#### worldToECEFMatrix\n\n```ts\nworldToECEFMatrix: Matrix4\n```\n\nSee [worldToECEFMatrix](#worldtoecefmatrix).\n\n#### correctAltitude\n\n```ts\ncorrectAltitude: boolean = true\n```\n\nSee [correctAltitude](#correctaltitude)\n\n#### correctGeometricError\n\n```ts\ncorrectGeometricError: boolean = true\n```\n\nThis option corrects lighting artifacts caused by geometric errors in surface tiles. The Earth's surface normals are gradually morphed to a true sphere.\n\nDisable this option if your scene contains objects that penetrate the atmosphere or are located in space.\n\n<!-- prettier-ignore -->\n| `correctGeometricError = false` | `correctGeometricError = true` |\n| :-: | :-: |\n| ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/correct-geometric-error-false.jpg) | ![](https://media.githubusercontent.com/media/takram-design-engineering/three-geospatial/main/packages/atmosphere/docs/correct-geometric-error-true.jpg) |\n\n#### sunDirection\n\n```ts\nsunDirection: Vector3 = new Vector3()\n```\n\nSee [sunDirection](#sundirection).\n\n#### sunLight, skyLight\n\n```ts\nsunLight: boolean = false\nskyLight: boolean = false\n```\n\nWhether to apply sun and sky irradiance as post-process lighting.\n\nEnabling one without the other is physically incorrect and should only be done for debugging.\n\n#### transmittance, inscatter\n\n```ts\ntransmittance: boolean = true\ninscatter: boolean = true\n```\n\nWhether to account for the atmospheric transmittance and inscattered light.\n\n#### albedoScale\n\n```ts\nalbedoScale: number = 1\n```\n\nThis value adjusts the color buffer to reduce contrast.\n\nPost-process lighting treats the color buffer as albedo, but textures like those in Google Photorealistic 3D Tiles have baked lighting and shadows, resulting in higher contrast. Adjusting this value helps make it less noticeable.\n\n#### sky\n\n```ts\nsky: boolean = false\n```\n\nWhether to render the sky as a post-processing effect. Enabling this may reduce the total number of fragments needed to compute the sky radiance.\n\nIn this case, the `Sky` component is redundant and should be omitted.\n\n#### sun, moon\n\n```ts\nsun: boolean = true\nmoon: boolean = true\n```\n\nSee [sun, moon](#sun-moon).\n\n#### moonDirection\n\n```ts\nmoonDirection: Vector3 = new Vector()\n```\n\nSee [moonDirection](#moondirection).\n\n#### moonAngularRadius\n\n```ts\nmoonAngularRadius: number = 0.0045\n```\n\nSee [moonAngularRadius](#moonangularradius).\n\n#### lunarRadianceScale\n\n```ts\nlunarRadianceScale: number = 1\n```\n\nSee [lunarRadianceScale](#lunarradiancescale).\n\n## LightingMaskPass\n\nA post-processing pass that renders a mask for the [mixed lighting](#mixed-lighting).\n\nIf you can afford using MRT, it is preferable to render this mask in your render pass instead.\n\n→ [Source](/packages/atmosphere/src/LightingMaskPass.ts)\n\n```ts\nconst LIGHTING_MASK_LAYER = 10\nconst layers = new Layers()\nlayers.enable(LIGHTING_MASK_LAYER)\n\nconst lightingMask = new LightingMaskPass(scene, camera)\nlightingMask.selectionLayers = LIGHTING_MASK_LAYER\nconst aerialPerspective = new AerialPerspectiveEffect(camera, {\n  irradianceTexture,\n  scatteringTexture,\n  transmittanceTexture\n})\n\nconst composer = new EffectComposer(renderer, {\n  frameBufferType: HalfFloatType\n})\ncomposer.addPass(new RenderPass(scene, camera))\ncomposer.addPass(lightingMask)\ncomposer.addPass(\n  new EffectPass(\n    camera,\n    aerialPerspective,\n    new ToneMappingEffect({ mode: ToneMappingMode.AGX })\n  )\n)\n```\n\n### Parameters\n\n#### selectionLayer\n\n```ts\nselectionLayer: number = /* The next unique layer on creation */\n```\n\nSpecifies the layer to which the meshes are assigned for rendering to the mask.\n\n#### inverted\n\n```ts\ninverted: boolean = false\n```\n\nBy default, meshes with the selection layer are masked out from the post-process lighting. Set this to true when rendering the objects for the post-process lighting is less expensive (generally, fewer triangles) than that for the light-source lighting, and configure the layers accordingly.\n\n## PrecomputedTexturesGenerator\n\nA class for generating the [precomputed textures](#precomputedtextures).\n\n→ [Source](/packages/atmosphere/src/PrecomputedTexturesGenerator.ts)\n\n```ts\nconst generator = new PrecomputedTexturesGenerator(renderer, options)\ngenerator.update().catch(error => {\n  console.error(error)\n})\n\nconst aerialPerspective = new AerialPerspectiveEffect(camera, {\n  ...generator.textures\n})\n```\n\n### Parameters\n\n#### type\n\n```ts\ntype: AnyFloatType = /* Depends on the renderer's capabilities */\n```\n\nSpecifies the type of intermediate render targets and precomputed textures. It defaults to `FloatType` if the provided renderer supports the linear filtering on `FloatType`. Otherwise, it falls back to `HalfFloatType`.\n\n#### combinedScattering\n\n```ts\ncombinedScattering: boolean = true\n```\n\nSetting this option to `false` generates the `singleMieScatteringTexture`.\n\nSee [`singleMieScatteringTexture`](#singlemiescatteringtexture) for further details.\n\n#### higherOrderScattering\n\n```ts\nhigherOrderScattering: boolean = true\n```\n\nSpecifies whether to generate the `higherOrderScatteringTexture`.\n\nSee [`higherOrderScatteringTexture`](#higherorderscatteringtexture) for further details.\n\n### Properties\n\n#### textures\n\n```ts\ntextures: PrecomputedTextures\n```\n\nThe generated [precomputed textures](#precomputedtextures).\n\n### Methods\n\n#### update\n\n```ts\nasync update(): Promise<PrecomputedTextures>\n```\n\nPerforms the precomputation and updates the `textures` property.\n\nThis is an async function that performs precomputation incrementally over multiple frames so that you can render a meaningful result earlier. It doesn't need to be awaited because the textures in the `textures` property are allocated when the instance is created.\n\n#### dispose\n\n```ts\ndispose(options?: { textures: boolean = true }): void\n```\n\nFrees the GPU-related resources allocated by this instance, as usual.\n\nSetting the optional `textures` flag to `false` doesn't deallocate the precomputed textures, effectively transferring their ownership to the caller.\n\n### Recipes\n\n#### Suspend until textures are fully generated\n\n```ts\nimport { Canvas, useThree } from '@react-three/fiber'\nimport { Suspense, useEffect } from 'react'\nimport { suspend } from 'suspend-react'\n\nimport { PrecomputedTexturesGenerator } from '@takram/three-atmosphere'\nimport { Atmosphere } from '@takram/three-atmosphere/r3f'\n\nconst Scene = () => {\n  const renderer = useThree(({ gl }) => gl)\n  const textures = suspend(async () => {\n    const generator = new PrecomputedTexturesGenerator(renderer)\n    const textures = await generator.update()\n    // Transfers ownership of the textures. We are now responsible for\n    // deallocating them when they are no longer needed.\n    generator.dispose({ textures: false })\n    return textures\n  }, [PrecomputedTexturesGenerator, renderer])\n\n  useEffect(() => {\n    return () => {\n      for (const texture of Object.values(textures)) {\n        texture?.dispose()\n      }\n    }\n  }, [textures])\n\n  return <Atmosphere textures={textures} />\n}\n\nconst App = () => (\n  <Canvas>\n    <Suspense>\n      <Scene />\n    </Suspense>\n  </Canvas>\n)\n```\n\n## PrecomputedTexturesLoader\n\nAn aggregated loader class for the precomputed textures.\n\n→ [Source](/packages/atmosphere/src/PrecomputedTexturesLoader.ts)\n\n```ts\nconst loader = new PrecomputedTexturesLoader(options).setType(renderer)\nconst textures = loader.load(url)\n\nconst aerialPerspective = new AerialPerspectiveEffect(camera, {\n  ...textures\n})\n```\n\n### Parameters\n\n#### format\n\n```ts\nformat: 'exr' | 'binary' = 'exr'\n```\n\nSpecifies the format of precomputed textures to load.\n\n#### type\n\n```ts\ntype: AnyFloatType = HalfFloatType\n```\n\nSpecifies the type of precomputed textures.\n\n#### combinedScattering\n\n```ts\ncombinedScattering: boolean = true\n```\n\nSetting this option to `false` loads the `singleMieScatteringTexture`.\n\nSee [`singleMieScatteringTexture`](#singlemiescatteringtexture) for further details.\n\n#### higherOrderScattering\n\n```ts\nhigherOrderScattering: boolean = true\n```\n\nSpecifies whether to load the `higherOrderScatteringTexture`.\n\nSee [`higherOrderScatteringTexture`](#higherorderscatteringtexture) for further details.\n\n### Methods\n\n#### setType\n\n```ts\nsetType(renderer: WebGLRenderer): this\n```\n\nSets the type of precomputed textures to `FloatType` if the provided renderer supports the linear filtering on `FloatType`. Otherwise, it falls back to `HalfFloatType`.\n\n### Recipes\n\n#### Non-blocking texture loading\n\n```ts\nimport { Canvas, useThree } from '@react-three/fiber'\nimport { useMemo } from 'react'\n\nimport { PrecomputedTexturesLoader } from '@takram/three-atmosphere'\nimport { Atmosphere } from '@takram/three-atmosphere/r3f'\n\nconst loader = new PrecomputedTexturesLoader()\n\nconst Scene = () => {\n  const renderer = useThree(({ gl }) => gl)\n  const textures = useMemo(\n    () => loader.setType(renderer).load(url),\n    [renderer]\n  )\n  return <Atmosphere textures={textures} />\n}\n\nconst App = () => (\n  <Canvas>\n    <Scene />\n  </Canvas>\n)\n```\n\n#### Suspend until textures are fully loaded\n\n```ts\nimport { Canvas, useLoader, useThree } from '@react-three/fiber'\nimport { Suspense } from 'react'\n\nimport { PrecomputedTexturesLoader } from '@takram/three-atmosphere'\nimport { Atmosphere } from '@takram/three-atmosphere/r3f'\n\nconst loader = new PrecomputedTexturesLoader()\n\nconst Scene = () => {\n  const renderer = useThree(({ gl }) => gl)\n  const textures = useLoader(loader.setType(renderer), url)\n  return <Atmosphere textures={textures} />\n}\n\nconst App = () => (\n  <Canvas>\n    <Suspense>\n      <Scene />\n    </Suspense>\n  </Canvas>\n)\n```\n\n## Functions\n\n### getSunDirectionECEF, getMoonDirectionECEF\n\n```ts\nfunction getSunDirectionECEF(date: number | Date, result?: Vector3): Vector3\nfunction getMoonDirectionECEF(date: number | Date, result?: Vector3): Vector3\n```\n\nObtains the direction to the sun and moon in ECEF coordinates for the specified UTC time. This internally uses [astronomy-engine](https://github.com/cosinekitty/astronomy) and it approximates UTC as being equivalent to UT1.\n\n→ [Source](/packages/atmosphere/src/celestialDirections.ts)\n\n### getECIToECEFRotationMatrix\n\n```ts\nfunction getECIToECEFRotationMatrix(\n  date: number | Date,\n  result?: Matrix4\n): Matrix4\n```\n\nObtains the rotation matrix to convert coordinates from J2000 ECI to ECEF. This internally uses [astronomy-engine](https://github.com/cosinekitty/astronomy) and it approximates UTC as being equivalent to UT1.\n\n→ [Source](/packages/atmosphere/src/celestialDirections.ts)\n\n### getSunLightColor\n\n```ts\ninterface SunLightColorOptions {\n  ellipsoid?: Ellipsoid\n  correctAltitude?: boolean\n}\n\nfunction getSunLightColor(\n  transmittanceTexture: Texture,\n  worldPosition: Vector3,\n  sunDirection: Vector3,\n  result?: Color,\n  options?: SunLightColorOptions\n): Color\n```\n\nCalculates the radiance of sunlight observed from a given position by sampling the precomputed transmittance texture on the CPU.\n\n→ [Source](/packages/atmosphere/src/getSunLightColor.ts)\n\n# References\n\nIn alphabetical order\n\n- [A Scalable and Production Ready Sky and Atmosphere Rendering Technique](https://sebh.github.io/publications/egsr2020.pdf)\n- [Outdoor Light Scattering Sample Update](https://www.intel.com/content/dam/develop/external/us/en/documents/outdoor-light-scattering-update.pdf)\n- [Physically Based Real-Time Rendering of Atmospheres using Mie Theory](https://diglib.eg.org/items/1fb6b85a-b3f8-4817-975f-f65634020f03)\n- [Precomputed Atmospheric Scattering](https://inria.hal.science/inria-00288758/en)\n\n**Implementation references**\n\n- [Precomputed Atmospheric Scattering](https://github.com/ebruneton/precomputed_atmospheric_scattering)\n- [Yale Bright Star Catalog version 5](http://tdc-www.harvard.edu/catalogs/bsc5.html)\n\n# License\n\n[MIT](LICENSE)","users":{}}