From 010d4187d4b6e1f06e38d21e804a0860cb9a5b03 Mon Sep 17 00:00:00 2001 From: Daniel Jones <104509116+DanielReddJones@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:59:21 -0600 Subject: [PATCH] initial commit --- .gitignore | 24 ++ README.md | 1 + counter.js | 9 + doge.jpg | Bin 0 -> 26830 bytes index.html | 14 + javascript.svg | 1 + main.js | 35 +++ package-lock.json | 766 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 17 + public/vite.svg | 1 + style.css | 5 + 11 files changed, 873 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 counter.js create mode 100644 doge.jpg create mode 100644 index.html create mode 100644 javascript.svg create mode 100644 main.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 style.css diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..d86db5f --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Following tutorial https://www.youtube.com/watch?v=Q7AOvWpIVHU \ No newline at end of file diff --git a/counter.js b/counter.js new file mode 100644 index 0000000..881e2d7 --- /dev/null +++ b/counter.js @@ -0,0 +1,9 @@ +export function setupCounter(element) { + let counter = 0 + const setCounter = (count) => { + counter = count + element.innerHTML = `count is ${counter}` + } + element.addEventListener('click', () => setCounter(counter + 1)) + setCounter(0) +} diff --git a/doge.jpg b/doge.jpg new file mode 100644 index 0000000000000000000000000000000000000000..258b18b809c6f3074c5ede1e6065e9f320d092c6 GIT binary patch literal 26830 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 z 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..107e54e --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + Vite App + + +
+ + + + diff --git a/javascript.svg b/javascript.svg new file mode 100644 index 0000000..f9abb2b --- /dev/null +++ b/javascript.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..cb272b9 --- /dev/null +++ b/main.js @@ -0,0 +1,35 @@ +import './style.css' + +import * as THREE from 'three'; + + +const scene = new THREE.Scene(); + +const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); + +const renderer = new THREE.WebGLRenderer({ + canvas: document.querySelector('#bg'), +}); + +renderer.setPixelRatio(window.devicePixelRatio); +renderer.setSize(window.innerWidth, window.innerHeight); +camera.position.setZ(30); + +renderer.render(scene, camera); + +const geometry = new THREE.TorusGeometry(10, 3, 16, 100); +const material = new THREE.MeshBasicMaterial({color: 0xFF6347, wireframe: true}); +const torus = new THREE.Mesh(geometry, material); + +scene.add(torus); + +function animate(){ + requestAnimationFrame(animate); + + torus.rotation.x += 0.01; + torus.rotation.y -= 0.01; + torus.rotation.z -= 0.01; + + renderer.render(scene, camera) +} +animate(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0345c0c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,766 @@ +{ + "name": "three_js_tutorial", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "three_js_tutorial", + "version": "0.0.0", + "dependencies": { + "three": "^0.161.0" + }, + "devDependencies": { + "vite": "^5.1.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.11.0.tgz", + "integrity": "sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.11.0.tgz", + "integrity": "sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.11.0.tgz", + "integrity": "sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.11.0.tgz", + "integrity": "sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.11.0.tgz", + "integrity": "sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.11.0.tgz", + "integrity": "sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.11.0.tgz", + "integrity": "sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.11.0.tgz", + "integrity": "sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.11.0.tgz", + "integrity": "sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.11.0.tgz", + "integrity": "sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.11.0.tgz", + "integrity": "sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.11.0.tgz", + "integrity": "sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.11.0.tgz", + "integrity": "sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.11.0.tgz", + "integrity": "sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.11.0", + "@rollup/rollup-android-arm64": "4.11.0", + "@rollup/rollup-darwin-arm64": "4.11.0", + "@rollup/rollup-darwin-x64": "4.11.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.11.0", + "@rollup/rollup-linux-arm64-gnu": "4.11.0", + "@rollup/rollup-linux-arm64-musl": "4.11.0", + "@rollup/rollup-linux-riscv64-gnu": "4.11.0", + "@rollup/rollup-linux-x64-gnu": "4.11.0", + "@rollup/rollup-linux-x64-musl": "4.11.0", + "@rollup/rollup-win32-arm64-msvc": "4.11.0", + "@rollup/rollup-win32-ia32-msvc": "4.11.0", + "@rollup/rollup-win32-x64-msvc": "4.11.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/three": { + "version": "0.161.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.161.0.tgz", + "integrity": "sha512-LC28VFtjbOyEu5b93K0bNRLw1rQlMJ85lilKsYj6dgTu+7i17W+JCCEbvrpmNHF1F3NAUqDSWq50UD7w9H2xQw==" + }, + "node_modules/vite": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.3.tgz", + "integrity": "sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.35", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b30cf55 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "three_js_tutorial", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^5.1.0" + }, + "dependencies": { + "three": "^0.161.0" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..a48240d --- /dev/null +++ b/style.css @@ -0,0 +1,5 @@ +canvas { + position: fixed; + top: 0; + left: 0; +} \ No newline at end of file