diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c3906286..0b11607c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,20 +15,21 @@ permissions:
jobs:
build-job:
runs-on: ubuntu-latest
+ env:
+ TURBO_TELEMETRY_DISABLED: 1
# Cancel multiple runs when pushing to main
concurrency:
group: ${{ github.event_name != 'pull_request' && 'group-pushmain' || github.run_id }}
cancel-in-progress: ${{ github.event_name != 'pull_request' }}
- # container:
- # image: ghcr.io/pmndrs/playwright:main
- # credentials:
- # username: ${{ github.actor }}
- # password: ${{ secrets.GITHUB_TOKEN }}
+ container:
+ image: mcr.microsoft.com/playwright:v1.45.3-jammy
steps:
- # Build
+ #
+ # Setup
+ #
- uses: actions/checkout@v4
- id: configurepages
uses: actions/configure-pages@v5
@@ -38,18 +39,22 @@ jobs:
cache: "npm"
- run: npm ci
- uses: rharkor/caching-for-turbo@v1.5
- - run: npm run build
+
+ #
+ # Test
+ #
+ - run: npm test
env:
BASE_PATH: ${{ steps.configurepages.outputs.base_path }}
- PUBLIC_URL: ${{ steps.configurepages.outputs.base_url }}
- # Tests (only for PRs)
- - run: ./test.sh
- if: github.event_name == 'pull_request'
+ #
+ # Build (only for pushes on main)
+ #
+ - run: npm run build
+ if: github.event_name != 'pull_request'
env:
BASE_PATH: ${{ steps.configurepages.outputs.base_path }}
-
- # Upload artifact (only for pushes on main)
+ BASE_URL: ${{ steps.configurepages.outputs.base_url }}
- uses: actions/upload-pages-artifact@v3
if: github.event_name != 'pull_request'
with:
diff --git a/README.md b/README.md
index af3666a4..9fe42cd7 100644
--- a/README.md
+++ b/README.md
@@ -44,10 +44,10 @@ This will:
3. copy final result into `out` folder
> [!TIP]
-> This is totally fine `BASE_PATH`/`PUBLIC_URL` to be unset/empty. But for debug purposes(to be 1:1 with GitHub pages) you can:
+> This is totally fine `BASE_PATH`/`BASE_URL` to be unset/empty. But for debug purposes(to be 1:1 with GitHub pages) you can:
>
> ```sh
-> $ BASE_PATH=/examples PUBLIC_URL=http://localhost:4000 npm run build
+> $ BASE_PATH=/examples BASE_URL=http://localhost:4000 npm run build
> $ npx serve out -p 4000
> ```
@@ -55,45 +55,44 @@ This will:
# test
-Pre-requisites:
-
-- [build](#build)
-
-> [!WARNING]
-> Do not forget to (re-)[build](#build) first!
-
```sh
$ npm test
```
To update the snapshots: `npm test -- -- --update-snapshots`
-> [!IMPORTANT]
-> If you built the project with eg. `BASE_PATH=/examples` you'll need to:
->
-> ```sh
-> $ BASE_PATH=/examples npm test
-> ```
+
+
+You can also:
+
+```sh
+$ BASE_PATH=/examples npm test
+```
+
+
## Docker
-For generating reproductible snapshots, we still build static `out/` folder locally, but use dockerised environment to run playwright tests against:
+For generating reproductible snapshots, we use [`mcr.microsoft.com/playwright:v1.45.3-jammy`](https://playwright.dev/docs/docker#image-tags) Docker image.
```sh
-$ ./test.sh
+$ docker run -it --rm \
+ -w /app -v "$(pwd)":/app -v /app/node_modules \
+ mcr.microsoft.com/playwright:v1.45.3-jammy /bin/sh
+#
+# echo "Hey, I am acting like the CI"
+#
+# npm ci
+# npm test
```
-> [!NOTE]
-> A `-v "$(pwd)":/app` volume is mounted to the container, so any snapshot will be written to the host machine.
+or in one command to update snapshots:
-To update the snapshots: `./test.sh --update`
-
-> [!IMPORTANT]
-> If you built the project with eg. `BASE_PATH=/examples` you'll need to:
->
-> ```sh
-> $ BASE_PATH=/examples ./test.sh
-> ```
+```sh
+docker run --rm \
+ -w /app -v "$(pwd)":/app -v /app/node_modules \
+ mcr.microsoft.com/playwright:v1.45.3-jammy /bin/sh -c "npm ci && npm test -- -- --update-snapshots"
+```
# Colophon
diff --git a/apps/website/lib/helper.ts b/apps/website/lib/helper.ts
index ed38694b..f1921f26 100644
--- a/apps/website/lib/helper.ts
+++ b/apps/website/lib/helper.ts
@@ -1,28 +1,21 @@
-import path, { dirname, resolve } from "path";
-import fs from "fs";
-import { fileURLToPath } from "url";
+// Importing JSON directly
+import pkg from "@/package.json";
+
import { generatePort } from "@examples/e2e";
const BASE_PATH = process.env.BASE_PATH || "";
-const PUBLIC_URL = process.env.PUBLIC_URL;
+const BASE_URL = process.env.BASE_URL;
const host =
process.env.NODE_ENV === "development"
? (port: number) => `http://localhost:${port}`
- : () => (PUBLIC_URL ? new URL(PUBLIC_URL).origin : "");
+ : () => (BASE_URL ? new URL(BASE_URL).origin : "");
export function getDemos() {
- const __filename = fileURLToPath(import.meta.url); // Converts the URL to a file path
- const __dirname = dirname(__filename); // Gets the directory name
-
- const demosDir = resolve(__dirname, "../../../demos");
-
- return fs
- .readdirSync(demosDir)
- .filter((file) => {
- return fs.statSync(path.join(demosDir, file)).isDirectory();
- })
- .map((demoname) => {
+ return Object.keys(pkg.dependencies)
+ .filter((dep) => dep.startsWith("@demo/"))
+ .map((pkgname) => {
+ const demoname = pkgname.split("@demo/")[1];
const port = generatePort(demoname);
const h = host(port);
diff --git a/apps/website/package.json b/apps/website/package.json
index ae73174a..72439e36 100644
--- a/apps/website/package.json
+++ b/apps/website/package.json
@@ -6,7 +6,7 @@
"dev": "next dev",
"dev2": "npm run dev",
"build": "NODE_ENV=production next build",
- "build2": "npm run build",
+ "build3": "npm run build",
"start": "next start",
"lint": "next lint"
},
@@ -16,7 +16,164 @@
"react": "^18",
"react-dom": "^18",
"react-use": "^17.5.1",
- "tailwind-merge": "^2.4.0"
+ "tailwind-merge": "^2.4.0",
+ "@demo/aquarium": "*",
+ "@demo/arkanoid": "*",
+ "@demo/arkanoid-under-60-loc": "*",
+ "@demo/audio-analyser": "*",
+ "@demo/backdrop-and-cables": "*",
+ "@demo/baking-soft-shadows": "*",
+ "@demo/basic-ballpit": "*",
+ "@demo/basic-demo": "*",
+ "@demo/bestservedbold-christmas-baubles": "*",
+ "@demo/bezier-curves-and-nodes": "*",
+ "@demo/bloom-hdr-workflow-gltf": "*",
+ "@demo/bouncy-watch": "*",
+ "@demo/bounds-and-makedefault": "*",
+ "@demo/bruno-simons-20k-challenge": "*",
+ "@demo/building-dynamic-envmaps": "*",
+ "@demo/building-live-envmaps": "*",
+ "@demo/bvh": "*",
+ "@demo/camera-scroll": "*",
+ "@demo/camera-shake": "*",
+ "@demo/canvas-text": "*",
+ "@demo/cards": "*",
+ "@demo/cards-with-border-radius": "*",
+ "@demo/caustics": "*",
+ "@demo/cell-fracture": "*",
+ "@demo/clones": "*",
+ "@demo/clouds": "*",
+ "@demo/color-grading": "*",
+ "@demo/confetti": "*",
+ "@demo/csg-bunny-usegroups": "*",
+ "@demo/csg-house": "*",
+ "@demo/csg-operations-rapier-physics": "*",
+ "@demo/dbismut-furniture": "*",
+ "@demo/diamond-refraction": "*",
+ "@demo/diamond-ring": "*",
+ "@demo/drei-rendertexture": "*",
+ "@demo/ecctrl-fisheye": "*",
+ "@demo/edgesgeometry": "*",
+ "@demo/enter-portals": "*",
+ "@demo/environment-blur-and-transitions": "*",
+ "@demo/envmap-ground-projection": "*",
+ "@demo/faucets-select-highlight": "*",
+ "@demo/flexbox-yoga-in-webgl": "*",
+ "@demo/floating-diamonds": "*",
+ "@demo/floating-instanced-shoes": "*",
+ "@demo/floating-laptop": "*",
+ "@demo/flying-bananas": "*",
+ "@demo/frosted-glass": "*",
+ "@demo/gatsby-stars": "*",
+ "@demo/glass-flower": "*",
+ "@demo/gltf-animations": "*",
+ "@demo/gltf-animations-re-used": "*",
+ "@demo/gltf-animations-tied-to-scroll": "*",
+ "@demo/gltfjsx-400kb-drone": "*",
+ "@demo/gpgpu-curl-noise-dof": "*",
+ "@demo/grass-shader": "*",
+ "@demo/ground-projected-envmaps-lamina": "*",
+ "@demo/ground-reflections-and-video-textures": "*",
+ "@demo/hi-key-bubbles": "*",
+ "@demo/horizontal-tiles": "*",
+ "@demo/html-annotations": "*",
+ "@demo/html-input-fields": "*",
+ "@demo/html-markers": "*",
+ "@demo/image-gallery": "*",
+ "@demo/infinite-scroll": "*",
+ "@demo/instanced-particles-effects": "*",
+ "@demo/instanced-vertex-colors": "*",
+ "@demo/instances": "*",
+ "@demo/inter-epoxy-resin": "*",
+ "@demo/interactive-spline-scene-live-html": "*",
+ "@demo/inverted-stencil-buffer": "*",
+ "@demo/iridescent-decals": "*",
+ "@demo/lamina-1x": "*",
+ "@demo/landing-page": "*",
+ "@demo/learn-with-jason": "*",
+ "@demo/lulaby-city": "*",
+ "@demo/lusion-connectors": "*",
+ "@demo/magic-box": "*",
+ "@demo/merged-instance": "*",
+ "@demo/minecraft": "*",
+ "@demo/mixing-controls": "*",
+ "@demo/mixing-html-and-webgl": "*",
+ "@demo/mixing-html-and-webgl-w-occlusion": "*",
+ "@demo/moksha": "*",
+ "@demo/monitors": "*",
+ "@demo/motionpathcontrols": "*",
+ "@demo/mount-transitions": "*",
+ "@demo/multiple-views-with-uniform-controls": "*",
+ "@demo/nextjs-prism": "*",
+ "@demo/night-train": "*",
+ "@demo/object-clump": "*",
+ "@demo/pairing-threejs-to-ui": "*",
+ "@demo/pass-through-portals": "*",
+ "@demo/physics-with-convex-polyhedrons": "*",
+ "@demo/pinball-in-70-lines": "*",
+ "@demo/pmndrs-vercel": "*",
+ "@demo/portal-shapes": "*",
+ "@demo/portals": "*",
+ "@demo/progressive-loading-states-with-suspense": "*",
+ "@demo/racing-game": "*",
+ "@demo/ragdoll-physics": "*",
+ "@demo/rapier-physics": "*",
+ "@demo/rapier-ping-pong": "*",
+ "@demo/raycast-cycling": "*",
+ "@demo/re-using-geometry-and-level-of-detail": "*",
+ "@demo/re-using-gltfs": "*",
+ "@demo/react-ellipsecurve": "*",
+ "@demo/react-pp-outlines": "*",
+ "@demo/react-spring-animations": "*",
+ "@demo/room-with-soft-shadows": "*",
+ "@demo/router-transitions": "*",
+ "@demo/scrollcontrols-and-lens-refraction": "*",
+ "@demo/scrollcontrols-gltf": "*",
+ "@demo/scrollcontrols-with-minimap": "*",
+ "@demo/selective-outlines": "*",
+ "@demo/shader-fire": "*",
+ "@demo/shader-hmr": "*",
+ "@demo/shadermaterials": "*",
+ "@demo/shoe-configurator": "*",
+ "@demo/shopping": "*",
+ "@demo/simple-audio-analyser": "*",
+ "@demo/simple-physics-demo": "*",
+ "@demo/simple-physics-demo-with-debug-bounds": "*",
+ "@demo/sky-dome-with-annotations": "*",
+ "@demo/soft-shadows": "*",
+ "@demo/space-game": "*",
+ "@demo/sparks-and-effects": "*",
+ "@demo/spline-glass-shapes": "*",
+ "@demo/sport-hall": "*",
+ "@demo/springy-boxes": "*",
+ "@demo/ssgi-spheres-with-rapier-physics": "*",
+ "@demo/ssr-test": "*",
+ "@demo/stage-presets-gltfjsx": "*",
+ "@demo/staging-and-camerashake": "*",
+ "@demo/starwars": "*",
+ "@demo/stencil-mask": "*",
+ "@demo/svg-maps-with-html-annotations": "*",
+ "@demo/svg-renderer": "*",
+ "@demo/t-shirt-configurator": "*",
+ "@demo/the-three-graces": "*",
+ "@demo/threejs-journey-lv-1-fisheye": "*",
+ "@demo/threejs-journey-portal": "*",
+ "@demo/thunder-clouds": "*",
+ "@demo/transformcontrols-and-makedefault": "*",
+ "@demo/transparent-aesop-bottles": "*",
+ "@demo/trigger-meshes": "*",
+ "@demo/tying-canvas-to-scroll-offset": "*",
+ "@demo/useintersect-and-scrollcontrols": "*",
+ "@demo/video-cookies": "*",
+ "@demo/video-textures": "*",
+ "@demo/view-tracking": "*",
+ "@demo/viewcube": "*",
+ "@demo/viking-ship": "*",
+ "@demo/volumetric-light-godray": "*",
+ "@demo/volumetric-spotlight": "*",
+ "@demo/water-shader": "*",
+ "@demo/wobbling-sphere": "*",
+ "@demo/zustand-site": "*"
},
"devDependencies": {
"@types/node": "^20",
diff --git a/demos/aquarium/package.json b/demos/aquarium/package.json
index 86e8d26f..3028f2aa 100644
--- a/demos/aquarium/package.json
+++ b/demos/aquarium/package.json
@@ -1,5 +1,5 @@
{
- "name": "aquarium",
+ "name": "@demo/aquarium",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/n7jf0f",
diff --git a/demos/arkanoid-under-60-loc/package.json b/demos/arkanoid-under-60-loc/package.json
index 51d2531f..3503db2c 100644
--- a/demos/arkanoid-under-60-loc/package.json
+++ b/demos/arkanoid-under-60-loc/package.json
@@ -1,5 +1,5 @@
{
- "name": "arkanoid-under-60-loc",
+ "name": "@demo/arkanoid-under-60-loc",
"version": "1.0.0",
"description": "Super small Arkanoid barebones implementation.",
"homepage": "https://codesandbox.io/s/66cd7",
diff --git a/demos/arkanoid/package.json b/demos/arkanoid/package.json
index 0f093cca..d0562cae 100644
--- a/demos/arkanoid/package.json
+++ b/demos/arkanoid/package.json
@@ -1,5 +1,5 @@
{
- "name": "arkanoid",
+ "name": "@demo/arkanoid",
"version": "1.0.0",
"description": "Simple arkanoid implementation using cannon physics.",
"homepage": "https://codesandbox.io/s/2yqpv",
diff --git a/demos/audio-analyser/package.json b/demos/audio-analyser/package.json
index eadc330a..5e8b944d 100644
--- a/demos/audio-analyser/package.json
+++ b/demos/audio-analyser/package.json
@@ -1,5 +1,5 @@
{
- "name": "audio-analyser",
+ "name": "@demo/audio-analyser",
"version": "1.0.0",
"description": "Combining audio analysis with gltf cell fracture and reflections.",
"homepage": "https://codesandbox.io/s/dvokj",
diff --git a/demos/backdrop-and-cables/package.json b/demos/backdrop-and-cables/package.json
index 4ee00ee9..e1a97a59 100644
--- a/demos/backdrop-and-cables/package.json
+++ b/demos/backdrop-and-cables/package.json
@@ -1,5 +1,5 @@
{
- "name": "backdrop-and-cables",
+ "name": "@demo/backdrop-and-cables",
"version": "1.0.0",
"description": "Using a studio backdrop, quadratic bezier line and contact shadows.",
"homepage": "https://codesandbox.io/s/2ij9u",
diff --git a/demos/baking-soft-shadows/package.json b/demos/baking-soft-shadows/package.json
index 90254d13..2cff8736 100644
--- a/demos/baking-soft-shadows/package.json
+++ b/demos/baking-soft-shadows/package.json
@@ -1,5 +1,5 @@
{
- "name": "baking-soft-shadows",
+ "name": "@demo/baking-soft-shadows",
"version": "1.0.0",
"description": "How to use drei/AccumulativeShadows and RandomizedLight",
"homepage": "https://codesandbox.io/s/hxcc1x",
diff --git a/demos/basic-ballpit/package.json b/demos/basic-ballpit/package.json
index ba62c531..b9132108 100644
--- a/demos/basic-ballpit/package.json
+++ b/demos/basic-ballpit/package.json
@@ -1,5 +1,5 @@
{
- "name": "basic-ballpit",
+ "name": "@demo/basic-ballpit",
"version": "1.0.0",
"description": "Physics simulation using cannon.",
"homepage": "https://codesandbox.io/s/0fqow2",
diff --git a/demos/basic-demo/package.json b/demos/basic-demo/package.json
index eca78ffa..e0172851 100644
--- a/demos/basic-demo/package.json
+++ b/demos/basic-demo/package.json
@@ -1,5 +1,5 @@
{
- "name": "basic-demo",
+ "name": "@demo/basic-demo",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/rrppl0y8l4",
diff --git a/demos/bestservedbold-christmas-baubles/package.json b/demos/bestservedbold-christmas-baubles/package.json
index e259710c..1591429d 100644
--- a/demos/bestservedbold-christmas-baubles/package.json
+++ b/demos/bestservedbold-christmas-baubles/package.json
@@ -1,5 +1,5 @@
{
- "name": "bestservedbold-christmas-baubles",
+ "name": "@demo/bestservedbold-christmas-baubles",
"version": "1.0.0",
"description": "Physics, effects, lights and colors.",
"homepage": "https://codesandbox.io/s/zxpv7",
diff --git a/demos/bezier-curves-and-nodes/package.json b/demos/bezier-curves-and-nodes/package.json
index 86085e4b..41a03aa2 100644
--- a/demos/bezier-curves-and-nodes/package.json
+++ b/demos/bezier-curves-and-nodes/package.json
@@ -1,5 +1,5 @@
{
- "name": "bezier-curves-and-nodes",
+ "name": "@demo/bezier-curves-and-nodes",
"version": "1.0.0",
"description": "Creating node diagrams with drei's Line and bezier curves.",
"homepage": "https://codesandbox.io/s/3k4g6",
diff --git a/demos/bloom-hdr-workflow-gltf/package.json b/demos/bloom-hdr-workflow-gltf/package.json
index df629eaa..1190344b 100644
--- a/demos/bloom-hdr-workflow-gltf/package.json
+++ b/demos/bloom-hdr-workflow-gltf/package.json
@@ -1,5 +1,5 @@
{
- "name": "bloom-hdr-workflow-gltf",
+ "name": "@demo/bloom-hdr-workflow-gltf",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/whnhyr",
diff --git a/demos/bouncy-watch/package.json b/demos/bouncy-watch/package.json
index ad8d7066..3a4d67da 100644
--- a/demos/bouncy-watch/package.json
+++ b/demos/bouncy-watch/package.json
@@ -1,5 +1,5 @@
{
- "name": "bouncy-watch",
+ "name": "@demo/bouncy-watch",
"version": "1.0.0",
"description": "Custom springy controls using use-gesture and react-spring.",
"homepage": "https://codesandbox.io/s/qyz5r",
diff --git a/demos/bounds-and-makedefault/package.json b/demos/bounds-and-makedefault/package.json
index e2466a62..cfdb99aa 100644
--- a/demos/bounds-and-makedefault/package.json
+++ b/demos/bounds-and-makedefault/package.json
@@ -1,5 +1,5 @@
{
- "name": "bounds-and-makedefault",
+ "name": "@demo/bounds-and-makedefault",
"version": "1.0.0",
"description": "Combining TransformControls, OrbitControls and Valtio.",
"homepage": "https://codesandbox.io/s/rz2g0",
diff --git a/demos/bruno-simons-20k-challenge/package.json b/demos/bruno-simons-20k-challenge/package.json
index 35dbd691..f7fcbc3e 100644
--- a/demos/bruno-simons-20k-challenge/package.json
+++ b/demos/bruno-simons-20k-challenge/package.json
@@ -1,5 +1,5 @@
{
- "name": "bruno-simons-20k-challenge",
+ "name": "@demo/bruno-simons-20k-challenge",
"version": "1.0.0",
"description": "https://twitter.com/bruno_simon/status/1557355710089920513",
"homepage": "https://codesandbox.io/s/2qfxj4",
diff --git a/demos/building-dynamic-envmaps/package.json b/demos/building-dynamic-envmaps/package.json
index 96b62ea6..e94b4323 100644
--- a/demos/building-dynamic-envmaps/package.json
+++ b/demos/building-dynamic-envmaps/package.json
@@ -1,5 +1,5 @@
{
- "name": "building-dynamic-envmaps",
+ "name": "@demo/building-dynamic-envmaps",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/e662p3",
diff --git a/demos/building-live-envmaps/package.json b/demos/building-live-envmaps/package.json
index 7ea729d0..e1e13694 100644
--- a/demos/building-live-envmaps/package.json
+++ b/demos/building-live-envmaps/package.json
@@ -1,5 +1,5 @@
{
- "name": "building-live-envmaps",
+ "name": "@demo/building-live-envmaps",
"version": "1.0.0",
"description": "Shows how to build declarative environment that are live and animated.",
"homepage": "https://codesandbox.io/s/lwo219",
diff --git a/demos/bvh/package.json b/demos/bvh/package.json
index aac27d66..28ca3c8e 100644
--- a/demos/bvh/package.json
+++ b/demos/bvh/package.json
@@ -1,5 +1,5 @@
{
- "name": "bvh",
+ "name": "@demo/bvh",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/txzeq8",
diff --git a/demos/camera-scroll/package.json b/demos/camera-scroll/package.json
index c3f04110..789e6ded 100644
--- a/demos/camera-scroll/package.json
+++ b/demos/camera-scroll/package.json
@@ -1,5 +1,5 @@
{
- "name": "camera-scroll",
+ "name": "@demo/camera-scroll",
"version": "1.0.0",
"description": "Tying scroll to a GLTF camera path with snapping points.",
"homepage": "https://codesandbox.io/s/tu24h",
diff --git a/demos/camera-shake/package.json b/demos/camera-shake/package.json
index 3df4fcf9..b79ead31 100644
--- a/demos/camera-shake/package.json
+++ b/demos/camera-shake/package.json
@@ -1,5 +1,5 @@
{
- "name": "camera-shake",
+ "name": "@demo/camera-shake",
"version": "1.0.0",
"description": "Testing dre's new CameraShake with a couple of primitives.",
"homepage": "https://codesandbox.io/s/t4l0f",
diff --git a/demos/canvas-text/package.json b/demos/canvas-text/package.json
index 33f8a1a1..6d9d89d8 100644
--- a/demos/canvas-text/package.json
+++ b/demos/canvas-text/package.json
@@ -1,5 +1,5 @@
{
- "name": "canvas-text",
+ "name": "@demo/canvas-text",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/p9umgf",
diff --git a/demos/cards-with-border-radius/package.json b/demos/cards-with-border-radius/package.json
index 2e2346a6..8af6baf3 100644
--- a/demos/cards-with-border-radius/package.json
+++ b/demos/cards-with-border-radius/package.json
@@ -1,5 +1,5 @@
{
- "name": "cards-with-border-radius",
+ "name": "@demo/cards-with-border-radius",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/9s2wd9",
diff --git a/demos/cards/package.json b/demos/cards/package.json
index d6566915..98d02802 100644
--- a/demos/cards/package.json
+++ b/demos/cards/package.json
@@ -1,5 +1,5 @@
{
- "name": "cards",
+ "name": "@demo/cards",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/dc5fjy",
diff --git a/demos/caustics/package.json b/demos/caustics/package.json
index a8b4a577..694f2135 100644
--- a/demos/caustics/package.json
+++ b/demos/caustics/package.json
@@ -1,5 +1,5 @@
{
- "name": "caustics",
+ "name": "@demo/caustics",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/szj6p7",
diff --git a/demos/cell-fracture/package.json b/demos/cell-fracture/package.json
index 172bbc5c..da404af4 100644
--- a/demos/cell-fracture/package.json
+++ b/demos/cell-fracture/package.json
@@ -1,5 +1,5 @@
{
- "name": "cell-fracture",
+ "name": "@demo/cell-fracture",
"version": "1.0.0",
"description": "Exploding GLTFs using Blenders cell-fracture and GLTFJSX.",
"homepage": "https://codesandbox.io/s/3rjsl",
diff --git a/demos/clones/package.json b/demos/clones/package.json
index 09f78a29..d5bcadb7 100644
--- a/demos/clones/package.json
+++ b/demos/clones/package.json
@@ -1,5 +1,5 @@
{
- "name": "clones",
+ "name": "@demo/clones",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/42glz0",
diff --git a/demos/clouds/package.json b/demos/clouds/package.json
index 13523f8a..16cc5bc3 100644
--- a/demos/clouds/package.json
+++ b/demos/clouds/package.json
@@ -1,5 +1,5 @@
{
- "name": "clouds",
+ "name": "@demo/clouds",
"version": "0.1.0",
"homepage": "https://codesandbox.io/s/mbfzf",
"private": true,
diff --git a/demos/color-grading/package.json b/demos/color-grading/package.json
index 900b27e3..f11c4020 100644
--- a/demos/color-grading/package.json
+++ b/demos/color-grading/package.json
@@ -1,5 +1,5 @@
{
- "name": "color-grading",
+ "name": "@demo/color-grading",
"version": "1.0.0",
"description": "Shows how to use LUTPass to grade colors.",
"homepage": "https://codesandbox.io/s/wvgxp",
diff --git a/demos/confetti/package.json b/demos/confetti/package.json
index b9c15ba0..64337612 100644
--- a/demos/confetti/package.json
+++ b/demos/confetti/package.json
@@ -1,5 +1,5 @@
{
- "name": "confetti",
+ "name": "@demo/confetti",
"version": "1.0.0",
"description": "Meshline particles.",
"homepage": "https://codesandbox.io/s/vl221",
diff --git a/demos/cra2vite.sh b/demos/cra2vite.sh
deleted file mode 100755
index 85200f50..00000000
--- a/demos/cra2vite.sh
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-# "type": "module" upsert
-
-jq '.type = "module"' package.json > tmp.json && mv tmp.json package.json
-
-# "main" removal
-
-jq 'del(.main)' package.json > tmp.json && mv tmp.json package.json
-
-# New dev deps
-
-npm i -D @types/react@^18.2.0 @types/react-dom@^18.2.0 @types/three@^0.165.0 vite@^5.3.1 @vitejs/plugin-react@^4.3.1 typescript@^5.5.2
-
-# Remove scripts: start, build, test, eject
-
-jq '.scripts += {"dev": "vite --host --open", "build": "tsc && vite build", "preview": "vite preview"}' package.json > tmp.json && mv tmp.json package.json
-
-# TS config
-
-## tsconfig.json
-
-cat <tsconfig.json
-{
- "compilerOptions": {
- "target": "ESNext",
- "useDefineForClassFields": true,
- "lib": ["DOM", "DOM.Iterable", "ESNext"],
- "allowJs": false,
- "skipLibCheck": true,
- "esModuleInterop": false,
- "allowSyntheticDefaultImports": true,
- "strict": true,
- "forceConsistentCasingInFileNames": true,
- "module": "ESNext",
- "moduleResolution": "Node",
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "react-jsx"
- },
- "include": ["src"],
- "references": [{ "path": "./tsconfig.node.json" }]
-}
-EOF
-
-
-## tsconfig.node.json
-
-cat <tsconfig.node.json
-{
- "compilerOptions": {
- "composite": true,
- "module": "ESNext",
- "moduleResolution": "Node",
- "allowSyntheticDefaultImports": true
- },
- "include": ["vite.config.ts"]
-}
-EOF
-
-# Vite config
-
-cat <vite.config.ts
-import { defineConfig } from "vite"
-import react from "@vitejs/plugin-react"
-
-export default defineConfig({
- plugins: [react()]
-})
-EOF
-
-cat <src/vite-env.d.ts
-///
-EOF
-
-# favicon
-
-cat <public/vite.svg
-
-EOF
-
-# index.html
-
-rm public/index.html
-
-rn() {
- if [ -f "$1" ]; then
- mv "$1" "$2"
- fi
-}
-# Rename .js to .jsx
-rn src/index.js src/index.jsx
-rn src/App.js src/App.jsx
-# Rename .ts to .tsx
-rn src/index.ts src/index.tsx
-rn src/App.ts src/App.tsx
-
-# Determine which src file to use in the script tag
-if [ -f src/index.jsx ]; then
- src_file="/src/index.jsx"
-elif [ -f src/index.tsx ]; then
- src_file="/src/index.tsx"
-else
- echo "Neither src/index.jsx nor src/index.tsx found."
-fi
-
-cat <index.html
-
-
-
-
-
-
- Vite + React + TS
-
-
-
-
-
-
-EOF
-
-echo "donee"
\ No newline at end of file
diff --git a/demos/csg-bunny-usegroups/package.json b/demos/csg-bunny-usegroups/package.json
index ce85208a..32057693 100644
--- a/demos/csg-bunny-usegroups/package.json
+++ b/demos/csg-bunny-usegroups/package.json
@@ -1,5 +1,5 @@
{
- "name": "csg-bunny-usegroups",
+ "name": "@demo/csg-bunny-usegroups",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/mlgzsc",
diff --git a/demos/csg-house/package.json b/demos/csg-house/package.json
index 2e991aff..4db8dafa 100644
--- a/demos/csg-house/package.json
+++ b/demos/csg-house/package.json
@@ -1,5 +1,5 @@
{
- "name": "csg-house",
+ "name": "@demo/csg-house",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/y52tmt",
diff --git a/demos/csg-operations-rapier-physics/package.json b/demos/csg-operations-rapier-physics/package.json
index f9fb2806..316a9d85 100644
--- a/demos/csg-operations-rapier-physics/package.json
+++ b/demos/csg-operations-rapier-physics/package.json
@@ -1,5 +1,5 @@
{
- "name": "csg-operations-rapier-physics",
+ "name": "@demo/csg-operations-rapier-physics",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/mw0dtc",
diff --git a/demos/dbismut-furniture/package.json b/demos/dbismut-furniture/package.json
index 1e16d8fd..08d06767 100644
--- a/demos/dbismut-furniture/package.json
+++ b/demos/dbismut-furniture/package.json
@@ -1,5 +1,5 @@
{
- "name": "dbismut-furniture",
+ "name": "@demo/dbismut-furniture",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/62o18n",
diff --git a/demos/diamond-refraction/package.json b/demos/diamond-refraction/package.json
index 191e65e0..de67ec1b 100644
--- a/demos/diamond-refraction/package.json
+++ b/demos/diamond-refraction/package.json
@@ -1,5 +1,5 @@
{
- "name": "diamond-refraction",
+ "name": "@demo/diamond-refraction",
"version": "1.0.0",
"description": "Diamon refraction material",
"homepage": "https://codesandbox.io/s/zqrreo",
diff --git a/demos/diamond-ring/package.json b/demos/diamond-ring/package.json
index dcd8aa55..b3576308 100644
--- a/demos/diamond-ring/package.json
+++ b/demos/diamond-ring/package.json
@@ -1,5 +1,5 @@
{
- "name": "diamond-ring",
+ "name": "@demo/diamond-ring",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/4gy946",
diff --git a/demos/drei-rendertexture/package.json b/demos/drei-rendertexture/package.json
index 540df692..b3692e16 100644
--- a/demos/drei-rendertexture/package.json
+++ b/demos/drei-rendertexture/package.json
@@ -1,5 +1,5 @@
{
- "name": "drei-rendertexture",
+ "name": "@demo/drei-rendertexture",
"version": "1.0.0",
"description": "Portal a live scene events and all into a texture.",
"homepage": "https://codesandbox.io/s/0z8i2c",
diff --git a/demos/ecctrl-fisheye/package.json b/demos/ecctrl-fisheye/package.json
index 190f52ee..c1a4fdf5 100644
--- a/demos/ecctrl-fisheye/package.json
+++ b/demos/ecctrl-fisheye/package.json
@@ -1,5 +1,5 @@
{
- "name": "ecctrl-fisheye",
+ "name": "@demo/ecctrl-fisheye",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/nvk9pf",
diff --git a/demos/edgesgeometry/package.json b/demos/edgesgeometry/package.json
index 4a2c03d3..bfd3e271 100644
--- a/demos/edgesgeometry/package.json
+++ b/demos/edgesgeometry/package.json
@@ -1,5 +1,5 @@
{
- "name": "edgesgeometry",
+ "name": "@demo/edgesgeometry",
"version": "1.0.0",
"description": "How to use EdgesGeometry, which expects its target as a constructor argument.",
"homepage": "https://codesandbox.io/s/iup24",
diff --git a/demos/enter-portals/package.json b/demos/enter-portals/package.json
index 221907fd..613e1638 100644
--- a/demos/enter-portals/package.json
+++ b/demos/enter-portals/package.json
@@ -1,5 +1,5 @@
{
- "name": "enter-portals",
+ "name": "@demo/enter-portals",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/9m4tpc",
diff --git a/demos/environment-blur-and-transitions/package.json b/demos/environment-blur-and-transitions/package.json
index 53f8c4db..9d25973f 100644
--- a/demos/environment-blur-and-transitions/package.json
+++ b/demos/environment-blur-and-transitions/package.json
@@ -1,5 +1,5 @@
{
- "name": "environment-blur-and-transitions",
+ "name": "@demo/environment-blur-and-transitions",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/pj7zjq",
diff --git a/demos/envmap-ground-projection/package.json b/demos/envmap-ground-projection/package.json
index 3f252f06..b3924190 100644
--- a/demos/envmap-ground-projection/package.json
+++ b/demos/envmap-ground-projection/package.json
@@ -1,5 +1,5 @@
{
- "name": "envmap-ground-projection",
+ "name": "@demo/envmap-ground-projection",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/q48jgy",
diff --git a/demos/faucets-select-highlight/package.json b/demos/faucets-select-highlight/package.json
index 2e8b720c..9c54ecfc 100644
--- a/demos/faucets-select-highlight/package.json
+++ b/demos/faucets-select-highlight/package.json
@@ -1,5 +1,5 @@
{
- "name": "faucets-select-highlight",
+ "name": "@demo/faucets-select-highlight",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/8flefh",
diff --git a/demos/flexbox-yoga-in-webgl/package.json b/demos/flexbox-yoga-in-webgl/package.json
index fef7656d..eb3bdeee 100644
--- a/demos/flexbox-yoga-in-webgl/package.json
+++ b/demos/flexbox-yoga-in-webgl/package.json
@@ -1,5 +1,5 @@
{
- "name": "flexbox-yoga-in-webgl",
+ "name": "@demo/flexbox-yoga-in-webgl",
"version": "0.1.0",
"homepage": "https://codesandbox.io/s/7psew",
"private": true,
diff --git a/demos/floating-diamonds/package.json b/demos/floating-diamonds/package.json
index 7ef66b5a..49fa5fe8 100644
--- a/demos/floating-diamonds/package.json
+++ b/demos/floating-diamonds/package.json
@@ -1,5 +1,5 @@
{
- "name": "floating-diamonds",
+ "name": "@demo/floating-diamonds",
"version": "1.0.0",
"description": "Mixing refraction shaders and animations.",
"homepage": "https://codesandbox.io/s/prb9t",
diff --git a/demos/floating-instanced-shoes/package.json b/demos/floating-instanced-shoes/package.json
index 8e7048f1..35733c5f 100644
--- a/demos/floating-instanced-shoes/package.json
+++ b/demos/floating-instanced-shoes/package.json
@@ -10,7 +10,7 @@
"keywords": [
"instances"
],
- "name": "floating-instanced-shoes",
+ "name": "@demo/floating-instanced-shoes",
"version": "1.0.0",
"description": "Using drei/instances and events.",
"homepage": "https://codesandbox.io/s/h8o2d",
diff --git a/demos/floating-laptop/package.json b/demos/floating-laptop/package.json
index ced7c04e..132d1a3b 100644
--- a/demos/floating-laptop/package.json
+++ b/demos/floating-laptop/package.json
@@ -1,5 +1,5 @@
{
- "name": "floating-laptop",
+ "name": "@demo/floating-laptop",
"version": "1.0.0",
"description": "Animating GLTFs with react-spring.",
"homepage": "https://codesandbox.io/s/q23sw",
diff --git a/demos/flying-bananas/package.json b/demos/flying-bananas/package.json
index 83ae1460..d9224943 100644
--- a/demos/flying-bananas/package.json
+++ b/demos/flying-bananas/package.json
@@ -1,5 +1,5 @@
{
- "name": "flying-bananas",
+ "name": "@demo/flying-bananas",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/2ycs3",
diff --git a/demos/frosted-glass/package.json b/demos/frosted-glass/package.json
index 24d744fc..ecdfe58d 100644
--- a/demos/frosted-glass/package.json
+++ b/demos/frosted-glass/package.json
@@ -1,5 +1,5 @@
{
- "name": "frosted-glass",
+ "name": "@demo/frosted-glass",
"version": "1.0.0",
"description": "Shader mip-map blur to mimic frosted glass. ",
"homepage": "https://codesandbox.io/s/imn42",
diff --git a/demos/gatsby-stars/package.json b/demos/gatsby-stars/package.json
index 5d1b0326..03f47faa 100644
--- a/demos/gatsby-stars/package.json
+++ b/demos/gatsby-stars/package.json
@@ -1,5 +1,5 @@
{
- "name": "gatsby-stars",
+ "name": "@demo/gatsby-stars",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/2csbr1",
diff --git a/demos/glass-flower/package.json b/demos/glass-flower/package.json
index 0d3cb8ae..6306b4bd 100644
--- a/demos/glass-flower/package.json
+++ b/demos/glass-flower/package.json
@@ -1,5 +1,5 @@
{
- "name": "glass-flower",
+ "name": "@demo/glass-flower",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/dq6wwe",
diff --git a/demos/gltf-animations-re-used/package.json b/demos/gltf-animations-re-used/package.json
index 7fb8d358..3f72f12f 100644
--- a/demos/gltf-animations-re-used/package.json
+++ b/demos/gltf-animations-re-used/package.json
@@ -1,5 +1,5 @@
{
- "name": "gltf-animations-re-used",
+ "name": "@demo/gltf-animations-re-used",
"version": "1.0.0",
"description": "This examples shows how to blend GLTF animation keyframes and to re-use an existing model even it's being keyframed.",
"homepage": "https://codesandbox.io/s/k8phr",
diff --git a/demos/gltf-animations-tied-to-scroll/package.json b/demos/gltf-animations-tied-to-scroll/package.json
index 06aaf844..bc3a5b6a 100644
--- a/demos/gltf-animations-tied-to-scroll/package.json
+++ b/demos/gltf-animations-tied-to-scroll/package.json
@@ -1,5 +1,5 @@
{
- "name": "gltf-animations-tied-to-scroll",
+ "name": "@demo/gltf-animations-tied-to-scroll",
"version": "1.0.0",
"description": "This examples shows how to blend GLTF animation keyframes.",
"homepage": "https://codesandbox.io/s/hg3ejl",
diff --git a/demos/gltf-animations/package.json b/demos/gltf-animations/package.json
index 6886dafb..cb8cc0af 100644
--- a/demos/gltf-animations/package.json
+++ b/demos/gltf-animations/package.json
@@ -1,5 +1,5 @@
{
- "name": "gltf-animations",
+ "name": "@demo/gltf-animations",
"version": "1.0.0",
"description": "This examples shows how to blend GLTF animation keyframes.",
"homepage": "https://codesandbox.io/s/pecl6",
diff --git a/demos/gltfjsx-400kb-drone/package.json b/demos/gltfjsx-400kb-drone/package.json
index a6f96c64..881ca559 100644
--- a/demos/gltfjsx-400kb-drone/package.json
+++ b/demos/gltfjsx-400kb-drone/package.json
@@ -1,5 +1,5 @@
{
- "name": "gltfjsx-400kb-drone",
+ "name": "@demo/gltfjsx-400kb-drone",
"version": "1.0.0",
"description": "Shows the results of gltfjsx transform compression.",
"homepage": "https://codesandbox.io/s/pbwi6i",
diff --git a/demos/gpgpu-curl-noise-dof/package.json b/demos/gpgpu-curl-noise-dof/package.json
index 85fc04b9..a800b657 100644
--- a/demos/gpgpu-curl-noise-dof/package.json
+++ b/demos/gpgpu-curl-noise-dof/package.json
@@ -1,5 +1,5 @@
{
- "name": "gpgpu-curl-noise-dof",
+ "name": "@demo/gpgpu-curl-noise-dof",
"version": "1.0.0",
"description": "Curl noise and depth of field.",
"homepage": "https://codesandbox.io/s/zgsyn",
diff --git a/demos/grass-shader/package.json b/demos/grass-shader/package.json
index 3e39f8e8..c38bc155 100644
--- a/demos/grass-shader/package.json
+++ b/demos/grass-shader/package.json
@@ -1,5 +1,5 @@
{
- "name": "grass-shader",
+ "name": "@demo/grass-shader",
"version": "1.0.0",
"description": "Grass shader using simplex noise.",
"homepage": "https://codesandbox.io/s/5xho4",
diff --git a/demos/ground-projected-envmaps-lamina/package.json b/demos/ground-projected-envmaps-lamina/package.json
index c3d53722..86548a8e 100644
--- a/demos/ground-projected-envmaps-lamina/package.json
+++ b/demos/ground-projected-envmaps-lamina/package.json
@@ -1,5 +1,5 @@
{
- "name": "ground-projected-envmaps-lamina",
+ "name": "@demo/ground-projected-envmaps-lamina",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/0c5hv9",
diff --git a/demos/ground-reflections-and-video-textures/package.json b/demos/ground-reflections-and-video-textures/package.json
index edabf54d..609524f3 100644
--- a/demos/ground-reflections-and-video-textures/package.json
+++ b/demos/ground-reflections-and-video-textures/package.json
@@ -1,5 +1,5 @@
{
- "name": "ground-reflections-and-video-textures",
+ "name": "@demo/ground-reflections-and-video-textures",
"version": "1.0.0",
"description": "This example shows drei's new Reflector in combination with video textures.",
"homepage": "https://codesandbox.io/s/bfplr",
diff --git a/demos/hi-key-bubbles/package.json b/demos/hi-key-bubbles/package.json
index a762277f..9e46125e 100644
--- a/demos/hi-key-bubbles/package.json
+++ b/demos/hi-key-bubbles/package.json
@@ -1,5 +1,5 @@
{
- "name": "hi-key-bubbles",
+ "name": "@demo/hi-key-bubbles",
"version": "1.0.0",
"description": "Shows to use drei/instances how far gamma-correction can stretch colors.",
"homepage": "https://codesandbox.io/s/i6t0j",
diff --git a/demos/horizontal-tiles/package.json b/demos/horizontal-tiles/package.json
index 3a9b035b..4b3bc9fa 100644
--- a/demos/horizontal-tiles/package.json
+++ b/demos/horizontal-tiles/package.json
@@ -1,5 +1,5 @@
{
- "name": "horizontal-tiles",
+ "name": "@demo/horizontal-tiles",
"version": "1.0.0",
"description": "Horizontal scrollcontrols with expanding tiles.",
"homepage": "https://codesandbox.io/s/l4klb",
diff --git a/demos/html-annotations/package.json b/demos/html-annotations/package.json
index 23dd6033..8e4dc850 100644
--- a/demos/html-annotations/package.json
+++ b/demos/html-annotations/package.json
@@ -1,5 +1,5 @@
{
- "name": "html-annotations",
+ "name": "@demo/html-annotations",
"version": "1.0.0",
"description": "Shows how to set up annotations with a distance factor.",
"homepage": "https://codesandbox.io/s/zu2wo",
diff --git a/demos/html-input-fields/package.json b/demos/html-input-fields/package.json
index caa1072a..85c0caa2 100644
--- a/demos/html-input-fields/package.json
+++ b/demos/html-input-fields/package.json
@@ -1,5 +1,5 @@
{
- "name": "html-input-fields",
+ "name": "@demo/html-input-fields",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/024uom",
diff --git a/demos/html-markers/package.json b/demos/html-markers/package.json
index 624546a1..f9dbf249 100644
--- a/demos/html-markers/package.json
+++ b/demos/html-markers/package.json
@@ -32,7 +32,7 @@
"html",
"markers"
],
- "name": "html-markers",
+ "name": "@demo/html-markers",
"version": "1.0.0",
"description": "Occluding HTML annotations/markers.",
"homepage": "https://codesandbox.io/s/6oei7",
diff --git a/demos/image-gallery/package.json b/demos/image-gallery/package.json
index 52ba4774..6d1bf870 100644
--- a/demos/image-gallery/package.json
+++ b/demos/image-gallery/package.json
@@ -1,5 +1,5 @@
{
- "name": "image-gallery",
+ "name": "@demo/image-gallery",
"version": "1.0.0",
"description": "Stage a couple of frames with a reflective, blurred out ground.",
"homepage": "https://codesandbox.io/s/lx2h8",
diff --git a/demos/infinite-scroll/package.json b/demos/infinite-scroll/package.json
index ccbd3d5e..7bbbd860 100644
--- a/demos/infinite-scroll/package.json
+++ b/demos/infinite-scroll/package.json
@@ -1,5 +1,5 @@
{
- "name": "infinite-scroll",
+ "name": "@demo/infinite-scroll",
"version": "1.0.0",
"description": "Horizontal scrollcontrols that scroll infinitely.",
"homepage": "https://codesandbox.io/s/x8gvs",
diff --git a/demos/instanced-particles-effects/package.json b/demos/instanced-particles-effects/package.json
index 345e39a3..5018daf2 100644
--- a/demos/instanced-particles-effects/package.json
+++ b/demos/instanced-particles-effects/package.json
@@ -1,5 +1,5 @@
{
- "name": "instanced-particles-effects",
+ "name": "@demo/instanced-particles-effects",
"version": "1.0.0",
"description": "Instancing, swirling particles and effects.",
"homepage": "https://codesandbox.io/s/qpfgyp",
diff --git a/demos/instanced-vertex-colors/package.json b/demos/instanced-vertex-colors/package.json
index 52045d67..3cb51290 100644
--- a/demos/instanced-vertex-colors/package.json
+++ b/demos/instanced-vertex-colors/package.json
@@ -1,5 +1,5 @@
{
- "name": "instanced-vertex-colors",
+ "name": "@demo/instanced-vertex-colors",
"version": "1.0.0",
"description": "Instancing objectes with variable colors and effects.",
"homepage": "https://codesandbox.io/s/8fo01",
diff --git a/demos/instances/package.json b/demos/instances/package.json
index e3d27a6b..7d5c0614 100644
--- a/demos/instances/package.json
+++ b/demos/instances/package.json
@@ -1,5 +1,5 @@
{
- "name": "instances",
+ "name": "@demo/instances",
"version": "1.0.0",
"description": "Creating fixed-position instances with varying vertex colors.",
"homepage": "https://codesandbox.io/s/h873k",
diff --git a/demos/inter-epoxy-resin/package.json b/demos/inter-epoxy-resin/package.json
index c7d68681..42997bd1 100644
--- a/demos/inter-epoxy-resin/package.json
+++ b/demos/inter-epoxy-resin/package.json
@@ -1,5 +1,5 @@
{
- "name": "inter-epoxy-resin",
+ "name": "@demo/inter-epoxy-resin",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/lxvqek",
diff --git a/demos/interactive-spline-scene-live-html/package.json b/demos/interactive-spline-scene-live-html/package.json
index 969b685a..2c29bd97 100644
--- a/demos/interactive-spline-scene-live-html/package.json
+++ b/demos/interactive-spline-scene-live-html/package.json
@@ -1,5 +1,5 @@
{
- "name": "interactive-spline-scene-live-html",
+ "name": "@demo/interactive-spline-scene-live-html",
"version": "1.0.0",
"description": "Scene exported with Spline",
"homepage": "https://codesandbox.io/s/f79ucc",
diff --git a/demos/inverted-stencil-buffer/package.json b/demos/inverted-stencil-buffer/package.json
index c3205e20..0cb7f81a 100644
--- a/demos/inverted-stencil-buffer/package.json
+++ b/demos/inverted-stencil-buffer/package.json
@@ -1,5 +1,5 @@
{
- "name": "inverted-stencil-buffer",
+ "name": "@demo/inverted-stencil-buffer",
"version": "1.0.0",
"description": "How to invert a masked stencil.",
"homepage": "https://codesandbox.io/s/7n2yru",
diff --git a/demos/iridescent-decals/package.json b/demos/iridescent-decals/package.json
index 3710f058..592bdb16 100644
--- a/demos/iridescent-decals/package.json
+++ b/demos/iridescent-decals/package.json
@@ -1,5 +1,5 @@
{
- "name": "iridescent-decals",
+ "name": "@demo/iridescent-decals",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/qvb1vk",
diff --git a/demos/lamina-1x/package.json b/demos/lamina-1x/package.json
index c5f90106..bc3059b8 100644
--- a/demos/lamina-1x/package.json
+++ b/demos/lamina-1x/package.json
@@ -1,5 +1,5 @@
{
- "name": "lamina-1x",
+ "name": "@demo/lamina-1x",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/ledhe1",
diff --git a/demos/landing-page/package.json b/demos/landing-page/package.json
index 73eeb51e..0b0239a9 100644
--- a/demos/landing-page/package.json
+++ b/demos/landing-page/package.json
@@ -1,5 +1,5 @@
{
- "name": "landing-page",
+ "name": "@demo/landing-page",
"version": "1.0.0",
"description": "Transparent backdrop and model staging",
"homepage": "https://codesandbox.io/s/n60qg",
diff --git a/demos/learn-with-jason/package.json b/demos/learn-with-jason/package.json
index 71e20f38..aa818a75 100644
--- a/demos/learn-with-jason/package.json
+++ b/demos/learn-with-jason/package.json
@@ -1,5 +1,5 @@
{
- "name": "learn-with-jason",
+ "name": "@demo/learn-with-jason",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/lulaby-city/package.json b/demos/lulaby-city/package.json
index 79b5ac06..48716342 100644
--- a/demos/lulaby-city/package.json
+++ b/demos/lulaby-city/package.json
@@ -1,5 +1,5 @@
{
- "name": "lulaby-city",
+ "name": "@demo/lulaby-city",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/lusion-connectors/package.json b/demos/lusion-connectors/package.json
index 4faa2a83..bc5c6144 100644
--- a/demos/lusion-connectors/package.json
+++ b/demos/lusion-connectors/package.json
@@ -1,5 +1,5 @@
{
- "name": "lusion-connectors",
+ "name": "@demo/lusion-connectors",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/xy8c8z",
diff --git a/demos/magic-box/package.json b/demos/magic-box/package.json
index fbf6cca1..3ea95350 100644
--- a/demos/magic-box/package.json
+++ b/demos/magic-box/package.json
@@ -1,5 +1,5 @@
{
- "name": "magic-box",
+ "name": "@demo/magic-box",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/drc6qg",
diff --git a/demos/merged-instance/package.json b/demos/merged-instance/package.json
index 68755205..14b6e228 100644
--- a/demos/merged-instance/package.json
+++ b/demos/merged-instance/package.json
@@ -1,5 +1,5 @@
{
- "name": "merged-instance",
+ "name": "@demo/merged-instance",
"version": "1.0.0",
"description": "Loading massive assemblies and re-using their parts while keeping the natural scene graph alive.",
"homepage": "https://codesandbox.io/s/kud9p",
diff --git a/demos/minecraft/package.json b/demos/minecraft/package.json
index e7d17f3c..f19b3d35 100644
--- a/demos/minecraft/package.json
+++ b/demos/minecraft/package.json
@@ -1,5 +1,5 @@
{
- "name": "minecraft",
+ "name": "@demo/minecraft",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/mixing-controls/package.json b/demos/mixing-controls/package.json
index f2b5faca..8650fbb2 100644
--- a/demos/mixing-controls/package.json
+++ b/demos/mixing-controls/package.json
@@ -1,5 +1,5 @@
{
- "name": "mixing-controls",
+ "name": "@demo/mixing-controls",
"version": "1.0.0",
"description": "Switching off one control while the other is active.",
"homepage": "https://codesandbox.io/s/hf1cs",
diff --git a/demos/mixing-html-and-webgl-w-occlusion/package.json b/demos/mixing-html-and-webgl-w-occlusion/package.json
index 985a3019..9e762b5e 100644
--- a/demos/mixing-html-and-webgl-w-occlusion/package.json
+++ b/demos/mixing-html-and-webgl-w-occlusion/package.json
@@ -1,5 +1,5 @@
{
- "name": "mixing-html-and-webgl-w-occlusion",
+ "name": "@demo/mixing-html-and-webgl-w-occlusion",
"version": "1.0.0",
"description": "Having HTML and WebGL in the same scene with the addition of occlusion.",
"homepage": "https://codesandbox.io/s/9keg6",
diff --git a/demos/mixing-html-and-webgl/package.json b/demos/mixing-html-and-webgl/package.json
index a0006ef7..dbe69fb2 100644
--- a/demos/mixing-html-and-webgl/package.json
+++ b/demos/mixing-html-and-webgl/package.json
@@ -1,5 +1,5 @@
{
- "name": "mixing-html-and-webgl",
+ "name": "@demo/mixing-html-and-webgl",
"version": "1.0.0",
"description": "Adding HTML into the scene.",
"homepage": "https://codesandbox.io/s/7ucso",
diff --git a/demos/moksha/package.json b/demos/moksha/package.json
index 6b965dfe..3d54db54 100644
--- a/demos/moksha/package.json
+++ b/demos/moksha/package.json
@@ -1,5 +1,5 @@
{
- "name": "moksha",
+ "name": "@demo/moksha",
"version": "1.0.0",
"description": "Exploration into scroll containers tied to webgl content made for codrops.",
"homepage": "https://codesandbox.io/s/f1ixt",
diff --git a/demos/monitors/package.json b/demos/monitors/package.json
index 36dc6eaa..77e153c3 100644
--- a/demos/monitors/package.json
+++ b/demos/monitors/package.json
@@ -1,5 +1,5 @@
{
- "name": "monitors",
+ "name": "@demo/monitors",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/bst0cy",
diff --git a/demos/motionpathcontrols/package.json b/demos/motionpathcontrols/package.json
index 05fc8410..8950981e 100644
--- a/demos/motionpathcontrols/package.json
+++ b/demos/motionpathcontrols/package.json
@@ -1,5 +1,5 @@
{
- "name": "motionpathcontrols",
+ "name": "@demo/motionpathcontrols",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/2y73c6",
diff --git a/demos/mount-transitions/package.json b/demos/mount-transitions/package.json
index 2f37eb0d..22fb5258 100644
--- a/demos/mount-transitions/package.json
+++ b/demos/mount-transitions/package.json
@@ -1,5 +1,5 @@
{
- "name": "mount-transitions",
+ "name": "@demo/mount-transitions",
"version": "1.0.0",
"description": "Shows how to use react-spring mount/unmount transitions, soft-shadows and AO.",
"homepage": "https://codesandbox.io/s/1sccp",
diff --git a/demos/multiple-views-with-uniform-controls/package.json b/demos/multiple-views-with-uniform-controls/package.json
index adbdee44..9f40e62e 100644
--- a/demos/multiple-views-with-uniform-controls/package.json
+++ b/demos/multiple-views-with-uniform-controls/package.json
@@ -1,5 +1,5 @@
{
- "name": "multiple-views-with-uniform-controls",
+ "name": "@demo/multiple-views-with-uniform-controls",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/r9w2ob",
diff --git a/demos/nextjs-prism/package.json b/demos/nextjs-prism/package.json
index 9703e71f..5af95629 100644
--- a/demos/nextjs-prism/package.json
+++ b/demos/nextjs-prism/package.json
@@ -1,5 +1,5 @@
{
- "name": "nextjs-prism",
+ "name": "@demo/nextjs-prism",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/j3ycvl",
diff --git a/demos/night-train/package.json b/demos/night-train/package.json
index b95329a9..cd7e93db 100644
--- a/demos/night-train/package.json
+++ b/demos/night-train/package.json
@@ -1,5 +1,5 @@
{
- "name": "night-train",
+ "name": "@demo/night-train",
"version": "1.0.0",
"description": "Stacking a couple of drei helpers",
"homepage": "https://codesandbox.io/s/l900i",
diff --git a/demos/object-clump/package.json b/demos/object-clump/package.json
index 3dd52d5e..459b9c8c 100644
--- a/demos/object-clump/package.json
+++ b/demos/object-clump/package.json
@@ -1,5 +1,5 @@
{
- "name": "object-clump",
+ "name": "@demo/object-clump",
"version": "1.0.0",
"description": "How to make a clump of objects that move towards the center point.",
"homepage": "https://codesandbox.io/s/ssbdsw",
diff --git a/demos/pairing-threejs-to-ui/package.json b/demos/pairing-threejs-to-ui/package.json
index 56ec1429..f3d16043 100644
--- a/demos/pairing-threejs-to-ui/package.json
+++ b/demos/pairing-threejs-to-ui/package.json
@@ -1,5 +1,5 @@
{
- "name": "pairing-threejs-to-ui",
+ "name": "@demo/pairing-threejs-to-ui",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/wlz1o0",
diff --git a/demos/pass-through-portals/package.json b/demos/pass-through-portals/package.json
index 747a75be..9676f574 100644
--- a/demos/pass-through-portals/package.json
+++ b/demos/pass-through-portals/package.json
@@ -1,5 +1,5 @@
{
- "name": "pass-through-portals",
+ "name": "@demo/pass-through-portals",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/qvk72r",
diff --git a/demos/physics-with-convex-polyhedrons/package.json b/demos/physics-with-convex-polyhedrons/package.json
index 27f8e3f1..b58eb061 100644
--- a/demos/physics-with-convex-polyhedrons/package.json
+++ b/demos/physics-with-convex-polyhedrons/package.json
@@ -1,5 +1,5 @@
{
- "name": "physics-with-convex-polyhedrons",
+ "name": "@demo/physics-with-convex-polyhedrons",
"version": "1.0.0",
"description": "Using cannon collisions with GLTFs converted into convex hulls.",
"homepage": "https://codesandbox.io/s/08s1u",
diff --git a/demos/pinball-in-70-lines/package.json b/demos/pinball-in-70-lines/package.json
index e95b1bf6..ac450895 100644
--- a/demos/pinball-in-70-lines/package.json
+++ b/demos/pinball-in-70-lines/package.json
@@ -1,5 +1,5 @@
{
- "name": "pinball-in-70-lines",
+ "name": "@demo/pinball-in-70-lines",
"version": "1.0.0",
"description": "Super small pinball barebones implementation.",
"homepage": "https://codesandbox.io/s/rmfcq",
diff --git a/demos/pmndrs-vercel/package.json b/demos/pmndrs-vercel/package.json
index 72515e67..fe0127e8 100644
--- a/demos/pmndrs-vercel/package.json
+++ b/demos/pmndrs-vercel/package.json
@@ -1,5 +1,5 @@
{
- "name": "pmndrs-vercel",
+ "name": "@demo/pmndrs-vercel",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/go0b4w",
diff --git a/demos/portal-shapes/package.json b/demos/portal-shapes/package.json
index 914d035c..a9687743 100644
--- a/demos/portal-shapes/package.json
+++ b/demos/portal-shapes/package.json
@@ -1,5 +1,5 @@
{
- "name": "portal-shapes",
+ "name": "@demo/portal-shapes",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/8j36ok",
diff --git a/demos/portals/package.json b/demos/portals/package.json
index 0e4b9feb..eb7440fd 100644
--- a/demos/portals/package.json
+++ b/demos/portals/package.json
@@ -1,5 +1,5 @@
{
- "name": "portals",
+ "name": "@demo/portals",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/ik11ln",
diff --git a/demos/progressive-loading-states-with-suspense/package.json b/demos/progressive-loading-states-with-suspense/package.json
index fec40743..f30f3565 100644
--- a/demos/progressive-loading-states-with-suspense/package.json
+++ b/demos/progressive-loading-states-with-suspense/package.json
@@ -1,5 +1,5 @@
{
- "name": "progressive-loading-states-with-suspense",
+ "name": "@demo/progressive-loading-states-with-suspense",
"version": "1.0.0",
"description": "Demonstrates how to load a model progressively with fallbacks via React.Suspense.",
"homepage": "https://codesandbox.io/s/7duy8",
diff --git a/demos/racing-game/package.json b/demos/racing-game/package.json
index 24608cb1..b90d51bc 100644
--- a/demos/racing-game/package.json
+++ b/demos/racing-game/package.json
@@ -1,5 +1,5 @@
{
- "name": "racing-game",
+ "name": "@demo/racing-game",
"version": "1.0.0",
"description": "A semi-complete racing game.",
"homepage": "https://codesandbox.io/s/lo6kp",
diff --git a/demos/ragdoll-physics/package.json b/demos/ragdoll-physics/package.json
index c9721d13..3445e3f6 100644
--- a/demos/ragdoll-physics/package.json
+++ b/demos/ragdoll-physics/package.json
@@ -1,5 +1,5 @@
{
- "name": "ragdoll-physics",
+ "name": "@demo/ragdoll-physics",
"version": "1.0.0",
"description": "A mini game using cannon ragdoll physics. Throw the little guy around.",
"homepage": "https://codesandbox.io/s/wdzv4",
diff --git a/demos/rapier-physics/package.json b/demos/rapier-physics/package.json
index e30a239a..4341fb17 100644
--- a/demos/rapier-physics/package.json
+++ b/demos/rapier-physics/package.json
@@ -1,5 +1,5 @@
{
- "name": "rapier-physics",
+ "name": "@demo/rapier-physics",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/7e9y1b",
diff --git a/demos/rapier-ping-pong/package.json b/demos/rapier-ping-pong/package.json
index d2ede98a..25065e0f 100644
--- a/demos/rapier-ping-pong/package.json
+++ b/demos/rapier-ping-pong/package.json
@@ -1,5 +1,5 @@
{
- "name": "rapier-ping-pong",
+ "name": "@demo/rapier-ping-pong",
"version": "1.0.0",
"description": "Mini ping-pong implementation using rapier-physics.",
"homepage": "https://codesandbox.io/s/ptdgrn",
diff --git a/demos/raycast-cycling/package.json b/demos/raycast-cycling/package.json
index 42c09467..79133481 100644
--- a/demos/raycast-cycling/package.json
+++ b/demos/raycast-cycling/package.json
@@ -1,5 +1,5 @@
{
- "name": "raycast-cycling",
+ "name": "@demo/raycast-cycling",
"version": "1.0.0",
"description": "Bringing multiple objects underneath the cursor up front through raycast cycling",
"homepage": "https://codesandbox.io/s/ls503",
diff --git a/demos/re-using-geometry-and-level-of-detail/package.json b/demos/re-using-geometry-and-level-of-detail/package.json
index 1734e6c2..70e1c7eb 100644
--- a/demos/re-using-geometry-and-level-of-detail/package.json
+++ b/demos/re-using-geometry-and-level-of-detail/package.json
@@ -1,5 +1,5 @@
{
- "name": "re-using-geometry-and-level-of-detail",
+ "name": "@demo/re-using-geometry-and-level-of-detail",
"version": "1.0.0",
"description": "Demonstrates how to load a model progressively with fallbacks via React.Suspense, and using them as a LOD.",
"homepage": "https://codesandbox.io/s/12nmp",
diff --git a/demos/re-using-gltfs/package.json b/demos/re-using-gltfs/package.json
index bf0e6aa9..4b6cd6f6 100644
--- a/demos/re-using-gltfs/package.json
+++ b/demos/re-using-gltfs/package.json
@@ -11,7 +11,7 @@
"re-use",
"gltf"
],
- "name": "re-using-gltfs",
+ "name": "@demo/re-using-gltfs",
"version": "1.0.0",
"description": "When you use GLTFJSX it creates a immutable snapshot of your assets, these can be reused.",
"homepage": "https://codesandbox.io/s/dix1y",
diff --git a/demos/react-ellipsecurve/package.json b/demos/react-ellipsecurve/package.json
index 0f4dc5b0..6d877ee1 100644
--- a/demos/react-ellipsecurve/package.json
+++ b/demos/react-ellipsecurve/package.json
@@ -1,5 +1,5 @@
{
- "name": "react-ellipsecurve",
+ "name": "@demo/react-ellipsecurve",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/xzi6ps",
diff --git a/demos/react-pp-outlines/package.json b/demos/react-pp-outlines/package.json
index b43a88d3..fcd222a6 100644
--- a/demos/react-pp-outlines/package.json
+++ b/demos/react-pp-outlines/package.json
@@ -1,5 +1,5 @@
{
- "name": "react-pp-outlines",
+ "name": "@demo/react-pp-outlines",
"version": "1.0.0",
"description": "How to build declarative, nested outlines where higher-ups take precedence.",
"homepage": "https://codesandbox.io/s/nurp5t",
diff --git a/demos/react-spring-animations/package.json b/demos/react-spring-animations/package.json
index 37aad380..7ca83dd0 100644
--- a/demos/react-spring-animations/package.json
+++ b/demos/react-spring-animations/package.json
@@ -1,5 +1,5 @@
{
- "name": "react-spring-animations",
+ "name": "@demo/react-spring-animations",
"version": "1.0.0",
"description": "This is react-spring animating both the dom as well as the canvas with a single spring.",
"homepage": "https://codesandbox.io/s/6hi1y",
diff --git a/demos/room-with-soft-shadows/package.json b/demos/room-with-soft-shadows/package.json
index fcb148a3..bc621f72 100644
--- a/demos/room-with-soft-shadows/package.json
+++ b/demos/room-with-soft-shadows/package.json
@@ -1,5 +1,5 @@
{
- "name": "room-with-soft-shadows",
+ "name": "@demo/room-with-soft-shadows",
"version": "1.0.0",
"description": "Percentage closer soft shadows.",
"homepage": "https://codesandbox.io/s/ykfpwf",
diff --git a/demos/router-transitions/package.json b/demos/router-transitions/package.json
index 636d758b..b0335e09 100644
--- a/demos/router-transitions/package.json
+++ b/demos/router-transitions/package.json
@@ -1,5 +1,5 @@
{
- "name": "router-transitions",
+ "name": "@demo/router-transitions",
"version": "1.0.0",
"description": "Shows how to implement routes and mount/unmount transition within the canvas using Wouter.",
"homepage": "https://codesandbox.io/s/4j2q2",
diff --git a/demos/scrollcontrols-and-lens-refraction/package.json b/demos/scrollcontrols-and-lens-refraction/package.json
index 2b4b9480..51c1a7c9 100644
--- a/demos/scrollcontrols-and-lens-refraction/package.json
+++ b/demos/scrollcontrols-and-lens-refraction/package.json
@@ -1,5 +1,5 @@
{
- "name": "scrollcontrols-and-lens-refraction",
+ "name": "@demo/scrollcontrols-and-lens-refraction",
"version": "1.0.0",
"description": "Vertical scrollcontrols and minimaps.",
"homepage": "https://codesandbox.io/s/2n98yj",
diff --git a/demos/scrollcontrols-gltf/package.json b/demos/scrollcontrols-gltf/package.json
index d22c61c5..97a69faf 100644
--- a/demos/scrollcontrols-gltf/package.json
+++ b/demos/scrollcontrols-gltf/package.json
@@ -1,5 +1,5 @@
{
- "name": "scrollcontrols-gltf",
+ "name": "@demo/scrollcontrols-gltf",
"version": "1.0.0",
"description": "Connecting models with useScroll",
"homepage": "https://codesandbox.io/s/4jr4p",
diff --git a/demos/scrollcontrols-with-minimap/package.json b/demos/scrollcontrols-with-minimap/package.json
index 5b3216d7..1b534af9 100644
--- a/demos/scrollcontrols-with-minimap/package.json
+++ b/demos/scrollcontrols-with-minimap/package.json
@@ -1,5 +1,5 @@
{
- "name": "scrollcontrols-with-minimap",
+ "name": "@demo/scrollcontrols-with-minimap",
"version": "1.0.0",
"description": "Vertical scrollcontrols and minimaps.",
"homepage": "https://codesandbox.io/s/yjhzv",
diff --git a/demos/selective-outlines/package.json b/demos/selective-outlines/package.json
index 03a11e80..7c8cecab 100644
--- a/demos/selective-outlines/package.json
+++ b/demos/selective-outlines/package.json
@@ -1,5 +1,5 @@
{
- "name": "selective-outlines",
+ "name": "@demo/selective-outlines",
"version": "1.0.0",
"description": "Using postprocessing to give seletcive objects outlines.",
"homepage": "https://codesandbox.io/s/d36mw",
diff --git a/demos/shader-fire/package.json b/demos/shader-fire/package.json
index 39aacf35..c7e9f018 100644
--- a/demos/shader-fire/package.json
+++ b/demos/shader-fire/package.json
@@ -1,5 +1,5 @@
{
- "name": "shader-fire",
+ "name": "@demo/shader-fire",
"version": "1.0.0",
"description": "A volumetric fire effect.",
"homepage": "https://codesandbox.io/s/3878x",
diff --git a/demos/shader-hmr/package.json b/demos/shader-hmr/package.json
index c5b6db38..95bf0697 100644
--- a/demos/shader-hmr/package.json
+++ b/demos/shader-hmr/package.json
@@ -1,5 +1,5 @@
{
- "name": "shader-hmr",
+ "name": "@demo/shader-hmr",
"version": "1.0.0",
"description": "Shows how to create HMR shaders",
"homepage": "https://codesandbox.io/s/ib0jc",
diff --git a/demos/shadermaterials/package.json b/demos/shadermaterials/package.json
index 87afcdea..187b98f5 100644
--- a/demos/shadermaterials/package.json
+++ b/demos/shadermaterials/package.json
@@ -1,5 +1,5 @@
{
- "name": "shadermaterials",
+ "name": "@demo/shadermaterials",
"version": "1.0.0",
"description": "How to set up shader materials declaratively.",
"homepage": "https://codesandbox.io/s/1g4qq",
diff --git a/demos/shoe-configurator/package.json b/demos/shoe-configurator/package.json
index 005508f1..3af96568 100644
--- a/demos/shoe-configurator/package.json
+++ b/demos/shoe-configurator/package.json
@@ -1,5 +1,5 @@
{
- "name": "shoe-configurator",
+ "name": "@demo/shoe-configurator",
"version": "1.0.0",
"description": "A super small configurator that shows you how to make GLTF assets dynamic.",
"homepage": "https://codesandbox.io/s/qxjoj",
diff --git a/demos/shopping/package.json b/demos/shopping/package.json
index 9b6337b8..7693b543 100644
--- a/demos/shopping/package.json
+++ b/demos/shopping/package.json
@@ -1,5 +1,5 @@
{
- "name": "shopping",
+ "name": "@demo/shopping",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/4gy946",
diff --git a/demos/simple-audio-analyser/package.json b/demos/simple-audio-analyser/package.json
index 212430c2..cd926384 100644
--- a/demos/simple-audio-analyser/package.json
+++ b/demos/simple-audio-analyser/package.json
@@ -1,5 +1,5 @@
{
- "name": "simple-audio-analyser",
+ "name": "@demo/simple-audio-analyser",
"version": "1.0.0",
"description": "Audio frequency analysis.",
"homepage": "https://codesandbox.io/s/wu51m",
diff --git a/demos/simple-physics-demo-with-debug-bounds/package.json b/demos/simple-physics-demo-with-debug-bounds/package.json
index aa1b2d49..6c351f49 100644
--- a/demos/simple-physics-demo-with-debug-bounds/package.json
+++ b/demos/simple-physics-demo-with-debug-bounds/package.json
@@ -1,5 +1,5 @@
{
- "name": "simple-physics-demo-with-debug-bounds",
+ "name": "@demo/simple-physics-demo-with-debug-bounds",
"version": "1.0.0",
"description": "A box dropping onto a plane using use-cannon / cannon-es.",
"homepage": "https://codesandbox.io/s/0k27n",
diff --git a/demos/simple-physics-demo/package.json b/demos/simple-physics-demo/package.json
index 4a514e39..bbc951aa 100644
--- a/demos/simple-physics-demo/package.json
+++ b/demos/simple-physics-demo/package.json
@@ -1,5 +1,5 @@
{
- "name": "simple-physics-demo",
+ "name": "@demo/simple-physics-demo",
"version": "1.0.0",
"description": "A box dropping onto a plane using use-cannon / cannon-es.",
"homepage": "https://codesandbox.io/s/z8e6m",
diff --git a/demos/sky-dome-with-annotations/package.json b/demos/sky-dome-with-annotations/package.json
index 51bc038d..8f940630 100644
--- a/demos/sky-dome-with-annotations/package.json
+++ b/demos/sky-dome-with-annotations/package.json
@@ -1,5 +1,5 @@
{
- "name": "sky-dome-with-annotations",
+ "name": "@demo/sky-dome-with-annotations",
"version": "1.0.0",
"description": "Dome projecting texture and HTML annotations.",
"homepage": "https://codesandbox.io/s/wbrfs",
diff --git a/demos/soft-shadows/package.json b/demos/soft-shadows/package.json
index f10c3f58..caa27c65 100644
--- a/demos/soft-shadows/package.json
+++ b/demos/soft-shadows/package.json
@@ -1,5 +1,5 @@
{
- "name": "soft-shadows",
+ "name": "@demo/soft-shadows",
"version": "1.0.0",
"description": "Percentage closer soft shadows.",
"homepage": "https://codesandbox.io/s/dh2jc",
diff --git a/demos/space-game/package.json b/demos/space-game/package.json
index 9c7c08b0..7b4f1df1 100644
--- a/demos/space-game/package.json
+++ b/demos/space-game/package.json
@@ -1,5 +1,5 @@
{
- "name": "space-game",
+ "name": "@demo/space-game",
"version": "1.0.0",
"description": "A small demo that shows how to manage game entities.",
"homepage": "https://codesandbox.io/s/i2160",
diff --git a/demos/sparks-and-effects/package.json b/demos/sparks-and-effects/package.json
index 0ea2c899..4a2d0a3a 100644
--- a/demos/sparks-and-effects/package.json
+++ b/demos/sparks-and-effects/package.json
@@ -1,5 +1,5 @@
{
- "name": "sparks-and-effects",
+ "name": "@demo/sparks-and-effects",
"version": "1.0.0",
"description": "Demonstrating fake-particles, mesh-lines and effect composition.",
"homepage": "https://codesandbox.io/s/sbf2i",
diff --git a/demos/spline-glass-shapes/package.json b/demos/spline-glass-shapes/package.json
index cb19963d..91b12bc1 100644
--- a/demos/spline-glass-shapes/package.json
+++ b/demos/spline-glass-shapes/package.json
@@ -1,5 +1,5 @@
{
- "name": "spline-glass-shapes",
+ "name": "@demo/spline-glass-shapes",
"version": "1.0.0",
"description": "Scene exported with Spline",
"homepage": "https://codesandbox.io/s/ju368j",
diff --git a/demos/sport-hall/package.json b/demos/sport-hall/package.json
index 5a0f3513..c6b39b3b 100644
--- a/demos/sport-hall/package.json
+++ b/demos/sport-hall/package.json
@@ -1,5 +1,5 @@
{
- "name": "sport-hall",
+ "name": "@demo/sport-hall",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/s006f",
diff --git a/demos/springy-boxes/package.json b/demos/springy-boxes/package.json
index b677149e..50bb1bd5 100644
--- a/demos/springy-boxes/package.json
+++ b/demos/springy-boxes/package.json
@@ -1,5 +1,5 @@
{
- "name": "springy-boxes",
+ "name": "@demo/springy-boxes",
"version": "1.0.0",
"description": "Colorfull boxes changing position with spring physics",
"homepage": "https://codesandbox.io/s/jz9l97qn89",
diff --git a/demos/ssgi-spheres-with-rapier-physics/package.json b/demos/ssgi-spheres-with-rapier-physics/package.json
index a3b560e2..1af1b919 100644
--- a/demos/ssgi-spheres-with-rapier-physics/package.json
+++ b/demos/ssgi-spheres-with-rapier-physics/package.json
@@ -1,5 +1,5 @@
{
- "name": "ssgi-spheres-with-rapier-physics",
+ "name": "@demo/ssgi-spheres-with-rapier-physics",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/5w35n6",
diff --git a/demos/ssr-test/package.json b/demos/ssr-test/package.json
index 6c742041..4332494d 100644
--- a/demos/ssr-test/package.json
+++ b/demos/ssr-test/package.json
@@ -1,5 +1,5 @@
{
- "name": "ssr-test",
+ "name": "@demo/ssr-test",
"version": "1.0.0",
"description": "Screen space reflections",
"homepage": "https://codesandbox.io/s/8pbw1f",
diff --git a/demos/stage-presets-gltfjsx/package.json b/demos/stage-presets-gltfjsx/package.json
index e11542ac..9c570804 100644
--- a/demos/stage-presets-gltfjsx/package.json
+++ b/demos/stage-presets-gltfjsx/package.json
@@ -1,5 +1,5 @@
{
- "name": "stage-presets-gltfjsx",
+ "name": "@demo/stage-presets-gltfjsx",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/if9crg",
diff --git a/demos/staging-and-camerashake/package.json b/demos/staging-and-camerashake/package.json
index 6842b6d3..56bdba43 100644
--- a/demos/staging-and-camerashake/package.json
+++ b/demos/staging-and-camerashake/package.json
@@ -31,7 +31,7 @@
"camera-shake",
"controls"
],
- "name": "staging-and-camerashake",
+ "name": "@demo/staging-and-camerashake",
"version": "1.0.0",
"description": "How to stage and shake models while using controls at the same time.",
"homepage": "https://codesandbox.io/s/0ycwe",
diff --git a/demos/starwars/package.json b/demos/starwars/package.json
index 5045f1ff..d5e93581 100644
--- a/demos/starwars/package.json
+++ b/demos/starwars/package.json
@@ -1,5 +1,5 @@
{
- "name": "starwars",
+ "name": "@demo/starwars",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/fslt99",
diff --git a/demos/stencil-mask/package.json b/demos/stencil-mask/package.json
index 29e26b03..7184fa4d 100644
--- a/demos/stencil-mask/package.json
+++ b/demos/stencil-mask/package.json
@@ -1,5 +1,5 @@
{
- "name": "stencil-mask",
+ "name": "@demo/stencil-mask",
"version": "1.0.0",
"description": "Using the stencil mask to cut out areas of the screen.",
"homepage": "https://codesandbox.io/s/z3f2mw",
diff --git a/demos/svg-maps-with-html-annotations/package.json b/demos/svg-maps-with-html-annotations/package.json
index d251eb4b..359be504 100644
--- a/demos/svg-maps-with-html-annotations/package.json
+++ b/demos/svg-maps-with-html-annotations/package.json
@@ -1,5 +1,5 @@
{
- "name": "svg-maps-with-html-annotations",
+ "name": "@demo/svg-maps-with-html-annotations",
"version": "1.0.0",
"description": "Using SVGLoader, converting each path into cell components with annotations and map controls.",
"homepage": "https://codesandbox.io/s/mkq8e",
diff --git a/demos/svg-renderer/package.json b/demos/svg-renderer/package.json
index df0dca14..1ac6110b 100644
--- a/demos/svg-renderer/package.json
+++ b/demos/svg-renderer/package.json
@@ -1,5 +1,5 @@
{
- "name": "svg-renderer",
+ "name": "@demo/svg-renderer",
"version": "1.0.0",
"description": "Using the render function to inject custom renderers.",
"homepage": "https://codesandbox.io/s/zcuqh",
diff --git a/demos/t-shirt-configurator/package.json b/demos/t-shirt-configurator/package.json
index 09e3bf48..2ba0383f 100644
--- a/demos/t-shirt-configurator/package.json
+++ b/demos/t-shirt-configurator/package.json
@@ -1,5 +1,5 @@
{
- "name": "t-shirt-configurator",
+ "name": "@demo/t-shirt-configurator",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/ioxywi",
diff --git a/demos/the-three-graces/package.json b/demos/the-three-graces/package.json
index 83c9b185..eb402e03 100644
--- a/demos/the-three-graces/package.json
+++ b/demos/the-three-graces/package.json
@@ -1,5 +1,5 @@
{
- "name": "the-three-graces",
+ "name": "@demo/the-three-graces",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/threejs-journey-lv-1-fisheye/package.json b/demos/threejs-journey-lv-1-fisheye/package.json
index a721546a..912a8cd1 100644
--- a/demos/threejs-journey-lv-1-fisheye/package.json
+++ b/demos/threejs-journey-lv-1-fisheye/package.json
@@ -1,5 +1,5 @@
{
- "name": "threejs-journey-lv-1-fisheye",
+ "name": "@demo/threejs-journey-lv-1-fisheye",
"version": "1.0.0",
"description": "A recreation of the first level from https://threejs-journey.com.",
"homepage": "https://codesandbox.io/s/7qytdw",
diff --git a/demos/threejs-journey-portal/package.json b/demos/threejs-journey-portal/package.json
index 04b575fc..4f8399fe 100644
--- a/demos/threejs-journey-portal/package.json
+++ b/demos/threejs-journey-portal/package.json
@@ -1,5 +1,5 @@
{
- "name": "threejs-journey-portal",
+ "name": "@demo/threejs-journey-portal",
"version": "1.0.0",
"description": "The last scene from Bruno Simons Threejs journey in react-three-fiber",
"homepage": "https://codesandbox.io/s/ni6v4",
diff --git a/demos/thunder-clouds/package.json b/demos/thunder-clouds/package.json
index 31895da5..7b5a0835 100644
--- a/demos/thunder-clouds/package.json
+++ b/demos/thunder-clouds/package.json
@@ -1,5 +1,5 @@
{
- "name": "thunder-clouds",
+ "name": "@demo/thunder-clouds",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/transformcontrols-and-makedefault/package.json b/demos/transformcontrols-and-makedefault/package.json
index 7bf75e93..30eb4570 100644
--- a/demos/transformcontrols-and-makedefault/package.json
+++ b/demos/transformcontrols-and-makedefault/package.json
@@ -1,5 +1,5 @@
{
- "name": "transformcontrols-and-makedefault",
+ "name": "@demo/transformcontrols-and-makedefault",
"version": "1.0.0",
"description": "Combining TransformControls, OrbitControls and Valtio.",
"homepage": "https://codesandbox.io/s/btsbj",
diff --git a/demos/transparent-aesop-bottles/package.json b/demos/transparent-aesop-bottles/package.json
index 70f5c9e5..11804a5e 100644
--- a/demos/transparent-aesop-bottles/package.json
+++ b/demos/transparent-aesop-bottles/package.json
@@ -1,5 +1,5 @@
{
- "name": "transparent-aesop-bottles",
+ "name": "@demo/transparent-aesop-bottles",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/trigger-meshes/package.json b/demos/trigger-meshes/package.json
index faf232fc..45890b0e 100644
--- a/demos/trigger-meshes/package.json
+++ b/demos/trigger-meshes/package.json
@@ -1,5 +1,5 @@
{
- "name": "trigger-meshes",
+ "name": "@demo/trigger-meshes",
"version": "1.0.0",
"description": "Shows how to implement trigger meshes that inform the application of collisions.",
"homepage": "https://codesandbox.io/s/h545c",
diff --git a/demos/tying-canvas-to-scroll-offset/package.json b/demos/tying-canvas-to-scroll-offset/package.json
index 50b97ae4..fe5fdbdc 100644
--- a/demos/tying-canvas-to-scroll-offset/package.json
+++ b/demos/tying-canvas-to-scroll-offset/package.json
@@ -1,5 +1,5 @@
{
- "name": "tying-canvas-to-scroll-offset",
+ "name": "@demo/tying-canvas-to-scroll-offset",
"version": "1.0.0",
"description": "How to tie canvas objects to scrollTop while events keep working.",
"homepage": "https://codesandbox.io/s/itfgk",
diff --git a/demos/useintersect-and-scrollcontrols/package.json b/demos/useintersect-and-scrollcontrols/package.json
index 8d278785..1e55e7ce 100644
--- a/demos/useintersect-and-scrollcontrols/package.json
+++ b/demos/useintersect-and-scrollcontrols/package.json
@@ -1,5 +1,5 @@
{
- "name": "useintersect-and-scrollcontrols",
+ "name": "@demo/useintersect-and-scrollcontrols",
"version": "1.0.0",
"description": "Combining useIntersect with scrollcontrols.",
"homepage": "https://codesandbox.io/s/gsm1y",
diff --git a/demos/video-cookies/package.json b/demos/video-cookies/package.json
index fa0fa6a5..67effc9f 100644
--- a/demos/video-cookies/package.json
+++ b/demos/video-cookies/package.json
@@ -1,5 +1,5 @@
{
- "name": "video-cookies",
+ "name": "@demo/video-cookies",
"version": "1.0.0",
"description": "How to use drei/AccumulativeShadows and RandomizedLight",
"homepage": "https://codesandbox.io/s/hmbn1l",
diff --git a/demos/video-textures/package.json b/demos/video-textures/package.json
index ce82086a..0178f3cd 100644
--- a/demos/video-textures/package.json
+++ b/demos/video-textures/package.json
@@ -1,5 +1,5 @@
{
- "name": "video-textures",
+ "name": "@demo/video-textures",
"version": "1.0.0",
"description": "How to load, apply and play video textures, and how to calculate fullscreen, or \"cover\" aspect ratio. ",
"homepage": "https://codesandbox.io/s/39hg8",
diff --git a/demos/view-tracking/package.json b/demos/view-tracking/package.json
index 2125cc18..9cf4f42c 100644
--- a/demos/view-tracking/package.json
+++ b/demos/view-tracking/package.json
@@ -1,5 +1,5 @@
{
- "name": "view-tracking",
+ "name": "@demo/view-tracking",
"version": "1.0.0",
"description": "Shows how to form self-contained components with their own state and user interaction.",
"homepage": "https://codesandbox.io/s/bp6tmc",
diff --git a/demos/viewcube/package.json b/demos/viewcube/package.json
index 22aa16da..754c014a 100644
--- a/demos/viewcube/package.json
+++ b/demos/viewcube/package.json
@@ -1,5 +1,5 @@
{
- "name": "viewcube",
+ "name": "@demo/viewcube",
"version": "1.0.0",
"description": "Shows how to do heads-up-displays using React.portals.",
"homepage": "https://codesandbox.io/s/py4db",
diff --git a/demos/viking-ship/package.json b/demos/viking-ship/package.json
index a29a0f5a..6740a746 100644
--- a/demos/viking-ship/package.json
+++ b/demos/viking-ship/package.json
@@ -1,5 +1,5 @@
{
- "name": "viking-ship",
+ "name": "@demo/viking-ship",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/demos/volumetric-light-godray/package.json b/demos/volumetric-light-godray/package.json
index af4a36f4..8b20a425 100644
--- a/demos/volumetric-light-godray/package.json
+++ b/demos/volumetric-light-godray/package.json
@@ -1,5 +1,5 @@
{
- "name": "volumetric-light-godray",
+ "name": "@demo/volumetric-light-godray",
"version": "1.0.0",
"description": "Experimenting with volumetric lights.",
"homepage": "https://codesandbox.io/s/yggpw5",
diff --git a/demos/volumetric-spotlight/package.json b/demos/volumetric-spotlight/package.json
index 1fcc81ca..e083c2b5 100644
--- a/demos/volumetric-spotlight/package.json
+++ b/demos/volumetric-spotlight/package.json
@@ -1,5 +1,5 @@
{
- "name": "volumetric-spotlight",
+ "name": "@demo/volumetric-spotlight",
"version": "1.0.0",
"description": "Volumetric soft particle spot lights.",
"homepage": "https://codesandbox.io/s/tx1pq",
diff --git a/demos/water-shader/package.json b/demos/water-shader/package.json
index 091ce20b..5526cea3 100644
--- a/demos/water-shader/package.json
+++ b/demos/water-shader/package.json
@@ -1,5 +1,5 @@
{
- "name": "water-shader",
+ "name": "@demo/water-shader",
"version": "1.0.0",
"description": "",
"homepage": "https://codesandbox.io/s/1b40u",
diff --git a/demos/wobbling-sphere/package.json b/demos/wobbling-sphere/package.json
index 0e004b59..c4d6216c 100644
--- a/demos/wobbling-sphere/package.json
+++ b/demos/wobbling-sphere/package.json
@@ -1,5 +1,5 @@
{
- "name": "wobbling-sphere",
+ "name": "@demo/wobbling-sphere",
"version": "1.0.0",
"description": "Experimenting with environment maps.",
"homepage": "https://codesandbox.io/s/5oufp",
diff --git a/demos/zustand-site/package.json b/demos/zustand-site/package.json
index a24c3e98..19450701 100644
--- a/demos/zustand-site/package.json
+++ b/demos/zustand-site/package.json
@@ -1,5 +1,5 @@
{
- "name": "zustand-site",
+ "name": "@demo/zustand-site",
"version": "0.1.0",
"private": true,
"dependencies": {
diff --git a/out.sh b/out.sh
index 8b7a20b1..78f2eddd 100755
--- a/out.sh
+++ b/out.sh
@@ -1,26 +1,33 @@
-#!/bin/bash
+#!/bin/sh
-DST="out${BASE_PATH}"
+DST="out${BASE_PATH}" # More descriptive name
rm -rf out
-for app in demos/*; do
- if [ -d "$app/dist" ]; then
- app_name=$(basename "$app")
- mkdir -p "$DST/$app_name"
- cp -r "$app/dist/"* "$DST/$app_name/"
+for demo_path in demos/*; do
+ demo_name=$(basename "$demo_path")
+
+ vite_dist_dir="$demo_path/dist"
+ out_demo_dir="$DST/$demo_name"
+
+ if [ -d "$vite_dist_dir" ]; then
+ mkdir -p "$out_demo_dir"
+ cp -r "$vite_dist_dir"/* "$out_demo_dir"
+
+ thumbnail_file=$(find "$demo_path" -name 'thumbnail.png' -print -quit) # Lower case for local variable
+ snapshot_file=$(find packages/e2e/snapshot.test.js-snapshots -name "${demo_name}-*-linux.png" -print -quit) # Lower case for local variable
- THUMNAIL_FILE=$(ls $app/thumbnail.png 2>/dev/null)
- SNAPSHOT_FILE=$(ls packages/e2e/snapshot.test.js-snapshots/${app_name}-*.png 2>/dev/null)
- if [ -n "$SNAPSHOT_FILE" ]; then
- cp "$SNAPSHOT_FILE" "$DST/$app_name/thumbnail.png"
- elif [ -n "$THUMNAIL_FILE" ]; then
- cp "$THUMNAIL_FILE" "$DST/$app_name/thumbnail.png"
+ if [ -n "$snapshot_file" ]; then
+ cp "$snapshot_file" "$out_demo_dir/thumbnail.png"
+ echo "Copied snapshot_file $snapshot_file to $out_demo_dir"
+ elif [ -n "$thumbnail_file" ]; then
+ cp "$thumbnail_file" "$out_demo_dir/thumbnail.png"
+ echo "Copied thumbnail_file $thumbnail_file to $out_demo_dir"
fi
- echo "Copied $app/dist to $DST/$app_name"
+ echo "Copied $vite_dist_dir to $out_demo_dir"
fi
done
-cp -r apps/website/out/* $DST/
-echo "Copied apps/website/out to $DST"
\ No newline at end of file
+cp -r apps/website/out/* "$DST/"
+echo "Copied apps/website/out to $DST"
diff --git a/package-lock.json b/package-lock.json
index 64373d30..529f7105 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,13 +8,13 @@
"workspaces": [
"apps/*",
"demos/*",
- "packages/e2e"
+ "packages/*"
],
"devDependencies": {
"@playwright/test": "1.45.3",
"@types/minimist": "^1.2.5",
"prettier": "^3.2.5",
- "turbo": "^2.0.9",
+ "turbo": "^2.0.11",
"typescript": "^5.5.2"
},
"engines": {
@@ -3300,6 +3300,163 @@
"apps/website": {
"version": "0.1.0",
"dependencies": {
+ "@demo/aquarium": "*",
+ "@demo/arkanoid": "*",
+ "@demo/arkanoid-under-60-loc": "*",
+ "@demo/audio-analyser": "*",
+ "@demo/backdrop-and-cables": "*",
+ "@demo/baking-soft-shadows": "*",
+ "@demo/basic-ballpit": "*",
+ "@demo/basic-demo": "*",
+ "@demo/bestservedbold-christmas-baubles": "*",
+ "@demo/bezier-curves-and-nodes": "*",
+ "@demo/bloom-hdr-workflow-gltf": "*",
+ "@demo/bouncy-watch": "*",
+ "@demo/bounds-and-makedefault": "*",
+ "@demo/bruno-simons-20k-challenge": "*",
+ "@demo/building-dynamic-envmaps": "*",
+ "@demo/building-live-envmaps": "*",
+ "@demo/bvh": "*",
+ "@demo/camera-scroll": "*",
+ "@demo/camera-shake": "*",
+ "@demo/canvas-text": "*",
+ "@demo/cards": "*",
+ "@demo/cards-with-border-radius": "*",
+ "@demo/caustics": "*",
+ "@demo/cell-fracture": "*",
+ "@demo/clones": "*",
+ "@demo/clouds": "*",
+ "@demo/color-grading": "*",
+ "@demo/confetti": "*",
+ "@demo/csg-bunny-usegroups": "*",
+ "@demo/csg-house": "*",
+ "@demo/csg-operations-rapier-physics": "*",
+ "@demo/dbismut-furniture": "*",
+ "@demo/diamond-refraction": "*",
+ "@demo/diamond-ring": "*",
+ "@demo/drei-rendertexture": "*",
+ "@demo/ecctrl-fisheye": "*",
+ "@demo/edgesgeometry": "*",
+ "@demo/enter-portals": "*",
+ "@demo/environment-blur-and-transitions": "*",
+ "@demo/envmap-ground-projection": "*",
+ "@demo/faucets-select-highlight": "*",
+ "@demo/flexbox-yoga-in-webgl": "*",
+ "@demo/floating-diamonds": "*",
+ "@demo/floating-instanced-shoes": "*",
+ "@demo/floating-laptop": "*",
+ "@demo/flying-bananas": "*",
+ "@demo/frosted-glass": "*",
+ "@demo/gatsby-stars": "*",
+ "@demo/glass-flower": "*",
+ "@demo/gltf-animations": "*",
+ "@demo/gltf-animations-re-used": "*",
+ "@demo/gltf-animations-tied-to-scroll": "*",
+ "@demo/gltfjsx-400kb-drone": "*",
+ "@demo/gpgpu-curl-noise-dof": "*",
+ "@demo/grass-shader": "*",
+ "@demo/ground-projected-envmaps-lamina": "*",
+ "@demo/ground-reflections-and-video-textures": "*",
+ "@demo/hi-key-bubbles": "*",
+ "@demo/horizontal-tiles": "*",
+ "@demo/html-annotations": "*",
+ "@demo/html-input-fields": "*",
+ "@demo/html-markers": "*",
+ "@demo/image-gallery": "*",
+ "@demo/infinite-scroll": "*",
+ "@demo/instanced-particles-effects": "*",
+ "@demo/instanced-vertex-colors": "*",
+ "@demo/instances": "*",
+ "@demo/inter-epoxy-resin": "*",
+ "@demo/interactive-spline-scene-live-html": "*",
+ "@demo/inverted-stencil-buffer": "*",
+ "@demo/iridescent-decals": "*",
+ "@demo/lamina-1x": "*",
+ "@demo/landing-page": "*",
+ "@demo/learn-with-jason": "*",
+ "@demo/lulaby-city": "*",
+ "@demo/lusion-connectors": "*",
+ "@demo/magic-box": "*",
+ "@demo/merged-instance": "*",
+ "@demo/minecraft": "*",
+ "@demo/mixing-controls": "*",
+ "@demo/mixing-html-and-webgl": "*",
+ "@demo/mixing-html-and-webgl-w-occlusion": "*",
+ "@demo/moksha": "*",
+ "@demo/monitors": "*",
+ "@demo/motionpathcontrols": "*",
+ "@demo/mount-transitions": "*",
+ "@demo/multiple-views-with-uniform-controls": "*",
+ "@demo/nextjs-prism": "*",
+ "@demo/night-train": "*",
+ "@demo/object-clump": "*",
+ "@demo/pairing-threejs-to-ui": "*",
+ "@demo/pass-through-portals": "*",
+ "@demo/physics-with-convex-polyhedrons": "*",
+ "@demo/pinball-in-70-lines": "*",
+ "@demo/pmndrs-vercel": "*",
+ "@demo/portal-shapes": "*",
+ "@demo/portals": "*",
+ "@demo/progressive-loading-states-with-suspense": "*",
+ "@demo/racing-game": "*",
+ "@demo/ragdoll-physics": "*",
+ "@demo/rapier-physics": "*",
+ "@demo/rapier-ping-pong": "*",
+ "@demo/raycast-cycling": "*",
+ "@demo/re-using-geometry-and-level-of-detail": "*",
+ "@demo/re-using-gltfs": "*",
+ "@demo/react-ellipsecurve": "*",
+ "@demo/react-pp-outlines": "*",
+ "@demo/react-spring-animations": "*",
+ "@demo/room-with-soft-shadows": "*",
+ "@demo/router-transitions": "*",
+ "@demo/scrollcontrols-and-lens-refraction": "*",
+ "@demo/scrollcontrols-gltf": "*",
+ "@demo/scrollcontrols-with-minimap": "*",
+ "@demo/selective-outlines": "*",
+ "@demo/shader-fire": "*",
+ "@demo/shader-hmr": "*",
+ "@demo/shadermaterials": "*",
+ "@demo/shoe-configurator": "*",
+ "@demo/shopping": "*",
+ "@demo/simple-audio-analyser": "*",
+ "@demo/simple-physics-demo": "*",
+ "@demo/simple-physics-demo-with-debug-bounds": "*",
+ "@demo/sky-dome-with-annotations": "*",
+ "@demo/soft-shadows": "*",
+ "@demo/space-game": "*",
+ "@demo/sparks-and-effects": "*",
+ "@demo/spline-glass-shapes": "*",
+ "@demo/sport-hall": "*",
+ "@demo/springy-boxes": "*",
+ "@demo/ssgi-spheres-with-rapier-physics": "*",
+ "@demo/ssr-test": "*",
+ "@demo/stage-presets-gltfjsx": "*",
+ "@demo/staging-and-camerashake": "*",
+ "@demo/starwars": "*",
+ "@demo/stencil-mask": "*",
+ "@demo/svg-maps-with-html-annotations": "*",
+ "@demo/svg-renderer": "*",
+ "@demo/t-shirt-configurator": "*",
+ "@demo/the-three-graces": "*",
+ "@demo/threejs-journey-lv-1-fisheye": "*",
+ "@demo/threejs-journey-portal": "*",
+ "@demo/thunder-clouds": "*",
+ "@demo/transformcontrols-and-makedefault": "*",
+ "@demo/transparent-aesop-bottles": "*",
+ "@demo/trigger-meshes": "*",
+ "@demo/tying-canvas-to-scroll-offset": "*",
+ "@demo/useintersect-and-scrollcontrols": "*",
+ "@demo/video-cookies": "*",
+ "@demo/video-textures": "*",
+ "@demo/view-tracking": "*",
+ "@demo/viewcube": "*",
+ "@demo/viking-ship": "*",
+ "@demo/volumetric-light-godray": "*",
+ "@demo/volumetric-spotlight": "*",
+ "@demo/water-shader": "*",
+ "@demo/wobbling-sphere": "*",
+ "@demo/zustand-site": "*",
"clsx": "^2.1.1",
"next": "14.2.5",
"react": "^18",
@@ -3368,6 +3525,7 @@
}
},
"demos/aquarium": {
+ "name": "@demo/aquarium",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -3387,6 +3545,7 @@
}
},
"demos/arkanoid": {
+ "name": "@demo/arkanoid",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.1.1",
@@ -3408,6 +3567,7 @@
}
},
"demos/arkanoid-under-60-loc": {
+ "name": "@demo/arkanoid-under-60-loc",
"version": "1.0.0",
"dependencies": {
"@react-three/fiber": "^8.16.8",
@@ -3436,6 +3596,7 @@
}
},
"demos/audio-analyser": {
+ "name": "@demo/audio-analyser",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -3455,6 +3616,7 @@
}
},
"demos/backdrop-and-cables": {
+ "name": "@demo/backdrop-and-cables",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3475,6 +3637,7 @@
}
},
"demos/baking-soft-shadows": {
+ "name": "@demo/baking-soft-shadows",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3493,6 +3656,7 @@
}
},
"demos/basic-ballpit": {
+ "name": "@demo/basic-ballpit",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^6.3.0",
@@ -3513,6 +3677,7 @@
}
},
"demos/basic-demo": {
+ "name": "@demo/basic-demo",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3531,6 +3696,7 @@
}
},
"demos/bestservedbold-christmas-baubles": {
+ "name": "@demo/bestservedbold-christmas-baubles",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^6.5.2",
@@ -3563,6 +3729,7 @@
}
},
"demos/bezier-curves-and-nodes": {
+ "name": "@demo/bezier-curves-and-nodes",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3584,6 +3751,7 @@
}
},
"demos/bloom-hdr-workflow-gltf": {
+ "name": "@demo/bloom-hdr-workflow-gltf",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3604,6 +3772,7 @@
}
},
"demos/bouncy-watch": {
+ "name": "@demo/bouncy-watch",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3622,6 +3791,7 @@
}
},
"demos/bounds-and-makedefault": {
+ "name": "@demo/bounds-and-makedefault",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3641,6 +3811,7 @@
}
},
"demos/bruno-simons-20k-challenge": {
+ "name": "@demo/bruno-simons-20k-challenge",
"version": "1.0.0",
"dependencies": {
"@react-three/csg": "^3.0.0",
@@ -3663,6 +3834,7 @@
}
},
"demos/building-dynamic-envmaps": {
+ "name": "@demo/building-dynamic-envmaps",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3684,6 +3856,7 @@
}
},
"demos/building-live-envmaps": {
+ "name": "@demo/building-live-envmaps",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -3706,6 +3879,7 @@
}
},
"demos/bvh": {
+ "name": "@demo/bvh",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3778,6 +3952,7 @@
}
},
"demos/camera-scroll": {
+ "name": "@demo/camera-scroll",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3797,6 +3972,7 @@
}
},
"demos/camera-shake": {
+ "name": "@demo/camera-shake",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3815,6 +3991,7 @@
}
},
"demos/canvas-text": {
+ "name": "@demo/canvas-text",
"version": "1.0.0",
"dependencies": {
"@react-three/fiber": "^8.16.8",
@@ -3832,6 +4009,7 @@
}
},
"demos/cards": {
+ "name": "@demo/cards",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -3854,6 +4032,7 @@
}
},
"demos/cards-with-border-radius": {
+ "name": "@demo/cards-with-border-radius",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -3876,6 +4055,7 @@
}
},
"demos/caustics": {
+ "name": "@demo/caustics",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3896,6 +4076,7 @@
}
},
"demos/cell-fracture": {
+ "name": "@demo/cell-fracture",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3914,6 +4095,7 @@
}
},
"demos/clones": {
+ "name": "@demo/clones",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -3935,6 +4117,7 @@
}
},
"demos/clouds": {
+ "name": "@demo/clouds",
"version": "0.1.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3955,6 +4138,7 @@
}
},
"demos/color-grading": {
+ "name": "@demo/color-grading",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -3974,6 +4158,7 @@
}
},
"demos/confetti": {
+ "name": "@demo/confetti",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -3996,6 +4181,7 @@
}
},
"demos/csg-bunny-usegroups": {
+ "name": "@demo/csg-bunny-usegroups",
"version": "1.0.0",
"dependencies": {
"@react-three/csg": "^2.2.0",
@@ -4048,6 +4234,7 @@
}
},
"demos/csg-house": {
+ "name": "@demo/csg-house",
"version": "1.0.0",
"dependencies": {
"@react-three/csg": "^3.0.0",
@@ -4068,6 +4255,7 @@
}
},
"demos/csg-operations-rapier-physics": {
+ "name": "@demo/csg-operations-rapier-physics",
"version": "1.0.0",
"dependencies": {
"@react-three/csg": "^2.0.1",
@@ -4122,6 +4310,7 @@
}
},
"demos/dbismut-furniture": {
+ "name": "@demo/dbismut-furniture",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.7.1",
@@ -4158,6 +4347,7 @@
}
},
"demos/diamond-refraction": {
+ "name": "@demo/diamond-refraction",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4231,6 +4421,7 @@
}
},
"demos/diamond-ring": {
+ "name": "@demo/diamond-ring",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4252,6 +4443,7 @@
}
},
"demos/drei-rendertexture": {
+ "name": "@demo/drei-rendertexture",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -4271,6 +4463,7 @@
}
},
"demos/ecctrl-fisheye": {
+ "name": "@demo/ecctrl-fisheye",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4292,6 +4485,7 @@
}
},
"demos/edgesgeometry": {
+ "name": "@demo/edgesgeometry",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4310,6 +4504,7 @@
}
},
"demos/enter-portals": {
+ "name": "@demo/enter-portals",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -4331,6 +4526,7 @@
}
},
"demos/environment-blur-and-transitions": {
+ "name": "@demo/environment-blur-and-transitions",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4351,6 +4547,7 @@
}
},
"demos/envmap-ground-projection": {
+ "name": "@demo/envmap-ground-projection",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4371,6 +4568,7 @@
}
},
"demos/faucets-select-highlight": {
+ "name": "@demo/faucets-select-highlight",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4390,6 +4588,7 @@
}
},
"demos/flexbox-yoga-in-webgl": {
+ "name": "@demo/flexbox-yoga-in-webgl",
"version": "0.1.0",
"dependencies": {
"@react-spring/web": "^9.1.1",
@@ -4410,6 +4609,7 @@
}
},
"demos/floating-diamonds": {
+ "name": "@demo/floating-diamonds",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4429,6 +4629,7 @@
}
},
"demos/floating-instanced-shoes": {
+ "name": "@demo/floating-instanced-shoes",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4448,6 +4649,7 @@
}
},
"demos/floating-laptop": {
+ "name": "@demo/floating-laptop",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.7.2",
@@ -4494,6 +4696,7 @@
}
},
"demos/flying-bananas": {
+ "name": "@demo/flying-bananas",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4541,6 +4744,7 @@
}
},
"demos/frosted-glass": {
+ "name": "@demo/frosted-glass",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4563,6 +4767,7 @@
}
},
"demos/gatsby-stars": {
+ "name": "@demo/gatsby-stars",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4584,6 +4789,7 @@
}
},
"demos/glass-flower": {
+ "name": "@demo/glass-flower",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4603,6 +4809,7 @@
}
},
"demos/gltf-animations": {
+ "name": "@demo/gltf-animations",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.6.1",
@@ -4622,6 +4829,7 @@
}
},
"demos/gltf-animations-re-used": {
+ "name": "@demo/gltf-animations-re-used",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.7.1",
@@ -4657,6 +4865,7 @@
}
},
"demos/gltf-animations-tied-to-scroll": {
+ "name": "@demo/gltf-animations-tied-to-scroll",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.7.2",
@@ -4693,6 +4902,7 @@
}
},
"demos/gltfjsx-400kb-drone": {
+ "name": "@demo/gltfjsx-400kb-drone",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4714,6 +4924,7 @@
}
},
"demos/gpgpu-curl-noise-dof": {
+ "name": "@demo/gpgpu-curl-noise-dof",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4738,6 +4949,7 @@
}
},
"demos/grass-shader": {
+ "name": "@demo/grass-shader",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4762,6 +4974,7 @@
"integrity": "sha512-eww0SFiWLyOaUKQMJ7gbdvQJvULeJdM/Y4BiC3rrOQnYHo+MSPh465/qeXSZkpTdB9/HthumpnYD3DobZweBBQ=="
},
"demos/ground-projected-envmaps-lamina": {
+ "name": "@demo/ground-projected-envmaps-lamina",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4781,6 +4994,7 @@
}
},
"demos/ground-reflections-and-video-textures": {
+ "name": "@demo/ground-reflections-and-video-textures",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4801,6 +5015,7 @@
}
},
"demos/hi-key-bubbles": {
+ "name": "@demo/hi-key-bubbles",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4820,6 +5035,7 @@
}
},
"demos/horizontal-tiles": {
+ "name": "@demo/horizontal-tiles",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4842,6 +5058,7 @@
}
},
"demos/html-annotations": {
+ "name": "@demo/html-annotations",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4860,6 +5077,7 @@
}
},
"demos/html-input-fields": {
+ "name": "@demo/html-input-fields",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4880,6 +5098,7 @@
}
},
"demos/html-markers": {
+ "name": "@demo/html-markers",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4899,6 +5118,7 @@
}
},
"demos/image-gallery": {
+ "name": "@demo/image-gallery",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4930,6 +5150,7 @@
}
},
"demos/infinite-scroll": {
+ "name": "@demo/infinite-scroll",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -4950,6 +5171,7 @@
}
},
"demos/instanced-particles-effects": {
+ "name": "@demo/instanced-particles-effects",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4968,6 +5190,7 @@
}
},
"demos/instanced-vertex-colors": {
+ "name": "@demo/instanced-vertex-colors",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -4988,6 +5211,7 @@
}
},
"demos/instances": {
+ "name": "@demo/instances",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5008,6 +5232,7 @@
}
},
"demos/inter-epoxy-resin": {
+ "name": "@demo/inter-epoxy-resin",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5029,6 +5254,7 @@
}
},
"demos/interactive-spline-scene-live-html": {
+ "name": "@demo/interactive-spline-scene-live-html",
"version": "1.0.0",
"dependencies": {
"@headlessui/react": "^1.6.5",
@@ -5051,6 +5277,7 @@
}
},
"demos/inverted-stencil-buffer": {
+ "name": "@demo/inverted-stencil-buffer",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5073,6 +5300,7 @@
}
},
"demos/iridescent-decals": {
+ "name": "@demo/iridescent-decals",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5092,6 +5320,7 @@
}
},
"demos/lamina-1x": {
+ "name": "@demo/lamina-1x",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5112,6 +5341,7 @@
}
},
"demos/landing-page": {
+ "name": "@demo/landing-page",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5132,6 +5362,7 @@
}
},
"demos/learn-with-jason": {
+ "name": "@demo/learn-with-jason",
"version": "0.1.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5150,6 +5381,7 @@
}
},
"demos/lulaby-city": {
+ "name": "@demo/lulaby-city",
"version": "0.1.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5184,6 +5416,7 @@
}
},
"demos/lusion-connectors": {
+ "name": "@demo/lusion-connectors",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5204,6 +5437,7 @@
}
},
"demos/magic-box": {
+ "name": "@demo/magic-box",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5276,6 +5510,7 @@
}
},
"demos/merged-instance": {
+ "name": "@demo/merged-instance",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5295,6 +5530,7 @@
}
},
"demos/minecraft": {
+ "name": "@demo/minecraft",
"version": "0.1.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5332,6 +5568,7 @@
}
},
"demos/mixing-controls": {
+ "name": "@demo/mixing-controls",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5352,6 +5589,7 @@
}
},
"demos/mixing-html-and-webgl": {
+ "name": "@demo/mixing-html-and-webgl",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5371,6 +5609,7 @@
}
},
"demos/mixing-html-and-webgl-w-occlusion": {
+ "name": "@demo/mixing-html-and-webgl-w-occlusion",
"version": "1.0.0",
"dependencies": {
"@headlessui/react": "^1.4.0",
@@ -5391,6 +5630,7 @@
}
},
"demos/moksha": {
+ "name": "@demo/moksha",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5410,6 +5650,7 @@
}
},
"demos/monitors": {
+ "name": "@demo/monitors",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -5433,6 +5674,7 @@
}
},
"demos/motionpathcontrols": {
+ "name": "@demo/motionpathcontrols",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5464,6 +5706,7 @@
}
},
"demos/mount-transitions": {
+ "name": "@demo/mount-transitions",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5502,6 +5745,7 @@
}
},
"demos/multiple-views-with-uniform-controls": {
+ "name": "@demo/multiple-views-with-uniform-controls",
"version": "1.0.0",
"dependencies": {
"@emotion/react": "^11.10.5",
@@ -5526,6 +5770,7 @@
}
},
"demos/nextjs-prism": {
+ "name": "@demo/nextjs-prism",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5545,6 +5790,7 @@
}
},
"demos/night-train": {
+ "name": "@demo/night-train",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5563,6 +5809,7 @@
}
},
"demos/object-clump": {
+ "name": "@demo/object-clump",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^6.5.2",
@@ -5584,6 +5831,7 @@
}
},
"demos/pairing-threejs-to-ui": {
+ "name": "@demo/pairing-threejs-to-ui",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5604,6 +5852,7 @@
}
},
"demos/pass-through-portals": {
+ "name": "@demo/pass-through-portals",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -5625,6 +5874,7 @@
}
},
"demos/physics-with-convex-polyhedrons": {
+ "name": "@demo/physics-with-convex-polyhedrons",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^6.5.0",
@@ -5673,6 +5923,7 @@
}
},
"demos/pinball-in-70-lines": {
+ "name": "@demo/pinball-in-70-lines",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^2.5.1",
@@ -5720,6 +5971,7 @@
}
},
"demos/pmndrs-vercel": {
+ "name": "@demo/pmndrs-vercel",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5741,6 +5993,7 @@
}
},
"demos/portal-shapes": {
+ "name": "@demo/portal-shapes",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5816,6 +6069,7 @@
}
},
"demos/portals": {
+ "name": "@demo/portals",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^6.5.2",
@@ -5837,6 +6091,7 @@
}
},
"demos/progressive-loading-states-with-suspense": {
+ "name": "@demo/progressive-loading-states-with-suspense",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5856,6 +6111,7 @@
}
},
"demos/racing-game": {
+ "name": "@demo/racing-game",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5881,6 +6137,7 @@
}
},
"demos/ragdoll-physics": {
+ "name": "@demo/ragdoll-physics",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^6.3.0",
@@ -5900,6 +6157,7 @@
}
},
"demos/rapier-physics": {
+ "name": "@demo/rapier-physics",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -5920,6 +6178,7 @@
}
},
"demos/rapier-ping-pong": {
+ "name": "@demo/rapier-ping-pong",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -5988,6 +6247,7 @@
}
},
"demos/raycast-cycling": {
+ "name": "@demo/raycast-cycling",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6007,6 +6267,7 @@
}
},
"demos/re-using-geometry-and-level-of-detail": {
+ "name": "@demo/re-using-geometry-and-level-of-detail",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -6026,6 +6287,7 @@
}
},
"demos/re-using-gltfs": {
+ "name": "@demo/re-using-gltfs",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6044,6 +6306,7 @@
}
},
"demos/react-ellipsecurve": {
+ "name": "@demo/react-ellipsecurve",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6064,6 +6327,7 @@
}
},
"demos/react-pp-outlines": {
+ "name": "@demo/react-pp-outlines",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6087,6 +6351,7 @@
}
},
"demos/react-spring-animations": {
+ "name": "@demo/react-spring-animations",
"version": "1.0.0",
"dependencies": {
"@react-spring/core": "^9.3.1",
@@ -6109,6 +6374,7 @@
}
},
"demos/room-with-soft-shadows": {
+ "name": "@demo/room-with-soft-shadows",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6181,6 +6447,7 @@
}
},
"demos/router-transitions": {
+ "name": "@demo/router-transitions",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -6204,6 +6471,7 @@
}
},
"demos/scrollcontrols-and-lens-refraction": {
+ "name": "@demo/scrollcontrols-and-lens-refraction",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -6234,6 +6502,7 @@
}
},
"demos/scrollcontrols-gltf": {
+ "name": "@demo/scrollcontrols-gltf",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6252,6 +6521,7 @@
}
},
"demos/scrollcontrols-with-minimap": {
+ "name": "@demo/scrollcontrols-with-minimap",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -6272,6 +6542,7 @@
}
},
"demos/selective-outlines": {
+ "name": "@demo/selective-outlines",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6292,6 +6563,7 @@
}
},
"demos/shader-fire": {
+ "name": "@demo/shader-fire",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6313,6 +6585,7 @@
}
},
"demos/shader-hmr": {
+ "name": "@demo/shader-hmr",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.5.4",
@@ -6351,6 +6624,7 @@
}
},
"demos/shadermaterials": {
+ "name": "@demo/shadermaterials",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6369,6 +6643,7 @@
}
},
"demos/shoe-configurator": {
+ "name": "@demo/shoe-configurator",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6389,6 +6664,7 @@
}
},
"demos/shopping": {
+ "name": "@demo/shopping",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6461,6 +6737,7 @@
}
},
"demos/simple-audio-analyser": {
+ "name": "@demo/simple-audio-analyser",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -6489,6 +6766,7 @@
}
},
"demos/simple-physics-demo": {
+ "name": "@demo/simple-physics-demo",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^2.5.0",
@@ -6507,6 +6785,7 @@
}
},
"demos/simple-physics-demo-with-debug-bounds": {
+ "name": "@demo/simple-physics-demo-with-debug-bounds",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^5.0.0",
@@ -6633,6 +6912,7 @@
}
},
"demos/sky-dome-with-annotations": {
+ "name": "@demo/sky-dome-with-annotations",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6652,6 +6932,7 @@
}
},
"demos/soft-shadows": {
+ "name": "@demo/soft-shadows",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6724,6 +7005,7 @@
}
},
"demos/space-game": {
+ "name": "@demo/space-game",
"version": "1.0.0",
"dependencies": {
"@react-three/fiber": "^8.16.8",
@@ -6743,6 +7025,7 @@
}
},
"demos/sparks-and-effects": {
+ "name": "@demo/sparks-and-effects",
"version": "1.0.0",
"dependencies": {
"@react-three/fiber": "^8.16.8",
@@ -6761,6 +7044,7 @@
}
},
"demos/spline-glass-shapes": {
+ "name": "@demo/spline-glass-shapes",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6782,6 +7066,7 @@
}
},
"demos/sport-hall": {
+ "name": "@demo/sport-hall",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6802,6 +7087,7 @@
}
},
"demos/springy-boxes": {
+ "name": "@demo/springy-boxes",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.7.0",
@@ -6836,6 +7122,7 @@
}
},
"demos/ssgi-spheres-with-rapier-physics": {
+ "name": "@demo/ssgi-spheres-with-rapier-physics",
"version": "1.0.0",
"dependencies": {
"@babel/runtime": "^7.24.7",
@@ -6859,6 +7146,7 @@
}
},
"demos/ssr-test": {
+ "name": "@demo/ssr-test",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6879,6 +7167,7 @@
}
},
"demos/stage-presets-gltfjsx": {
+ "name": "@demo/stage-presets-gltfjsx",
"version": "1.0.0",
"dependencies": {
"@babel/runtime": "^7.24.7",
@@ -6901,6 +7190,7 @@
}
},
"demos/staging-and-camerashake": {
+ "name": "@demo/staging-and-camerashake",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6919,6 +7209,7 @@
}
},
"demos/starwars": {
+ "name": "@demo/starwars",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6939,6 +7230,7 @@
}
},
"demos/stencil-mask": {
+ "name": "@demo/stencil-mask",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6958,6 +7250,7 @@
}
},
"demos/svg-maps-with-html-annotations": {
+ "name": "@demo/svg-maps-with-html-annotations",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -6976,6 +7269,7 @@
}
},
"demos/svg-renderer": {
+ "name": "@demo/svg-renderer",
"version": "1.0.0",
"dependencies": {
"@react-three/fiber": "^8.16.8",
@@ -6994,6 +7288,7 @@
}
},
"demos/t-shirt-configurator": {
+ "name": "@demo/t-shirt-configurator",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -7027,6 +7322,7 @@
}
},
"demos/the-three-graces": {
+ "name": "@demo/the-three-graces",
"version": "0.1.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7057,6 +7353,7 @@
}
},
"demos/threejs-journey-lv-1-fisheye": {
+ "name": "@demo/threejs-journey-lv-1-fisheye",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.7.3",
@@ -7092,6 +7389,7 @@
}
},
"demos/threejs-journey-portal": {
+ "name": "@demo/threejs-journey-portal",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7114,6 +7412,7 @@
}
},
"demos/thunder-clouds": {
+ "name": "@demo/thunder-clouds",
"version": "0.1.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -7138,6 +7437,7 @@
}
},
"demos/transformcontrols-and-makedefault": {
+ "name": "@demo/transformcontrols-and-makedefault",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7157,6 +7457,7 @@
}
},
"demos/transparent-aesop-bottles": {
+ "name": "@demo/transparent-aesop-bottles",
"version": "0.1.0",
"dependencies": {
"@react-spring/three": "^9.6.1",
@@ -7177,6 +7478,7 @@
}
},
"demos/trigger-meshes": {
+ "name": "@demo/trigger-meshes",
"version": "1.0.0",
"dependencies": {
"@react-three/cannon": "^2.1.2",
@@ -7224,6 +7526,7 @@
}
},
"demos/tying-canvas-to-scroll-offset": {
+ "name": "@demo/tying-canvas-to-scroll-offset",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7242,6 +7545,7 @@
}
},
"demos/useintersect-and-scrollcontrols": {
+ "name": "@demo/useintersect-and-scrollcontrols",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -7264,6 +7568,7 @@
}
},
"demos/video-cookies": {
+ "name": "@demo/video-cookies",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7283,6 +7588,7 @@
}
},
"demos/video-textures": {
+ "name": "@demo/video-textures",
"version": "1.0.0",
"dependencies": {
"@pmndrs/branding": "^0.0.8",
@@ -7302,6 +7608,7 @@
}
},
"demos/view-tracking": {
+ "name": "@demo/view-tracking",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7324,6 +7631,7 @@
}
},
"demos/viewcube": {
+ "name": "@demo/viewcube",
"version": "1.0.0",
"dependencies": {
"@pmndrs/assets": "^1.6.0",
@@ -7343,6 +7651,7 @@
}
},
"demos/viking-ship": {
+ "name": "@demo/viking-ship",
"version": "0.1.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7362,6 +7671,7 @@
}
},
"demos/volumetric-light-godray": {
+ "name": "@demo/volumetric-light-godray",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7381,6 +7691,7 @@
}
},
"demos/volumetric-spotlight": {
+ "name": "@demo/volumetric-spotlight",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7399,6 +7710,7 @@
}
},
"demos/water-shader": {
+ "name": "@demo/water-shader",
"version": "1.0.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7418,6 +7730,7 @@
}
},
"demos/wobbling-sphere": {
+ "name": "@demo/wobbling-sphere",
"version": "1.0.0",
"dependencies": {
"@react-spring/three": "^9.1.1",
@@ -7437,6 +7750,7 @@
}
},
"demos/zustand-site": {
+ "name": "@demo/zustand-site",
"version": "0.1.0",
"dependencies": {
"@react-three/drei": "^9.107.0",
@@ -7949,6 +8263,634 @@
"node": ">=10"
}
},
+ "node_modules/@demo/aquarium": {
+ "resolved": "demos/aquarium",
+ "link": true
+ },
+ "node_modules/@demo/arkanoid": {
+ "resolved": "demos/arkanoid",
+ "link": true
+ },
+ "node_modules/@demo/arkanoid-under-60-loc": {
+ "resolved": "demos/arkanoid-under-60-loc",
+ "link": true
+ },
+ "node_modules/@demo/audio-analyser": {
+ "resolved": "demos/audio-analyser",
+ "link": true
+ },
+ "node_modules/@demo/backdrop-and-cables": {
+ "resolved": "demos/backdrop-and-cables",
+ "link": true
+ },
+ "node_modules/@demo/baking-soft-shadows": {
+ "resolved": "demos/baking-soft-shadows",
+ "link": true
+ },
+ "node_modules/@demo/basic-ballpit": {
+ "resolved": "demos/basic-ballpit",
+ "link": true
+ },
+ "node_modules/@demo/basic-demo": {
+ "resolved": "demos/basic-demo",
+ "link": true
+ },
+ "node_modules/@demo/bestservedbold-christmas-baubles": {
+ "resolved": "demos/bestservedbold-christmas-baubles",
+ "link": true
+ },
+ "node_modules/@demo/bezier-curves-and-nodes": {
+ "resolved": "demos/bezier-curves-and-nodes",
+ "link": true
+ },
+ "node_modules/@demo/bloom-hdr-workflow-gltf": {
+ "resolved": "demos/bloom-hdr-workflow-gltf",
+ "link": true
+ },
+ "node_modules/@demo/bouncy-watch": {
+ "resolved": "demos/bouncy-watch",
+ "link": true
+ },
+ "node_modules/@demo/bounds-and-makedefault": {
+ "resolved": "demos/bounds-and-makedefault",
+ "link": true
+ },
+ "node_modules/@demo/bruno-simons-20k-challenge": {
+ "resolved": "demos/bruno-simons-20k-challenge",
+ "link": true
+ },
+ "node_modules/@demo/building-dynamic-envmaps": {
+ "resolved": "demos/building-dynamic-envmaps",
+ "link": true
+ },
+ "node_modules/@demo/building-live-envmaps": {
+ "resolved": "demos/building-live-envmaps",
+ "link": true
+ },
+ "node_modules/@demo/bvh": {
+ "resolved": "demos/bvh",
+ "link": true
+ },
+ "node_modules/@demo/camera-scroll": {
+ "resolved": "demos/camera-scroll",
+ "link": true
+ },
+ "node_modules/@demo/camera-shake": {
+ "resolved": "demos/camera-shake",
+ "link": true
+ },
+ "node_modules/@demo/canvas-text": {
+ "resolved": "demos/canvas-text",
+ "link": true
+ },
+ "node_modules/@demo/cards": {
+ "resolved": "demos/cards",
+ "link": true
+ },
+ "node_modules/@demo/cards-with-border-radius": {
+ "resolved": "demos/cards-with-border-radius",
+ "link": true
+ },
+ "node_modules/@demo/caustics": {
+ "resolved": "demos/caustics",
+ "link": true
+ },
+ "node_modules/@demo/cell-fracture": {
+ "resolved": "demos/cell-fracture",
+ "link": true
+ },
+ "node_modules/@demo/clones": {
+ "resolved": "demos/clones",
+ "link": true
+ },
+ "node_modules/@demo/clouds": {
+ "resolved": "demos/clouds",
+ "link": true
+ },
+ "node_modules/@demo/color-grading": {
+ "resolved": "demos/color-grading",
+ "link": true
+ },
+ "node_modules/@demo/confetti": {
+ "resolved": "demos/confetti",
+ "link": true
+ },
+ "node_modules/@demo/csg-bunny-usegroups": {
+ "resolved": "demos/csg-bunny-usegroups",
+ "link": true
+ },
+ "node_modules/@demo/csg-house": {
+ "resolved": "demos/csg-house",
+ "link": true
+ },
+ "node_modules/@demo/csg-operations-rapier-physics": {
+ "resolved": "demos/csg-operations-rapier-physics",
+ "link": true
+ },
+ "node_modules/@demo/dbismut-furniture": {
+ "resolved": "demos/dbismut-furniture",
+ "link": true
+ },
+ "node_modules/@demo/diamond-refraction": {
+ "resolved": "demos/diamond-refraction",
+ "link": true
+ },
+ "node_modules/@demo/diamond-ring": {
+ "resolved": "demos/diamond-ring",
+ "link": true
+ },
+ "node_modules/@demo/drei-rendertexture": {
+ "resolved": "demos/drei-rendertexture",
+ "link": true
+ },
+ "node_modules/@demo/ecctrl-fisheye": {
+ "resolved": "demos/ecctrl-fisheye",
+ "link": true
+ },
+ "node_modules/@demo/edgesgeometry": {
+ "resolved": "demos/edgesgeometry",
+ "link": true
+ },
+ "node_modules/@demo/enter-portals": {
+ "resolved": "demos/enter-portals",
+ "link": true
+ },
+ "node_modules/@demo/environment-blur-and-transitions": {
+ "resolved": "demos/environment-blur-and-transitions",
+ "link": true
+ },
+ "node_modules/@demo/envmap-ground-projection": {
+ "resolved": "demos/envmap-ground-projection",
+ "link": true
+ },
+ "node_modules/@demo/faucets-select-highlight": {
+ "resolved": "demos/faucets-select-highlight",
+ "link": true
+ },
+ "node_modules/@demo/flexbox-yoga-in-webgl": {
+ "resolved": "demos/flexbox-yoga-in-webgl",
+ "link": true
+ },
+ "node_modules/@demo/floating-diamonds": {
+ "resolved": "demos/floating-diamonds",
+ "link": true
+ },
+ "node_modules/@demo/floating-instanced-shoes": {
+ "resolved": "demos/floating-instanced-shoes",
+ "link": true
+ },
+ "node_modules/@demo/floating-laptop": {
+ "resolved": "demos/floating-laptop",
+ "link": true
+ },
+ "node_modules/@demo/flying-bananas": {
+ "resolved": "demos/flying-bananas",
+ "link": true
+ },
+ "node_modules/@demo/frosted-glass": {
+ "resolved": "demos/frosted-glass",
+ "link": true
+ },
+ "node_modules/@demo/gatsby-stars": {
+ "resolved": "demos/gatsby-stars",
+ "link": true
+ },
+ "node_modules/@demo/glass-flower": {
+ "resolved": "demos/glass-flower",
+ "link": true
+ },
+ "node_modules/@demo/gltf-animations": {
+ "resolved": "demos/gltf-animations",
+ "link": true
+ },
+ "node_modules/@demo/gltf-animations-re-used": {
+ "resolved": "demos/gltf-animations-re-used",
+ "link": true
+ },
+ "node_modules/@demo/gltf-animations-tied-to-scroll": {
+ "resolved": "demos/gltf-animations-tied-to-scroll",
+ "link": true
+ },
+ "node_modules/@demo/gltfjsx-400kb-drone": {
+ "resolved": "demos/gltfjsx-400kb-drone",
+ "link": true
+ },
+ "node_modules/@demo/gpgpu-curl-noise-dof": {
+ "resolved": "demos/gpgpu-curl-noise-dof",
+ "link": true
+ },
+ "node_modules/@demo/grass-shader": {
+ "resolved": "demos/grass-shader",
+ "link": true
+ },
+ "node_modules/@demo/ground-projected-envmaps-lamina": {
+ "resolved": "demos/ground-projected-envmaps-lamina",
+ "link": true
+ },
+ "node_modules/@demo/ground-reflections-and-video-textures": {
+ "resolved": "demos/ground-reflections-and-video-textures",
+ "link": true
+ },
+ "node_modules/@demo/hi-key-bubbles": {
+ "resolved": "demos/hi-key-bubbles",
+ "link": true
+ },
+ "node_modules/@demo/horizontal-tiles": {
+ "resolved": "demos/horizontal-tiles",
+ "link": true
+ },
+ "node_modules/@demo/html-annotations": {
+ "resolved": "demos/html-annotations",
+ "link": true
+ },
+ "node_modules/@demo/html-input-fields": {
+ "resolved": "demos/html-input-fields",
+ "link": true
+ },
+ "node_modules/@demo/html-markers": {
+ "resolved": "demos/html-markers",
+ "link": true
+ },
+ "node_modules/@demo/image-gallery": {
+ "resolved": "demos/image-gallery",
+ "link": true
+ },
+ "node_modules/@demo/infinite-scroll": {
+ "resolved": "demos/infinite-scroll",
+ "link": true
+ },
+ "node_modules/@demo/instanced-particles-effects": {
+ "resolved": "demos/instanced-particles-effects",
+ "link": true
+ },
+ "node_modules/@demo/instanced-vertex-colors": {
+ "resolved": "demos/instanced-vertex-colors",
+ "link": true
+ },
+ "node_modules/@demo/instances": {
+ "resolved": "demos/instances",
+ "link": true
+ },
+ "node_modules/@demo/inter-epoxy-resin": {
+ "resolved": "demos/inter-epoxy-resin",
+ "link": true
+ },
+ "node_modules/@demo/interactive-spline-scene-live-html": {
+ "resolved": "demos/interactive-spline-scene-live-html",
+ "link": true
+ },
+ "node_modules/@demo/inverted-stencil-buffer": {
+ "resolved": "demos/inverted-stencil-buffer",
+ "link": true
+ },
+ "node_modules/@demo/iridescent-decals": {
+ "resolved": "demos/iridescent-decals",
+ "link": true
+ },
+ "node_modules/@demo/lamina-1x": {
+ "resolved": "demos/lamina-1x",
+ "link": true
+ },
+ "node_modules/@demo/landing-page": {
+ "resolved": "demos/landing-page",
+ "link": true
+ },
+ "node_modules/@demo/learn-with-jason": {
+ "resolved": "demos/learn-with-jason",
+ "link": true
+ },
+ "node_modules/@demo/lulaby-city": {
+ "resolved": "demos/lulaby-city",
+ "link": true
+ },
+ "node_modules/@demo/lusion-connectors": {
+ "resolved": "demos/lusion-connectors",
+ "link": true
+ },
+ "node_modules/@demo/magic-box": {
+ "resolved": "demos/magic-box",
+ "link": true
+ },
+ "node_modules/@demo/merged-instance": {
+ "resolved": "demos/merged-instance",
+ "link": true
+ },
+ "node_modules/@demo/minecraft": {
+ "resolved": "demos/minecraft",
+ "link": true
+ },
+ "node_modules/@demo/mixing-controls": {
+ "resolved": "demos/mixing-controls",
+ "link": true
+ },
+ "node_modules/@demo/mixing-html-and-webgl": {
+ "resolved": "demos/mixing-html-and-webgl",
+ "link": true
+ },
+ "node_modules/@demo/mixing-html-and-webgl-w-occlusion": {
+ "resolved": "demos/mixing-html-and-webgl-w-occlusion",
+ "link": true
+ },
+ "node_modules/@demo/moksha": {
+ "resolved": "demos/moksha",
+ "link": true
+ },
+ "node_modules/@demo/monitors": {
+ "resolved": "demos/monitors",
+ "link": true
+ },
+ "node_modules/@demo/motionpathcontrols": {
+ "resolved": "demos/motionpathcontrols",
+ "link": true
+ },
+ "node_modules/@demo/mount-transitions": {
+ "resolved": "demos/mount-transitions",
+ "link": true
+ },
+ "node_modules/@demo/multiple-views-with-uniform-controls": {
+ "resolved": "demos/multiple-views-with-uniform-controls",
+ "link": true
+ },
+ "node_modules/@demo/nextjs-prism": {
+ "resolved": "demos/nextjs-prism",
+ "link": true
+ },
+ "node_modules/@demo/night-train": {
+ "resolved": "demos/night-train",
+ "link": true
+ },
+ "node_modules/@demo/object-clump": {
+ "resolved": "demos/object-clump",
+ "link": true
+ },
+ "node_modules/@demo/pairing-threejs-to-ui": {
+ "resolved": "demos/pairing-threejs-to-ui",
+ "link": true
+ },
+ "node_modules/@demo/pass-through-portals": {
+ "resolved": "demos/pass-through-portals",
+ "link": true
+ },
+ "node_modules/@demo/physics-with-convex-polyhedrons": {
+ "resolved": "demos/physics-with-convex-polyhedrons",
+ "link": true
+ },
+ "node_modules/@demo/pinball-in-70-lines": {
+ "resolved": "demos/pinball-in-70-lines",
+ "link": true
+ },
+ "node_modules/@demo/pmndrs-vercel": {
+ "resolved": "demos/pmndrs-vercel",
+ "link": true
+ },
+ "node_modules/@demo/portal-shapes": {
+ "resolved": "demos/portal-shapes",
+ "link": true
+ },
+ "node_modules/@demo/portals": {
+ "resolved": "demos/portals",
+ "link": true
+ },
+ "node_modules/@demo/progressive-loading-states-with-suspense": {
+ "resolved": "demos/progressive-loading-states-with-suspense",
+ "link": true
+ },
+ "node_modules/@demo/racing-game": {
+ "resolved": "demos/racing-game",
+ "link": true
+ },
+ "node_modules/@demo/ragdoll-physics": {
+ "resolved": "demos/ragdoll-physics",
+ "link": true
+ },
+ "node_modules/@demo/rapier-physics": {
+ "resolved": "demos/rapier-physics",
+ "link": true
+ },
+ "node_modules/@demo/rapier-ping-pong": {
+ "resolved": "demos/rapier-ping-pong",
+ "link": true
+ },
+ "node_modules/@demo/raycast-cycling": {
+ "resolved": "demos/raycast-cycling",
+ "link": true
+ },
+ "node_modules/@demo/re-using-geometry-and-level-of-detail": {
+ "resolved": "demos/re-using-geometry-and-level-of-detail",
+ "link": true
+ },
+ "node_modules/@demo/re-using-gltfs": {
+ "resolved": "demos/re-using-gltfs",
+ "link": true
+ },
+ "node_modules/@demo/react-ellipsecurve": {
+ "resolved": "demos/react-ellipsecurve",
+ "link": true
+ },
+ "node_modules/@demo/react-pp-outlines": {
+ "resolved": "demos/react-pp-outlines",
+ "link": true
+ },
+ "node_modules/@demo/react-spring-animations": {
+ "resolved": "demos/react-spring-animations",
+ "link": true
+ },
+ "node_modules/@demo/room-with-soft-shadows": {
+ "resolved": "demos/room-with-soft-shadows",
+ "link": true
+ },
+ "node_modules/@demo/router-transitions": {
+ "resolved": "demos/router-transitions",
+ "link": true
+ },
+ "node_modules/@demo/scrollcontrols-and-lens-refraction": {
+ "resolved": "demos/scrollcontrols-and-lens-refraction",
+ "link": true
+ },
+ "node_modules/@demo/scrollcontrols-gltf": {
+ "resolved": "demos/scrollcontrols-gltf",
+ "link": true
+ },
+ "node_modules/@demo/scrollcontrols-with-minimap": {
+ "resolved": "demos/scrollcontrols-with-minimap",
+ "link": true
+ },
+ "node_modules/@demo/selective-outlines": {
+ "resolved": "demos/selective-outlines",
+ "link": true
+ },
+ "node_modules/@demo/shader-fire": {
+ "resolved": "demos/shader-fire",
+ "link": true
+ },
+ "node_modules/@demo/shader-hmr": {
+ "resolved": "demos/shader-hmr",
+ "link": true
+ },
+ "node_modules/@demo/shadermaterials": {
+ "resolved": "demos/shadermaterials",
+ "link": true
+ },
+ "node_modules/@demo/shoe-configurator": {
+ "resolved": "demos/shoe-configurator",
+ "link": true
+ },
+ "node_modules/@demo/shopping": {
+ "resolved": "demos/shopping",
+ "link": true
+ },
+ "node_modules/@demo/simple-audio-analyser": {
+ "resolved": "demos/simple-audio-analyser",
+ "link": true
+ },
+ "node_modules/@demo/simple-physics-demo": {
+ "resolved": "demos/simple-physics-demo",
+ "link": true
+ },
+ "node_modules/@demo/simple-physics-demo-with-debug-bounds": {
+ "resolved": "demos/simple-physics-demo-with-debug-bounds",
+ "link": true
+ },
+ "node_modules/@demo/sky-dome-with-annotations": {
+ "resolved": "demos/sky-dome-with-annotations",
+ "link": true
+ },
+ "node_modules/@demo/soft-shadows": {
+ "resolved": "demos/soft-shadows",
+ "link": true
+ },
+ "node_modules/@demo/space-game": {
+ "resolved": "demos/space-game",
+ "link": true
+ },
+ "node_modules/@demo/sparks-and-effects": {
+ "resolved": "demos/sparks-and-effects",
+ "link": true
+ },
+ "node_modules/@demo/spline-glass-shapes": {
+ "resolved": "demos/spline-glass-shapes",
+ "link": true
+ },
+ "node_modules/@demo/sport-hall": {
+ "resolved": "demos/sport-hall",
+ "link": true
+ },
+ "node_modules/@demo/springy-boxes": {
+ "resolved": "demos/springy-boxes",
+ "link": true
+ },
+ "node_modules/@demo/ssgi-spheres-with-rapier-physics": {
+ "resolved": "demos/ssgi-spheres-with-rapier-physics",
+ "link": true
+ },
+ "node_modules/@demo/ssr-test": {
+ "resolved": "demos/ssr-test",
+ "link": true
+ },
+ "node_modules/@demo/stage-presets-gltfjsx": {
+ "resolved": "demos/stage-presets-gltfjsx",
+ "link": true
+ },
+ "node_modules/@demo/staging-and-camerashake": {
+ "resolved": "demos/staging-and-camerashake",
+ "link": true
+ },
+ "node_modules/@demo/starwars": {
+ "resolved": "demos/starwars",
+ "link": true
+ },
+ "node_modules/@demo/stencil-mask": {
+ "resolved": "demos/stencil-mask",
+ "link": true
+ },
+ "node_modules/@demo/svg-maps-with-html-annotations": {
+ "resolved": "demos/svg-maps-with-html-annotations",
+ "link": true
+ },
+ "node_modules/@demo/svg-renderer": {
+ "resolved": "demos/svg-renderer",
+ "link": true
+ },
+ "node_modules/@demo/t-shirt-configurator": {
+ "resolved": "demos/t-shirt-configurator",
+ "link": true
+ },
+ "node_modules/@demo/the-three-graces": {
+ "resolved": "demos/the-three-graces",
+ "link": true
+ },
+ "node_modules/@demo/threejs-journey-lv-1-fisheye": {
+ "resolved": "demos/threejs-journey-lv-1-fisheye",
+ "link": true
+ },
+ "node_modules/@demo/threejs-journey-portal": {
+ "resolved": "demos/threejs-journey-portal",
+ "link": true
+ },
+ "node_modules/@demo/thunder-clouds": {
+ "resolved": "demos/thunder-clouds",
+ "link": true
+ },
+ "node_modules/@demo/transformcontrols-and-makedefault": {
+ "resolved": "demos/transformcontrols-and-makedefault",
+ "link": true
+ },
+ "node_modules/@demo/transparent-aesop-bottles": {
+ "resolved": "demos/transparent-aesop-bottles",
+ "link": true
+ },
+ "node_modules/@demo/trigger-meshes": {
+ "resolved": "demos/trigger-meshes",
+ "link": true
+ },
+ "node_modules/@demo/tying-canvas-to-scroll-offset": {
+ "resolved": "demos/tying-canvas-to-scroll-offset",
+ "link": true
+ },
+ "node_modules/@demo/useintersect-and-scrollcontrols": {
+ "resolved": "demos/useintersect-and-scrollcontrols",
+ "link": true
+ },
+ "node_modules/@demo/video-cookies": {
+ "resolved": "demos/video-cookies",
+ "link": true
+ },
+ "node_modules/@demo/video-textures": {
+ "resolved": "demos/video-textures",
+ "link": true
+ },
+ "node_modules/@demo/view-tracking": {
+ "resolved": "demos/view-tracking",
+ "link": true
+ },
+ "node_modules/@demo/viewcube": {
+ "resolved": "demos/viewcube",
+ "link": true
+ },
+ "node_modules/@demo/viking-ship": {
+ "resolved": "demos/viking-ship",
+ "link": true
+ },
+ "node_modules/@demo/volumetric-light-godray": {
+ "resolved": "demos/volumetric-light-godray",
+ "link": true
+ },
+ "node_modules/@demo/volumetric-spotlight": {
+ "resolved": "demos/volumetric-spotlight",
+ "link": true
+ },
+ "node_modules/@demo/water-shader": {
+ "resolved": "demos/water-shader",
+ "link": true
+ },
+ "node_modules/@demo/wobbling-sphere": {
+ "resolved": "demos/wobbling-sphere",
+ "link": true
+ },
+ "node_modules/@demo/zustand-site": {
+ "resolved": "demos/zustand-site",
+ "link": true
+ },
"node_modules/@dimforge/rapier3d-compat": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.9.0.tgz",
@@ -11130,10 +12072,6 @@
"node": ">= 8"
}
},
- "node_modules/aquarium": {
- "resolved": "demos/aquarium",
- "link": true
- },
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
@@ -11169,14 +12107,6 @@
"deep-equal": "^2.0.5"
}
},
- "node_modules/arkanoid": {
- "resolved": "demos/arkanoid",
- "link": true
- },
- "node_modules/arkanoid-under-60-loc": {
- "resolved": "demos/arkanoid-under-60-loc",
- "link": true
- },
"node_modules/array-buffer-byte-length": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
@@ -11374,10 +12304,6 @@
"node": ">=4"
}
},
- "node_modules/audio-analyser": {
- "resolved": "demos/audio-analyser",
- "link": true
- },
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@@ -11485,14 +12411,6 @@
"styled-components": ">= 2"
}
},
- "node_modules/backdrop-and-cables": {
- "resolved": "demos/backdrop-and-cables",
- "link": true
- },
- "node_modules/baking-soft-shadows": {
- "resolved": "demos/baking-soft-shadows",
- "link": true
- },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -11518,22 +12436,6 @@
}
]
},
- "node_modules/basic-ballpit": {
- "resolved": "demos/basic-ballpit",
- "link": true
- },
- "node_modules/basic-demo": {
- "resolved": "demos/basic-demo",
- "link": true
- },
- "node_modules/bestservedbold-christmas-baubles": {
- "resolved": "demos/bestservedbold-christmas-baubles",
- "link": true
- },
- "node_modules/bezier-curves-and-nodes": {
- "resolved": "demos/bezier-curves-and-nodes",
- "link": true
- },
"node_modules/bidi-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
@@ -11554,18 +12456,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/bloom-hdr-workflow-gltf": {
- "resolved": "demos/bloom-hdr-workflow-gltf",
- "link": true
- },
- "node_modules/bouncy-watch": {
- "resolved": "demos/bouncy-watch",
- "link": true
- },
- "node_modules/bounds-and-makedefault": {
- "resolved": "demos/bounds-and-makedefault",
- "link": true
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -11619,10 +12509,6 @@
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/bruno-simons-20k-challenge": {
- "resolved": "demos/bruno-simons-20k-challenge",
- "link": true
- },
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
@@ -11646,14 +12532,6 @@
"ieee754": "^1.2.1"
}
},
- "node_modules/building-dynamic-envmaps": {
- "resolved": "demos/building-dynamic-envmaps",
- "link": true
- },
- "node_modules/building-live-envmaps": {
- "resolved": "demos/building-live-envmaps",
- "link": true
- },
"node_modules/busboy": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
@@ -11665,10 +12543,6 @@
"node": ">=10.16.0"
}
},
- "node_modules/bvh": {
- "resolved": "demos/bvh",
- "link": true
- },
"node_modules/cacheable-request": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
@@ -11779,14 +12653,6 @@
"three": ">=0.126.1"
}
},
- "node_modules/camera-scroll": {
- "resolved": "demos/camera-scroll",
- "link": true
- },
- "node_modules/camera-shake": {
- "resolved": "demos/camera-shake",
- "link": true
- },
"node_modules/caniuse-lite": {
"version": "1.0.30001640",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz",
@@ -11826,26 +12692,6 @@
}
}
},
- "node_modules/canvas-text": {
- "resolved": "demos/canvas-text",
- "link": true
- },
- "node_modules/cards": {
- "resolved": "demos/cards",
- "link": true
- },
- "node_modules/cards-with-border-radius": {
- "resolved": "demos/cards-with-border-radius",
- "link": true
- },
- "node_modules/caustics": {
- "resolved": "demos/caustics",
- "link": true
- },
- "node_modules/cell-fracture": {
- "resolved": "demos/cell-fracture",
- "link": true
- },
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -11957,14 +12803,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/clones": {
- "resolved": "demos/clones",
- "link": true
- },
- "node_modules/clouds": {
- "resolved": "demos/clouds",
- "link": true
- },
"node_modules/clsx": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
@@ -11990,10 +12828,6 @@
"color-name": "1.1.3"
}
},
- "node_modules/color-grading": {
- "resolved": "demos/color-grading",
- "link": true
- },
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
@@ -12026,10 +12860,6 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "node_modules/confetti": {
- "resolved": "demos/confetti",
- "link": true
- },
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -12093,18 +12923,6 @@
"node": ">= 8"
}
},
- "node_modules/csg-bunny-usegroups": {
- "resolved": "demos/csg-bunny-usegroups",
- "link": true
- },
- "node_modules/csg-house": {
- "resolved": "demos/csg-house",
- "link": true
- },
- "node_modules/csg-operations-rapier-physics": {
- "resolved": "demos/csg-operations-rapier-physics",
- "link": true
- },
"node_modules/css-color-keywords": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz",
@@ -12236,10 +13054,6 @@
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz",
"integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg=="
},
- "node_modules/dbismut-furniture": {
- "resolved": "demos/dbismut-furniture",
- "link": true
- },
"node_modules/debounce": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
@@ -12404,14 +13218,6 @@
"webgl-constants": "^1.1.1"
}
},
- "node_modules/diamond-refraction": {
- "resolved": "demos/diamond-refraction",
- "link": true
- },
- "node_modules/diamond-ring": {
- "resolved": "demos/diamond-ring",
- "link": true
- },
"node_modules/didyoumean": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
@@ -12453,10 +13259,6 @@
"resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz",
"integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ=="
},
- "node_modules/drei-rendertexture": {
- "resolved": "demos/drei-rendertexture",
- "link": true
- },
"node_modules/duplexer3": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
@@ -12486,10 +13288,6 @@
"three": ">=0.153"
}
},
- "node_modules/ecctrl-fisheye": {
- "resolved": "demos/ecctrl-fisheye",
- "link": true
- },
"node_modules/ecctrl/node_modules/@react-spring/three": {
"version": "9.7.3",
"resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.7.3.tgz",
@@ -12533,10 +13331,6 @@
}
}
},
- "node_modules/edgesgeometry": {
- "resolved": "demos/edgesgeometry",
- "link": true
- },
"node_modules/electron-to-chromium": {
"version": "1.4.816",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz",
@@ -12578,18 +13372,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/enter-portals": {
- "resolved": "demos/enter-portals",
- "link": true
- },
- "node_modules/environment-blur-and-transitions": {
- "resolved": "demos/environment-blur-and-transitions",
- "link": true
- },
- "node_modules/envmap-ground-projection": {
- "resolved": "demos/envmap-ground-projection",
- "link": true
- },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -13502,10 +14284,6 @@
"reusify": "^1.0.4"
}
},
- "node_modules/faucets-select-highlight": {
- "resolved": "demos/faucets-select-highlight",
- "link": true
- },
"node_modules/fflate": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
@@ -13630,26 +14408,6 @@
"integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
- "node_modules/flexbox-yoga-in-webgl": {
- "resolved": "demos/flexbox-yoga-in-webgl",
- "link": true
- },
- "node_modules/floating-diamonds": {
- "resolved": "demos/floating-diamonds",
- "link": true
- },
- "node_modules/floating-instanced-shoes": {
- "resolved": "demos/floating-instanced-shoes",
- "link": true
- },
- "node_modules/floating-laptop": {
- "resolved": "demos/floating-laptop",
- "link": true
- },
- "node_modules/flying-bananas": {
- "resolved": "demos/flying-bananas",
- "link": true
- },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -13733,10 +14491,6 @@
"integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
"optional": true
},
- "node_modules/frosted-glass": {
- "resolved": "demos/frosted-glass",
- "link": true
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -13792,10 +14546,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/gatsby-stars": {
- "resolved": "demos/gatsby-stars",
- "link": true
- },
"node_modules/gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
@@ -13880,10 +14630,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/glass-flower": {
- "resolved": "demos/glass-flower",
- "link": true
- },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -14101,22 +14847,6 @@
"resolve": "^1.0.0"
}
},
- "node_modules/gltf-animations": {
- "resolved": "demos/gltf-animations",
- "link": true
- },
- "node_modules/gltf-animations-re-used": {
- "resolved": "demos/gltf-animations-re-used",
- "link": true
- },
- "node_modules/gltf-animations-tied-to-scroll": {
- "resolved": "demos/gltf-animations-tied-to-scroll",
- "link": true
- },
- "node_modules/gltfjsx-400kb-drone": {
- "resolved": "demos/gltfjsx-400kb-drone",
- "link": true
- },
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -14161,10 +14891,6 @@
"node": ">=6"
}
},
- "node_modules/gpgpu-curl-noise-dof": {
- "resolved": "demos/gpgpu-curl-noise-dof",
- "link": true
- },
"node_modules/graceful-fs": {
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
@@ -14176,18 +14902,6 @@
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
- "node_modules/grass-shader": {
- "resolved": "demos/grass-shader",
- "link": true
- },
- "node_modules/ground-projected-envmaps-lamina": {
- "resolved": "demos/ground-projected-envmaps-lamina",
- "link": true
- },
- "node_modules/ground-reflections-and-video-textures": {
- "resolved": "demos/ground-reflections-and-video-textures",
- "link": true
- },
"node_modules/has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
@@ -14279,10 +14993,6 @@
"node": ">= 0.4"
}
},
- "node_modules/hi-key-bubbles": {
- "resolved": "demos/hi-key-bubbles",
- "link": true
- },
"node_modules/hls.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.3.5.tgz",
@@ -14301,22 +15011,6 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
- "node_modules/horizontal-tiles": {
- "resolved": "demos/horizontal-tiles",
- "link": true
- },
- "node_modules/html-annotations": {
- "resolved": "demos/html-annotations",
- "link": true
- },
- "node_modules/html-input-fields": {
- "resolved": "demos/html-input-fields",
- "link": true
- },
- "node_modules/html-markers": {
- "resolved": "demos/html-markers",
- "link": true
- },
"node_modules/http-cache-semantics": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
@@ -14455,10 +15149,6 @@
"node": ">= 4"
}
},
- "node_modules/image-gallery": {
- "resolved": "demos/image-gallery",
- "link": true
- },
"node_modules/immediate": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
@@ -14497,10 +15187,6 @@
"node": ">=4"
}
},
- "node_modules/infinite-scroll": {
- "resolved": "demos/infinite-scroll",
- "link": true
- },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -14525,31 +15211,11 @@
"css-in-js-utils": "^3.1.0"
}
},
- "node_modules/instanced-particles-effects": {
- "resolved": "demos/instanced-particles-effects",
- "link": true
- },
- "node_modules/instanced-vertex-colors": {
- "resolved": "demos/instanced-vertex-colors",
- "link": true
- },
- "node_modules/instances": {
- "resolved": "demos/instances",
- "link": true
- },
- "node_modules/inter-epoxy-resin": {
- "resolved": "demos/inter-epoxy-resin",
- "link": true
- },
"node_modules/inter-ui": {
"version": "3.19.3",
"resolved": "https://registry.npmjs.org/inter-ui/-/inter-ui-3.19.3.tgz",
"integrity": "sha512-5FG9fjuYOXocIfjzcCBhICL5cpvwEetseL3FU6tP3d6Bn7g8wODhB+I9RNGRTizCT7CUG4GOK54OPxqq3msQgg=="
},
- "node_modules/interactive-spline-scene-live-html": {
- "resolved": "demos/interactive-spline-scene-live-html",
- "link": true
- },
"node_modules/internal-slot": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
@@ -14564,14 +15230,6 @@
"node": ">= 0.4"
}
},
- "node_modules/inverted-stencil-buffer": {
- "resolved": "demos/inverted-stencil-buffer",
- "link": true
- },
- "node_modules/iridescent-decals": {
- "resolved": "demos/iridescent-decals",
- "link": true
- },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -15274,18 +15932,10 @@
"react": {
"optional": true
},
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/lamina-1x": {
- "resolved": "demos/lamina-1x",
- "link": true
- },
- "node_modules/landing-page": {
- "resolved": "demos/landing-page",
- "link": true
+ "react-dom": {
+ "optional": true
+ }
+ }
},
"node_modules/language-subtag-registry": {
"version": "0.3.23",
@@ -15305,10 +15955,6 @@
"node": ">=0.10"
}
},
- "node_modules/learn-with-jason": {
- "resolved": "demos/learn-with-jason",
- "link": true
- },
"node_modules/lerp": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz",
@@ -15672,14 +16318,6 @@
"yallist": "^3.0.2"
}
},
- "node_modules/lulaby-city": {
- "resolved": "demos/lulaby-city",
- "link": true
- },
- "node_modules/lusion-connectors": {
- "resolved": "demos/lusion-connectors",
- "link": true
- },
"node_modules/maath": {
"version": "0.10.7",
"resolved": "https://registry.npmjs.org/maath/-/maath-0.10.7.tgz",
@@ -15689,10 +16327,6 @@
"three": ">=0.144.0"
}
},
- "node_modules/magic-box": {
- "resolved": "demos/magic-box",
- "link": true
- },
"node_modules/map-limit": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
@@ -15743,10 +16377,6 @@
"node": ">= 8"
}
},
- "node_modules/merged-instance": {
- "resolved": "demos/merged-instance",
- "link": true
- },
"node_modules/meshline": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/meshline/-/meshline-3.3.1.tgz",
@@ -15790,10 +16420,6 @@
"node": ">=4"
}
},
- "node_modules/minecraft": {
- "resolved": "demos/minecraft",
- "link": true
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -15835,48 +16461,16 @@
"node": ">=0.10.0"
}
},
- "node_modules/mixing-controls": {
- "resolved": "demos/mixing-controls",
- "link": true
- },
- "node_modules/mixing-html-and-webgl": {
- "resolved": "demos/mixing-html-and-webgl",
- "link": true
- },
- "node_modules/mixing-html-and-webgl-w-occlusion": {
- "resolved": "demos/mixing-html-and-webgl-w-occlusion",
- "link": true
- },
"node_modules/mmd-parser": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/mmd-parser/-/mmd-parser-1.0.4.tgz",
"integrity": "sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg=="
},
- "node_modules/moksha": {
- "resolved": "demos/moksha",
- "link": true
- },
- "node_modules/monitors": {
- "resolved": "demos/monitors",
- "link": true
- },
- "node_modules/motionpathcontrols": {
- "resolved": "demos/motionpathcontrols",
- "link": true
- },
- "node_modules/mount-transitions": {
- "resolved": "demos/mount-transitions",
- "link": true
- },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
- "node_modules/multiple-views-with-uniform-controls": {
- "resolved": "demos/multiple-views-with-uniform-controls",
- "link": true
- },
"node_modules/murmurhash-js": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
@@ -16025,10 +16619,6 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/nextjs-prism": {
- "resolved": "demos/nextjs-prism",
- "link": true
- },
"node_modules/nice-color-palettes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/nice-color-palettes/-/nice-color-palettes-3.0.0.tgz",
@@ -16043,10 +16633,6 @@
"nice-color-palettes": "bin/index.js"
}
},
- "node_modules/night-train": {
- "resolved": "demos/night-train",
- "link": true
- },
"node_modules/node-releases": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
@@ -16098,10 +16684,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/object-clump": {
- "resolved": "demos/object-clump",
- "link": true
- },
"node_modules/object-hash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
@@ -16357,10 +16939,6 @@
"integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
"dev": true
},
- "node_modules/pairing-threejs-to-ui": {
- "resolved": "demos/pairing-threejs-to-ui",
- "link": true
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -16389,10 +16967,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/pass-through-portals": {
- "resolved": "demos/pass-through-portals",
- "link": true
- },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -16454,10 +17028,6 @@
"node": ">=8"
}
},
- "node_modules/physics-with-convex-polyhedrons": {
- "resolved": "demos/physics-with-convex-polyhedrons",
- "link": true
- },
"node_modules/picocolors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
@@ -16483,10 +17053,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/pinball-in-70-lines": {
- "resolved": "demos/pinball-in-70-lines",
- "link": true
- },
"node_modules/pirates": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
@@ -16561,18 +17127,6 @@
"semver-compare": "^1.0.0"
}
},
- "node_modules/pmndrs-vercel": {
- "resolved": "demos/pmndrs-vercel",
- "link": true
- },
- "node_modules/portal-shapes": {
- "resolved": "demos/portal-shapes",
- "link": true
- },
- "node_modules/portals": {
- "resolved": "demos/portals",
- "link": true
- },
"node_modules/possible-typed-array-names": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
@@ -16795,10 +17349,6 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/progressive-loading-states-with-suspense": {
- "resolved": "demos/progressive-loading-states-with-suspense",
- "link": true
- },
"node_modules/promise-worker-transferable": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz",
@@ -16922,14 +17472,6 @@
}
}
},
- "node_modules/racing-game": {
- "resolved": "demos/racing-game",
- "link": true
- },
- "node_modules/ragdoll-physics": {
- "resolved": "demos/ragdoll-physics",
- "link": true
- },
"node_modules/random-words": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/random-words/-/random-words-2.0.1.tgz",
@@ -16938,18 +17480,6 @@
"seedrandom": "^3.0.5"
}
},
- "node_modules/rapier-physics": {
- "resolved": "demos/rapier-physics",
- "link": true
- },
- "node_modules/rapier-ping-pong": {
- "resolved": "demos/rapier-ping-pong",
- "link": true
- },
- "node_modules/raycast-cycling": {
- "resolved": "demos/raycast-cycling",
- "link": true
- },
"node_modules/rc-cascader": {
"version": "3.27.0",
"resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.27.0.tgz",
@@ -17484,14 +18014,6 @@
"react-dom": ">=16.9.0"
}
},
- "node_modules/re-using-geometry-and-level-of-detail": {
- "resolved": "demos/re-using-geometry-and-level-of-detail",
- "link": true
- },
- "node_modules/re-using-gltfs": {
- "resolved": "demos/re-using-gltfs",
- "link": true
- },
"node_modules/react": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
@@ -17559,10 +18081,6 @@
"react": ">= 16.8"
}
},
- "node_modules/react-ellipsecurve": {
- "resolved": "demos/react-ellipsecurve",
- "link": true
- },
"node_modules/react-icons": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz",
@@ -17585,10 +18103,6 @@
"url": "https://github.com/sponsors/gregberge"
}
},
- "node_modules/react-pp-outlines": {
- "resolved": "demos/react-pp-outlines",
- "link": true
- },
"node_modules/react-reconciler": {
"version": "0.27.0",
"resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz",
@@ -17613,10 +18127,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/react-spring-animations": {
- "resolved": "demos/react-spring-animations",
- "link": true
- },
"node_modules/react-textarea-autosize": {
"version": "8.3.4",
"resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz",
@@ -17962,14 +18472,6 @@
"fsevents": "~2.3.2"
}
},
- "node_modules/room-with-soft-shadows": {
- "resolved": "demos/room-with-soft-shadows",
- "link": true
- },
- "node_modules/router-transitions": {
- "resolved": "demos/router-transitions",
- "link": true
- },
"node_modules/rtl-css-js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz",
@@ -18087,27 +18589,11 @@
"compute-scroll-into-view": "^3.0.2"
}
},
- "node_modules/scrollcontrols-and-lens-refraction": {
- "resolved": "demos/scrollcontrols-and-lens-refraction",
- "link": true
- },
- "node_modules/scrollcontrols-gltf": {
- "resolved": "demos/scrollcontrols-gltf",
- "link": true
- },
- "node_modules/scrollcontrols-with-minimap": {
- "resolved": "demos/scrollcontrols-with-minimap",
- "link": true
- },
"node_modules/seedrandom": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
"integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
},
- "node_modules/selective-outlines": {
- "resolved": "demos/selective-outlines",
- "link": true
- },
"node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
@@ -18195,18 +18681,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/shader-fire": {
- "resolved": "demos/shader-fire",
- "link": true
- },
- "node_modules/shader-hmr": {
- "resolved": "demos/shader-hmr",
- "link": true
- },
- "node_modules/shadermaterials": {
- "resolved": "demos/shadermaterials",
- "link": true
- },
"node_modules/shallow-copy": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
@@ -18236,14 +18710,6 @@
"node": ">=8"
}
},
- "node_modules/shoe-configurator": {
- "resolved": "demos/shoe-configurator",
- "link": true
- },
- "node_modules/shopping": {
- "resolved": "demos/shopping",
- "link": true
- },
"node_modules/short-uuid": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/short-uuid/-/short-uuid-4.2.2.tgz",
@@ -18288,27 +18754,11 @@
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
},
- "node_modules/simple-audio-analyser": {
- "resolved": "demos/simple-audio-analyser",
- "link": true
- },
- "node_modules/simple-physics-demo": {
- "resolved": "demos/simple-physics-demo",
- "link": true
- },
- "node_modules/simple-physics-demo-with-debug-bounds": {
- "resolved": "demos/simple-physics-demo-with-debug-bounds",
- "link": true
- },
"node_modules/simplex-noise": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/simplex-noise/-/simplex-noise-4.0.1.tgz",
"integrity": "sha512-zl/+bdSqW7HJOQ0oDbxrNYaF4F5ik0i7M6YOYmEoIJNtg16NpvWaTTM1Y7oV/7T0jFljawLgYPS81Uu2rsfo1A=="
},
- "node_modules/sky-dome-with-annotations": {
- "resolved": "demos/sky-dome-with-annotations",
- "link": true
- },
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -18327,10 +18777,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/soft-shadows": {
- "resolved": "demos/soft-shadows",
- "link": true
- },
"node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -18347,18 +18793,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/space-game": {
- "resolved": "demos/space-game",
- "link": true
- },
- "node_modules/sparks-and-effects": {
- "resolved": "demos/sparks-and-effects",
- "link": true
- },
- "node_modules/spline-glass-shapes": {
- "resolved": "demos/spline-glass-shapes",
- "link": true
- },
"node_modules/split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -18382,28 +18816,12 @@
"node": ">=0.10.0"
}
},
- "node_modules/sport-hall": {
- "resolved": "demos/sport-hall",
- "link": true
- },
- "node_modules/springy-boxes": {
- "resolved": "demos/springy-boxes",
- "link": true
- },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true
},
- "node_modules/ssgi-spheres-with-rapier-physics": {
- "resolved": "demos/ssgi-spheres-with-rapier-physics",
- "link": true
- },
- "node_modules/ssr-test": {
- "resolved": "demos/ssr-test",
- "link": true
- },
"node_modules/stack-generator": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz",
@@ -18444,18 +18862,6 @@
"stacktrace-gps": "^3.0.4"
}
},
- "node_modules/stage-presets-gltfjsx": {
- "resolved": "demos/stage-presets-gltfjsx",
- "link": true
- },
- "node_modules/staging-and-camerashake": {
- "resolved": "demos/staging-and-camerashake",
- "link": true
- },
- "node_modules/starwars": {
- "resolved": "demos/starwars",
- "link": true
- },
"node_modules/stats-gl": {
"version": "2.2.8",
"resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.2.8.tgz",
@@ -18481,10 +18887,6 @@
"resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
"integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
},
- "node_modules/stencil-mask": {
- "resolved": "demos/stencil-mask",
- "link": true
- },
"node_modules/stop-iteration-iterator": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
@@ -18948,14 +19350,6 @@
"react": ">=17.0"
}
},
- "node_modules/svg-maps-with-html-annotations": {
- "resolved": "demos/svg-maps-with-html-annotations",
- "link": true
- },
- "node_modules/svg-renderer": {
- "resolved": "demos/svg-renderer",
- "link": true
- },
"node_modules/symbol-observable": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
@@ -18965,10 +19359,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/t-shirt-configurator": {
- "resolved": "demos/t-shirt-configurator",
- "link": true
- },
"node_modules/tabbable": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
@@ -19047,10 +19437,6 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "node_modules/the-three-graces": {
- "resolved": "demos/the-three-graces",
- "link": true
- },
"node_modules/thenify": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
@@ -19139,14 +19525,6 @@
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz",
"integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
},
- "node_modules/threejs-journey-lv-1-fisheye": {
- "resolved": "demos/threejs-journey-lv-1-fisheye",
- "link": true
- },
- "node_modules/threejs-journey-portal": {
- "resolved": "demos/threejs-journey-portal",
- "link": true
- },
"node_modules/threejs-meshline": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/threejs-meshline/-/threejs-meshline-2.0.12.tgz",
@@ -19177,10 +19555,6 @@
"node": ">=0.4"
}
},
- "node_modules/thunder-clouds": {
- "resolved": "demos/thunder-clouds",
- "link": true
- },
"node_modules/tiny-inflate": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
@@ -19224,18 +19598,6 @@
"resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
"integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
},
- "node_modules/transformcontrols-and-makedefault": {
- "resolved": "demos/transformcontrols-and-makedefault",
- "link": true
- },
- "node_modules/transparent-aesop-bottles": {
- "resolved": "demos/transparent-aesop-bottles",
- "link": true
- },
- "node_modules/trigger-meshes": {
- "resolved": "demos/trigger-meshes",
- "link": true
- },
"node_modules/troika-three-text": {
"version": "0.49.1",
"resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.49.1.tgz",
@@ -19351,26 +19713,26 @@
}
},
"node_modules/turbo": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.0.9.tgz",
- "integrity": "sha512-QaLaUL1CqblSKKPgLrFW3lZWkWG4pGBQNW+q1ScJB5v1D/nFWtsrD/yZljW/bdawg90ihi4/ftQJ3h6fz1FamA==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.0.11.tgz",
+ "integrity": "sha512-imDlFFAvitbCm1JtDFJ6eG882qwxHUmVT2noPb3p2jq5o5DuXOchMbkVS9kUeC3/4WpY5N0GBZ3RvqNyjHZw1Q==",
"dev": true,
"bin": {
"turbo": "bin/turbo"
},
"optionalDependencies": {
- "turbo-darwin-64": "2.0.9",
- "turbo-darwin-arm64": "2.0.9",
- "turbo-linux-64": "2.0.9",
- "turbo-linux-arm64": "2.0.9",
- "turbo-windows-64": "2.0.9",
- "turbo-windows-arm64": "2.0.9"
+ "turbo-darwin-64": "2.0.11",
+ "turbo-darwin-arm64": "2.0.11",
+ "turbo-linux-64": "2.0.11",
+ "turbo-linux-arm64": "2.0.11",
+ "turbo-windows-64": "2.0.11",
+ "turbo-windows-arm64": "2.0.11"
}
},
"node_modules/turbo-darwin-64": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.0.9.tgz",
- "integrity": "sha512-owlGsOaExuVGBUfrnJwjkL1BWlvefjSKczEAcpLx4BI7Oh6ttakOi+JyomkPkFlYElRpjbvlR2gP8WIn6M/+xQ==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-2.0.11.tgz",
+ "integrity": "sha512-YlHEEhcm+jI1BSZoLugGHUWDfRXaNaQIv7tGQBfadYjo9kixBnqoTOU6s1ubOrQMID+lizZZQs79GXwqM6vohg==",
"cpu": [
"x64"
],
@@ -19381,9 +19743,9 @@
]
},
"node_modules/turbo-darwin-arm64": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.0.9.tgz",
- "integrity": "sha512-XAXkKkePth5ZPPE/9G9tTnPQx0C8UTkGWmNGYkpmGgRr8NedW+HrPsi9N0HcjzzIH9A4TpNYvtiV+WcwdaEjKA==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-2.0.11.tgz",
+ "integrity": "sha512-K/YW+hWzRQ/wGmtffxllH4M1tgy8OlwgXODrIiAGzkSpZl9+pIsem/F86UULlhsIeavBYK/LS5+dzV3DPMjJ9w==",
"cpu": [
"arm64"
],
@@ -19394,9 +19756,9 @@
]
},
"node_modules/turbo-linux-64": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.0.9.tgz",
- "integrity": "sha512-l9wSgEjrCFM1aG16zItBsZ206ZlhSSx1owB8Cgskfv0XyIXRGHRkluihiaxkp+UeU5WoEfz4EN5toc+ICA0q0w==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-2.0.11.tgz",
+ "integrity": "sha512-mv8CwGP06UPweMh1Vlp6PI6OWnkuibxfIJ4Vlof7xqjohAaZU5FLqeOeHkjQflH/6YrCVuS9wrK0TFOu+meTtA==",
"cpu": [
"x64"
],
@@ -19407,9 +19769,9 @@
]
},
"node_modules/turbo-linux-arm64": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.0.9.tgz",
- "integrity": "sha512-gRnjxXRne18B27SwxXMqL3fJu7jw/8kBrOBTBNRSmZZiG1Uu3nbnP7b4lgrA/bCku6C0Wligwqurvtpq6+nFHA==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-2.0.11.tgz",
+ "integrity": "sha512-wLE5tl4oriTmHbuayc0ki0csaCplmVLj+uCWtecM/mfBuZgNS9ICNM9c4sB+Cfl5tlBBFeepqRNgvRvn8WeVZg==",
"cpu": [
"arm64"
],
@@ -19420,9 +19782,9 @@
]
},
"node_modules/turbo-windows-64": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.0.9.tgz",
- "integrity": "sha512-ZVo0apxUvaRq4Vm1qhsfqKKhtRgReYlBVf9MQvVU1O9AoyydEQvLDO1ryqpXDZWpcHoFxHAQc9msjAMtE5K2lA==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-2.0.11.tgz",
+ "integrity": "sha512-tja3zvVCSWu3HizOoeQv0qDJ+GeWGWRFOOM6a8i3BYnXLgGKAaDZFcjwzgC50tWiAw4aowIVR4OouwIyRhLBaQ==",
"cpu": [
"x64"
],
@@ -19433,9 +19795,9 @@
]
},
"node_modules/turbo-windows-arm64": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.0.9.tgz",
- "integrity": "sha512-sGRz7c5Pey6y7y9OKi8ypbWNuIRPF9y8xcMqL56OZifSUSo+X2EOsOleR9MKxQXVaqHPGOUKWsE6y8hxBi9pag==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-2.0.11.tgz",
+ "integrity": "sha512-sYjXP6k94Bqh99R+y3M1Ks6LRIEZybMz+7enA8GKl6JJ2ZFaXxTnS6q+/2+ii1+rRwxohj5OBb4gxODcF8Jd4w==",
"cpu": [
"arm64"
],
@@ -19445,10 +19807,6 @@
"win32"
]
},
- "node_modules/tying-canvas-to-scroll-offset": {
- "resolved": "demos/tying-canvas-to-scroll-offset",
- "link": true
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -19684,10 +20042,6 @@
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/useintersect-and-scrollcontrols": {
- "resolved": "demos/useintersect-and-scrollcontrols",
- "link": true
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -19761,26 +20115,6 @@
}
}
},
- "node_modules/video-cookies": {
- "resolved": "demos/video-cookies",
- "link": true
- },
- "node_modules/video-textures": {
- "resolved": "demos/video-textures",
- "link": true
- },
- "node_modules/view-tracking": {
- "resolved": "demos/view-tracking",
- "link": true
- },
- "node_modules/viewcube": {
- "resolved": "demos/viewcube",
- "link": true
- },
- "node_modules/viking-ship": {
- "resolved": "demos/viking-ship",
- "link": true
- },
"node_modules/vite": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz",
@@ -19864,18 +20198,6 @@
"node": "^10 || ^12 || >=14"
}
},
- "node_modules/volumetric-light-godray": {
- "resolved": "demos/volumetric-light-godray",
- "link": true
- },
- "node_modules/volumetric-spotlight": {
- "resolved": "demos/volumetric-spotlight",
- "link": true
- },
- "node_modules/water-shader": {
- "resolved": "demos/water-shader",
- "link": true
- },
"node_modules/webgl-constants": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz",
@@ -19998,10 +20320,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/wobbling-sphere": {
- "resolved": "demos/wobbling-sphere",
- "link": true
- },
"node_modules/word-wrap": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
@@ -20238,10 +20556,6 @@
}
}
},
- "node_modules/zustand-site": {
- "resolved": "demos/zustand-site",
- "link": true
- },
"packages/e2e": {
"name": "@examples/e2e",
"version": "0.0.1",
diff --git a/package.json b/package.json
index f8d7e47f..77fb8003 100644
--- a/package.json
+++ b/package.json
@@ -2,17 +2,18 @@
"name": "examples",
"private": true,
"scripts": {
- "build": "turbo build2 && ./out.sh",
+ "build": "turbo build3",
+ "postbuild": "./out.sh",
"dev": "turbo dev2",
"lint": "turbo lint",
"format": "prettier --write \"**/*.{ts,tsx,md}\"",
- "test": "turbo test --filter=./demos/* --continue"
+ "test": "turbo test"
},
"devDependencies": {
"@playwright/test": "1.45.3",
"@types/minimist": "^1.2.5",
"prettier": "^3.2.5",
- "turbo": "^2.0.9",
+ "turbo": "^2.0.11",
"typescript": "^5.5.2"
},
"engines": {
@@ -22,6 +23,6 @@
"workspaces": [
"apps/*",
"demos/*",
- "packages/e2e"
+ "packages/*"
]
}
diff --git a/packages/e2e/bin/build.mjs b/packages/e2e/bin/build.mjs
index ece4c1ea..de6c3bb8 100755
--- a/packages/e2e/bin/build.mjs
+++ b/packages/e2e/bin/build.mjs
@@ -1,45 +1,29 @@
#!/usr/bin/env node
-import { spawn } from "node:child_process";
import minimist from "minimist";
import { resolve, dirname } from "node:path";
import { fileURLToPath } from "node:url";
+import { build } from "vite";
var argv = minimist(process.argv.slice(2));
// console.log("argv=", argv);
-const demoname = argv._[0];
-if (!demoname) {
- console.error("Please provide the app name as the first argument.");
+const pkgname = argv._[0];
+if (!pkgname) {
+ console.error("Please provide the package name as the first argument.");
process.exit(1);
}
+const demoname = pkgname.split("@demo/")[1];
const __filename = fileURLToPath(import.meta.url); // Converts the URL to a file path
const __dirname = dirname(__filename); // Gets the directory name
-const viteConfigPath = resolve(__dirname, "../src/vite.config.build.ts");
-// console.log("viteConfigPath=", viteConfigPath);
+const configFile = resolve(__dirname, "../src/vite.config.build.ts");
-const cmd = spawn(
- "npx",
- [
- "vite",
- "build",
- "--config",
- viteConfigPath,
- "--base",
- `${process.env.BASE_PATH || ""}/${demoname}`,
- ],
- {
- stdio: "inherit",
- env: process.env,
- }
-);
+const base = `${process.env.BASE_PATH || ""}/${demoname}`;
-cmd.on("exit", (code) => {
- if (code !== 0) {
- console.error("Build failed with error");
- process.exit(1);
- }
-
- console.log("Build completed successfully.");
+await build({
+ base,
+ configFile,
});
+
+console.log("Build completed successfully.");
diff --git a/packages/e2e/bin/dev.mjs b/packages/e2e/bin/dev.mjs
index 72395b1e..0d8e9b21 100755
--- a/packages/e2e/bin/dev.mjs
+++ b/packages/e2e/bin/dev.mjs
@@ -1,40 +1,36 @@
#!/usr/bin/env node
-import { spawn } from "node:child_process";
import minimist from "minimist";
import { resolve, dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { generatePort } from "../lib/port.mjs";
+import { createServer } from "vite";
var argv = minimist(process.argv.slice(2));
// console.log("argv=", argv);
-const demoname = argv._[0];
-if (!demoname) {
- console.error("Please provide the app name as the first argument.");
+const pkgname = argv._[0];
+if (!pkgname) {
+ console.error("Please provide the package name as the first argument.");
process.exit(1);
}
+const demoname = pkgname.split("@demo/")[1];
const __filename = fileURLToPath(import.meta.url); // Converts the URL to a file path
const __dirname = dirname(__filename); // Gets the directory name
-const viteConfigPath = resolve(__dirname, "../src/vite.config.dev.ts");
-// console.log("viteConfigPath=", viteConfigPath);
+const configFile = resolve(__dirname, "../src/vite.config.dev.ts");
-const cmd = spawn(
- "npx",
- [
- "vite",
- "dev",
- "--config",
- viteConfigPath,
- "--base",
- `${process.env.BASE_PATH || ""}/${demoname}`,
- "--port",
- `${generatePort(demoname)}`,
- "--strictPort",
- ],
- {
- stdio: "inherit",
- env: process.env,
- }
-);
+const base = `${process.env.BASE_PATH || ""}/${demoname}`;
+
+const server = await createServer({
+ base,
+ configFile,
+ server: {
+ port: generatePort(demoname),
+ strictPort: true,
+ },
+});
+await server.listen();
+
+server.printUrls();
+server.bindCLIShortcuts({ print: true });
diff --git a/packages/e2e/bin/test.mjs b/packages/e2e/bin/test.mjs
index 58bec253..44a8b961 100755
--- a/packages/e2e/bin/test.mjs
+++ b/packages/e2e/bin/test.mjs
@@ -4,50 +4,35 @@ import { spawn } from "node:child_process";
import minimist from "minimist";
import { resolve, dirname } from "node:path";
import { fileURLToPath } from "node:url";
+import { preview } from "vite";
var argv = minimist(process.argv.slice(2));
// console.log("argv=", argv);
-const demoname = argv._[0];
-if (!demoname) {
- console.error("Please provide the app name as the first argument.");
+const pkgname = argv._[0];
+if (!pkgname) {
+ console.error("Please provide the package name as the first argument.");
process.exit(1);
}
+const demoname = pkgname.split("@demo/")[1];
const updateSnapshots = argv["update-snapshots"];
-// our 2 processes
-let vite;
-let playwright;
+function startVite(base = "/", timeout = 30000) {
+ return new Promise(async (resolve, reject) => {
+ const timeoutId = setTimeout(() => {
+ reject(new Error("Starting Vite has timed out"));
+ }, timeout);
-function startVite(base = "/") {
- return new Promise((resolve, reject) => {
- const proc = spawn("npx", ["vite", "preview", "--host", "--base", base]);
-
- //
- // Look for the port number in the output, eg:
- //
- // Port 5188 is in use, trying another one...
- // ➜ Local: http://localhost:5189/aquarium
- // ➜ Network: use --host to expose
- // ➜ press h + enter to show help
- //
- proc.stdout.on("data", (data) => {
- const output = data.toString();
- const urlMatch = output.match(/Local: +(\S+)/);
- if (urlMatch) {
- resolve({ vite: proc, url: urlMatch[1] });
- }
- });
-
- proc.on("exit", (code) => {
- console.log("exiting vite", code);
- });
- proc.on("close", (code) => {
- console.log("closing vite", code);
+ const { close, resolvedUrls } = await preview({
+ base,
+ preview: {
+ host: true,
+ },
});
- proc.on("error", reject);
+ clearTimeout(timeoutId);
+ resolve({ close, url: resolvedUrls.local[0] });
});
}
@@ -84,11 +69,11 @@ function startPlaywright(url) {
});
}
-const { vite: _vite, url } = await startVite(
+const { close: closeVite, url } = await startVite(
`${process.env.BASE_PATH || ""}/${demoname}`
);
-vite = _vite;
-playwright = await startPlaywright(url);
+console.log("Vite started at", url);
+const playwright = await startPlaywright(url);
console.log("All done");
teardown(0);
@@ -96,7 +81,7 @@ function teardown(code = 0) {
console.log("Tearing down...");
playwright?.kill();
- vite?.kill();
+ closeVite();
process.exit(code);
}
diff --git a/test.sh b/test.sh
deleted file mode 100755
index 1696519f..00000000
--- a/test.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-set -ex
-
-UPDATE_FLAG=""
-if [ "$1" = "--update" ]; then
- UPDATE_FLAG="-- -- --update-snapshots"
-fi
-
-
-docker run --rm \
- -w /app -v "$(pwd)":/app \
- -e BASE_PATH \
- ghcr.io/pmndrs/playwright:main sh -c "npm i && npm test $UPDATE_FLAG" && echo "ok" || echo "failed"
\ No newline at end of file
diff --git a/turbo.json b/turbo.json
index 870b77e4..e6ea10fa 100644
--- a/turbo.json
+++ b/turbo.json
@@ -11,28 +11,27 @@
"outputs": ["dist/**"],
"cache": true
},
- "website#build2": {
+ "website#build3": {
"dependsOn": ["^build2"],
- "inputs": ["$TURBO_DEFAULT$", "next.config.mjs"],
- "outputs": [
- ".next/**",
- "!.next/cache/**",
- "out/**",
+ "env": ["BASE_URL"],
+ "inputs": [
+ "$TURBO_DEFAULT$",
"../../packages/e2e/snapshot.test.js-snapshots/**"
],
- "cache": true,
- "env": ["PUBLIC_URL"]
+ "outputs": [".next/**", "!.next/cache/**", "out/**"],
+ "cache": true
},
"test": {
+ "env": ["PLAYWRIGHT_BROWSERS_PATH"],
+ "dependsOn": ["build2"],
"inputs": [
"$TURBO_DEFAULT$",
- "dist/**",
"../../packages/e2e/bin/test.mjs",
"../../packages/e2e/{playwright.config.ts,snapshot.test.js}"
],
+ "outputs": ["../../packages/e2e/snapshot.test.js-snapshots/**"],
"cache": true
},
-
"lint": {
"dependsOn": ["^lint"]
},