add: Week-2 Project setup
This commit is contained in:
parent
6f00dddd73
commit
9c381ac314
@ -1,26 +1,30 @@
|
||||
# Ansh — Week 1 Summary
|
||||
|
||||
## Tasks Completed
|
||||
-Task 1:
|
||||
-Task 2:
|
||||
-Task 3:
|
||||
-Task 4:
|
||||
- Task 1: Built and compared a parent-child hierarchy (Sun -> Earth) in Vanilla, R3F, and Thob. Confirmed that basic parent transform inheritance works in all three, while Thob showed visual instability when editing child local position under transformed parent setups.
|
||||
- Task 2: Built and compared a 3-level hierarchy (Sun -> Earth -> Moon). Vanilla and R3F stayed predictable for local vs inherited transforms. Thob was partially successful, but deeper nesting made transform behavior harder to reason about and trust.
|
||||
- Task 3: Tested duplicate object and duplicate group behavior. All three supported duplication and preserved structure/transforms. Thob duplication was fast but always independent copy-paste, with no linked duplication mode.
|
||||
- Task 4: Tested basic rotation/motion. Vanilla and R3F supported full custom per-frame animation. Thob supported only preset animations, so motion was possible but not truly customizable.
|
||||
|
||||
## What Thob Supports Well
|
||||
-1.
|
||||
-2.
|
||||
-3.
|
||||
- 1. Very fast visual setup for basic scenes and hierarchy creation without code.
|
||||
- 2. Quick duplicate workflow for both single objects and grouped structures.
|
||||
- 3. Easy entry-level motion using built-in presets for non-technical users.
|
||||
|
||||
## What Feels Weak / Awkward
|
||||
-1.
|
||||
-2.
|
||||
-3.
|
||||
- 1. Local vs inherited transform behavior is not transparent enough in nested hierarchies, making debugging difficult.
|
||||
- 2. No linked duplication option (only independent copies), which limits synchronized editing workflows.
|
||||
- 3. Motion tooling is preset-only, so custom animation logic is not possible for use cases beyond simple demos.
|
||||
|
||||
## Most Product-Relevant Discovery
|
||||
-
|
||||
- Builder speed is valuable, but trust depends on transform predictability and controllability. As soon as hierarchy depth increases or motion needs become custom, reliability and clarity matter more than fast setup.
|
||||
|
||||
## Best Improvement Recommendation
|
||||
-
|
||||
- Prioritize transform reliability and visibility first: add a clear local/world transform inspector, inheritance path visibility for nested objects, and stable parent-child-grandchild behavior when editing position and scale. This would remove the biggest source of confusion across multiple tasks and unlock more advanced scene authoring confidence.
|
||||
|
||||
## What I Learned About Vanilla vs R3F vs Thob
|
||||
-
|
||||
- Vanilla three.js gives maximum control and predictable behavior, but requires more setup and deeper technical understanding.
|
||||
- R3F keeps most of Vanilla's control while making scene structure and updates cleaner through declarative components.
|
||||
- Thob is the fastest for initial visual authoring, but currently feels constrained for advanced workflows due to transform debugging gaps, limited duplication semantics, and lack of custom animation authoring.
|
||||
|
||||
Overall, Week 1 showed that Thob already has strong foundations for beginner and rapid prototyping workflows, but needs stronger transform tooling and deeper control surfaces to support production-level 3D interaction design.
|
||||
5
Week-2/Task-1/ProductLens.md
Normal file
5
Week-2/Task-1/ProductLens.md
Normal file
@ -0,0 +1,5 @@
|
||||
## Product Lens
|
||||
- Is this pattern useful for real customers? Yes / Partial / No
|
||||
- What kind of customer use case does this support?
|
||||
- Does Thob feel strong enough for this use case?
|
||||
- What would improve the experience?
|
||||
60
Week-2/Task-1/TaskNotes.md
Normal file
60
Week-2/Task-1/TaskNotes.md
Normal file
@ -0,0 +1,60 @@
|
||||
# Task: [Feature Name]
|
||||
|
||||
## Objective
|
||||
What is the feature trying to do?
|
||||
|
||||
## Vanilla three.js
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Key concepts:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## R3F
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-What R3F abstracted:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Thob Page Builder
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Builder steps:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Comparison Summary
|
||||
-Possible in all 3? Yes / Partial / No
|
||||
-Main differences:
|
||||
-Where Thob is better:
|
||||
-Where Thob is weaker:
|
||||
-What feels awkward or unclear:
|
||||
|
||||
## Limitation Type (if any)
|
||||
-[ ] Editor UX limitation
|
||||
-[ ] Runtime limitation
|
||||
-[ ] Schema / data model limitation
|
||||
-[ ] Component limitation
|
||||
-[ ] Event system limitation
|
||||
-[ ] Asset pipeline limitation
|
||||
-[ ] Unknown / needs investigation
|
||||
|
||||
## Workaround
|
||||
-Is there a workaround?
|
||||
-If yes, what is it?
|
||||
|
||||
## Suggested Improvement
|
||||
-What should improve in Thob?
|
||||
-Is it:
|
||||
-editor
|
||||
-runtime
|
||||
-component
|
||||
-UX
|
||||
-schema/data
|
||||
|
||||
## Difficulty Estimate
|
||||
-Easy / Medium / Hard
|
||||
|
||||
## Business Value
|
||||
-Low / Medium / High
|
||||
|
||||
## Recommendation
|
||||
Should Thob support this better? Why?
|
||||
24
Week-2/Task-1/r3f/Cammera/.gitignore
vendored
Normal file
24
Week-2/Task-1/r3f/Cammera/.gitignore
vendored
Normal file
@ -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?
|
||||
16
Week-2/Task-1/r3f/Cammera/README.md
Normal file
16
Week-2/Task-1/r3f/Cammera/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# React + Vite
|
||||
|
||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
||||
|
||||
Currently, two official plugins are available:
|
||||
|
||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
|
||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
|
||||
|
||||
## React Compiler
|
||||
|
||||
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
||||
|
||||
## Expanding the ESLint configuration
|
||||
|
||||
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
|
||||
29
Week-2/Task-1/r3f/Cammera/eslint.config.js
Normal file
29
Week-2/Task-1/r3f/Cammera/eslint.config.js
Normal file
@ -0,0 +1,29 @@
|
||||
import js from '@eslint/js'
|
||||
import globals from 'globals'
|
||||
import reactHooks from 'eslint-plugin-react-hooks'
|
||||
import reactRefresh from 'eslint-plugin-react-refresh'
|
||||
import { defineConfig, globalIgnores } from 'eslint/config'
|
||||
|
||||
export default defineConfig([
|
||||
globalIgnores(['dist']),
|
||||
{
|
||||
files: ['**/*.{js,jsx}'],
|
||||
extends: [
|
||||
js.configs.recommended,
|
||||
reactHooks.configs.flat.recommended,
|
||||
reactRefresh.configs.vite,
|
||||
],
|
||||
languageOptions: {
|
||||
ecmaVersion: 2020,
|
||||
globals: globals.browser,
|
||||
parserOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
ecmaFeatures: { jsx: true },
|
||||
sourceType: 'module',
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
|
||||
},
|
||||
},
|
||||
])
|
||||
13
Week-2/Task-1/r3f/Cammera/index.html
Normal file
13
Week-2/Task-1/r3f/Cammera/index.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Task1 R3f</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.jsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
30
Week-2/Task-1/r3f/Cammera/package.json
Normal file
30
Week-2/Task-1/r3f/Cammera/package.json
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "cammera",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "eslint .",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-three/fiber": "^9.5.0",
|
||||
"react": "^19.2.4",
|
||||
"react-dom": "^19.2.4",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.39.4",
|
||||
"@types/react": "^19.2.14",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@vitejs/plugin-react": "^6.0.0",
|
||||
"eslint": "^9.39.4",
|
||||
"eslint-plugin-react-hooks": "^7.0.1",
|
||||
"eslint-plugin-react-refresh": "^0.5.2",
|
||||
"globals": "^17.4.0",
|
||||
"vite": "^8.0.0"
|
||||
}
|
||||
}
|
||||
9
Week-2/Task-1/r3f/Cammera/src/App.jsx
Normal file
9
Week-2/Task-1/r3f/Cammera/src/App.jsx
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default App
|
||||
15
Week-2/Task-1/r3f/Cammera/src/index.css
Normal file
15
Week-2/Task-1/r3f/Cammera/src/index.css
Normal file
@ -0,0 +1,15 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html,
|
||||
body,
|
||||
#root {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
10
Week-2/Task-1/r3f/Cammera/src/main.jsx
Normal file
10
Week-2/Task-1/r3f/Cammera/src/main.jsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import './index.css'
|
||||
import App from './App.jsx'
|
||||
|
||||
createRoot(document.getElementById('root')).render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
)
|
||||
7
Week-2/Task-1/r3f/Cammera/vite.config.js
Normal file
7
Week-2/Task-1/r3f/Cammera/vite.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import react from '@vitejs/plugin-react'
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [react()],
|
||||
})
|
||||
1292
Week-2/Task-1/r3f/Cammera/yarn.lock
Normal file
1292
Week-2/Task-1/r3f/Cammera/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
12
Week-2/Task-1/r3f/package.json
Normal file
12
Week-2/Task-1/r3f/package.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "week-1-task-1-r3f",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "echo 'Add your React Three Fiber dev script here'",
|
||||
"build": "echo 'Add your React Three Fiber build script here'",
|
||||
"lint": "echo 'Add your lint script here'",
|
||||
"clean": "rm -rf dist build .next"
|
||||
}
|
||||
}
|
||||
19
Week-2/Task-1/vanilla/index.html
Normal file
19
Week-2/Task-1/vanilla/index.html
Normal file
@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Task1 vanilla </title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
background: white;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="module" src="/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
0
Week-2/Task-1/vanilla/main.js
Normal file
0
Week-2/Task-1/vanilla/main.js
Normal file
18
Week-2/Task-1/vanilla/package.json
Normal file
18
Week-2/Task-1/vanilla/package.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "week-1-task-1-vanilla",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "echo 'Add your lint script here'",
|
||||
"clean": "rm -rf dist build"
|
||||
},
|
||||
"dependencies": {
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "^8.0.2"
|
||||
}
|
||||
}
|
||||
5
Week-2/Task-2/ProductLens.md
Normal file
5
Week-2/Task-2/ProductLens.md
Normal file
@ -0,0 +1,5 @@
|
||||
## Product Lens
|
||||
- Is this pattern useful for real customers? Yes / Partial / No
|
||||
- What kind of customer use case does this support?
|
||||
- Does Thob feel strong enough for this use case?
|
||||
- What would improve the experience?
|
||||
60
Week-2/Task-2/TaskNotes.md
Normal file
60
Week-2/Task-2/TaskNotes.md
Normal file
@ -0,0 +1,60 @@
|
||||
# Task: [Feature Name]
|
||||
|
||||
## Objective
|
||||
What is the feature trying to do?
|
||||
|
||||
## Vanilla three.js
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Key concepts:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## R3F
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-What R3F abstracted:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Thob Page Builder
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Builder steps:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Comparison Summary
|
||||
-Possible in all 3? Yes / Partial / No
|
||||
-Main differences:
|
||||
-Where Thob is better:
|
||||
-Where Thob is weaker:
|
||||
-What feels awkward or unclear:
|
||||
|
||||
## Limitation Type (if any)
|
||||
-[ ] Editor UX limitation
|
||||
-[ ] Runtime limitation
|
||||
-[ ] Schema / data model limitation
|
||||
-[ ] Component limitation
|
||||
-[ ] Event system limitation
|
||||
-[ ] Asset pipeline limitation
|
||||
-[ ] Unknown / needs investigation
|
||||
|
||||
## Workaround
|
||||
-Is there a workaround?
|
||||
-If yes, what is it?
|
||||
|
||||
## Suggested Improvement
|
||||
-What should improve in Thob?
|
||||
-Is it:
|
||||
-editor
|
||||
-runtime
|
||||
-component
|
||||
-UX
|
||||
-schema/data
|
||||
|
||||
## Difficulty Estimate
|
||||
-Easy / Medium / Hard
|
||||
|
||||
## Business Value
|
||||
-Low / Medium / High
|
||||
|
||||
## Recommendation
|
||||
Should Thob support this better? Why?
|
||||
0
Week-2/Task-2/builder/BuilderNotes.md
Normal file
0
Week-2/Task-2/builder/BuilderNotes.md
Normal file
12
Week-2/Task-2/r3f/package.json
Normal file
12
Week-2/Task-2/r3f/package.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "week-1-task-2-r3f",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "echo 'Add your React Three Fiber dev script here'",
|
||||
"build": "echo 'Add your React Three Fiber build script here'",
|
||||
"lint": "echo 'Add your lint script here'",
|
||||
"clean": "rm -rf dist build .next"
|
||||
}
|
||||
}
|
||||
24
Week-2/Task-2/r3f/sceene/.gitignore
vendored
Normal file
24
Week-2/Task-2/r3f/sceene/.gitignore
vendored
Normal file
@ -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?
|
||||
16
Week-2/Task-2/r3f/sceene/README.md
Normal file
16
Week-2/Task-2/r3f/sceene/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# React + Vite
|
||||
|
||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
||||
|
||||
Currently, two official plugins are available:
|
||||
|
||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
|
||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
|
||||
|
||||
## React Compiler
|
||||
|
||||
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
||||
|
||||
## Expanding the ESLint configuration
|
||||
|
||||
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
|
||||
29
Week-2/Task-2/r3f/sceene/eslint.config.js
Normal file
29
Week-2/Task-2/r3f/sceene/eslint.config.js
Normal file
@ -0,0 +1,29 @@
|
||||
import js from '@eslint/js'
|
||||
import globals from 'globals'
|
||||
import reactHooks from 'eslint-plugin-react-hooks'
|
||||
import reactRefresh from 'eslint-plugin-react-refresh'
|
||||
import { defineConfig, globalIgnores } from 'eslint/config'
|
||||
|
||||
export default defineConfig([
|
||||
globalIgnores(['dist']),
|
||||
{
|
||||
files: ['**/*.{js,jsx}'],
|
||||
extends: [
|
||||
js.configs.recommended,
|
||||
reactHooks.configs.flat.recommended,
|
||||
reactRefresh.configs.vite,
|
||||
],
|
||||
languageOptions: {
|
||||
ecmaVersion: 2020,
|
||||
globals: globals.browser,
|
||||
parserOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
ecmaFeatures: { jsx: true },
|
||||
sourceType: 'module',
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
|
||||
},
|
||||
},
|
||||
])
|
||||
13
Week-2/Task-2/r3f/sceene/index.html
Normal file
13
Week-2/Task-2/r3f/sceene/index.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Task2 R3f</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.jsx"></script>
|
||||
</body>
|
||||
</html>
|
||||
2815
Week-2/Task-2/r3f/sceene/package-lock.json
generated
Normal file
2815
Week-2/Task-2/r3f/sceene/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
29
Week-2/Task-2/r3f/sceene/package.json
Normal file
29
Week-2/Task-2/r3f/sceene/package.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "sceene",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "eslint .",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-three/fiber": "^9.5.0",
|
||||
"react": "^19.2.4",
|
||||
"react-dom": "^19.2.4",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.39.4",
|
||||
"@types/react": "^19.2.14",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"@vitejs/plugin-react": "^6.0.0",
|
||||
"eslint": "^9.39.4",
|
||||
"eslint-plugin-react-hooks": "^7.0.1",
|
||||
"eslint-plugin-react-refresh": "^0.5.2",
|
||||
"globals": "^17.4.0",
|
||||
"vite": "^8.0.0"
|
||||
}
|
||||
}
|
||||
8
Week-2/Task-2/r3f/sceene/src/App.jsx
Normal file
8
Week-2/Task-2/r3f/sceene/src/App.jsx
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<></>
|
||||
)
|
||||
}
|
||||
|
||||
export default App
|
||||
15
Week-2/Task-2/r3f/sceene/src/index.css
Normal file
15
Week-2/Task-2/r3f/sceene/src/index.css
Normal file
@ -0,0 +1,15 @@
|
||||
html,
|
||||
body,
|
||||
#root {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: block;
|
||||
}
|
||||
10
Week-2/Task-2/r3f/sceene/src/main.jsx
Normal file
10
Week-2/Task-2/r3f/sceene/src/main.jsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import './index.css'
|
||||
import App from './App.jsx'
|
||||
|
||||
createRoot(document.getElementById('root')).render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
)
|
||||
7
Week-2/Task-2/r3f/sceene/vite.config.js
Normal file
7
Week-2/Task-2/r3f/sceene/vite.config.js
Normal file
@ -0,0 +1,7 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import react from '@vitejs/plugin-react'
|
||||
|
||||
// https://vite.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [react()],
|
||||
})
|
||||
28
Week-2/Task-2/vanilla/index.html
Normal file
28
Week-2/Task-2/vanilla/index.html
Normal file
@ -0,0 +1,28 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Task2 vanilla</title>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
background: white;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body> <script type="module" src="/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
0
Week-2/Task-2/vanilla/main.js
Normal file
0
Week-2/Task-2/vanilla/main.js
Normal file
18
Week-2/Task-2/vanilla/package.json
Normal file
18
Week-2/Task-2/vanilla/package.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "week-1-task-2-vanilla",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "echo 'Add your lint script here'",
|
||||
"clean": "rm -rf dist build"
|
||||
},
|
||||
"dependencies": {
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "^8.0.3"
|
||||
}
|
||||
}
|
||||
5
Week-2/Task-3/ProductLens.md
Normal file
5
Week-2/Task-3/ProductLens.md
Normal file
@ -0,0 +1,5 @@
|
||||
## Product Lens
|
||||
- Is this pattern useful for real customers? Yes / Partial / No
|
||||
- What kind of customer use case does this support?
|
||||
- Does Thob feel strong enough for this use case?
|
||||
- What would improve the experience?
|
||||
60
Week-2/Task-3/TaskNotes.md
Normal file
60
Week-2/Task-3/TaskNotes.md
Normal file
@ -0,0 +1,60 @@
|
||||
# Task: [Feature Name]
|
||||
|
||||
## Objective
|
||||
What is the feature trying to do?
|
||||
|
||||
## Vanilla three.js
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Key concepts:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## R3F
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-What R3F abstracted:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Thob Page Builder
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Builder steps:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Comparison Summary
|
||||
-Possible in all 3? Yes / Partial / No
|
||||
-Main differences:
|
||||
-Where Thob is better:
|
||||
-Where Thob is weaker:
|
||||
-What feels awkward or unclear:
|
||||
|
||||
## Limitation Type (if any)
|
||||
-[ ] Editor UX limitation
|
||||
-[ ] Runtime limitation
|
||||
-[ ] Schema / data model limitation
|
||||
-[ ] Component limitation
|
||||
-[ ] Event system limitation
|
||||
-[ ] Asset pipeline limitation
|
||||
-[ ] Unknown / needs investigation
|
||||
|
||||
## Workaround
|
||||
-Is there a workaround?
|
||||
-If yes, what is it?
|
||||
|
||||
## Suggested Improvement
|
||||
-What should improve in Thob?
|
||||
-Is it:
|
||||
-editor
|
||||
-runtime
|
||||
-component
|
||||
-UX
|
||||
-schema/data
|
||||
|
||||
## Difficulty Estimate
|
||||
-Easy / Medium / Hard
|
||||
|
||||
## Business Value
|
||||
-Low / Medium / High
|
||||
|
||||
## Recommendation
|
||||
Should Thob support this better? Why?
|
||||
0
Week-2/Task-3/builder/BuilderNotes.md
Normal file
0
Week-2/Task-3/builder/BuilderNotes.md
Normal file
15
Week-2/Task-3/r3f/index.html
Normal file
15
Week-2/Task-3/r3f/index.html
Normal file
@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Task 3 R3F</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.jsx"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
24
Week-2/Task-3/r3f/package.json
Normal file
24
Week-2/Task-3/r3f/package.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "week-1-task-3-r3f",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "echo 'Lint not configured yet'",
|
||||
"preview": "vite preview",
|
||||
"clean": "rm -rf dist build .next"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-three/fiber": "^9.5.0",
|
||||
"react": "^19.2.4",
|
||||
"react-dom": "^19.2.4",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-react": "^6.0.0",
|
||||
"vite": "^8.0.3"
|
||||
}
|
||||
}
|
||||
6
Week-2/Task-3/r3f/src/App.jsx
Normal file
6
Week-2/Task-3/r3f/src/App.jsx
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<></>
|
||||
)
|
||||
}
|
||||
18
Week-2/Task-3/r3f/src/index.css
Normal file
18
Week-2/Task-3/r3f/src/index.css
Normal file
@ -0,0 +1,18 @@
|
||||
html,
|
||||
body,
|
||||
#root {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow: hidden;
|
||||
background: #101418;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
10
Week-2/Task-3/r3f/src/main.jsx
Normal file
10
Week-2/Task-3/r3f/src/main.jsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import App from './App.jsx'
|
||||
import './index.css'
|
||||
|
||||
createRoot(document.getElementById('root')).render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
)
|
||||
6
Week-2/Task-3/r3f/vite.config.js
Normal file
6
Week-2/Task-3/r3f/vite.config.js
Normal file
@ -0,0 +1,6 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import react from '@vitejs/plugin-react'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [react()],
|
||||
})
|
||||
24
Week-2/Task-3/vanilla/index.html
Normal file
24
Week-2/Task-3/vanilla/index.html
Normal file
@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Task 3 Vanilla</title>
|
||||
<style>
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
background: #101418;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="module" src="/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
0
Week-2/Task-3/vanilla/main.js
Normal file
0
Week-2/Task-3/vanilla/main.js
Normal file
12
Week-2/Task-3/vanilla/package.json
Normal file
12
Week-2/Task-3/vanilla/package.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "week-1-task-3-vanilla",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "echo 'Add your lint script here'",
|
||||
"clean": "rm -rf dist build"
|
||||
}
|
||||
}
|
||||
5
Week-2/Task-4/ProductLens.md
Normal file
5
Week-2/Task-4/ProductLens.md
Normal file
@ -0,0 +1,5 @@
|
||||
## Product Lens
|
||||
- Is this pattern useful for real customers? Yes / Partial / No
|
||||
- What kind of customer use case does this support?
|
||||
- Does Thob feel strong enough for this use case?
|
||||
- What would improve the experience?
|
||||
60
Week-2/Task-4/TaskNotes.md
Normal file
60
Week-2/Task-4/TaskNotes.md
Normal file
@ -0,0 +1,60 @@
|
||||
# Task: [Feature Name]
|
||||
|
||||
## Objective
|
||||
What is the feature trying to do?
|
||||
|
||||
## Vanilla three.js
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Key concepts:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## R3F
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-What R3F abstracted:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Thob Page Builder
|
||||
-Possible: Yes / Partial / No
|
||||
-Notes:
|
||||
-Builder steps:
|
||||
-Complexity: Easy / Medium / Hard
|
||||
|
||||
## Comparison Summary
|
||||
-Possible in all 3? Yes / Partial / No
|
||||
-Main differences:
|
||||
-Where Thob is better:
|
||||
-Where Thob is weaker:
|
||||
-What feels awkward or unclear:
|
||||
|
||||
## Limitation Type (if any)
|
||||
-[ ] Editor UX limitation
|
||||
-[ ] Runtime limitation
|
||||
-[ ] Schema / data model limitation
|
||||
-[ ] Component limitation
|
||||
-[ ] Event system limitation
|
||||
-[ ] Asset pipeline limitation
|
||||
-[ ] Unknown / needs investigation
|
||||
|
||||
## Workaround
|
||||
-Is there a workaround?
|
||||
-If yes, what is it?
|
||||
|
||||
## Suggested Improvement
|
||||
-What should improve in Thob?
|
||||
-Is it:
|
||||
-editor
|
||||
-runtime
|
||||
-component
|
||||
-UX
|
||||
-schema/data
|
||||
|
||||
## Difficulty Estimate
|
||||
-Easy / Medium / Hard
|
||||
|
||||
## Business Value
|
||||
-Low / Medium / High
|
||||
|
||||
## Recommendation
|
||||
Should Thob support this better? Why?
|
||||
73
Week-2/Task-4/builder/BuilderNotes.md
Normal file
73
Week-2/Task-4/builder/BuilderNotes.md
Normal file
@ -0,0 +1,73 @@
|
||||
# Builder Notes (Thob) — Task 4: Basic Rotation / Motion
|
||||
|
||||
## Thob Observations from Task Notes
|
||||
|
||||
- **Possible:** Partial
|
||||
- **Implementation used:** Applied available built-in animation presets on a cube/object inside thob builder.
|
||||
- **What worked as expected:**
|
||||
- Preset animation can be applied quickly.
|
||||
- Basic motion effects are visible without writing code.
|
||||
- **Main limitation observed:**
|
||||
- Custom animation is not possible; only pre-provided animation can be applied.
|
||||
- Exact motion parity with Vanilla/R3F frame-loop logic is not achievable from the builder controls.
|
||||
- **Builder flow used:**
|
||||
1. Create/Add cube object in scene.
|
||||
2. Open animation controls.
|
||||
3. Apply available preset animation.
|
||||
4. Tune exposed preset options (for example speed/intensity where available).
|
||||
- **Complexity:** Easy for preset motion, hard for custom motion requirements.
|
||||
- **Main limitation signals:** Editor UX + Runtime + Component concerns.
|
||||
- **Workaround status:** Partial workaround only (use nearest preset); no true custom per-frame animation authoring.
|
||||
|
||||
## Console Warnings/Errors Seen (Deduplicated) and Probable Meaning
|
||||
|
||||
### warn: `Permissions-Policy header unrecognized feature ('browsing-topics')`
|
||||
- **Type:** Browser/header compatibility warning.
|
||||
- **Probable meaning:** Response header includes a policy directive not recognized by the current browser engine.
|
||||
- **Impact:** Usually low for scene editing itself; mostly platform/header noise.
|
||||
|
||||
### error: `GET https://builder.thob.studio/builder/<id> 404 (Not Found)`
|
||||
- **Type:** Network/resource error.
|
||||
- **Probable meaning:** Builder page/resource ID is stale, deleted, or inaccessible for current session.
|
||||
- **Impact:** High for workflow continuity; can block loading expected builder state.
|
||||
|
||||
### warn: `Unchecked runtime.lastError: The message port closed before a response was received`
|
||||
- **Type:** Browser extension/runtime messaging warning.
|
||||
- **Probable meaning:** A background messaging channel closed before callback response (often extension-related).
|
||||
- **Impact:** Usually low for core scene logic; can add debugging noise.
|
||||
|
||||
### warn: `No HydrateFallback element provided to render during initial hydration`
|
||||
- **Type:** Hydration/lifecycle warning.
|
||||
- **Probable meaning:** Initial hydration path expected a fallback UI element but none was configured.
|
||||
- **Impact:** Can produce unstable initial editor/preview rendering behavior.
|
||||
|
||||
### warn: `... changing from uncontrolled to controlled` and `RadioGroup is changing from uncontrolled to controlled`
|
||||
- **Type:** React state-management warning.
|
||||
- **Probable meaning:** Form/editor controls switch value ownership mode across renders.
|
||||
- **Impact:** Property panel behavior may become inconsistent or glitchy.
|
||||
|
||||
### warn: `GetBindingData<id> method already registered` (repeated)
|
||||
- **Type:** Duplicate registration warning.
|
||||
- **Probable meaning:** Binding method handlers are attached multiple times during rerender/remount cycles.
|
||||
- **Impact:** High log noise, risk of duplicated side effects, and potential performance degradation.
|
||||
|
||||
### warn: `resetPOI method already registered`
|
||||
- **Type:** Duplicate command registration warning.
|
||||
- **Probable meaning:** Command/event handler is registered more than once without cleanup.
|
||||
- **Impact:** Risk of repeated command execution and state drift.
|
||||
|
||||
### warn: `camera-controls: verticalDragToForward was removed...`
|
||||
- **Type:** API deprecation/removed option warning.
|
||||
- **Probable meaning:** Legacy camera-controls prop is still being used by some path in the runtime/editor.
|
||||
- **Impact:** Non-fatal now, but indicates outdated control configuration and future fragility.
|
||||
|
||||
### error: `THREE.GLTFLoader: Invalid plugin found: missing name`
|
||||
- **Type:** Asset loader/plugin configuration error.
|
||||
- **Probable meaning:** GLTF loader plugin object does not satisfy required shape/metadata.
|
||||
- **Impact:** Asset loading behavior may be incomplete or fail for some models.
|
||||
|
||||
## Overall Read
|
||||
|
||||
- For Task 4, thob supports only preset motion and does not support custom animation logic, which is the core functional gap compared with Vanilla and R3F.
|
||||
- Console output shows repeated registration and controlled/uncontrolled warnings, which aligns with editor/runtime stability concerns when iterating quickly in builder.
|
||||
- The 404 page load and loader/control warnings suggest platform-level reliability and compatibility issues that can interfere with smooth motion-authoring workflows.
|
||||
15
Week-2/Task-4/r3f/index.html
Normal file
15
Week-2/Task-4/r3f/index.html
Normal file
@ -0,0 +1,15 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Task 4 R3F</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script type="module" src="/src/main.jsx"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
24
Week-2/Task-4/r3f/package.json
Normal file
24
Week-2/Task-4/r3f/package.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "week-1-task-4-r3f",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "echo 'Lint not configured yet'",
|
||||
"preview": "vite preview",
|
||||
"clean": "rm -rf dist build .next"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-three/fiber": "^9.5.0",
|
||||
"react": "^19.2.4",
|
||||
"react-dom": "^19.2.4",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-react": "^6.0.0",
|
||||
"vite": "^8.0.3"
|
||||
}
|
||||
}
|
||||
6
Week-2/Task-4/r3f/src/App.jsx
Normal file
6
Week-2/Task-4/r3f/src/App.jsx
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<></>
|
||||
)
|
||||
}
|
||||
8
Week-2/Task-4/r3f/src/index.css
Normal file
8
Week-2/Task-4/r3f/src/index.css
Normal file
@ -0,0 +1,8 @@
|
||||
html,
|
||||
body,
|
||||
#root {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
background-color: black;
|
||||
}
|
||||
10
Week-2/Task-4/r3f/src/main.jsx
Normal file
10
Week-2/Task-4/r3f/src/main.jsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { StrictMode } from 'react'
|
||||
import { createRoot } from 'react-dom/client'
|
||||
import App from './App.jsx'
|
||||
import './index.css'
|
||||
|
||||
createRoot(document.getElementById('root')).render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
</StrictMode>,
|
||||
)
|
||||
6
Week-2/Task-4/r3f/vite.config.js
Normal file
6
Week-2/Task-4/r3f/vite.config.js
Normal file
@ -0,0 +1,6 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import react from '@vitejs/plugin-react'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [react()],
|
||||
})
|
||||
18
Week-2/Task-4/vanilla/index.html
Normal file
18
Week-2/Task-4/vanilla/index.html
Normal file
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Task4 vanilla </title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="module" src="/main.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
0
Week-2/Task-4/vanilla/main.js
Normal file
0
Week-2/Task-4/vanilla/main.js
Normal file
18
Week-2/Task-4/vanilla/package.json
Normal file
18
Week-2/Task-4/vanilla/package.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "week-1-task-4-vanilla",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"packageManager": "yarn@1.22.22",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"lint": "echo 'Add your lint script here'",
|
||||
"clean": "rm -rf dist build"
|
||||
},
|
||||
"dependencies": {
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "^8.0.3"
|
||||
}
|
||||
}
|
||||
26
Week-2/Week-2-PersonalSummary.md
Normal file
26
Week-2/Week-2-PersonalSummary.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Ansh — Week 1 Summary
|
||||
|
||||
## Tasks Completed
|
||||
-Task 1:
|
||||
-Task 2:
|
||||
-Task 3:
|
||||
-Task 4:
|
||||
|
||||
## What Thob Supports Well
|
||||
-1.
|
||||
-2.
|
||||
-3.
|
||||
|
||||
## What Feels Weak / Awkward
|
||||
-1.
|
||||
-2.
|
||||
-3.
|
||||
|
||||
## Most Product-Relevant Discovery
|
||||
-
|
||||
|
||||
## Best Improvement Recommendation
|
||||
-
|
||||
|
||||
## What I Learned About Vanilla vs R3F vs Thob
|
||||
-
|
||||
18
package-lock.json
generated
18
package-lock.json
generated
@ -9,8 +9,12 @@
|
||||
"Week-*/Task-*/vanilla",
|
||||
"Week-*/Task-*/r3f"
|
||||
],
|
||||
"dependencies": {
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"turbo": "^2.0.0"
|
||||
"turbo": "^2.0.0",
|
||||
"vite": "^8.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
@ -1060,7 +1064,17 @@
|
||||
},
|
||||
"Week-1/Task-4/r3f": {
|
||||
"name": "week-1-task-4-r3f",
|
||||
"version": "0.0.0"
|
||||
"version": "0.0.0",
|
||||
"dependencies": {
|
||||
"@react-three/fiber": "^9.5.0",
|
||||
"react": "^19.2.4",
|
||||
"react-dom": "^19.2.4",
|
||||
"three": "^0.183.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-react": "^6.0.0",
|
||||
"vite": "^8.0.3"
|
||||
}
|
||||
},
|
||||
"Week-1/Task-4/vanilla": {
|
||||
"name": "week-1-task-4-vanilla",
|
||||
|
||||
@ -13,6 +13,10 @@
|
||||
"clean": "turbo run clean"
|
||||
},
|
||||
"devDependencies": {
|
||||
"turbo": "^2.0.0"
|
||||
"turbo": "^2.0.0",
|
||||
"vite": "^8.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"three": "^0.183.2"
|
||||
}
|
||||
}
|
||||
238
yarn.lock
238
yarn.lock
@ -7,13 +7,6 @@
|
||||
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz"
|
||||
integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==
|
||||
|
||||
"@napi-rs/wasm-runtime@^1.1.1":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.2.tgz#e25454b4d44cfabd21d1bc801705359870e33ecc"
|
||||
integrity sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==
|
||||
dependencies:
|
||||
"@tybys/wasm-util" "^0.10.1"
|
||||
|
||||
"@oxc-project/types@=0.122.0":
|
||||
version "0.122.0"
|
||||
resolved "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz"
|
||||
@ -35,83 +28,11 @@
|
||||
use-sync-external-store "^1.4.0"
|
||||
zustand "^5.0.3"
|
||||
|
||||
"@rolldown/binding-android-arm64@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz#4e6af08b89da02596cc5da4b105082b68673ffec"
|
||||
integrity sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==
|
||||
|
||||
"@rolldown/binding-darwin-arm64@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz"
|
||||
integrity sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==
|
||||
|
||||
"@rolldown/binding-darwin-x64@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz#eddf6aa3ed3509171fe21711f1e8ec8e0fd7ec49"
|
||||
integrity sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==
|
||||
|
||||
"@rolldown/binding-freebsd-x64@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz#2102dfed19fd1f1b53435fcaaf0bc61129a266a3"
|
||||
integrity sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==
|
||||
|
||||
"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz#b2c13f40e990fd1e1935492850536c768c961a0f"
|
||||
integrity sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==
|
||||
|
||||
"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz#32ca9f77c1e76b2913b3d53d2029dc171c0532d6"
|
||||
integrity sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==
|
||||
|
||||
"@rolldown/binding-linux-arm64-musl@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz#f4337ddd52f0ed3ada2105b59ee1b757a2c4858c"
|
||||
integrity sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==
|
||||
|
||||
"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz#22fdd14cb00ee8208c28a39bab7f28860ec6705d"
|
||||
integrity sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==
|
||||
|
||||
"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz#838215096d1de6d3d509e0410801cb7cda8161ff"
|
||||
integrity sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==
|
||||
|
||||
"@rolldown/binding-linux-x64-gnu@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz#f7d71d97f6bd43198596b26dc2cb364586e12673"
|
||||
integrity sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==
|
||||
|
||||
"@rolldown/binding-linux-x64-musl@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz#a2ca737f01b0ad620c4c404ca176ea3e3ad804c3"
|
||||
integrity sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==
|
||||
|
||||
"@rolldown/binding-openharmony-arm64@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz#f66317e29eafcc300bed7af8dddac26ab3b1bf82"
|
||||
integrity sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==
|
||||
|
||||
"@rolldown/binding-wasm32-wasi@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz#8825523fdffa1f1dc4683be9650ffaa9e4a77f04"
|
||||
integrity sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==
|
||||
dependencies:
|
||||
"@napi-rs/wasm-runtime" "^1.1.1"
|
||||
|
||||
"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz#4f3a17e3d68a58309c27c0930b0f7986ccabef47"
|
||||
integrity sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==
|
||||
|
||||
"@rolldown/binding-win32-x64-msvc@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz#d762765d5660598a96b570b513f535c151272985"
|
||||
integrity sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==
|
||||
|
||||
"@rolldown/pluginutils@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz"
|
||||
@ -122,48 +43,23 @@
|
||||
resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz"
|
||||
integrity sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==
|
||||
|
||||
"@turbo/darwin-64@2.8.20":
|
||||
version "2.8.20"
|
||||
resolved "https://registry.yarnpkg.com/@turbo/darwin-64/-/darwin-64-2.8.20.tgz#6ebc903fbfe31db85f67b84af69e84822765cbf4"
|
||||
integrity sha512-FQ9EX1xMU5nbwjxXxM3yU88AQQ6Sqc6S44exPRroMcx9XZHqqppl5ymJF0Ig/z3nvQNwDmz1Gsnvxubo+nXWjQ==
|
||||
|
||||
"@turbo/darwin-arm64@2.8.20":
|
||||
version "2.8.20"
|
||||
resolved "https://registry.npmjs.org/@turbo/darwin-arm64/-/darwin-arm64-2.8.20.tgz"
|
||||
integrity sha512-Gpyh9ATFGThD6/s9L95YWY54cizg/VRWl2B67h0yofG8BpHf67DFAh9nuJVKG7bY0+SBJDAo5cMur+wOl9YOYw==
|
||||
|
||||
"@turbo/linux-64@2.8.20":
|
||||
version "2.8.20"
|
||||
resolved "https://registry.yarnpkg.com/@turbo/linux-64/-/linux-64-2.8.20.tgz#51faba95b242731b0beae9811724b3eeee6aa0a1"
|
||||
integrity sha512-p2QxWUYyYUgUFG0b0kR+pPi8t7c9uaVlRtjTTI1AbCvVqkpjUfCcReBn6DgG/Hu8xrWdKLuyQFaLYFzQskZbcA==
|
||||
|
||||
"@turbo/linux-arm64@2.8.20":
|
||||
version "2.8.20"
|
||||
resolved "https://registry.yarnpkg.com/@turbo/linux-arm64/-/linux-arm64-2.8.20.tgz#4c466ec09a2c2e6513df94d703660bb6efa61614"
|
||||
integrity sha512-Gn5yjlZGLRZWarLWqdQzv0wMqyBNIdq1QLi48F1oY5Lo9kiohuf7BPQWtWxeNVS2NgJ1+nb/DzK1JduYC4AWOA==
|
||||
|
||||
"@turbo/windows-64@2.8.20":
|
||||
version "2.8.20"
|
||||
resolved "https://registry.yarnpkg.com/@turbo/windows-64/-/windows-64-2.8.20.tgz#b8f23ff1d5ddf9b1abe41db2b1cb35b13066c063"
|
||||
integrity sha512-vyaDpYk/8T6Qz5V/X+ihKvKFEZFUoC0oxYpC1sZanK6gaESJlmV3cMRT3Qhcg4D2VxvtC2Jjs9IRkrZGL+exLw==
|
||||
|
||||
"@turbo/windows-arm64@2.8.20":
|
||||
version "2.8.20"
|
||||
resolved "https://registry.yarnpkg.com/@turbo/windows-arm64/-/windows-arm64-2.8.20.tgz#8032d42c6cfd954d3c381720d5a65dc3e7ea3014"
|
||||
integrity sha512-voicVULvUV5yaGXo0Iue13BcHGYW3u0VgqSbfQwBaHbpj1zLjYV4KIe+7fYIo6DO8FVUJzxFps3ODCQG/Wy2Qw==
|
||||
|
||||
"@tybys/wasm-util@^0.10.1":
|
||||
version "0.10.1"
|
||||
resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414"
|
||||
integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@types/react-reconciler@^0.28.9":
|
||||
version "0.28.9"
|
||||
resolved "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz"
|
||||
integrity sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==
|
||||
|
||||
"@types/react@*", "@types/react@>=18.0.0":
|
||||
version "19.2.14"
|
||||
resolved "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz"
|
||||
integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==
|
||||
dependencies:
|
||||
csstype "^3.2.2"
|
||||
|
||||
"@types/webxr@*":
|
||||
version "0.5.24"
|
||||
resolved "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz"
|
||||
@ -189,6 +85,11 @@ buffer@^6.0.3:
|
||||
base64-js "^1.3.1"
|
||||
ieee754 "^1.2.1"
|
||||
|
||||
csstype@^3.2.2:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz"
|
||||
integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==
|
||||
|
||||
detect-libc@^2.0.3:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz"
|
||||
@ -216,61 +117,11 @@ its-fine@^2.0.0:
|
||||
dependencies:
|
||||
"@types/react-reconciler" "^0.28.9"
|
||||
|
||||
lightningcss-android-arm64@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968"
|
||||
integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==
|
||||
|
||||
lightningcss-darwin-arm64@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz"
|
||||
integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==
|
||||
|
||||
lightningcss-darwin-x64@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e"
|
||||
integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==
|
||||
|
||||
lightningcss-freebsd-x64@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575"
|
||||
integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==
|
||||
|
||||
lightningcss-linux-arm-gnueabihf@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d"
|
||||
integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==
|
||||
|
||||
lightningcss-linux-arm64-gnu@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335"
|
||||
integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==
|
||||
|
||||
lightningcss-linux-arm64-musl@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133"
|
||||
integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==
|
||||
|
||||
lightningcss-linux-x64-gnu@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6"
|
||||
integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==
|
||||
|
||||
lightningcss-linux-x64-musl@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b"
|
||||
integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==
|
||||
|
||||
lightningcss-win32-arm64-msvc@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38"
|
||||
integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==
|
||||
|
||||
lightningcss-win32-x64-msvc@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz#141aa5605645064928902bb4af045fa7d9f4220a"
|
||||
integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==
|
||||
|
||||
lightningcss@^1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz"
|
||||
@ -300,7 +151,7 @@ picocolors@^1.1.1:
|
||||
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz"
|
||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
||||
|
||||
picomatch@^4.0.3, picomatch@^4.0.4:
|
||||
"picomatch@^3 || ^4", picomatch@^4.0.3, picomatch@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz"
|
||||
integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
|
||||
@ -314,7 +165,7 @@ postcss@^8.5.8:
|
||||
picocolors "^1.1.1"
|
||||
source-map-js "^1.2.1"
|
||||
|
||||
react-dom@^19.2.4:
|
||||
react-dom@^19.2.4, react-dom@>=16.13, "react-dom@>=19 <19.3":
|
||||
version "19.2.4"
|
||||
resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz"
|
||||
integrity sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==
|
||||
@ -326,7 +177,7 @@ react-use-measure@^2.1.7:
|
||||
resolved "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.7.tgz"
|
||||
integrity sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==
|
||||
|
||||
react@^19.2.4:
|
||||
"react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", react@^19.0.0, react@^19.2.4, react@>=16.13, react@>=17.0, react@>=18.0.0, "react@>=19 <19.3":
|
||||
version "19.2.4"
|
||||
resolved "https://registry.npmjs.org/react/-/react-19.2.4.tgz"
|
||||
integrity sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==
|
||||
@ -370,7 +221,7 @@ suspend-react@^0.1.3:
|
||||
resolved "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz"
|
||||
integrity sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==
|
||||
|
||||
three@^0.183.2:
|
||||
three@^0.183.2, three@>=0.156:
|
||||
version "0.183.2"
|
||||
resolved "https://registry.npmjs.org/three/-/three-0.183.2.tgz"
|
||||
integrity sha512-di3BsL2FEQ1PA7Hcvn4fyJOlxRRgFYBpMTcyOgkwJIaDOdJMebEFPA+t98EvjuljDx4hNulAGwF6KIjtwI5jgQ==
|
||||
@ -383,11 +234,6 @@ tinyglobby@^0.2.15:
|
||||
fdir "^6.5.0"
|
||||
picomatch "^4.0.3"
|
||||
|
||||
tslib@^2.4.0:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
|
||||
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
||||
|
||||
turbo@^2.0.0:
|
||||
version "2.8.20"
|
||||
resolved "https://registry.npmjs.org/turbo/-/turbo-2.8.20.tgz"
|
||||
@ -400,12 +246,12 @@ turbo@^2.0.0:
|
||||
"@turbo/windows-64" "2.8.20"
|
||||
"@turbo/windows-arm64" "2.8.20"
|
||||
|
||||
use-sync-external-store@^1.4.0:
|
||||
use-sync-external-store@^1.4.0, use-sync-external-store@>=1.2.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz"
|
||||
integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==
|
||||
|
||||
vite@^8.0.2, vite@^8.0.3:
|
||||
vite@^8.0.0, vite@^8.0.2, vite@^8.0.3:
|
||||
version "8.0.3"
|
||||
resolved "https://registry.npmjs.org/vite/-/vite-8.0.3.tgz"
|
||||
integrity sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==
|
||||
@ -418,6 +264,54 @@ vite@^8.0.2, vite@^8.0.3:
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.3"
|
||||
|
||||
"week-1-task-1-r3f@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-1/r3f":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-1/r3f"
|
||||
|
||||
"week-1-task-1-vanilla@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-1/vanilla":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-1/vanilla"
|
||||
dependencies:
|
||||
three "^0.183.2"
|
||||
|
||||
"week-1-task-2-r3f@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-2/r3f":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-2/r3f"
|
||||
|
||||
"week-1-task-2-vanilla@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-2/vanilla":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-2/vanilla"
|
||||
dependencies:
|
||||
three "^0.183.2"
|
||||
|
||||
"week-1-task-3-r3f@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-3/r3f":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-3/r3f"
|
||||
dependencies:
|
||||
"@react-three/fiber" "^9.5.0"
|
||||
react "^19.2.4"
|
||||
react-dom "^19.2.4"
|
||||
three "^0.183.2"
|
||||
|
||||
"week-1-task-3-vanilla@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-3/vanilla":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-3/vanilla"
|
||||
|
||||
"week-1-task-4-r3f@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-4/r3f":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-4/r3f"
|
||||
dependencies:
|
||||
"@react-three/fiber" "^9.5.0"
|
||||
react "^19.2.4"
|
||||
react-dom "^19.2.4"
|
||||
three "^0.183.2"
|
||||
|
||||
"week-1-task-4-vanilla@file:/Users/anshkumar/Documents/VS Code/thob-work/builder-research/Week-1/Task-4/vanilla":
|
||||
version "0.0.0"
|
||||
resolved "file:Week-1/Task-4/vanilla"
|
||||
dependencies:
|
||||
three "^0.183.2"
|
||||
|
||||
zustand@^5.0.3:
|
||||
version "5.0.12"
|
||||
resolved "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user