{"_id":"@alienkitty/alien.js","_rev":"7-54ee8a7485d44c4f3dd2b99c8eb0b024","time":{"created":"2023-02-28T18:29:07.599Z","0.21.0":"2023-02-25T19:01:51.148Z","modified":"2024-04-23T21:35:27.345Z","1.0.0":"2023-02-28T18:29:07.939Z","1.1.0":"2023-04-30T03:56:37.981Z","1.2.0":"2024-04-23T21:35:27.146Z"},"name":"@alienkitty/alien.js","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@alienkitty/alien.js","version":"1.0.0","description":"Future web pattern","type":"module","exports":{"./three":"./src/three.js","./three/oimophysics":"./src/three.oimophysics.js","./all/three":"./src/all.three.js","./src/*":"./src/*"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/alienkitty/alien.js.git"},"bugs":{"url":"https://github.com/alienkitty/alien.js/issues"},"homepage":"https://alien.js.org","author":{"name":"pschroen"},"license":"MIT","dependencies":{"@alienkitty/space.js":"latest"},"gitHead":"84cb3c2625ab39f910e929b1af73759dd10216df","_id":"@alienkitty/alien.js@1.0.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-vy8LiCWYSw8dn2ZCQXjKzBlM3EISx5QTdRr9ooSm/tlLp8FMVuC6VQuccZyExTgGG5LqQaHwMvt0HWofLpfOgw==","shasum":"0b05283d03d24932f45d2a9c3365155ecba0177c","tarball":"https://registry.npmjs.org/@alienkitty/alien.js/-/alien.js-1.0.0.tgz","fileCount":183,"unpackedSize":204361,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIERqZ1HldPhTtF00C8ja0uzgigEX7t3ar5ZjF1rDCcn0AiEA0aOIhJ+6Y16nSyUrWxYKtqlC+M5M3g460OVtFY1UUw0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/kfzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6mA//begro/ZY0XNbWQbxfpJR7NSq6On/AGmm1Gi/9M3hzJmLvNPr\r\nu17uaOJv8UXPADHgAl9LEK/34TfJvUo9sBv28dGZQDRGqV497bT94Wbws94S\r\nFJnYJNehhuiC4vxbnNQ0/3fgg02NakMcY/oJ4F9F0ksbNgoTs4MkBWjaJTvx\r\nFSvnWXlC0CSFaa23420OVUMnQOD4UiTMyC4NMMbh7uXljYWgPbVlPjOwHsDc\r\nwRy1BJbEl18r8IHMzFij5eu+OGzO8kyNj/UNPDIqhGtxn6Iv+PBv24i2pMyO\r\ne/Rpg2SEh1fCZaMK+mhNDLNOf21dc9921MCtV3NLErRKBnzh6F85hpUeRXN2\r\nlxRICVx4YI4mYc38FzTwunV3dQJhsFFFJwWsU8i/4AnUpL8a2fTRn0BeIGxq\r\nclBGjg92AJBbR8xSkT5e0An8YkHI1fY8OjxLepoYcAqv1bJcT+3F9pdBkAgb\r\n7Nc2j0TV0ejFjKhX+TNVeRzRIrwuEpro4l4+tURWWsN2+hbnui5VdpHuMzYY\r\nWuzhwtSd6xLvvKoUznKQIlEMOvD/y1PvqNBUpqD9oj/i7vF0jiurwH45zjBM\r\niZoH1Oa1/ojbMwoX7x6AV9/rtqutq4JUL22C41EV65COY4D8nSu0odtljsyX\r\nnUKciobVx0B+18h/6R+r95YVcnFf1GaYysE=\r\n=1Ifg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"pschroen","email":"ps@ufotechnologies.com"},"directories":{},"maintainers":[{"name":"pschroen","email":"ps@ufotechnologies.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/alien.js_1.0.0_1677608947683_0.4087278892874573"},"_hasShrinkwrap":false},"1.1.0":{"name":"@alienkitty/alien.js","version":"1.1.0","description":"Future web pattern","type":"module","exports":{"./three":"./src/three.js","./three/oimophysics":"./src/three.oimophysics.js","./all/three":"./src/all.three.js","./src/*":"./src/*"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/alienkitty/alien.js.git"},"bugs":{"url":"https://github.com/alienkitty/alien.js/issues"},"homepage":"https://alien.js.org","author":{"name":"pschroen"},"license":"MIT","dependencies":{"@alienkitty/space.js":"latest"},"gitHead":"a6a06e25f59b5719b87ddee30548036d66d75afa","_id":"@alienkitty/alien.js@1.1.0","_nodeVersion":"18.12.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-IrUcEf/lUfyV4KXaq773A23uPQ2syQQxq+bAuZykyIGVePyUgtwAyz95A+FT5WXKOE0xXw6K/7bYPW14plz9Xg==","shasum":"97263991073bcf0abcbe065cd51f73d6cd2d2370","tarball":"https://registry.npmjs.org/@alienkitty/alien.js/-/alien.js-1.1.0.tgz","fileCount":195,"unpackedSize":233752,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkEpK33FEVp35DXinpopABL5lJIxM2JuFFoMUKHGS7gQIgRQQgF9bGdhCAuFyEsT6LTFmWvAuv9kVeLmM6w6+dn8w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTeb2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMdhAAmEzMjTrd1bsNfRiYayIHJFAoKuEh4kzwy+lO5DbaqM0qhfLa\r\n0OT0opFvUBCdZJNSx0ZdfwlyI1IAzTZrTLIPiHcktpKPu9Nk4w/EqamXqqVm\r\nXbuHXLAOoyVzobPGZ07ml4YphagJZUs0xV7uuAYBUWQXf9Jsu8Ud5z5EPgQr\r\nrrOPLP3Tdt44m9RceHIzWKI47VkqoDLa4BHMvt7WfC6+b27nzZ4yv278PnTH\r\nQTKwibONbtOs2CVilMMkR/nGYawW4vSy/kTF/ciMnLDFpuZV34u6zNJK3cd7\r\nYqIiI95Wsqkxy4jgoBtn4svyyXv4MFNDGfKTZ+AYE9CiRxZjNa2Js4a/yEXy\r\n3MrfTFZe6OZDRxbvdcQo5s7kfUiV/DujvIIAchZQ02YKcx2FdDGqbYrR+6gT\r\nv/D07NACdRZd/VDk+qc9lOwFRggB3qquEFf0dgaGd5tYx5QvnjdSQ0k9GSKP\r\np7by+Dd5vfo8mh7HJyxI9LXRwB3glsPcpzHfMOtWpF79dC7kPUB8tt71Vjc6\r\nETjvIOqFDCVbhUOZXfEu0CxLP0bn8114NmrdRWOzuzyadVBZzOwjCpgObOHe\r\nQ+abssebU8cg8Hl1laf7vLj/mIoKuOaaWn4wXrU87CATkBYQc9ItDXdb9VWo\r\nTM4L45HVTtaKwdBOW483NkYawrmkfC7KvvQ=\r\n=EcJx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"pschroen","email":"ps@ufotechnologies.com"},"directories":{},"maintainers":[{"name":"pschroen","email":"ps@ufotechnologies.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/alien.js_1.1.0_1682826997746_0.3577045424546481"},"_hasShrinkwrap":false},"1.2.0":{"name":"@alienkitty/alien.js","version":"1.2.0","description":"MVC design pattern and graphics pipeline","type":"module","exports":{"./ogl":"./src/ogl.js","./three":"./src/three.js","./three/oimophysics":"./src/three.oimophysics.js","./all/three":"./src/all.three.js","./src/*":"./src/*"},"sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/alienkitty/alien.js.git"},"bugs":{"url":"https://github.com/alienkitty/alien.js/issues"},"homepage":"https://alien.js.org","author":{"name":"pschroen"},"license":"MIT","dependencies":{"@alienkitty/space.js":"latest"},"_id":"@alienkitty/alien.js@1.2.0","gitHead":"be564c11fbdd3abb07083d100b6cca76d55f72a2","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-YAxf6rkhxVU+8oZc7206LyBJwJT8Fx8EjnygTG5s1M/cJoojiyCdsIm1Tyx/NNoe3HjtoYPj58kRFF5FgvBVEg==","shasum":"e55fc546ce2caaade8a9ec9a3cea8da2e920e9f7","tarball":"https://registry.npmjs.org/@alienkitty/alien.js/-/alien.js-1.2.0.tgz","fileCount":214,"unpackedSize":265397,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIByjbyIigxwGrrOSF0RPUtw2XemnbL9KubES5uZFDt6iAiEAqwvam9cOCAoWREAWaJ1i4SoTyhkdAn58slkFI4zmOWY="}]},"_npmUser":{"name":"pschroen","email":"ps@ufotechnologies.com"},"directories":{},"maintainers":[{"name":"pschroen","email":"ps@ufotechnologies.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/alien.js_1.2.0_1713908126959_0.2540571649595562"},"_hasShrinkwrap":false}},"maintainers":[{"name":"pschroen","email":"ps@ufotechnologies.com"}],"description":"MVC design pattern and graphics pipeline","homepage":"https://alien.js.org","repository":{"type":"git","url":"git+https://github.com/alienkitty/alien.js.git"},"author":{"name":"pschroen"},"bugs":{"url":"https://github.com/alienkitty/alien.js/issues"},"license":"MIT","readme":"# Alien.js\n\n[![NPM Package][npm]][npm-url]\n[![NPM Downloads][npm-downloads]][npmtrends-url]\n[![DeepScan][deepscan]][deepscan-url]\n[![Discord][discord]][discord-url]\n\nThis library is part of two sibling libraries, [Space.js](https://github.com/alienkitty/space.js) for UI, Panel components, Tween, Web Audio, loaders, utilities, and [Alien.js](https://github.com/alienkitty/alien.js) for 3D utilities, materials, shaders and physics.\n\n<p>\n    <img src=\"https://github.com/alienkitty/alien.js/raw/main/alien.js.png\" alt=\"Alien.js\">\n</p>\n\n### Usage\n\nAlien.js is divided into three entry points depending on your use case.\n\nThe `@alienkitty/alien.js/three` entry point for [three.js](https://github.com/mrdoob/three.js) utilities and materials.\n\n```sh\nnpm i three @alienkitty/alien.js\n```\n\n```js\nimport { Vector3 } from 'three';\nimport { Wobble } from '@alienkitty/alien.js/three';\n\nconst position = new Vector3();\nconst wobble = new Wobble(position);\nwobble.scale = 100;\n\nfunction animate(time) {\n    requestAnimationFrame(animate);\n\n    console.log(position);\n    wobble.update(time * 0.001 * 0.5); // seconds * 0.5\n}\n\nrequestAnimationFrame(animate);\n```\n\nThe `@alienkitty/alien.js/three/oimophysics` entry point for [OimoPhysics](https://github.com/saharan/OimoPhysics) utilities.\n\n```sh\nnpm i three saharan/OimoPhysics#v1.2.3 @alienkitty/alien.js\n```\n\n```js\nimport { OimoPhysics } from '@alienkitty/alien.js/three/oimophysics';\n\nconst physics = new OimoPhysics();\nconsole.log(physics.getGravity());\n```\n\nAnd the `@alienkitty/alien.js/ogl` entry point for [OGL](https://github.com/oframe/ogl) material programs.\n\n```sh\nnpm i ogl @alienkitty/alien.js\n```\n\n```js\nimport { FXAAProgram } from '@alienkitty/alien.js/ogl';\n\n// ...\nconst program = new FXAAProgram(gl);\n```\n\n### Examples\n\n#### transitions\n\n[page](https://alien.js.org/examples/three/transitions/page/)  \n[canvas](https://alien.js.org/examples/three/transitions/canvas/) (mask)  \n[shader](https://alien.js.org/examples/three/transitions/shader/) (mask)  \n[shader](https://alien.js.org/examples/three/transitions/shader_fade/) (fade with RGB shift)  \n[scene](https://alien.js.org/examples/three/transitions/scene/)  \n[scene](https://alien.js.org/examples/three/transitions/scene_direction/) (page direction and camera parallax)  \n[scroll](https://alien.js.org/examples/three/transitions/scroll/) ([debug](https://alien.js.org/examples/three/transitions/scroll/?debug))  \n[scroll](https://alien.js.org/examples/three/transitions/scroll_direction/) (scroll direction and camera parallax, [debug](https://alien.js.org/examples/three/transitions/scroll_direction/?debug))  \n[scroll](https://alien.js.org/examples/three/transitions/scroll_direction_zoom/) (scroll direction and camera zoom, [debug](https://alien.js.org/examples/three/transitions/scroll_direction_zoom/?debug))  \n[scroll](https://alien.js.org/examples/three/transitions/scroll_content/) (smooth scroll, [debug](https://alien.js.org/examples/three/transitions/scroll_content/?debug))  \n[scroll](https://alien.js.org/examples/three/transitions/scroll_content_skew/) (smooth scroll with skew effect, [debug](https://alien.js.org/examples/three/transitions/scroll_content_skew/?debug))  \n[scroll](https://alien.js.org/examples/three/transitions/scroll_content_views/) (smooth scroll with scroll direction and camera parallax, [debug](https://alien.js.org/examples/three/transitions/scroll_content_views/?debug))  \n[camera](https://alien.js.org/examples/three/transitions/camera/) (with motion blur and tilt shift effect, [debug](https://alien.js.org/examples/three/transitions/camera/?debug))  \n\n#### 3d\n\n[ripple](https://alien.js.org/examples/three/3d_ripple.html)  \n[cubemap uv](https://alien.js.org/examples/three/3d_cubemap_uv.html)  \n[spherical cube uv](https://alien.js.org/examples/three/3d_spherical_cube_uv.html)  \n[penrose triangle](https://alien.js.org/examples/three/3d_penrose_triangle.html)  \n[abstract cube](https://alien.js.org/examples/three/3d_abstract_cube.html)  \n[polyhedron](https://alien.js.org/examples/three/3d_polyhedron.html) (orbit camera, [debug](https://alien.js.org/examples/three/3d_polyhedron.html?debug))  \n[crystal gltf](https://alien.js.org/examples/three/3d_crystal_gltf.html) (orbit camera, [debug](https://alien.js.org/examples/three/3d_crystal_gltf.html?debug), [orbit controls](https://alien.js.org/examples/three/3d_crystal_gltf.html?orbit))  \n[cubecamera](https://alien.js.org/examples/three/3d_cubecamera.html) (orbit camera, [debug](https://alien.js.org/examples/three/3d_cubecamera.html?debug))  \n[cubecamera rainbow](https://alien.js.org/examples/three/3d_cubecamera_rainbow.html) (orbit camera, [debug](https://alien.js.org/examples/three/3d_cubecamera_rainbow.html?debug))  \n[camera wobble](https://alien.js.org/examples/three/3d_camera_wobble.html)  \n[panel tracking](https://alien.js.org/examples/three/3d_panel_tracking.html) ([debug](https://alien.js.org/examples/three/3d_panel_tracking.html?debug))  \n[backdrop](https://alien.js.org/examples/three/3d_backdrop.html)  \n[infinite stars](https://alien.js.org/examples/three/3d_infinite_stars_rgbshift.html) (RGB shift, [debug](https://alien.js.org/examples/three/3d_infinite_stars_rgbshift.html?debug))  \n[black holes](https://alien.js.org/examples/three/3d_black_holes.html) (with per-object motion blur, [debug](https://alien.js.org/examples/three/3d_black_holes.html?debug), [orbit controls](https://alien.js.org/examples/three/3d_black_holes.html?orbit))  \n[stripe gradient](https://alien.js.org/examples/three/3d_stripe_gradient.html) ([akella version](https://www.youtube.com/watch?v=LW9d2cqIHb4))  \n\n#### shader\n\n[noise](https://alien.js.org/examples/three/shader_noise.html)  \n[fxaa](https://alien.js.org/examples/three/shader_fxaa.html)  \n[fxaa](https://alien.js.org/examples/ogl/shader_fxaa.html) (OGL version)  \n[smaa](https://alien.js.org/examples/three/shader_smaa.html)  \n[blur](https://alien.js.org/examples/three/shader_blur.html) (Gaussian blur)  \n[blur](https://alien.js.org/examples/three/shader_poisson_disc_blur.html) (Poisson disc blur)  \n[blur](https://alien.js.org/examples/three/shader_bokeh_blur.html) (Bokeh blur)  \n[bloom](https://alien.js.org/examples/three/shader_bloom.html)  \n[bloom](https://alien.js.org/examples/three/shader_unreal_bloom.html) (Unreal bloom)  \n[bloom](https://alien.js.org/examples/three/shader_bloom_dither.html) (Unreal bloom with dither)  \n[bloom](https://alien.js.org/examples/three/shader_bloom_hdr.html) (Unreal bloom with HDR)  \n[matcap](https://alien.js.org/examples/three/shader_matcap.html)  \n[soft particles](https://alien.js.org/examples/three/shader_soft_particles.html)  \n[tilt shift](https://alien.js.org/examples/three/shader_tilt_shift.html) (with Gaussian blur)  \n[dof](https://alien.js.org/examples/three/shader_dof_fake.html) (fake with Bokeh blur, [debug](https://alien.js.org/examples/three/shader_dof_fake.html?debug))  \n[chromatic aberration](https://alien.js.org/examples/three/shader_chromatic_aberration.html)  \n[barrel distortion](https://alien.js.org/examples/three/shader_barrel_distortion.html) (RGB shift)  \n[radial blur](https://alien.js.org/examples/three/shader_radial_blur_rgbshift.html) (RGB shift)  \n[film grain](https://alien.js.org/examples/three/shader_film_grain.html)  \n[reflection](https://alien.js.org/examples/three/shader_reflection.html) (with fast Gaussian blur)  \n[reflection](https://alien.js.org/examples/three/shader_reflection_diffuse.html) (diffuse)  \n[reflection](https://alien.js.org/examples/three/shader_reflection_metalness.html) (metalness)  \n[reflection](https://alien.js.org/examples/three/shader_reflection_normalmap.html) (normalmap)  \n[reflection](https://alien.js.org/examples/three/shader_reflection_dudv.html) (DuDv)  \n[flowmap](https://alien.js.org/examples/three/shader_flowmap.html)  \n[flowmap](https://alien.js.org/examples/three/shader_flowmap_rgbshift.html) (RGB shift)  \n[flowmap](https://alien.js.org/examples/three/shader_flowmap_view.html) (view)  \n[fluid distortion](https://alien.js.org/examples/three/shader_fluid_distortion.html)  \n[fluid distortion](https://alien.js.org/examples/three/shader_fluid_distortion_rgbshift.html) (RGB shift)  \n[fluid distortion](https://alien.js.org/examples/three/shader_fluid_distortion_view.html) (view)  \n[depth](https://alien.js.org/examples/three/shader_depth.html) (aperture with dither)  \n[fresnel](https://alien.js.org/examples/three/shader_fresnel.html) (with looping noise)  \n[hologram](https://alien.js.org/examples/three/shader_hologram.html)  \n[subsurface scattering](https://alien.js.org/examples/three/shader_subsurface_scattering.html) (SSS)  \n[volumetric light](https://alien.js.org/examples/three/shader_volumetric_light.html) (god rays)  \n[anamorphic light](https://alien.js.org/examples/three/shader_anamorphic_light.html) (fast anamorphic lens flares)  \n[lensflare](https://alien.js.org/examples/three/shader_lensflare.html)  \n[lensflare](https://alien.js.org/examples/three/shader_anamorphic_light_lensflare.html) (with anamorphic light)  \n[motion blur](https://alien.js.org/examples/three/shader_motion_blur.html) (per-object and camera, [debug](https://alien.js.org/examples/three/shader_motion_blur.html?debug), [orbit controls](https://alien.js.org/examples/three/shader_motion_blur.html?orbit))  \n[baked cube](https://alien.js.org/examples/three/shader_baked_cube.html)  \n[baked cube](https://alien.js.org/examples/three/shader_baked_cube_dudv.html) (DuDv)  \n[baked cube](https://alien.js.org/examples/three/shader_baked_cube_sss.html) (SSS, [debug](https://alien.js.org/examples/three/shader_baked_cube_sss.html?debug))  \n[baked abstract cube](https://alien.js.org/examples/three/shader_baked_abstract_cube.html)  \n[baked abstract cube](https://alien.js.org/examples/three/shader_baked_abstract_cube_dudv.html) (DuDv)  \n[baked abstract cube](https://alien.js.org/examples/three/shader_baked_abstract_cube_sss.html) (SSS, [debug](https://alien.js.org/examples/three/shader_baked_abstract_cube_sss.html?debug))  \n[baked spherical cube](https://alien.js.org/examples/three/shader_baked_spherical_cube.html)  \n[baked spherical cube](https://alien.js.org/examples/three/shader_baked_spherical_cube_dudv.html) (DuDv)  \n[baked spherical cube](https://alien.js.org/examples/three/shader_baked_spherical_cube_sss.html) (SSS, [debug](https://alien.js.org/examples/three/shader_baked_spherical_cube_sss.html?debug))  \n[soft shadows](https://alien.js.org/examples/three/shader_soft_shadows.html)  \n[text](https://alien.js.org/examples/three/shader_text.html) (MSDF text)  \n[afterimage](https://alien.js.org/examples/three/shader_afterimage.html)  \n[alienkitty](https://alienkitty.com/) (2d scene, flowmap with RGB shift, MSDF text)  \n\n#### physics\n\n[instancing](https://alien.js.org/examples/three/3d_physics_instancing.html) (SSS, [debug](https://alien.js.org/examples/three/3d_physics_instancing.html?debug))  \n[instancing](https://alien.js.org/examples/three/3d_physics_instancing_thread.html) (physics thread, SSS, [debug](https://alien.js.org/examples/three/3d_physics_instancing_thread.html?debug))  \n[picking](https://alien.js.org/examples/three/3d_physics_picking.html) (contact audio, SSS, [debug](https://alien.js.org/examples/three/3d_physics_picking.html?debug))  \n[picking](https://alien.js.org/examples/three/3d_physics_picking_thread.html) (physics thread, contact audio, SSS, [debug](https://alien.js.org/examples/three/3d_physics_picking_thread.html?debug))  \n\n#### audio\n\n[picking](https://alien.js.org/examples/three/3d_physics_picking.html) (with fast 3d audio, [debug](https://alien.js.org/examples/three/3d_physics_picking.html?debug))  \n\n#### thread\n\n[cubemap uv](https://alien.js.org/examples/three/3d_cubemap_uv.html) (texture and buffer geometry loader thread)  \n[instancing](https://alien.js.org/examples/three/3d_physics_instancing_thread.html) (physics thread)  \n[picking](https://alien.js.org/examples/three/3d_physics_picking_thread.html) (physics thread)  \n[multiuser blocks](https://multiuser-blocks.glitch.me/) (websocket thread, [glitch](https://glitch.com/edit/#!/multiuser-blocks))  \n\n#### websockets\n\n[json](https://hello-websockets-json.glitch.me/) ([glitch](https://glitch.com/edit/#!/hello-websockets-json))  \n[binary](https://hello-websockets-binary.glitch.me/) ([glitch](https://glitch.com/edit/#!/hello-websockets-binary))  \n[multiuser fluid](https://multiuser-fluid.glitch.me/) (binary, [glitch](https://glitch.com/edit/#!/multiuser-fluid))  \n[multiuser blocks](https://multiuser-blocks.glitch.me/) (binary, [glitch](https://glitch.com/edit/#!/multiuser-blocks))  \n\n### Getting started\n\nClone this repository and install its dependencies:\n\n```sh\ngit clone https://github.com/alienkitty/alien.js\ncd alien.js\nnpm i three saharan/OimoPhysics#v1.2.3\ncd examples\nnpm i\nnpm run build\nnpm start\n```\n\n### ESLint\n\n```sh\nnpm i -D eslint eslint-plugin-html\nnpx eslint src\nnpx eslint examples/about/src\nnpx eslint examples/ogl/*.html\nnpx eslint examples/three/*.html\nnpx eslint examples/three/transitions\n```\n\n### Resources\n\n* [The Wiki](https://github.com/alienkitty/alien.js/wiki)\n* [Tween](https://github.com/alienkitty/alien.js/wiki/Tween)\n* [Changelog](https://github.com/alienkitty/alien.js/releases)\n\n### See also\n\n* [Space.js](https://github.com/alienkitty/space.js)\n* [Three.js](https://github.com/mrdoob/three.js)\n* [Post Processing](https://github.com/pmndrs/postprocessing)\n* [OGL](https://github.com/oframe/ogl)\n\n\n[npm]: https://img.shields.io/npm/v/@alienkitty/alien.js\n[npm-url]: https://www.npmjs.com/package/@alienkitty/alien.js\n[npm-downloads]: https://img.shields.io/npm/dw/@alienkitty/alien.js\n[npmtrends-url]: https://www.npmtrends.com/@alienkitty/alien.js\n[deepscan]: https://deepscan.io/api/teams/20020/projects/23996/branches/734567/badge/grade.svg\n[deepscan-url]: https://deepscan.io/dashboard#view=project&tid=20020&pid=23996&bid=734567\n[discord]: https://img.shields.io/discord/773739853913260032\n[discord-url]: https://discord.gg/9rSkAzB7PM\n","readmeFilename":"README.md"}