Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
HFT-informatics-weekend
AR - Urban Planner
Commits
0458da0b
Commit
0458da0b
authored
Oct 11, 2025
by
Stoll
Browse files
Stable object implemented,
Bottom navbar added Two models
parent
cce9a762
Changes
5
Show whitespace changes
Inline
Side-by-side
webxr-cube/package-lock.json
View file @
0458da0b
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
""
:
{
""
:
{
"name"
:
"webxr-cube"
,
"name"
:
"webxr-cube"
,
"version"
:
"0.0.0"
,
"version"
:
"0.0.0"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"dependencies"
:
{
"react"
:
"^19.1.1"
,
"react"
:
"^19.1.1"
,
"react-dom"
:
"^19.1.1"
,
"react-dom"
:
"^19.1.1"
,
...
@@ -25,7 +26,8 @@
...
@@ -25,7 +26,8 @@
"globals"
:
"^16.4.0"
,
"globals"
:
"^16.4.0"
,
"typescript"
:
"~5.9.3"
,
"typescript"
:
"~5.9.3"
,
"typescript-eslint"
:
"^8.45.0"
,
"typescript-eslint"
:
"^8.45.0"
,
"vite"
:
"^7.1.7"
"vite"
:
"^7.1.9"
,
"vite-plugin-mkcert"
:
"^1.17.9"
}
}
},
},
"node_modules/@babel/code-frame"
:
{
"node_modules/@babel/code-frame"
:
{
...
@@ -1859,6 +1861,25 @@
...
@@ -1859,6 +1861,25 @@
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"Python-2.0"
"license"
:
"Python-2.0"
},
},
"node_modules/asynckit"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
,
"integrity"
:
"sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
,
"dev"
:
true
,
"license"
:
"MIT"
},
"node_modules/axios"
:
{
"version"
:
"1.12.2"
,
"resolved"
:
"https://registry.npmjs.org/axios/-/axios-1.12.2.tgz"
,
"integrity"
:
"sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"follow-redirects"
:
"^1.15.6"
,
"form-data"
:
"^4.0.4"
,
"proxy-from-env"
:
"^1.1.0"
}
},
"node_modules/balanced-match"
:
{
"node_modules/balanced-match"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
...
@@ -1934,6 +1955,20 @@
...
@@ -1934,6 +1955,20 @@
"node"
:
"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
"node"
:
"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
}
},
},
"node_modules/call-bind-apply-helpers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz"
,
"integrity"
:
"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"es-errors"
:
"^1.3.0"
,
"function-bind"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/callsites"
:
{
"node_modules/callsites"
:
{
"version"
:
"3.1.0"
,
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
,
...
@@ -2002,6 +2037,19 @@
...
@@ -2002,6 +2037,19 @@
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"MIT"
"license"
:
"MIT"
},
},
"node_modules/combined-stream"
:
{
"version"
:
"1.0.8"
,
"resolved"
:
"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
,
"integrity"
:
"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"delayed-stream"
:
"~1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/concat-map"
:
{
"node_modules/concat-map"
:
{
"version"
:
"0.0.1"
,
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
...
@@ -2063,6 +2111,31 @@
...
@@ -2063,6 +2111,31 @@
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"MIT"
"license"
:
"MIT"
},
},
"node_modules/delayed-stream"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"integrity"
:
"sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">=0.4.0"
}
},
"node_modules/dunder-proto"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz"
,
"integrity"
:
"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"call-bind-apply-helpers"
:
"^1.0.1"
,
"es-errors"
:
"^1.3.0"
,
"gopd"
:
"^1.2.0"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/electron-to-chromium"
:
{
"node_modules/electron-to-chromium"
:
{
"version"
:
"1.5.234"
,
"version"
:
"1.5.234"
,
"resolved"
:
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz"
,
"resolved"
:
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz"
,
...
@@ -2070,6 +2143,55 @@
...
@@ -2070,6 +2143,55 @@
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"ISC"
"license"
:
"ISC"
},
},
"node_modules/es-define-property"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz"
,
"integrity"
:
"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/es-errors"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
,
"integrity"
:
"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/es-object-atoms"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz"
,
"integrity"
:
"sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"es-errors"
:
"^1.3.0"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/es-set-tostringtag"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz"
,
"integrity"
:
"sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"es-errors"
:
"^1.3.0"
,
"get-intrinsic"
:
"^1.2.6"
,
"has-tostringtag"
:
"^1.0.2"
,
"hasown"
:
"^2.0.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/esbuild"
:
{
"node_modules/esbuild"
:
{
"version"
:
"0.25.10"
,
"version"
:
"0.25.10"
,
"resolved"
:
"https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz"
,
"resolved"
:
"https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz"
,
...
@@ -2445,6 +2567,44 @@
...
@@ -2445,6 +2567,44 @@
"dev"
:
true
,
"dev"
:
true
,
"license"
:
"ISC"
"license"
:
"ISC"
},
},
"node_modules/follow-redirects"
:
{
"version"
:
"1.15.11"
,
"resolved"
:
"https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz"
,
"integrity"
:
"sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="
,
"dev"
:
true
,
"funding"
:
[
{
"type"
:
"individual"
,
"url"
:
"https://github.com/sponsors/RubenVerborgh"
}
],
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">=4.0"
},
"peerDependenciesMeta"
:
{
"debug"
:
{
"optional"
:
true
}
}
},
"node_modules/form-data"
:
{
"version"
:
"4.0.4"
,
"resolved"
:
"https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz"
,
"integrity"
:
"sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"asynckit"
:
"^0.4.0"
,
"combined-stream"
:
"^1.0.8"
,
"es-set-tostringtag"
:
"^2.1.0"
,
"hasown"
:
"^2.0.2"
,
"mime-types"
:
"^2.1.12"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/fsevents"
:
{
"node_modules/fsevents"
:
{
"version"
:
"2.3.3"
,
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
,
...
@@ -2460,6 +2620,16 @@
...
@@ -2460,6 +2620,16 @@
"node"
:
"^8.16.0 || ^10.6.0 || >=11.0.0"
"node"
:
"^8.16.0 || ^10.6.0 || >=11.0.0"
}
}
},
},
"node_modules/function-bind"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
,
"integrity"
:
"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/gensync"
:
{
"node_modules/gensync"
:
{
"version"
:
"1.0.0-beta.2"
,
"version"
:
"1.0.0-beta.2"
,
"resolved"
:
"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
,
...
@@ -2470,6 +2640,45 @@
...
@@ -2470,6 +2640,45 @@
"node"
:
">=6.9.0"
"node"
:
">=6.9.0"
}
}
},
},
"node_modules/get-intrinsic"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz"
,
"integrity"
:
"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"call-bind-apply-helpers"
:
"^1.0.2"
,
"es-define-property"
:
"^1.0.1"
,
"es-errors"
:
"^1.3.0"
,
"es-object-atoms"
:
"^1.1.1"
,
"function-bind"
:
"^1.1.2"
,
"get-proto"
:
"^1.0.1"
,
"gopd"
:
"^1.2.0"
,
"has-symbols"
:
"^1.1.0"
,
"hasown"
:
"^2.0.2"
,
"math-intrinsics"
:
"^1.1.0"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz"
,
"integrity"
:
"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"dunder-proto"
:
"^1.0.1"
,
"es-object-atoms"
:
"^1.0.0"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/glob-parent"
:
{
"node_modules/glob-parent"
:
{
"version"
:
"6.0.2"
,
"version"
:
"6.0.2"
,
"resolved"
:
"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
,
...
@@ -2496,6 +2705,19 @@
...
@@ -2496,6 +2705,19 @@
"url"
:
"https://github.com/sponsors/sindresorhus"
"url"
:
"https://github.com/sponsors/sindresorhus"
}
}
},
},
"node_modules/gopd"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz"
,
"integrity"
:
"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/graphemer"
:
{
"node_modules/graphemer"
:
{
"version"
:
"1.4.0"
,
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
,
...
@@ -2513,6 +2735,48 @@
...
@@ -2513,6 +2735,48 @@
"node"
:
">=8"
"node"
:
">=8"
}
}
},
},
"node_modules/has-symbols"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz"
,
"integrity"
:
"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-tostringtag"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz"
,
"integrity"
:
"sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"has-symbols"
:
"^1.0.3"
},
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz"
,
"integrity"
:
"sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"function-bind"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/ignore"
:
{
"node_modules/ignore"
:
{
"version"
:
"5.3.2"
,
"version"
:
"5.3.2"
,
"resolved"
:
"https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz"
,
...
@@ -2714,6 +2978,16 @@
...
@@ -2714,6 +2978,16 @@
"yallist"
:
"^3.0.2"
"yallist"
:
"^3.0.2"
}
}
},
},
"node_modules/math-intrinsics"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz"
,
"integrity"
:
"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">= 0.4"
}
},
"node_modules/merge2"
:
{
"node_modules/merge2"
:
{
"version"
:
"1.4.1"
,
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
,
...
@@ -2745,6 +3019,29 @@
...
@@ -2745,6 +3019,29 @@
"node"
:
">=8.6"
"node"
:
">=8.6"
}
}
},
},
"node_modules/mime-db"
:
{
"version"
:
"1.52.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
,
"integrity"
:
"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime-types"
:
{
"version"
:
"2.1.35"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
,
"integrity"
:
"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"mime-db"
:
"1.52.0"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/minimatch"
:
{
"node_modules/minimatch"
:
{
"version"
:
"3.1.2"
,
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
,
...
@@ -2940,6 +3237,13 @@
...
@@ -2940,6 +3237,13 @@
"node"
:
">= 0.8.0"
"node"
:
">= 0.8.0"
}
}
},
},
"node_modules/proxy-from-env"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
,
"integrity"
:
"sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
,
"dev"
:
true
,
"license"
:
"MIT"
},
"node_modules/punycode"
:
{
"node_modules/punycode"
:
{
"version"
:
"2.3.1"
,
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
,
...
@@ -3418,6 +3722,24 @@
...
@@ -3418,6 +3722,24 @@
}
}
}
}
},
},
"node_modules/vite-plugin-mkcert"
:
{
"version"
:
"1.17.9"
,
"resolved"
:
"https://registry.npmjs.org/vite-plugin-mkcert/-/vite-plugin-mkcert-1.17.9.tgz"
,
"integrity"
:
"sha512-SwI7yqp2Cq4r2XItarnHRCj2uzHPqevbxFNMLpyN+LDXd5w1vmZeM4l5X/wCZoP4mjPQYN+9+4kmE6e3nPO5fg=="
,
"dev"
:
true
,
"license"
:
"MIT"
,
"dependencies"
:
{
"axios"
:
"^1.12.2"
,
"debug"
:
"^4.4.3"
,
"picocolors"
:
"^1.1.1"
},
"engines"
:
{
"node"
:
">=v16.7.0"
},
"peerDependencies"
:
{
"vite"
:
">=3"
}
},
"node_modules/vite/node_modules/fdir"
:
{
"node_modules/vite/node_modules/fdir"
:
{
"version"
:
"6.5.0"
,
"version"
:
"6.5.0"
,
"resolved"
:
"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz"
,
...
...
webxr-cube/package.json
View file @
0458da0b
...
@@ -27,6 +27,12 @@
...
@@ -27,6 +27,12 @@
"globals"
:
"^16.4.0"
,
"globals"
:
"^16.4.0"
,
"typescript"
:
"~5.9.3"
,
"typescript"
:
"~5.9.3"
,
"typescript-eslint"
:
"^8.45.0"
,
"typescript-eslint"
:
"^8.45.0"
,
"vite"
:
"^7.1.7"
"vite"
:
"^7.1.9"
,
}
"vite-plugin-mkcert"
:
"^1.17.9"
},
"description"
:
"This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules."
,
"main"
:
"eslint.config.js"
,
"keywords"
:
[],
"author"
:
""
,
"license"
:
"ISC"
}
}
webxr-cube/src/App.tsx
View file @
0458da0b
import
'
./App.css
'
import
'
./App.css
'
import
WebXRCube
from
'
./components/
WebXRCube
'
import
{
XRRenderer
}
from
'
./components/
XRRenderer
'
function
App
()
{
function
App
()
{
return
(
return
(
<
WebXRCube
/>
<
XRRenderer
/>
)
)
}
}
...
...
webxr-cube/src/components/WebXRCube.tsx
deleted
100644 → 0
View file @
cce9a762
import
React
,
{
useEffect
,
useRef
}
from
'
react
'
;
import
*
as
THREE
from
'
three
'
;
import
{
XRButton
}
from
'
three/examples/jsm/webxr/XRButton
'
;
const
WebXRCube
:
React
.
FC
=
()
=>
{
const
mountRef
=
useRef
<
HTMLDivElement
>
(
null
);
useEffect
(()
=>
{
if
(
!
mountRef
.
current
)
return
;
// Scene
const
scene
=
new
THREE
.
Scene
();
scene
.
background
=
new
THREE
.
Color
(
0xaaaaaa
);
// Camera
const
camera
=
new
THREE
.
PerspectiveCamera
(
70
,
window
.
innerWidth
/
window
.
innerHeight
,
0.1
,
100
);
camera
.
position
.
set
(
0
,
1.6
,
3
);
// Renderer
const
renderer
=
new
THREE
.
WebGLRenderer
({
antialias
:
true
});
renderer
.
setSize
(
window
.
innerWidth
,
window
.
innerHeight
);
renderer
.
xr
.
enabled
=
true
;
mountRef
.
current
.
appendChild
(
renderer
.
domElement
);
// Add XRButton
mountRef
.
current
.
appendChild
(
XRButton
.
createButton
(
renderer
));
// Light
const
light
=
new
THREE
.
HemisphereLight
(
0xffffff
,
0x444444
);
light
.
position
.
set
(
0
,
1
,
0
);
scene
.
add
(
light
);
// Cube
const
cube
=
new
THREE
.
Mesh
(
new
THREE
.
BoxGeometry
(
0.5
,
0.5
,
0.5
),
new
THREE
.
MeshStandardMaterial
({
color
:
0xff0000
})
);
cube
.
position
.
set
(
0
,
0.25
,
-
1
);
scene
.
add
(
cube
);
// Resize handler
const
handleResize
=
()
=>
{
camera
.
aspect
=
window
.
innerWidth
/
window
.
innerHeight
;
camera
.
updateProjectionMatrix
();
renderer
.
setSize
(
window
.
innerWidth
,
window
.
innerHeight
);
};
window
.
addEventListener
(
'
resize
'
,
handleResize
);
// Animation loop
renderer
.
setAnimationLoop
(()
=>
{
renderer
.
render
(
scene
,
camera
);
});
// Cleanup
return
()
=>
{
window
.
removeEventListener
(
'
resize
'
,
handleResize
);
renderer
.
dispose
();
mountRef
.
current
?.
removeChild
(
renderer
.
domElement
);
};
},
[]);
return
<
div
ref
=
{
mountRef
}
style
=
{
{
width
:
'
100vw
'
,
height
:
'
100vh
'
}
}
/>;
};
export
default
WebXRCube
;
webxr-cube/vite.config.ts
View file @
0458da0b
import
{
defineConfig
}
from
'
vite
'
import
{
defineConfig
}
from
'
vite
'
;
import
react
from
'
@vitejs/plugin-react
'
import
react
from
'
@vitejs/plugin-react
'
;
// https://vite.dev/config/
export
default
defineConfig
({
export
default
defineConfig
({
plugins
:
[
react
()],
plugins
:
[
react
()],
})
server
:
{
host
:
'
localhost
'
,
// bind to all interfaces
port
:
8080
,
},
});
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment