From 94290ab3fec4bbff941bc7787c1bdc45262dabf2 Mon Sep 17 00:00:00 2001 From: Kris Baumgartner Date: Fri, 31 Jul 2026 17:16:20 -0400 Subject: [PATCH] Migrate demos to examples --- .syncpackrc.json | 36 +- AGENTS.md | 6 +- README.md | 16 +- .../[examplename]}/Dev.tsx | 6 +- .../[examplename]}/Info.tsx | 32 +- .../[examplename]}/Social.tsx | 16 +- .../[examplename]}/layout.tsx | 4 +- .../[examplename]}/page.tsx | 44 +- apps/website/app/layout.tsx | 14 +- apps/website/app/page.tsx | 2 +- apps/website/components/Nav.tsx | 110 +- ...edDemoFrame.tsx => ScaledExampleFrame.tsx} | 6 +- apps/website/const/new.ts | 2 +- apps/website/hooks/use-roving-tabindex.ts | 12 +- apps/website/lib/helper.ts | 40 +- apps/website/package.json | 316 +++--- bin/depcheck.mjs | 4 +- bin/validate-pmndrs-metadata.mjs | 80 +- demos/arkanoid-under-60-loc/README.md | 9 - demos/backdrop-and-cables/README.md | 9 - demos/baking-soft-shadows/README.md | 9 - .../README.md | 9 - demos/bezier-curves-and-nodes/README.md | 9 - demos/bloom-hdr-workflow-gltf/README.md | 9 - demos/bounds-and-makedefault/README.md | 9 - demos/bruno-simons-20k-challenge/README.md | 9 - demos/building-dynamic-envmaps/README.md | 9 - demos/building-live-envmaps/README.md | 9 - demos/camera-scroll/README.md | 9 - demos/camera-shake/README.md | 9 - demos/canvas-text/README.md | 9 - demos/cards-with-border-radius/README.md | 9 - demos/caustics/README.md | 9 - demos/cell-fracture/README.md | 9 - demos/cell-fracture/package.json | 37 - demos/clones/README.md | 9 - demos/clouds/README.md | 9 - demos/color-grading/README.md | 9 - demos/color-grading/package.json | 37 - demos/confetti/README.md | 9 - demos/csg-bunny-usegroups/README.md | 9 - demos/csg-house/README.md | 9 - demos/csg-operations-rapier-physics/README.md | 9 - demos/dbismut-furniture/README.md | 9 - demos/diamond-refraction/README.md | 9 - demos/diamond-ring/README.md | 9 - demos/drei-rendertexture/README.md | 9 - demos/ecctrl-fisheye/README.md | 9 - demos/edgesgeometry/README.md | 9 - demos/edgesgeometry/package.json | 37 - .../README.md | 9 - demos/envmap-ground-projection/README.md | 9 - demos/faucets-select-highlight/README.md | 9 - demos/flexbox-yoga-in-webgl/README.md | 9 - demos/floating-diamonds/README.md | 9 - demos/floating-instanced-shoes/README.md | 9 - demos/floating-laptop/README.md | 9 - demos/flow-shield/README.md | 9 - demos/flying-bananas/README.md | 9 - demos/frosted-glass/README.md | 9 - demos/gatsby-stars/README.md | 9 - demos/glass-flower/README.md | 9 - demos/gltf-animations-re-used/README.md | 9 - .../gltf-animations-tied-to-scroll/README.md | 9 - demos/gltf-animations/README.md | 9 - demos/gltf-animations/package.json | 37 - demos/gltfjsx-400kb-drone/README.md | 9 - demos/gpgpu-curl-noise-dof/README.md | 9 - demos/grass-shader/README.md | 9 - .../ground-projected-envmaps-lamina/README.md | 9 - .../README.md | 9 - demos/hi-key-bubbles/README.md | 9 - demos/horizontal-tiles/README.md | 9 - demos/html-annotations/package.json | 37 - demos/html-input-fields/README.md | 9 - demos/html-markers/README.md | 9 - demos/image-gallery/README.md | 9 - demos/infinite-scroll/README.md | 9 - demos/instanced-particles-effects/README.md | 9 - .../instanced-particles-effects/package.json | 37 - demos/instanced-vertex-colors/README.md | 9 - demos/instances/README.md | 9 - demos/inter-epoxy-resin/README.md | 9 - .../README.md | 9 - demos/inverted-stencil-buffer/README.md | 9 - demos/iridescent-decals/package.json | 37 - demos/lamina-1x/README.md | 9 - demos/landing-page/README.md | 9 - demos/learn-with-jason/README.md | 9 - demos/lulaby-city/README.md | 9 - demos/lusion-connectors/README.md | 9 - demos/magic-box/README.md | 9 - demos/merged-instance/README.md | 9 - demos/minecraft/README.md | 9 - demos/mixing-controls/README.md | 9 - .../README.md | 9 - demos/mixing-html-and-webgl/README.md | 9 - demos/monitors/README.md | 9 - demos/motionpathcontrols/README.md | 9 - demos/mount-transitions/README.md | 9 - .../README.md | 9 - demos/nextjs-prism/README.md | 9 - demos/night-train/README.md | 9 - demos/night-train/package.json | 37 - demos/object-clump/README.md | 9 - demos/pairing-threejs-to-ui/README.md | 9 - demos/pass-through-portals/README.md | 9 - .../physics-with-convex-polyhedrons/README.md | 9 - demos/pinball-in-70-lines/package.json | 38 - demos/pmndrs-vercel/README.md | 9 - demos/portal-shapes/README.md | 9 - demos/portals/README.md | 9 - .../README.md | 9 - .../package.json | 37 - demos/racing-game/README.md | 9 - demos/ragdoll-physics/README.md | 9 - demos/rapier-physics/README.md | 9 - demos/rapier-ping-pong/README.md | 9 - demos/raycast-cycling/README.md | 9 - .../README.md | 9 - .../package.json | 37 - demos/re-using-gltfs/README.md | 9 - demos/react-ellipsecurve/README.md | 9 - demos/react-pp-outlines/README.md | 9 - demos/react-spring-animations/README.md | 9 - demos/room-with-soft-shadows/README.md | 9 - demos/router-transitions/README.md | 9 - .../README.md | 9 - demos/scrollcontrols-gltf/README.md | 9 - demos/scrollcontrols-gltf/package.json | 37 - demos/scrollcontrols-with-minimap/README.md | 9 - .../scrollcontrols-with-minimap/package.json | 38 - demos/selective-outlines/README.md | 9 - demos/shader-fire/README.md | 9 - demos/shader-hmr/README.md | 9 - demos/shadermaterials/README.md | 9 - demos/shadermaterials/package.json | 37 - demos/shoe-configurator/README.md | 9 - demos/shopping/README.md | 9 - demos/simple-audio-analyser/README.md | 9 - .../README.md | 9 - demos/simple-physics-demo/README.md | 9 - demos/sky-dome-with-annotations/README.md | 9 - demos/soft-shadows/README.md | 9 - demos/space-game/README.md | 9 - demos/sparks-and-effects/README.md | 9 - demos/spline-glass-shapes/README.md | 9 - demos/sport-hall/README.md | 9 - demos/spotlight-shadows/README.md | 9 - demos/spotlight-shadows/package.json | 37 - demos/springy-boxes/README.md | 9 - .../README.md | 9 - demos/ssr-test/README.md | 9 - demos/stage-presets-gltfjsx/README.md | 9 - demos/staging-and-camerashake/README.md | 9 - demos/staging-and-camerashake/package.json | 37 - demos/starwars/README.md | 9 - demos/stencil-mask/README.md | 9 - .../svg-maps-with-html-annotations/README.md | 9 - demos/svg-renderer/README.md | 9 - demos/t-shirt-configurator/README.md | 9 - demos/the-three-graces/README.md | 9 - demos/threejs-journey-lv-1-fisheye/README.md | 9 - demos/threejs-journey-portal/README.md | 9 - demos/thunder-clouds/README.md | 9 - demos/trails/README.md | 9 - .../README.md | 9 - demos/transparent-aesop-bottles/README.md | 9 - demos/trigger-meshes/README.md | 9 - demos/tying-canvas-to-scroll-offset/README.md | 9 - .../package.json | 37 - .../useintersect-and-scrollcontrols/README.md | 9 - .../package.json | 38 - demos/video-cookies/README.md | 9 - demos/video-textures/README.md | 9 - demos/video-textures/package.json | 37 - demos/view-tracking/README.md | 9 - demos/viewcube/README.md | 9 - demos/viking-ship/README.md | 9 - demos/volumetric-light-godray/README.md | 9 - demos/volumetric-light-godray/package.json | 38 - demos/volumetric-spotlight/README.md | 9 - demos/volumetric-spotlight/package.json | 37 - demos/water-shader/README.md | 9 - demos/wireframes/README.md | 9 - demos/wobbling-sphere/README.md | 9 - demos/zustand-site/README.md | 9 - docs/agents/domain.md | 4 +- {demos => examples}/aquarium/.prettierrc | 0 .../aquarium}/README.md | 8 +- {demos => examples}/aquarium/index.html | 0 {demos => examples}/aquarium/package.json | 4 +- {demos => examples}/aquarium/pmndrs.json | 0 {demos => examples}/aquarium/public/vite.svg | 0 {demos => examples}/aquarium/src/App.jsx | 0 {demos => examples}/aquarium/src/index.jsx | 0 ...ps_ridley_sea_turtle_no_id-transformed.glb | Bin .../aquarium/src/shapes-transformed.glb | Bin {demos => examples}/aquarium/src/styles.css | 0 .../aquarium/src/vite-env.d.ts | 0 {demos => examples}/aquarium/thumbnail.webp | Bin {demos => examples}/aquarium/tsconfig.json | 0 .../aquarium/tsconfig.node.json | 0 {demos => examples}/aquarium/vite.config.ts | 0 .../arkanoid-under-60-loc/.prettierrc | 0 examples/arkanoid-under-60-loc/README.md | 9 + .../arkanoid-under-60-loc/index.html | 0 .../arkanoid-under-60-loc/package.json | 4 +- .../arkanoid-under-60-loc/pmndrs.json | 0 .../arkanoid-under-60-loc/public/vite.svg | 0 .../arkanoid-under-60-loc/src/App.jsx | 0 .../arkanoid-under-60-loc/src/index.jsx | 0 .../arkanoid-under-60-loc/src/styles.css | 0 .../arkanoid-under-60-loc/src/vite-env.d.ts | 0 .../arkanoid-under-60-loc/thumbnail.webp | Bin .../arkanoid-under-60-loc/tsconfig.json | 0 .../arkanoid-under-60-loc/tsconfig.node.json | 0 .../arkanoid-under-60-loc/vite.config.ts | 0 {demos => examples}/arkanoid/.prettierrc | 0 examples/arkanoid/README.md | 9 + {demos => examples}/arkanoid/index.html | 0 {demos => examples}/arkanoid/package.json | 4 +- {demos => examples}/arkanoid/pmndrs.json | 0 .../arkanoid/public/pingpong.glb | Bin {demos => examples}/arkanoid/public/vite.svg | 0 {demos => examples}/arkanoid/src/App.jsx | 0 {demos => examples}/arkanoid/src/Effects.jsx | 0 {demos => examples}/arkanoid/src/index.jsx | 0 .../arkanoid/src/resources/bg.jpg | Bin .../arkanoid/src/resources/cross.jpg | Bin .../src/resources/firasans_regular.json | 0 .../arkanoid/src/resources/ping.mp3 | Bin ...ise_-_01_-_Towel_Defence_Splash_Screen.mp3 | Bin .../arkanoid/src/resources/select_006.ogg | Bin .../arkanoid/src/resources/select_007.ogg | Bin {demos => examples}/arkanoid/src/store.js | 0 {demos => examples}/arkanoid/src/styles.css | 0 .../arkanoid/src/vite-env.d.ts | 0 {demos => examples}/arkanoid/thumbnail.webp | Bin {demos => examples}/arkanoid/tsconfig.json | 0 .../arkanoid/tsconfig.node.json | 0 {demos => examples}/arkanoid/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../audio-analyser/.prettierrc | 0 examples/audio-analyser/README.md | 9 + {demos => examples}/audio-analyser/index.html | 0 .../audio-analyser/package.json | 4 +- .../audio-analyser/pmndrs.json | 0 .../audio-analyser/public/vite.svg | 0 .../audio-analyser/sandbox.config.json | 0 .../audio-analyser/src/App.jsx | 0 .../src/SurfaceImperfections003_1K_Normal.jpg | Bin .../src/SurfaceImperfections003_1K_var1.jpg | Bin .../audio-analyser/src/bust.glb | Bin .../audio-analyser/src/drums.mp3 | Bin .../audio-analyser/src/explosion.glb | Bin .../audio-analyser/src/index.jsx | 0 .../audio-analyser/src/snare.mp3 | Bin .../audio-analyser/src/store.js | 0 .../audio-analyser/src/styles.css | 0 .../audio-analyser/src/synth.mp3 | Bin .../audio-analyser/src/vite-env.d.ts | 0 .../audio-analyser/thumbnail.webp | Bin .../audio-analyser/tsconfig.json | 0 .../audio-analyser/tsconfig.node.json | 0 .../audio-analyser/vite.config.ts | 0 .../backdrop-and-cables/.prettierrc | 0 examples/backdrop-and-cables/README.md | 9 + .../backdrop-and-cables/index.html | 0 .../backdrop-and-cables}/package.json | 4 +- .../backdrop-and-cables/pmndrs.json | 0 .../backdrop-and-cables/public/vite.svg | 0 .../backdrop-and-cables/src/App.jsx | 0 .../src/assets/Astronaut-transformed.glb | Bin .../src/assets/Low-Poly-Spaceship.gltf | 0 .../backdrop-and-cables/src/index.jsx | 0 .../backdrop-and-cables/src/styles.css | 0 .../backdrop-and-cables/src/vite-env.d.ts | 0 .../backdrop-and-cables/thumbnail.webp | Bin .../backdrop-and-cables/tsconfig.json | 0 .../backdrop-and-cables/tsconfig.node.json | 0 .../backdrop-and-cables/vite.config.ts | 0 .../baking-soft-shadows/.prettierrc | 0 examples/baking-soft-shadows/README.md | 9 + .../baking-soft-shadows/index.html | 0 .../baking-soft-shadows}/package.json | 4 +- .../baking-soft-shadows/pmndrs.json | 0 .../baking-soft-shadows/public/vite.svg | 0 .../baking-soft-shadows/src/App.jsx | 0 .../baking-soft-shadows/src/index.jsx | 0 .../baking-soft-shadows/src/styles.css | 0 .../baking-soft-shadows/src/suzi-model.gltf | 0 .../baking-soft-shadows/src/vite-env.d.ts | 0 .../baking-soft-shadows/thumbnail.webp | Bin .../baking-soft-shadows/tsconfig.json | 0 .../baking-soft-shadows/tsconfig.node.json | 0 .../baking-soft-shadows/vite.config.ts | 0 {demos => examples}/basic-ballpit/.prettierrc | 0 examples/basic-ballpit/README.md | 9 + {demos => examples}/basic-ballpit/index.html | 0 .../basic-ballpit/package.json | 4 +- {demos => examples}/basic-ballpit/pmndrs.json | 0 .../basic-ballpit/public/vite.svg | 0 {demos => examples}/basic-ballpit/src/App.jsx | 0 .../basic-ballpit/src/index.jsx | 0 .../basic-ballpit/src/styles.css | 0 .../basic-ballpit/src/vite-env.d.ts | 0 .../basic-ballpit/thumbnail.webp | Bin .../basic-ballpit/tsconfig.json | 0 .../basic-ballpit/tsconfig.node.json | 0 .../basic-ballpit/vite.config.ts | 0 .../basic-example}/.prettierrc | 0 examples/basic-example/README.md | 9 + .../basic-example}/index.html | 0 .../basic-example}/package.json | 4 +- .../basic-example}/pmndrs.json | 2 +- .../basic-example}/public/vite.svg | 0 .../basic-example}/src/App.jsx | 0 .../basic-example}/src/index.jsx | 0 .../basic-example}/src/styles.css | 0 .../basic-example}/src/vite-env.d.ts | 0 .../basic-example}/thumbnail.webp | Bin .../basic-example}/tsconfig.json | 0 .../basic-example}/tsconfig.node.json | 0 .../basic-example}/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../sandbox.config.json | 0 .../src/App.jsx | 0 .../src/DirtyFigmaExport.jsx | 0 .../src/adamsbridge.hdr | Bin .../src/cap.glb | Bin .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../bezier-curves-and-nodes/.prettierrc | 0 examples/bezier-curves-and-nodes/README.md | 9 + .../bezier-curves-and-nodes/index.html | 0 .../bezier-curves-and-nodes/package.json | 4 +- .../bezier-curves-and-nodes/pmndrs.json | 0 .../public/Inter-Regular.woff | Bin .../bezier-curves-and-nodes/public/vite.svg | 0 .../bezier-curves-and-nodes/src/App.jsx | 0 .../bezier-curves-and-nodes/src/Nodes.jsx | 0 .../bezier-curves-and-nodes/src/index.jsx | 0 .../bezier-curves-and-nodes/src/styles.css | 0 .../bezier-curves-and-nodes/src/vite-env.d.ts | 0 .../bezier-curves-and-nodes/thumbnail.webp | Bin .../bezier-curves-and-nodes/tsconfig.json | 0 .../tsconfig.node.json | 0 .../bezier-curves-and-nodes/vite.config.ts | 0 .../bloom-hdr-workflow-gltf/.prettierrc | 0 examples/bloom-hdr-workflow-gltf/README.md | 9 + .../bloom-hdr-workflow-gltf/index.html | 0 examples/bloom-hdr-workflow-gltf/package.json | 37 + .../bloom-hdr-workflow-gltf/pmndrs.json | 0 .../bloom-hdr-workflow-gltf/public/vite.svg | 0 .../src/123-transformed.glb | Bin .../bloom-hdr-workflow-gltf/src/App.jsx | 0 .../bloom-hdr-workflow-gltf/src/Tower.jsx | 0 .../bloom-hdr-workflow-gltf/src/index.jsx | 0 .../bloom-hdr-workflow-gltf/src/styles.css | 0 .../bloom-hdr-workflow-gltf/src/vite-env.d.ts | 0 .../bloom-hdr-workflow-gltf/thumbnail.webp | Bin .../bloom-hdr-workflow-gltf/tsconfig.json | 0 .../tsconfig.node.json | 0 .../bloom-hdr-workflow-gltf/vite.config.ts | 0 {demos => examples}/bouncy-watch/.prettierrc | 0 examples/bouncy-watch/README.md | 9 + {demos => examples}/bouncy-watch/index.html | 0 .../bouncy-watch}/package.json | 20 +- {demos => examples}/bouncy-watch/pmndrs.json | 0 .../bouncy-watch/public/vite.svg | 0 {demos => examples}/bouncy-watch/src/App.jsx | 0 .../bouncy-watch/src/index.jsx | 0 .../bouncy-watch/src/styles.css | 0 .../bouncy-watch/src/vite-env.d.ts | 0 .../bouncy-watch/src/watch-v1.glb | Bin .../bouncy-watch/thumbnail.webp | Bin .../bouncy-watch/tsconfig.json | 0 .../bouncy-watch/tsconfig.node.json | 0 .../bouncy-watch/vite.config.ts | 0 .../bounds-and-makedefault/.prettierrc | 0 examples/bounds-and-makedefault/README.md | 9 + .../bounds-and-makedefault/index.html | 0 examples/bounds-and-makedefault/package.json | 37 + .../bounds-and-makedefault/pmndrs.json | 0 .../public/draco/draco_decoder.js | 0 .../public/draco/draco_decoder.wasm | Bin .../public/draco/draco_encoder.js | 0 .../public/draco/draco_wasm_wrapper.js | 0 .../bounds-and-makedefault/public/vite.svg | 0 .../bounds-and-makedefault/src/App.jsx | 0 .../bounds-and-makedefault/src/compressed.glb | Bin .../bounds-and-makedefault/src/index.jsx | 0 .../bounds-and-makedefault/src/styles.css | 0 .../bounds-and-makedefault/src/vite-env.d.ts | 0 .../bounds-and-makedefault/thumbnail.webp | Bin .../bounds-and-makedefault/tsconfig.json | 0 .../bounds-and-makedefault/tsconfig.node.json | 0 .../bounds-and-makedefault/vite.config.ts | 0 .../bruno-simons-20k-challenge/.prettierrc | 0 examples/bruno-simons-20k-challenge/README.md | 9 + .../bruno-simons-20k-challenge/index.html | 0 .../bruno-simons-20k-challenge/package.json | 4 +- .../bruno-simons-20k-challenge/pmndrs.json | 0 .../public/vite.svg | 0 .../bruno-simons-20k-challenge/src/App.jsx | 0 ...er-threejs-journey-20k-hat-transformed.glb | Bin ...lender-threejs-journey-20k-transformed.glb | Bin .../bruno-simons-20k-challenge/src/index.jsx | 0 .../bruno-simons-20k-challenge/src/styles.css | 0 .../src/vite-env.d.ts | 0 .../bruno-simons-20k-challenge/thumbnail.webp | Bin .../bruno-simons-20k-challenge/tsconfig.json | 0 .../tsconfig.node.json | 0 .../bruno-simons-20k-challenge/vite.config.ts | 0 .../building-dynamic-envmaps/.prettierrc | 0 examples/building-dynamic-envmaps/README.md | 9 + .../building-dynamic-envmaps/index.html | 0 .../building-dynamic-envmaps/package.json | 4 +- .../building-dynamic-envmaps/pmndrs.json | 0 .../building-dynamic-envmaps/public/vite.svg | 0 .../building-dynamic-envmaps/src/App.jsx | 0 .../building-dynamic-envmaps/src/Effects.jsx | 0 .../src/F-6800-STD.cube | 0 .../src/Lamborghini.jsx | 0 .../building-dynamic-envmaps/src/index.jsx | 0 .../building-dynamic-envmaps/src/lambo.glb | Bin .../building-dynamic-envmaps/src/styles.css | 0 .../src/vite-env.d.ts | 0 .../building-dynamic-envmaps/thumbnail.webp | Bin .../building-dynamic-envmaps/tsconfig.json | 0 .../tsconfig.node.json | 0 .../building-dynamic-envmaps/vite.config.ts | 0 .../building-live-envmaps/.prettierrc | 0 examples/building-live-envmaps/README.md | 9 + .../building-live-envmaps/index.html | 0 .../building-live-envmaps/package.json | 4 +- .../building-live-envmaps/pmndrs.json | 0 .../building-live-envmaps/public/vite.svg | 0 .../src/911-transformed.glb | Bin .../building-live-envmaps/src/App.jsx | 0 .../building-live-envmaps/src/index.jsx | 0 .../building-live-envmaps/src/styles.css | 0 .../building-live-envmaps/src/vite-env.d.ts | 0 .../building-live-envmaps/thumbnail.webp | Bin .../building-live-envmaps/tsconfig.json | 0 .../building-live-envmaps/tsconfig.node.json | 0 .../building-live-envmaps/vite.config.ts | 0 {demos => examples}/bvh/.prettierrc | 0 {demos/moksha => examples/bvh}/README.md | 8 +- {demos => examples}/bvh/index.html | 0 {demos => examples}/bvh/package.json | 4 +- {demos => examples}/bvh/pmndrs.json | 0 {demos => examples}/bvh/public/vite.svg | 0 {demos => examples}/bvh/src/App.jsx | 0 {demos => examples}/bvh/src/Rays.jsx | 0 {demos => examples}/bvh/src/index.jsx | 0 {demos => examples}/bvh/src/styles.css | 0 {demos => examples}/bvh/src/vite-env.d.ts | 0 {demos => examples}/bvh/thumbnail.webp | Bin {demos => examples}/bvh/tsconfig.json | 0 {demos => examples}/bvh/tsconfig.node.json | 0 {demos => examples}/bvh/vite.config.ts | 0 {demos => examples}/camera-scroll/.prettierrc | 0 examples/camera-scroll/README.md | 9 + {demos => examples}/camera-scroll/index.html | 0 examples/camera-scroll/package.json | 37 + {demos => examples}/camera-scroll/pmndrs.json | 0 .../camera-scroll/public/vite.svg | 0 {demos => examples}/camera-scroll/src/App.jsx | 0 .../camera-scroll/src/Model.jsx | 0 .../camera-scroll/src/Overlay.jsx | 0 .../camera-scroll/src/index.jsx | 0 .../camera-scroll/src/model.glb | Bin .../camera-scroll/src/styles.css | 0 .../camera-scroll/src/vite-env.d.ts | 0 .../camera-scroll/thumbnail.webp | Bin .../camera-scroll/tsconfig.json | 0 .../camera-scroll/tsconfig.node.json | 0 .../camera-scroll/vite.config.ts | 0 .../camera-shake/.codesandbox/workspace.json | 0 {demos => examples}/camera-shake/.prettierrc | 0 examples/camera-shake/README.md | 9 + {demos => examples}/camera-shake/index.html | 0 {demos => examples}/camera-shake/package.json | 4 +- {demos => examples}/camera-shake/pmndrs.json | 0 .../camera-shake/public/view.svg | 0 .../camera-shake/public/vite.svg | 0 {demos => examples}/camera-shake/src/App.jsx | 0 .../camera-shake/src/Model.jsx | 0 .../camera-shake/src/index.jsx | 0 .../camera-shake/src/pink-d.glb | Bin .../camera-shake/src/styles.css | 0 .../camera-shake/src/vite-env.d.ts | 0 .../camera-shake/thumbnail.webp | Bin .../camera-shake/tsconfig.json | 0 .../camera-shake/tsconfig.node.json | 0 .../camera-shake/vite.config.ts | 0 {demos => examples}/canvas-text/.prettierrc | 0 .../canvas-text}/README.md | 8 +- {demos => examples}/canvas-text/index.html | 0 {demos => examples}/canvas-text/package.json | 4 +- {demos => examples}/canvas-text/pmndrs.json | 0 .../canvas-text/public/vite.svg | 0 {demos => examples}/canvas-text/src/App.jsx | 0 {demos => examples}/canvas-text/src/index.jsx | 0 .../canvas-text/src/styles.css | 0 .../canvas-text/src/vite-env.d.ts | 0 .../canvas-text/thumbnail.webp | Bin {demos => examples}/canvas-text/tsconfig.json | 0 .../canvas-text/tsconfig.node.json | 0 .../canvas-text/vite.config.ts | 0 .../cards-with-border-radius/.prettierrc | 0 examples/cards-with-border-radius/README.md | 9 + .../cards-with-border-radius/index.html | 0 .../cards-with-border-radius/package.json | 4 +- .../cards-with-border-radius/pmndrs.json | 0 .../public/img10_.jpg | Bin .../cards-with-border-radius/public/img1_.jpg | Bin .../cards-with-border-radius/public/img2_.jpg | Bin .../cards-with-border-radius/public/img3_.jpg | Bin .../cards-with-border-radius/public/img4_.jpg | Bin .../cards-with-border-radius/public/img5_.jpg | Bin .../cards-with-border-radius/public/img6_.jpg | Bin .../cards-with-border-radius/public/img7_.jpg | Bin .../cards-with-border-radius/public/img8_.jpg | Bin .../cards-with-border-radius/public/img9_.jpg | Bin .../cards-with-border-radius/public/vite.svg | 0 .../cards-with-border-radius/public/work_.png | Bin .../cards-with-border-radius/src/App.jsx | 0 .../cards-with-border-radius/src/index.jsx | 0 .../cards-with-border-radius/src/styles.css | 0 .../cards-with-border-radius/src/util.js | 0 .../src/vite-env.d.ts | 0 .../cards-with-border-radius/thumbnail.webp | Bin .../cards-with-border-radius/tsconfig.json | 0 .../tsconfig.node.json | 0 .../cards-with-border-radius/vite.config.ts | 0 {demos => examples}/cards/.prettierrc | 0 {demos/bvh => examples/cards}/README.md | 8 +- {demos => examples}/cards/index.html | 0 {demos => examples}/cards/package.json | 4 +- {demos => examples}/cards/pmndrs.json | 0 {demos => examples}/cards/public/vite.svg | 0 {demos => examples}/cards/src/App.jsx | 0 {demos => examples}/cards/src/img1.jpg | Bin {demos => examples}/cards/src/img10.jpg | Bin {demos => examples}/cards/src/img2.jpg | Bin {demos => examples}/cards/src/img3.jpg | Bin {demos => examples}/cards/src/img4.jpg | Bin {demos => examples}/cards/src/img5.jpg | Bin {demos => examples}/cards/src/img6.jpg | Bin {demos => examples}/cards/src/img7.jpg | Bin {demos => examples}/cards/src/img8.jpg | Bin {demos => examples}/cards/src/img9.jpg | Bin {demos => examples}/cards/src/index.jsx | 0 {demos => examples}/cards/src/styles.css | 0 {demos => examples}/cards/src/vite-env.d.ts | 0 {demos => examples}/cards/thumbnail.webp | Bin {demos => examples}/cards/tsconfig.json | 0 {demos => examples}/cards/tsconfig.node.json | 0 {demos => examples}/cards/vite.config.ts | 0 {demos => examples}/caustics/.prettierrc | 0 examples/caustics/README.md | 9 + {demos => examples}/caustics/index.html | 0 .../caustics}/package.json | 20 +- {demos => examples}/caustics/pmndrs.json | 0 {demos => examples}/caustics/public/vite.svg | 0 .../caustics/sandbox.config.json | 0 {demos => examples}/caustics/src/App.jsx | 0 {demos => examples}/caustics/src/Overlay.jsx | 0 .../caustics/src/glass-transformed.glb | Bin {demos => examples}/caustics/src/index.jsx | 0 {demos => examples}/caustics/src/styles.css | 0 .../caustics/src/vite-env.d.ts | 0 {demos => examples}/caustics/thumbnail.webp | Bin {demos => examples}/caustics/tsconfig.json | 0 .../caustics/tsconfig.node.json | 0 {demos => examples}/caustics/vite.config.ts | 0 {demos => examples}/cell-fracture/.prettierrc | 0 examples/cell-fracture/README.md | 9 + {demos => examples}/cell-fracture/index.html | 0 examples/cell-fracture/package.json | 37 + {demos => examples}/cell-fracture/pmndrs.json | 0 .../cell-fracture/public/vite.svg | 0 .../cell-fracture/resources/hello.blend.zip | 0 .../cell-fracture/sandbox.config.json | 0 {demos => examples}/cell-fracture/src/App.jsx | 0 .../cell-fracture/src/Text.jsx | 0 .../cell-fracture/src/hello-fragments.glb | Bin .../cell-fracture/src/hello-text.glb | Bin .../cell-fracture/src/index.jsx | 0 .../cell-fracture/src/styles.css | 0 .../cell-fracture/src/vite-env.d.ts | 0 .../cell-fracture/thumbnail.webp | Bin .../cell-fracture/tsconfig.json | 0 .../cell-fracture/tsconfig.node.json | 0 .../cell-fracture/vite.config.ts | 0 {demos => examples}/clones/.prettierrc | 0 {demos/arkanoid => examples/clones}/README.md | 8 +- {demos => examples}/clones/index.html | 0 {demos => examples}/clones/package.json | 4 +- {demos => examples}/clones/pmndrs.json | 0 {demos => examples}/clones/public/vite.svg | 0 {demos => examples}/clones/src/App.jsx | 0 {demos => examples}/clones/src/Room.jsx | 0 {demos => examples}/clones/src/index.jsx | 0 .../clones/src/scene-transformed.glb | Bin {demos => examples}/clones/src/styles.css | 0 {demos => examples}/clones/src/vite-env.d.ts | 0 {demos => examples}/clones/thumbnail.webp | Bin {demos => examples}/clones/tsconfig.json | 0 {demos => examples}/clones/tsconfig.node.json | 0 {demos => examples}/clones/vite.config.ts | 0 {demos => examples}/clouds/.prettierrc | 0 {demos/aquarium => examples/clouds}/README.md | 8 +- {demos => examples}/clouds/index.html | 0 {demos => examples}/clouds/package.json | 4 +- {demos => examples}/clouds/pmndrs.json | 0 {demos => examples}/clouds/public/cloud.png | Bin {demos => examples}/clouds/public/favicon.ico | Bin {demos => examples}/clouds/public/logo192.png | Bin {demos => examples}/clouds/public/logo512.png | Bin .../clouds/public/manifest.json | 0 {demos => examples}/clouds/public/robots.txt | 0 {demos => examples}/clouds/public/vite.svg | 0 .../clouds/sandbox.config.json | 0 {demos => examples}/clouds/src/App.jsx | 0 {demos => examples}/clouds/src/Clouds.tsx | 0 {demos => examples}/clouds/src/index.jsx | 0 {demos => examples}/clouds/src/styles.css | 0 {demos => examples}/clouds/src/vite-env.d.ts | 0 {demos => examples}/clouds/thumbnail.webp | Bin {demos => examples}/clouds/tsconfig.json | 0 {demos => examples}/clouds/tsconfig.node.json | 0 {demos => examples}/clouds/vite.config.ts | 0 {demos => examples}/color-grading/.prettierrc | 0 examples/color-grading/README.md | 9 + {demos => examples}/color-grading/index.html | 0 examples/color-grading/package.json | 37 + {demos => examples}/color-grading/pmndrs.json | 0 .../color-grading/public/vite.svg | 0 {demos => examples}/color-grading/src/App.jsx | 0 .../color-grading/src/cubicle-99.cube | 0 .../color-grading/src/index.jsx | 0 .../color-grading/src/styles.css | 0 .../color-grading/src/terrazo.png | Bin .../color-grading/src/vite-env.d.ts | 0 .../color-grading/thumbnail.webp | Bin .../color-grading/tsconfig.json | 0 .../color-grading/tsconfig.node.json | 0 .../color-grading/vite.config.ts | 0 {demos => examples}/confetti/.prettierrc | 0 examples/confetti/README.md | 9 + {demos => examples}/confetti/index.html | 0 {demos => examples}/confetti/package.json | 4 +- {demos => examples}/confetti/pmndrs.json | 0 .../confetti/public/Earth.gltf | 0 .../confetti/public/Flamingo.glb | 0 .../confetti/public/Island.gltf | 0 .../confetti/public/Parrot.glb | Bin {demos => examples}/confetti/public/Stork.glb | Bin {demos => examples}/confetti/public/vite.svg | 0 .../confetti/sandbox.config.json | 0 {demos => examples}/confetti/src/App.jsx | 0 {demos => examples}/confetti/src/index.jsx | 0 {demos => examples}/confetti/src/styles.css | 0 .../confetti/src/vite-env.d.ts | 0 {demos => examples}/confetti/thumbnail.webp | Bin {demos => examples}/confetti/tsconfig.json | 0 .../confetti/tsconfig.node.json | 0 {demos => examples}/confetti/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../csg-bunny-usegroups/.prettierrc | 0 examples/csg-bunny-usegroups/README.md | 9 + .../csg-bunny-usegroups/index.html | 0 .../csg-bunny-usegroups/package.json | 4 +- .../csg-bunny-usegroups/pmndrs.json | 0 .../csg-bunny-usegroups/public/vite.svg | 0 .../csg-bunny-usegroups/sandbox.config.json | 0 .../csg-bunny-usegroups/src/App.jsx | 0 .../src/bunny-transformed.glb | Bin .../csg-bunny-usegroups/src/index.jsx | 0 .../csg-bunny-usegroups/src/styles.css | 0 .../csg-bunny-usegroups/src/vite-env.d.ts | 0 .../csg-bunny-usegroups/thumbnail.webp | Bin .../csg-bunny-usegroups/tsconfig.json | 0 .../csg-bunny-usegroups/tsconfig.node.json | 0 .../csg-bunny-usegroups/vite.config.ts | 0 .../csg-house/.codesandbox/workspace.json | 0 {demos => examples}/csg-house/.prettierrc | 0 .../csg-house}/README.md | 8 +- {demos => examples}/csg-house/index.html | 0 {demos => examples}/csg-house/package.json | 4 +- {demos => examples}/csg-house/pmndrs.json | 0 .../csg-house/public/bunny-transformed.glb | Bin {demos => examples}/csg-house/public/vite.svg | 0 .../csg-house/sandbox.config.json | 0 {demos => examples}/csg-house/src/App.jsx | 0 .../csg-house/src/Environment.jsx | 0 {demos => examples}/csg-house/src/index.jsx | 0 {demos => examples}/csg-house/src/styles.css | 0 .../csg-house/src/vite-env.d.ts | 0 {demos => examples}/csg-house/thumbnail.webp | Bin {demos => examples}/csg-house/tsconfig.json | 0 .../csg-house/tsconfig.node.json | 0 {demos => examples}/csg-house/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../csg-operations-rapier-physics/.prettierrc | 0 .../csg-operations-rapier-physics/README.md | 9 + .../csg-operations-rapier-physics/index.html | 0 .../package.json | 4 +- .../csg-operations-rapier-physics/pmndrs.json | 0 .../public/bunny-transformed.glb | Bin .../public/vite.svg | 0 .../sandbox.config.json | 0 .../csg-operations-rapier-physics/src/App.jsx | 0 .../src/geometries/BoxBlendGeometry.jsx | 0 .../src/geometries/HeartGeometry.jsx | 0 .../src/geometries/index.js | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../dbismut-furniture/.prettierrc | 0 examples/dbismut-furniture/README.md | 9 + .../dbismut-furniture/index.html | 0 .../dbismut-furniture}/package.json | 4 +- .../dbismut-furniture/pmndrs.json | 0 .../dbismut-furniture/public/vite.svg | 0 .../dbismut-furniture/src/App.jsx | 0 .../dbismut-furniture/src/Scene.jsx | 0 .../dbismut-furniture/src/XFadeMaterial.jsx | 0 .../dbismut-furniture/src/bench.glb | Bin .../dbismut-furniture/src/index.jsx | 0 .../dbismut-furniture/src/stool.glb | Bin .../dbismut-furniture/src/styles.css | 0 .../dbismut-furniture/src/table.glb | Bin .../dbismut-furniture/src/vite-env.d.ts | 0 .../dbismut-furniture/thumbnail.webp | Bin .../dbismut-furniture/tsconfig.json | 0 .../dbismut-furniture/tsconfig.node.json | 0 .../dbismut-furniture/vite.config.ts | 0 .../diamond-refraction/.prettierrc | 0 examples/diamond-refraction/README.md | 9 + .../diamond-refraction/index.html | 0 .../diamond-refraction}/package.json | 4 +- .../diamond-refraction/pmndrs.json | 0 .../diamond-refraction/public/vite.svg | 0 .../diamond-refraction/src/App.jsx | 0 .../src/aerodynamics_workshop_1k.hdr | Bin .../diamond-refraction/src/dflat.glb | Bin .../diamond-refraction/src/index.jsx | 0 .../diamond-refraction/src/styles.css | 0 .../diamond-refraction/src/vite-env.d.ts | 0 .../diamond-refraction/thumbnail.webp | Bin .../diamond-refraction/tsconfig.json | 0 .../diamond-refraction/tsconfig.node.json | 0 .../diamond-refraction/vite.config.ts | 0 {demos => examples}/diamond-ring/.prettierrc | 0 examples/diamond-ring/README.md | 9 + {demos => examples}/diamond-ring/index.html | 0 {demos => examples}/diamond-ring/package.json | 4 +- {demos => examples}/diamond-ring/pmndrs.json | 0 .../diamond-ring/public/vite.svg | 0 {demos => examples}/diamond-ring/src/App.jsx | 0 .../diamond-ring/src/index.jsx | 0 .../diamond-ring/src/ring-transformed.glb | Bin .../diamond-ring/src/styles.css | 0 .../diamond-ring/src/vite-env.d.ts | 0 .../diamond-ring/thumbnail.webp | Bin .../diamond-ring/tsconfig.json | 0 .../diamond-ring/tsconfig.node.json | 0 .../diamond-ring/vite.config.ts | 0 .../drei-rendertexture/.prettierrc | 0 examples/drei-rendertexture/README.md | 9 + .../drei-rendertexture/index.html | 0 .../drei-rendertexture/package.json | 4 +- .../drei-rendertexture/pmndrs.json | 0 .../drei-rendertexture/public/vite.svg | 0 .../drei-rendertexture/src/App.jsx | 0 .../drei-rendertexture/src/index.jsx | 0 .../drei-rendertexture/src/styles.css | 0 .../drei-rendertexture/src/vite-env.d.ts | 0 .../drei-rendertexture/thumbnail.webp | Bin .../drei-rendertexture/tsconfig.json | 0 .../drei-rendertexture/tsconfig.node.json | 0 .../drei-rendertexture/vite.config.ts | 0 .../ecctrl-fisheye/.prettierrc | 0 examples/ecctrl-fisheye/README.md | 9 + {demos => examples}/ecctrl-fisheye/index.html | 0 .../ecctrl-fisheye/package.json | 4 +- .../ecctrl-fisheye/pmndrs.json | 0 .../ecctrl-fisheye/public/vite.svg | 0 .../ecctrl-fisheye/sandbox.config.json | 0 .../ecctrl-fisheye/src/App.jsx | 0 .../ecctrl-fisheye/src/controls.png | Bin .../src/fantasy_game_inn2-transformed.glb | Bin .../src/ghost_w_tophat-transformed.glb | Bin .../ecctrl-fisheye/src/index.jsx | 0 .../ecctrl-fisheye/src/night.hdr | Bin .../ecctrl-fisheye/src/styles.css | 0 .../ecctrl-fisheye/src/vite-env.d.ts | 0 .../ecctrl-fisheye/thumbnail.webp | Bin .../ecctrl-fisheye/tsconfig.json | 0 .../ecctrl-fisheye/tsconfig.node.json | 0 .../ecctrl-fisheye/vite.config.ts | 0 {demos => examples}/edgesgeometry/.prettierrc | 0 examples/edgesgeometry/README.md | 9 + {demos => examples}/edgesgeometry/index.html | 0 examples/edgesgeometry/package.json | 37 + {demos => examples}/edgesgeometry/pmndrs.json | 0 .../edgesgeometry/public/vite.svg | 0 {demos => examples}/edgesgeometry/src/App.jsx | 0 .../day58_aluminium_bracket-transformed.glb | Bin .../edgesgeometry/src/index.jsx | 0 .../edgesgeometry/src/styles.css | 0 .../edgesgeometry/src/vite-env.d.ts | 0 .../edgesgeometry/thumbnail.webp | Bin .../edgesgeometry/tsconfig.json | 0 .../edgesgeometry/tsconfig.node.json | 0 .../edgesgeometry/vite.config.ts | 0 {demos => examples}/enter-portals/.prettierrc | 0 examples/enter-portals/README.md | 9 + {demos => examples}/enter-portals/index.html | 0 .../enter-portals/package.json | 4 +- {demos => examples}/enter-portals/pmndrs.json | 0 .../enter-portals/public/vite.svg | 0 .../enter-portals/sandbox.config.json | 0 {demos => examples}/enter-portals/src/App.jsx | 0 .../src/fiesta_tea-transformed.glb | Bin .../enter-portals/src/index.jsx | 0 ...of_hyuna_lees_illustration-transformed.glb | Bin ..._based_on_heathers_artwork-transformed.glb | Bin .../enter-portals/src/styles.css | 0 .../enter-portals/src/vite-env.d.ts | 0 .../enter-portals/thumbnail.webp | Bin .../enter-portals/tsconfig.json | 0 .../enter-portals/tsconfig.node.json | 0 .../enter-portals/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/pmndrs.png | Bin .../public/react.png | Bin .../public/three.png | Bin .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../envmap-ground-projection/.prettierrc | 0 examples/envmap-ground-projection/README.md | 9 + .../envmap-ground-projection/index.html | 0 .../envmap-ground-projection/package.json | 4 +- .../envmap-ground-projection/pmndrs.json | 0 .../envmap-ground-projection/public/vite.svg | 0 .../envmap-ground-projection/src/App.jsx | 0 .../envmap-ground-projection/src/Car.jsx | 0 .../envmap-ground-projection/src/index.jsx | 0 .../src/old_depot_2k.hdr | Bin .../src/porsche-transformed.glb | Bin .../envmap-ground-projection/src/styles.css | 0 .../src/vite-env.d.ts | 0 .../envmap-ground-projection/thumbnail.webp | Bin .../envmap-ground-projection/tsconfig.json | 0 .../tsconfig.node.json | 0 .../envmap-ground-projection/vite.config.ts | 0 .../faucets-select-highlight/.prettierrc | 0 examples/faucets-select-highlight/README.md | 9 + .../faucets-select-highlight/index.html | 0 .../faucets-select-highlight/package.json | 4 +- .../faucets-select-highlight/pmndrs.json | 0 .../faucets-select-highlight/public/vite.svg | 0 .../faucets-select-highlight/src/App.jsx | 0 .../src/faucet-transformed.glb | Bin .../faucets-select-highlight/src/index.jsx | 0 .../faucets-select-highlight/src/styles.css | 0 .../src/vite-env.d.ts | 0 .../faucets-select-highlight/thumbnail.webp | Bin .../faucets-select-highlight/tsconfig.json | 0 .../tsconfig.node.json | 0 .../faucets-select-highlight/vite.config.ts | 0 .../flexbox-yoga-in-webgl/.prettierrc | 0 examples/flexbox-yoga-in-webgl/README.md | 9 + .../flexbox-yoga-in-webgl/index.html | 0 .../flexbox-yoga-in-webgl/package.json | 4 +- .../flexbox-yoga-in-webgl/pmndrs.json | 0 .../public/Inter-Bold.woff | Bin .../public/Inter-Regular.woff | Bin .../public/draco-gltf/draco_decoder.js | 0 .../public/draco-gltf/draco_decoder.wasm | 0 .../public/draco-gltf/draco_wasm_wrapper.js | 0 .../flexbox-yoga-in-webgl/public/favicon.ico | Bin .../public/images/04zTfWB.jpg | Bin .../public/images/BH41NVu.jpg | Bin .../public/images/ajQ73ol.jpg | Bin .../public/images/c4cA8UN.jpg | Bin .../public/images/cAKwexj.jpg | Bin .../public/images/ellipse.svg | 0 .../public/images/fBoIJLX.jpg | Bin .../public/images/gZOmLNU.jpg | Bin .../public/images/gwuZrgo.jpg | Bin .../public/images/mbFIW1b.jpg | Bin .../public/images/mlDUVig.jpg | Bin .../flexbox-yoga-in-webgl/public/logo192.png | Bin .../flexbox-yoga-in-webgl/public/logo512.png | Bin .../public/manifest.json | 0 .../flexbox-yoga-in-webgl/public/robots.txt | 0 .../flexbox-yoga-in-webgl/public/vite.svg | 0 .../flexbox-yoga-in-webgl/sandbox.config.json | 0 .../flexbox-yoga-in-webgl/src/App.jsx | 0 .../src/components/Effects.jsx | 0 .../src/components/Geo.jsx | 0 .../src/components/Text.jsx | 2 +- .../src/components/WaterEffect.js | 0 .../src/components/geo.min.glb | Bin .../flexbox-yoga-in-webgl/src/index.jsx | 0 .../flexbox-yoga-in-webgl/src/state.js | 2 +- .../flexbox-yoga-in-webgl/src/styles.css | 0 .../flexbox-yoga-in-webgl/src/vite-env.d.ts | 0 .../flexbox-yoga-in-webgl/thumbnail.webp | Bin .../flexbox-yoga-in-webgl/tsconfig.json | 0 .../flexbox-yoga-in-webgl/tsconfig.node.json | 0 .../flexbox-yoga-in-webgl/vite.config.ts | 0 .../floating-diamonds/.prettierrc | 0 examples/floating-diamonds/README.md | 9 + .../floating-diamonds/index.html | 0 .../floating-diamonds/package.json | 4 +- .../floating-diamonds/pmndrs.json | 0 .../floating-diamonds/public/vite.svg | 0 .../floating-diamonds/src/233.jpg | Bin .../floating-diamonds/src/App.jsx | 0 .../floating-diamonds/src/dflat.glb | Bin .../floating-diamonds/src/diamond.glb | Bin .../floating-diamonds/src/index.jsx | 0 .../floating-diamonds/src/styles.css | 0 .../floating-diamonds/src/vite-env.d.ts | 0 .../floating-diamonds/thumbnail.webp | Bin .../floating-diamonds/tsconfig.json | 0 .../floating-diamonds/tsconfig.node.json | 0 .../floating-diamonds/vite.config.ts | 0 .../floating-instanced-shoes/.prettierrc | 0 examples/floating-instanced-shoes/README.md | 9 + .../floating-instanced-shoes/index.html | 0 .../floating-instanced-shoes/package.json | 4 +- .../floating-instanced-shoes/pmndrs.json | 0 .../floating-instanced-shoes/public/vite.svg | 0 .../floating-instanced-shoes/src/App.jsx | 0 .../floating-instanced-shoes/src/index.jsx | 0 .../floating-instanced-shoes/src/shoe.glb | Bin .../floating-instanced-shoes/src/store.js | 0 .../floating-instanced-shoes/src/style.css | 0 .../src/vite-env.d.ts | 0 .../floating-instanced-shoes/thumbnail.webp | Bin .../floating-instanced-shoes/tsconfig.json | 0 .../tsconfig.node.json | 0 .../floating-instanced-shoes/vite.config.ts | 0 .../floating-laptop/.prettierrc | 0 examples/floating-laptop/README.md | 9 + .../floating-laptop/index.html | 0 .../floating-laptop/package.json | 4 +- .../floating-laptop/pmndrs.json | 0 .../floating-laptop/public/vite.svg | 0 .../floating-laptop/sandbox.config.json | 0 .../floating-laptop/src/App.jsx | 0 .../floating-laptop/src/index.jsx | 0 .../floating-laptop/src/mac-draco.glb | Bin .../floating-laptop/src/styles.css | 0 .../floating-laptop/src/vite-env.d.ts | 0 .../floating-laptop/thumbnail.webp | Bin .../floating-laptop/tsconfig.json | 0 .../floating-laptop/tsconfig.node.json | 0 .../floating-laptop/vite.config.ts | 0 {demos => examples}/flow-shield/.prettierrc | 0 examples/flow-shield/README.md | 9 + {demos => examples}/flow-shield/index.html | 0 {demos => examples}/flow-shield/package.json | 4 +- {demos => examples}/flow-shield/pmndrs.json | 0 .../flow-shield/public/droideka-5mb.glb | Bin .../flow-shield/public/vite.svg | 0 {demos => examples}/flow-shield/src/App.jsx | 0 .../components/ForceShield/consts/index.ts | 0 .../src/components/ForceShield/index.tsx | 0 .../components/ForceShield/shaderMaterial.ts | 0 .../ForceShield/useShieldControls.ts | 0 .../overlay/LoadingOverlay.module.css | 0 .../src/components/overlay/LoadingOverlay.tsx | 0 .../overlay/OverlayButtons.module.css | 0 .../src/components/overlay/OverlayButtons.tsx | 0 .../overlay/OverlayHeader.module.css | 0 .../src/components/overlay/OverlayHeader.tsx | 0 .../components/overlay/UIOverlay.module.css | 0 .../src/components/overlay/UIOverlay.tsx | 0 .../src/components/playground/Droideka.tsx | 0 .../src/components/playground/GlbModel.tsx | 0 .../src/components/playground/GridFloor.tsx | 0 .../components/playground/PostProcessing.tsx | 0 .../src/components/playground/SceneCamera.tsx | 0 .../components/playground/SceneContent.tsx | 0 .../playground/SceneEnvironment.tsx | 0 .../components/playground/SceneLighting.tsx | 0 .../flow-shield/src/components/theme/theme.ts | 0 .../flow-shield/src/hooks/useIsMobile.ts | 0 {demos => examples}/flow-shield/src/index.jsx | 0 .../src/react-three-fiber-jsx.d.ts | 0 .../flow-shield/src/styles.css | 0 .../flow-shield/src/vite-env.d.ts | 0 {demos => examples}/flow-shield/thumbnail.jpg | Bin .../flow-shield/thumbnail.webp | Bin {demos => examples}/flow-shield/tsconfig.json | 0 .../flow-shield/tsconfig.node.json | 0 .../flow-shield/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../flying-bananas/.prettierrc | 0 examples/flying-bananas/README.md | 9 + {demos => examples}/flying-bananas/index.html | 0 .../flying-bananas/package.json | 4 +- .../flying-bananas/pmndrs.json | 0 .../flying-bananas/public/vite.svg | 0 .../flying-bananas/sandbox.config.json | 0 .../flying-bananas/src/AyerPoster-Medium.ttf | Bin .../flying-bananas/src/AyerPoster-Medium.woff | Bin .../src/AyerPoster-Medium.woff2 | Bin .../flying-bananas/src/Bananas.jsx | 0 .../src/banana-v1-transformed.glb | Bin .../src/banana-v2-transformed.glb | Bin .../flying-bananas/src/index.jsx | 0 .../flying-bananas/src/layout/Overlay.jsx | 0 .../src/layout/VelvetBanana.jsx | 0 .../flying-bananas/src/layout/styles.js | 0 .../flying-bananas/src/styles.css | 0 .../flying-bananas/src/vite-env.d.ts | 0 .../flying-bananas/thumbnail.webp | Bin .../flying-bananas/tsconfig.json | 0 .../flying-bananas/tsconfig.node.json | 0 .../flying-bananas/vite.config.ts | 0 .../frosted-glass/.codesandbox/workspace.json | 0 {demos => examples}/frosted-glass/.prettierrc | 0 examples/frosted-glass/README.md | 9 + {demos => examples}/frosted-glass/index.html | 0 .../frosted-glass/package.json | 4 +- {demos => examples}/frosted-glass/pmndrs.json | 0 .../frosted-glass/public/vite.svg | 0 {demos => examples}/frosted-glass/src/App.jsx | 0 .../frosted-glass/src/Overlay.jsx | 0 .../frosted-glass/src/index.jsx | 0 .../nike_air_zoom_pegasus_36-transformed.glb | Bin .../frosted-glass/src/store.js | 0 .../frosted-glass/src/styles.css | 0 .../frosted-glass/src/vite-env.d.ts | 0 .../frosted-glass/thumbnail.webp | Bin .../frosted-glass/tsconfig.json | 0 .../frosted-glass/tsconfig.node.json | 0 .../frosted-glass/vite.config.ts | 0 {demos => examples}/gatsby-stars/.prettierrc | 0 examples/gatsby-stars/README.md | 9 + {demos => examples}/gatsby-stars/index.html | 0 {demos => examples}/gatsby-stars/package.json | 4 +- {demos => examples}/gatsby-stars/pmndrs.json | 0 .../gatsby-stars/public/Ki-Medium.ttf | Bin .../gatsby-stars/public/vite.svg | 0 {demos => examples}/gatsby-stars/src/App.jsx | 0 .../gatsby-stars/src/index.jsx | 0 .../gatsby-stars/src/styles.css | 0 .../gatsby-stars/src/vite-env.d.ts | 0 .../gatsby-stars/thumbnail.webp | Bin .../gatsby-stars/tsconfig.json | 0 .../gatsby-stars/tsconfig.node.json | 0 .../gatsby-stars/vite.config.ts | 0 {demos => examples}/glass-flower/.prettierrc | 0 examples/glass-flower/README.md | 9 + {demos => examples}/glass-flower/index.html | 0 {demos => examples}/glass-flower/package.json | 4 +- {demos => examples}/glass-flower/pmndrs.json | 0 .../glass-flower/public/vite.svg | 0 {demos => examples}/glass-flower/src/App.jsx | 0 .../glass-flower/src/F-6800-STD.cube | 0 .../glass-flower/src/flower-transformed.glb | Bin .../glass-flower/src/index.jsx | 0 .../glass-flower/src/styles.css | 0 .../glass-flower/src/vite-env.d.ts | 0 .../glass-flower/thumbnail.webp | Bin .../glass-flower/tsconfig.json | 0 .../glass-flower/tsconfig.node.json | 0 .../glass-flower/vite.config.ts | 0 .../gltf-animations-re-used/.prettierrc | 0 examples/gltf-animations-re-used/README.md | 9 + .../gltf-animations-re-used/index.html | 0 .../gltf-animations-re-used/package.json | 4 +- .../gltf-animations-re-used/pmndrs.json | 0 .../gltf-animations-re-used/public/vite.svg | 0 .../gltf-animations-re-used/src/App.jsx | 0 .../gltf-animations-re-used/src/Model.jsx | 0 .../gltf-animations-re-used/src/index.jsx | 0 .../gltf-animations-re-used/src/stacy.glb | Bin .../gltf-animations-re-used/src/stacy.jpg | Bin .../gltf-animations-re-used/src/styles.css | 0 .../gltf-animations-re-used/src/vite-env.d.ts | 0 .../gltf-animations-re-used/thumbnail.webp | Bin .../gltf-animations-re-used/tsconfig.json | 0 .../tsconfig.node.json | 0 .../gltf-animations-re-used/vite.config.ts | 0 .../.prettierrc | 0 .../gltf-animations-tied-to-scroll/README.md | 9 + .../gltf-animations-tied-to-scroll/index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/index.jsx | 0 .../src/jump-transformed.glb | Bin .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../gltf-animations/.prettierrc | 0 examples/gltf-animations/README.md | 9 + .../gltf-animations/index.html | 0 examples/gltf-animations/package.json | 37 + .../gltf-animations/pmndrs.json | 0 .../gltf-animations/public/vite.svg | 0 .../gltf-animations/src/App.jsx | 0 .../gltf-animations/src/Model.jsx | 0 .../gltf-animations/src/index.jsx | 0 .../gltf-animations/src/stacy.glb | Bin .../gltf-animations/src/stacy.jpg | Bin .../gltf-animations/src/styles.css | 0 .../gltf-animations/src/vite-env.d.ts | 0 .../gltf-animations/thumbnail.webp | Bin .../gltf-animations/tsconfig.json | 0 .../gltf-animations/tsconfig.node.json | 0 .../gltf-animations/vite.config.ts | 0 .../gltfjsx-400kb-drone/.prettierrc | 0 examples/gltfjsx-400kb-drone/README.md | 9 + .../gltfjsx-400kb-drone/index.html | 0 .../gltfjsx-400kb-drone/package.json | 4 +- .../gltfjsx-400kb-drone/pmndrs.json | 0 .../gltfjsx-400kb-drone/public/vite.svg | 0 .../gltfjsx-400kb-drone/src/App.jsx | 0 .../gltfjsx-400kb-drone/src/index.jsx | 0 .../gltfjsx-400kb-drone/src/meslo.woff2 | Bin ...amdo_industrial_divinities-transformed.glb | Bin .../gltfjsx-400kb-drone/src/styles.css | 0 .../gltfjsx-400kb-drone/src/vite-env.d.ts | 0 .../gltfjsx-400kb-drone/thumbnail.webp | Bin .../gltfjsx-400kb-drone/tsconfig.json | 0 .../gltfjsx-400kb-drone/tsconfig.node.json | 0 .../gltfjsx-400kb-drone/vite.config.ts | 0 .../gpgpu-curl-noise-dof/.prettierrc | 0 examples/gpgpu-curl-noise-dof/README.md | 9 + .../gpgpu-curl-noise-dof/index.html | 0 .../gpgpu-curl-noise-dof/package.json | 4 +- .../gpgpu-curl-noise-dof/pmndrs.json | 0 .../gpgpu-curl-noise-dof/public/vite.svg | 0 .../gpgpu-curl-noise-dof/sandbox.config.json | 0 .../gpgpu-curl-noise-dof/src/App.jsx | 0 .../gpgpu-curl-noise-dof/src/Particles.jsx | 0 .../gpgpu-curl-noise-dof/src/index.jsx | 0 .../src/shaders/dofPointsMaterial.js | 0 .../src/shaders/simulationMaterial.js | 0 .../gpgpu-curl-noise-dof/src/styles.css | 0 .../gpgpu-curl-noise-dof/src/vite-env.d.ts | 0 .../gpgpu-curl-noise-dof/thumbnail.webp | Bin .../gpgpu-curl-noise-dof/tsconfig.json | 0 .../gpgpu-curl-noise-dof/tsconfig.node.json | 0 .../gpgpu-curl-noise-dof/vite.config.ts | 0 {demos => examples}/grass-shader/.prettierrc | 0 examples/grass-shader/README.md | 9 + {demos => examples}/grass-shader/index.html | 0 {demos => examples}/grass-shader/package.json | 4 +- {demos => examples}/grass-shader/pmndrs.json | 0 .../grass-shader/public/vite.svg | 0 .../grass-shader/sandbox.config.json | 0 {demos => examples}/grass-shader/src/App.jsx | 0 .../grass-shader/src/Grass.jsx | 0 .../grass-shader/src/GrassMaterial.js | 0 .../grass-shader/src/index.jsx | 0 .../src/resources/blade_alpha.jpg | Bin .../src/resources/blade_diffuse.jpg | Bin .../grass-shader/src/styles.css | 0 .../grass-shader/src/vite-env.d.ts | 0 .../grass-shader/thumbnail.webp | Bin .../grass-shader/tsconfig.json | 0 .../grass-shader/tsconfig.node.json | 0 .../grass-shader/vite.config.ts | 0 .../.prettierrc | 0 .../ground-projected-envmaps-lamina/README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/911-transformed.glb | Bin .../public/cubicle-99.CUBE | 0 .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../sandbox.config.json | 0 .../src/App.jsx | 0 .../src/Inter-Bold.woff | Bin .../src/Overlay.jsx | 0 .../src/SurfaceImperfections003_1K_Normal.jpg | Bin .../src/SurfaceImperfections003_1K_var1.jpg | Bin .../src/carla-draco.glb | Bin .../src/drei.mp4 | Bin .../src/index.jsx | 0 .../src/model.glb | Bin .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../hi-key-bubbles/.prettierrc | 0 examples/hi-key-bubbles/README.md | 9 + {demos => examples}/hi-key-bubbles/index.html | 0 .../hi-key-bubbles}/package.json | 4 +- .../hi-key-bubbles/pmndrs.json | 0 .../hi-key-bubbles/public/Inter_UI-bold.json | 0 .../hi-key-bubbles/public/vite.svg | 0 .../hi-key-bubbles/sandbox.config.json | 0 .../hi-key-bubbles/src/App.jsx | 0 .../hi-key-bubbles/src/index.jsx | 0 .../hi-key-bubbles/src/styles.css | 0 .../hi-key-bubbles/src/vite-env.d.ts | 0 .../hi-key-bubbles/thumbnail.webp | Bin .../hi-key-bubbles/tsconfig.json | 0 .../hi-key-bubbles/tsconfig.node.json | 0 .../hi-key-bubbles/vite.config.ts | 0 .../horizontal-tiles/.prettierrc | 0 examples/horizontal-tiles/README.md | 9 + .../horizontal-tiles/index.html | 0 .../horizontal-tiles/package.json | 4 +- .../horizontal-tiles/pmndrs.json | 0 .../horizontal-tiles/public/1.jpg | Bin .../horizontal-tiles/public/10.jpg | Bin .../horizontal-tiles/public/11.jpg | Bin .../horizontal-tiles/public/12.jpg | Bin .../horizontal-tiles/public/2.jpg | Bin .../horizontal-tiles/public/3.jpg | Bin .../horizontal-tiles/public/4.jpg | Bin .../horizontal-tiles/public/5.jpg | Bin .../horizontal-tiles/public/6.jpg | Bin .../horizontal-tiles/public/7.jpg | Bin .../horizontal-tiles/public/8.jpg | Bin .../horizontal-tiles/public/9.jpg | Bin .../public/Inter-UI-Medium.ttf | Bin .../horizontal-tiles/public/vite.svg | 0 .../horizontal-tiles/src/App.jsx | 0 .../horizontal-tiles/src/index.jsx | 0 .../horizontal-tiles/src/styles.css | 0 .../horizontal-tiles/src/vite-env.d.ts | 0 .../horizontal-tiles/thumbnail.webp | Bin .../horizontal-tiles/tsconfig.json | 0 .../horizontal-tiles/tsconfig.node.json | 0 .../horizontal-tiles/vite.config.ts | 0 .../html-annotations/.prettierrc | 0 examples/html-annotations/README.md | 9 + .../html-annotations/index.html | 0 examples/html-annotations/package.json | 37 + .../html-annotations/pmndrs.json | 0 .../photo-1502765839562-c2fe539b56db.jpeg | Bin .../photo-1520107128464-da450679f704.jpeg | Bin .../photo-1527201987695-67c06571957e.jpeg | Bin .../photo-1527203561188-dae1bc1a417f.jpeg | Bin .../photo-1574318465229-e1e822f604fc.jpeg | Bin .../html-annotations/public/vite.svg | 0 .../html-annotations/src/index.jsx | 0 .../html-annotations/src/styles.css | 0 .../html-annotations/src/vite-env.d.ts | 0 .../html-annotations/thumbnail.webp | Bin .../html-annotations/tsconfig.json | 0 .../html-annotations/tsconfig.node.json | 0 .../html-annotations/vite.config.ts | 0 .../html-input-fields/.prettierrc | 0 examples/html-input-fields/README.md | 9 + .../html-input-fields/index.html | 0 .../html-input-fields/package.json | 4 +- .../html-input-fields/pmndrs.json | 0 .../public/Inter-Regular.woff | Bin .../html-input-fields/public/vite.svg | 0 .../html-input-fields/src/App.jsx | 2 +- .../html-input-fields/src/ControlledInput.jsx | 0 .../html-input-fields/src/assets/bunny.gltf | 0 .../html-input-fields/src/index.jsx | 0 .../html-input-fields/src/styles.css | 0 .../html-input-fields/src/vite-env.d.ts | 0 .../html-input-fields/thumbnail.webp | Bin .../html-input-fields/tsconfig.json | 0 .../html-input-fields/tsconfig.node.json | 0 .../html-input-fields/vite.config.ts | 0 {demos => examples}/html-markers/.gitignore | 0 {demos => examples}/html-markers/.prettierrc | 0 examples/html-markers/README.md | 9 + {demos => examples}/html-markers/index.html | 0 {demos => examples}/html-markers/package.json | 4 +- {demos => examples}/html-markers/pmndrs.json | 0 .../html-markers/public/vite.svg | 0 {demos => examples}/html-markers/src/App.jsx | 0 .../html-markers/src/earth.gltf | 0 .../html-markers/src/index.jsx | 0 .../html-markers/src/style.css | 0 .../html-markers/src/vite-env.d.ts | 0 .../html-markers/thumbnail.webp | Bin .../html-markers/tsconfig.json | 0 .../html-markers/tsconfig.node.json | 0 .../html-markers/vite.config.ts | 0 {demos => examples}/image-gallery/.prettierrc | 0 .../image-gallery}/README.md | 8 +- {demos => examples}/image-gallery/index.html | 0 .../image-gallery/package.json | 4 +- {demos => examples}/image-gallery/pmndrs.json | 0 .../image-gallery/public/vite.svg | 0 {demos => examples}/image-gallery/src/App.jsx | 0 .../image-gallery/src/index.jsx | 0 .../image-gallery/src/styles.css | 0 .../image-gallery/src/vite-env.d.ts | 0 .../image-gallery/thumbnail.webp | Bin .../image-gallery/tsconfig.json | 0 .../image-gallery/tsconfig.node.json | 0 .../image-gallery/vite.config.ts | 0 .../infinite-scroll/.prettierrc | 0 examples/infinite-scroll/README.md | 9 + .../infinite-scroll/index.html | 0 .../infinite-scroll/package.json | 4 +- .../infinite-scroll/pmndrs.json | 0 .../public/Inter-UI-Medium.ttf | Bin .../infinite-scroll/public/ScrollControls.tsx | 0 .../infinite-scroll/public/vite.svg | 0 .../infinite-scroll/src/App.jsx | 0 .../infinite-scroll/src/ScrollControls.tsx | 0 .../infinite-scroll/src/img1.jpg | Bin .../infinite-scroll/src/img2.jpg | Bin .../infinite-scroll/src/img3.jpg | Bin .../infinite-scroll/src/img4.jpg | Bin .../infinite-scroll/src/img5.jpg | Bin .../infinite-scroll/src/img6.jpg | Bin .../infinite-scroll/src/img7.jpg | Bin .../infinite-scroll/src/img8.jpg | Bin .../infinite-scroll/src/index.jsx | 0 .../infinite-scroll/src/styles.css | 0 .../infinite-scroll/src/trip1.jpg | Bin .../infinite-scroll/src/trip2.jpg | Bin .../infinite-scroll/src/trip3.jpg | Bin .../infinite-scroll/src/trip4.jpg | Bin .../infinite-scroll/src/vite-env.d.ts | 0 .../infinite-scroll/thumbnail.webp | Bin .../infinite-scroll/tsconfig.json | 0 .../infinite-scroll/tsconfig.node.json | 0 .../infinite-scroll/vite.config.ts | 0 .../instanced-particles-effects/.prettierrc | 0 .../instanced-particles-effects/README.md | 9 + .../instanced-particles-effects/index.html | 0 .../instanced-particles-effects/package.json | 37 + .../instanced-particles-effects/pmndrs.json | 0 .../public/vite.svg | 0 .../sandbox.config.json | 0 .../instanced-particles-effects/src/App.jsx | 0 .../src/cubicle.CUBE | 0 .../instanced-particles-effects/src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../instanced-particles-effects/tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../instanced-vertex-colors/.prettierrc | 0 examples/instanced-vertex-colors/README.md | 9 + .../instanced-vertex-colors/index.html | 0 .../instanced-vertex-colors/package.json | 4 +- .../instanced-vertex-colors/pmndrs.json | 0 .../instanced-vertex-colors/public/vite.svg | 0 .../instanced-vertex-colors/src/App.jsx | 0 .../instanced-vertex-colors/src/index.jsx | 0 .../instanced-vertex-colors/src/styles.css | 0 .../instanced-vertex-colors/src/vite-env.d.ts | 0 .../instanced-vertex-colors/thumbnail.webp | Bin .../instanced-vertex-colors/tsconfig.json | 0 .../tsconfig.node.json | 0 .../instanced-vertex-colors/vite.config.ts | 0 {demos => examples}/instances/.prettierrc | 0 examples/instances/README.md | 9 + {demos => examples}/instances/index.html | 0 {demos => examples}/instances/package.json | 4 +- {demos => examples}/instances/pmndrs.json | 0 {demos => examples}/instances/public/vite.svg | 0 {demos => examples}/instances/src/App.jsx | 0 {demos => examples}/instances/src/index.jsx | 0 {demos => examples}/instances/src/styles.css | 0 .../instances/src/vite-env.d.ts | 0 {demos => examples}/instances/thumbnail.webp | Bin {demos => examples}/instances/tsconfig.json | 0 .../instances/tsconfig.node.json | 0 {demos => examples}/instances/vite.config.ts | 0 .../inter-epoxy-resin/.prettierrc | 0 examples/inter-epoxy-resin/README.md | 9 + .../inter-epoxy-resin/index.html | 0 .../inter-epoxy-resin/package.json | 4 +- .../inter-epoxy-resin/pmndrs.json | 0 .../inter-epoxy-resin/public/vite.svg | 0 .../inter-epoxy-resin/src/App.jsx | 0 .../src/Inter_Medium_Regular.json | 0 .../inter-epoxy-resin/src/index.jsx | 0 .../inter-epoxy-resin/src/styles.css | 0 .../inter-epoxy-resin/src/vite-env.d.ts | 0 .../inter-epoxy-resin/thumbnail.webp | Bin .../inter-epoxy-resin/tsconfig.json | 0 .../inter-epoxy-resin/tsconfig.node.json | 0 .../inter-epoxy-resin/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/scroll.splinecode | Bin .../public/vite.svg | 0 .../sandbox.config.json | 0 .../src/App.jsx | 0 .../src/Embed.jsx | 2 +- .../src/assets/cloud-illustration.svg | 0 .../src/assets/logo.svg | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../inverted-stencil-buffer/.prettierrc | 0 examples/inverted-stencil-buffer/README.md | 9 + .../inverted-stencil-buffer/index.html | 0 .../inverted-stencil-buffer/package.json | 4 +- .../inverted-stencil-buffer/pmndrs.json | 0 .../inverted-stencil-buffer/public/vite.svg | 0 .../inverted-stencil-buffer/src/App.jsx | 0 .../inverted-stencil-buffer/src/index.jsx | 0 .../src/react-transformed.glb | Bin .../inverted-stencil-buffer/src/styles.css | 0 .../inverted-stencil-buffer/src/vite-env.d.ts | 0 .../inverted-stencil-buffer/thumbnail.webp | Bin .../inverted-stencil-buffer/tsconfig.json | 0 .../tsconfig.node.json | 0 .../inverted-stencil-buffer/vite.config.ts | 0 .../iridescent-decals/.prettierrc | 0 examples/iridescent-decals/README.md | 9 + .../iridescent-decals/index.html | 0 examples/iridescent-decals/package.json | 37 + .../iridescent-decals/pmndrs.json | 0 .../iridescent-decals/public/vite.svg | 0 .../iridescent-decals/src/App.jsx | 0 .../iridescent-decals/src/D64aIWkXoAAFI08.png | Bin .../src/Sticjer_1024x1024@2x.png | Bin .../src/Twemoji_1f600.svg.png | Bin .../iridescent-decals/src/assets/bunny.gltf | 0 .../iridescent-decals/src/index.jsx | 0 .../iridescent-decals/src/styles.css | 0 .../iridescent-decals/src/three.png | Bin .../iridescent-decals/src/vite-env.d.ts | 0 .../iridescent-decals/thumbnail.webp | Bin .../iridescent-decals/tsconfig.json | 0 .../iridescent-decals/tsconfig.node.json | 0 .../iridescent-decals/vite.config.ts | 0 {demos => examples}/lamina-1x/.prettierrc | 0 examples/lamina-1x/README.md | 9 + {demos => examples}/lamina-1x/index.html | 0 {demos => examples}/lamina-1x/package.json | 4 +- {demos => examples}/lamina-1x/pmndrs.json | 0 {demos => examples}/lamina-1x/public/vite.svg | 0 {demos => examples}/lamina-1x/src/App.jsx | 0 {demos => examples}/lamina-1x/src/cursor.glb | Bin {demos => examples}/lamina-1x/src/index.jsx | 0 {demos => examples}/lamina-1x/src/styles.css | 0 .../lamina-1x/src/vite-env.d.ts | 0 {demos => examples}/lamina-1x/thumbnail.webp | Bin {demos => examples}/lamina-1x/tsconfig.json | 0 .../lamina-1x/tsconfig.node.json | 0 {demos => examples}/lamina-1x/vite.config.ts | 0 {demos => examples}/landing-page/.prettierrc | 0 examples/landing-page/README.md | 9 + {demos => examples}/landing-page/index.html | 0 {demos => examples}/landing-page/package.json | 4 +- {demos => examples}/landing-page/pmndrs.json | 0 .../landing-page/public/vite.svg | 0 {demos => examples}/landing-page/src/App.jsx | 0 .../landing-page/src/Thunder-BlackLC.ttf | 0 .../landing-page/src/Thunder-BlackLC.woff | 0 .../landing-page/src/Thunder-BlackLC.woff2 | 0 .../landing-page/src/Thunder-ThinLC.ttf | 0 .../landing-page/src/Thunder-ThinLC.woff | 0 .../landing-page/src/Thunder-ThinLC.woff2 | 0 .../landing-page/src/Underlay.jsx | 0 .../landing-page/src/index.jsx | 0 .../landing-page/src/shoe-draco.glb | Bin .../landing-page/src/styles.css | 0 .../landing-page/src/vite-env.d.ts | 0 .../landing-page/thumbnail.webp | Bin .../landing-page/tsconfig.json | 0 .../landing-page/tsconfig.node.json | 0 .../landing-page/vite.config.ts | 0 .../learn-with-jason/.prettierrc | 0 examples/learn-with-jason/README.md | 9 + .../learn-with-jason/index.html | 0 .../learn-with-jason/package.json | 4 +- .../learn-with-jason/pmndrs.json | 0 .../learn-with-jason/public/favicon.ico | Bin .../learn-with-jason/public/logo192.png | Bin .../learn-with-jason/public/logo512.png | Bin .../learn-with-jason/public/manifest.json | 0 .../learn-with-jason/public/robots.txt | 0 .../learn-with-jason/public/vite.svg | 0 .../learn-with-jason/src/App.jsx | 0 .../learn-with-jason/src/index.jsx | 0 .../learn-with-jason/src/scene.glb | Bin .../learn-with-jason/src/styles.css | 0 .../learn-with-jason/src/vite-env.d.ts | 0 .../learn-with-jason/thumbnail.webp | Bin .../learn-with-jason/tsconfig.json | 0 .../learn-with-jason/tsconfig.node.json | 0 .../learn-with-jason/vite.config.ts | 0 {demos => examples}/lulaby-city/.prettierrc | 0 examples/lulaby-city/README.md | 9 + {demos => examples}/lulaby-city/index.html | 0 {demos => examples}/lulaby-city/package.json | 4 +- {demos => examples}/lulaby-city/pmndrs.json | 0 .../lulaby-city/public/favicon.ico | Bin .../lulaby-city/public/logo192.png | Bin .../lulaby-city/public/logo512.png | Bin .../lulaby-city/public/manifest.json | 0 .../lulaby-city/public/robots.txt | 0 .../lulaby-city/public/vite.svg | 0 .../lulaby-city/sandbox.config.json | 0 {demos => examples}/lulaby-city/src/App.jsx | 0 {demos => examples}/lulaby-city/src/Intro.jsx | 0 {demos => examples}/lulaby-city/src/index.jsx | 0 .../lulaby-city/src/scene-draco.glb | Bin .../lulaby-city/src/styles.css | 0 .../lulaby-city/src/vite-env.d.ts | 0 .../lulaby-city/src/zapsplat_icecream.mp3 | Bin .../lulaby-city/thumbnail.webp | Bin {demos => examples}/lulaby-city/tsconfig.json | 0 .../lulaby-city/tsconfig.node.json | 0 .../lulaby-city/vite.config.ts | 0 .../lusion-connectors/.prettierrc | 0 examples/lusion-connectors/README.md | 9 + .../lusion-connectors/index.html | 0 .../lusion-connectors/package.json | 4 +- .../lusion-connectors/pmndrs.json | 0 .../lusion-connectors/public/vite.svg | 0 .../lusion-connectors/src/App.jsx | 0 .../lusion-connectors/src/c-transformed.glb | Bin .../lusion-connectors/src/index.jsx | 0 .../lusion-connectors/src/styles.css | 0 .../lusion-connectors/src/vite-env.d.ts | 0 .../lusion-connectors/thumbnail.webp | Bin .../lusion-connectors/tsconfig.json | 0 .../lusion-connectors/tsconfig.node.json | 0 .../lusion-connectors/vite.config.ts | 0 {demos => examples}/magic-box/.prettierrc | 0 examples/magic-box/README.md | 9 + {demos => examples}/magic-box/index.html | 0 .../magic-box}/package.json | 4 +- {demos => examples}/magic-box/pmndrs.json | 0 {demos => examples}/magic-box/public/vite.svg | 0 .../magic-box/sandbox.config.json | 0 {demos => examples}/magic-box/src/App.jsx | 0 .../magic-box/src/aobox-transformed.glb | Bin {demos => examples}/magic-box/src/index.jsx | 0 {demos => examples}/magic-box/src/styles.css | 0 .../magic-box/src/vite-env.d.ts | 0 {demos => examples}/magic-box/thumbnail.webp | Bin {demos => examples}/magic-box/tsconfig.json | 0 .../magic-box/tsconfig.node.json | 0 {demos => examples}/magic-box/vite.config.ts | 0 .../merged-instance/.prettierrc | 0 examples/merged-instance/README.md | 9 + .../merged-instance/index.html | 0 examples/merged-instance/package.json | 37 + .../merged-instance/pmndrs.json | 0 .../merged-instance/public/vite.svg | 0 .../merged-instance/src/App.jsx | 0 .../merged-instance/src/Model.jsx | 0 .../merged-instance/src/index.jsx | 0 .../merged-instance/src/scene-draco.glb | Bin .../merged-instance/src/styles.css | 0 .../merged-instance/src/vite-env.d.ts | 0 .../merged-instance/thumbnail.webp | Bin .../merged-instance/tsconfig.json | 0 .../merged-instance/tsconfig.node.json | 0 .../merged-instance/vite.config.ts | 0 {demos => examples}/minecraft/.prettierrc | 0 examples/minecraft/README.md | 9 + {demos => examples}/minecraft/index.html | 0 {demos => examples}/minecraft/package.json | 4 +- {demos => examples}/minecraft/pmndrs.json | 0 .../minecraft/public/favicon.ico | Bin .../minecraft/public/logo192.png | Bin .../minecraft/public/logo512.png | Bin .../minecraft/public/manifest.json | 0 .../minecraft/public/robots.txt | 0 {demos => examples}/minecraft/public/vite.svg | 0 .../minecraft/sandbox.config.json | 0 {demos => examples}/minecraft/src/App.jsx | 2 +- {demos => examples}/minecraft/src/Axe.jsx | 0 {demos => examples}/minecraft/src/Cube.jsx | 0 {demos => examples}/minecraft/src/Ground.jsx | 0 {demos => examples}/minecraft/src/Player.jsx | 0 {demos => examples}/minecraft/src/axe.glb | Bin {demos => examples}/minecraft/src/dirt.jpg | Bin {demos => examples}/minecraft/src/grass.jpg | Bin {demos => examples}/minecraft/src/index.jsx | 0 {demos => examples}/minecraft/src/styles.css | 0 .../minecraft/src/vite-env.d.ts | 0 {demos => examples}/minecraft/thumbnail.webp | Bin {demos => examples}/minecraft/tsconfig.json | 0 .../minecraft/tsconfig.node.json | 0 {demos => examples}/minecraft/vite.config.ts | 0 .../mixing-controls/.prettierrc | 0 .../mixing-controls}/README.md | 8 +- .../mixing-controls/index.html | 0 .../mixing-controls/package.json | 4 +- .../mixing-controls/pmndrs.json | 0 .../mixing-controls/public/vite.svg | 0 .../mixing-controls/src/App.jsx | 0 .../mixing-controls/src/index.jsx | 0 .../mixing-controls/src/styles.css | 0 .../mixing-controls/src/vite-env.d.ts | 0 .../mixing-controls/thumbnail.webp | Bin .../mixing-controls/tsconfig.json | 0 .../mixing-controls/tsconfig.node.json | 0 .../mixing-controls/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../sandbox.config.json | 0 .../src/App.jsx | 0 .../src/HeroPage.jsx | 4 +- .../src/assets/logo.svg | 0 .../src/index.jsx | 0 .../src/mac-draco.glb | Bin .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../mixing-html-and-webgl/.prettierrc | 0 examples/mixing-html-and-webgl/README.md | 9 + .../mixing-html-and-webgl/index.html | 0 .../mixing-html-and-webgl/package.json | 4 +- .../mixing-html-and-webgl/pmndrs.json | 0 .../mixing-html-and-webgl/public/vite.svg | 0 .../mixing-html-and-webgl/src/App.jsx | 0 .../mixing-html-and-webgl/src/index.jsx | 0 .../mixing-html-and-webgl/src/styles.css | 0 .../mixing-html-and-webgl/src/vite-env.d.ts | 0 .../mixing-html-and-webgl/thumbnail.webp | Bin .../mixing-html-and-webgl/tsconfig.json | 0 .../mixing-html-and-webgl/tsconfig.node.json | 0 .../mixing-html-and-webgl/vite.config.ts | 0 {demos => examples}/moksha/.prettierrc | 0 {demos/cards => examples/moksha}/README.md | 8 +- {demos => examples}/moksha/index.html | 0 {demos => examples}/moksha/package.json | 4 +- {demos => examples}/moksha/pmndrs.json | 0 {demos => examples}/moksha/public/vite.svg | 0 .../moksha/sandbox.config.json | 0 {demos => examples}/moksha/src/blocks.jsx | 0 .../moksha/src/components/CustomMaterial.js | 0 .../moksha/src/components/MOONGET_Heavy.blob | 0 .../moksha/src/components/Plane.jsx | 0 .../moksha/src/components/Text.jsx | 0 .../moksha/src/diamonds/BackfaceMaterial.js | 0 .../moksha/src/diamonds/Diamonds.jsx | 0 .../moksha/src/diamonds/RefractionMaterial.js | 0 .../moksha/src/diamonds/diamond.glb | Bin {demos => examples}/moksha/src/index.jsx | 0 {demos => examples}/moksha/src/ph1.jpg | Bin {demos => examples}/moksha/src/ph3.jpg | Bin .../src/photo-1515036551567-bf1198cccc35.jpeg | Bin .../src/photo-1519608487953-e999c86e7455.jpeg | Bin .../src/photo-1533577116850-9cc66cad8a9b.jpeg | Bin .../src/photo-1548191265-cc70d3d45ba1.jpeg | Bin {demos => examples}/moksha/src/store.js | 0 {demos => examples}/moksha/src/styles.css | 0 {demos => examples}/moksha/src/vite-env.d.ts | 0 {demos => examples}/moksha/thumbnail.webp | Bin {demos => examples}/moksha/tsconfig.json | 0 {demos => examples}/moksha/tsconfig.node.json | 0 {demos => examples}/moksha/vite.config.ts | 0 {demos => examples}/monitors/.prettierrc | 0 examples/monitors/README.md | 9 + {demos => examples}/monitors/index.html | 0 {demos => examples}/monitors/package.json | 4 +- {demos => examples}/monitors/pmndrs.json | 0 {demos => examples}/monitors/public/vite.svg | 0 {demos => examples}/monitors/src/App.jsx | 0 .../monitors/src/Computers.jsx | 0 .../monitors/src/Inter-Medium.woff | Bin .../monitors/src/SpinningBox.jsx | 0 .../monitors/src/computers_1-transformed.glb | Bin {demos => examples}/monitors/src/index.jsx | 0 {demos => examples}/monitors/src/styles.css | 0 .../monitors/src/vite-env.d.ts | 0 {demos => examples}/monitors/thumbnail.webp | Bin {demos => examples}/monitors/tsconfig.json | 0 .../monitors/tsconfig.node.json | 0 {demos => examples}/monitors/vite.config.ts | 0 .../motionpathcontrols/.prettierrc | 0 examples/motionpathcontrols/README.md | 9 + .../motionpathcontrols/index.html | 0 .../motionpathcontrols}/package.json | 20 +- .../motionpathcontrols/pmndrs.json | 0 .../motionpathcontrols/public/vite.svg | 0 .../motionpathcontrols/src/App.jsx | 0 .../src/Sticjer_1024x1024@2x.png | Bin .../src/Sticjer_1024x1024@2x_invert.png | Bin .../motionpathcontrols/src/curves.jsx | 0 .../motionpathcontrols/src/index.jsx | 0 .../src/sony_cinema_camera-transformed.glb | Bin .../motionpathcontrols/src/styles.css | 0 .../motionpathcontrols/src/vite-env.d.ts | 0 .../motionpathcontrols/thumbnail.webp | Bin .../motionpathcontrols/tsconfig.json | 0 .../motionpathcontrols/tsconfig.node.json | 0 .../motionpathcontrols/vite.config.ts | 0 .../mount-transitions/.prettierrc | 0 examples/mount-transitions/README.md | 9 + .../mount-transitions/index.html | 0 .../mount-transitions/package.json | 4 +- .../mount-transitions/pmndrs.json | 0 .../mount-transitions/public/font.blob | 0 .../mount-transitions/public/vite.svg | 0 .../mount-transitions/sandbox.config.json | 0 .../mount-transitions/src/App.jsx | 0 .../mount-transitions/src/index.jsx | 0 .../mount-transitions/src/styles.css | 0 .../mount-transitions/src/vite-env.d.ts | 0 .../mount-transitions/thumbnail.webp | Bin .../mount-transitions/tsconfig.json | 0 .../mount-transitions/tsconfig.node.json | 0 .../mount-transitions/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/mac.glb | Bin .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/assets/bricks.gltf | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 {demos => examples}/nextjs-prism/.prettierrc | 0 examples/nextjs-prism/README.md | 9 + {demos => examples}/nextjs-prism/index.html | 0 .../nextjs-prism}/package.json | 4 +- {demos => examples}/nextjs-prism/pmndrs.json | 0 .../nextjs-prism/public/vite.svg | 0 .../nextjs-prism/sandbox.config.json | 0 {demos => examples}/nextjs-prism/src/App.jsx | 0 .../nextjs-prism/src/components/Beam.jsx | 0 .../nextjs-prism/src/components/Box.jsx | 0 .../nextjs-prism/src/components/Flare.jsx | 0 .../nextjs-prism/src/components/Prism.jsx | 0 .../nextjs-prism/src/components/Rainbow.jsx | 0 .../nextjs-prism/src/components/Reflect.jsx | 0 .../nextjs-prism/src/fonts/Inter_Bold.json | 0 .../nextjs-prism/src/gltf/prism.glb | Bin .../nextjs-prism/src/index.jsx | 0 .../nextjs-prism/src/lut/F-6800-STD.cube | 0 .../nextjs-prism/src/styles.css | 0 .../src/textures/lensflare/LICENSE.txt | 0 .../src/textures/lensflare/hexangle.png | Bin .../src/textures/lensflare/lensflare0.png | Bin .../textures/lensflare/lensflare0_alpha.png | Bin .../src/textures/lensflare/lensflare0_bw.jpg | Bin .../src/textures/lensflare/lensflare0_bw.png | Bin .../src/textures/lensflare/lensflare1.png | Bin .../src/textures/lensflare/lensflare2.png | Bin .../src/textures/lensflare/lensflare3.png | Bin {demos => examples}/nextjs-prism/src/util.js | 0 .../nextjs-prism/src/vite-env.d.ts | 0 .../nextjs-prism/thumbnail.webp | Bin .../nextjs-prism/tsconfig.json | 0 .../nextjs-prism/tsconfig.node.json | 0 .../nextjs-prism/vite.config.ts | 0 {demos => examples}/night-train/.prettierrc | 0 examples/night-train/README.md | 9 + {demos => examples}/night-train/index.html | 0 .../night-train}/package.json | 4 +- {demos => examples}/night-train/pmndrs.json | 0 .../night-train/public/vite.svg | 0 .../night-train/sandbox.config.json | 0 {demos => examples}/night-train/src/App.jsx | 0 .../night-train/src/cabin-transformed.glb | Bin {demos => examples}/night-train/src/index.jsx | 0 .../night-train/src/seat-transformed.glb | Bin .../night-train/src/styles.css | 0 .../night-train/src/vite-env.d.ts | 0 .../night-train/thumbnail.webp | Bin {demos => examples}/night-train/tsconfig.json | 0 .../night-train/tsconfig.node.json | 0 .../night-train/vite.config.ts | 0 {demos => examples}/object-clump/.prettierrc | 0 examples/object-clump/README.md | 9 + {demos => examples}/object-clump/index.html | 0 {demos => examples}/object-clump/package.json | 4 +- {demos => examples}/object-clump/pmndrs.json | 0 .../object-clump/public/vite.svg | 0 .../object-clump/sandbox.config.json | 0 {demos => examples}/object-clump/src/App.jsx | 0 .../object-clump/src/Outlines.tsx | 0 .../object-clump/src/adamsbridge.hdr | Bin .../object-clump/src/cross.jpg | Bin .../object-clump/src/index.jsx | 0 .../object-clump/src/styles.css | 0 .../object-clump/src/vite-env.d.ts | 0 .../object-clump/thumbnail.webp | Bin .../object-clump/tsconfig.json | 0 .../object-clump/tsconfig.node.json | 0 .../object-clump/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../pairing-threejs-to-ui/.prettierrc | 0 examples/pairing-threejs-to-ui/README.md | 9 + .../pairing-threejs-to-ui/index.html | 0 .../pairing-threejs-to-ui/package.json | 4 +- .../pairing-threejs-to-ui/pmndrs.json | 0 .../pairing-threejs-to-ui/public/vite.svg | 0 .../pairing-threejs-to-ui/src/App.jsx | 0 .../src/assets/tree-beech.gltf | 0 .../src/assets/tree-lime.gltf | 0 .../src/assets/tree-spruce.gltf | 0 .../pairing-threejs-to-ui/src/index.jsx | 0 .../pairing-threejs-to-ui/src/styles.css | 0 .../pairing-threejs-to-ui/src/vite-env.d.ts | 0 .../pairing-threejs-to-ui/thumbnail.webp | Bin .../pairing-threejs-to-ui/tsconfig.json | 0 .../pairing-threejs-to-ui/tsconfig.node.json | 0 .../pairing-threejs-to-ui/vite.config.ts | 0 .../pass-through-portals/.prettierrc | 0 examples/pass-through-portals/README.md | 9 + .../pass-through-portals/index.html | 0 .../pass-through-portals/package.json | 4 +- .../pass-through-portals/pmndrs.json | 0 .../pass-through-portals/public/vite.svg | 0 .../pass-through-portals/sandbox.config.json | 0 .../pass-through-portals/src/App.jsx | 0 .../pass-through-portals/src/index.jsx | 0 .../src/low_poly_mccree-transformed.glb | Bin .../pass-through-portals/src/styles.css | 0 .../pass-through-portals/src/vite-env.d.ts | 0 .../pass-through-portals/thumbnail.webp | Bin .../pass-through-portals/tsconfig.json | 0 .../pass-through-portals/tsconfig.node.json | 0 .../pass-through-portals/vite.config.ts | 0 .../physics-with-convex-polyhedrons/README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/diamond.glb | Bin .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../pinball-in-70-lines/.prettierrc | 0 examples/pinball-in-70-lines/README.md | 9 + .../pinball-in-70-lines/index.html | 0 .../pinball-in-70-lines}/package.json | 4 +- .../pinball-in-70-lines/pmndrs.json | 0 .../pinball-in-70-lines/public/vite.svg | 0 .../pinball-in-70-lines/src/App.jsx | 0 .../pinball-in-70-lines/src/bg.jpg | Bin .../pinball-in-70-lines/src/cross.jpg | Bin .../pinball-in-70-lines/src/index.jsx | 0 .../pinball-in-70-lines/src/styles.css | 0 .../pinball-in-70-lines/src/vite-env.d.ts | 0 .../pinball-in-70-lines/thumbnail.webp | Bin .../pinball-in-70-lines/tsconfig.json | 0 .../pinball-in-70-lines/tsconfig.node.json | 0 .../pinball-in-70-lines/vite.config.ts | 0 {demos => examples}/pmndrs-vercel/.prettierrc | 0 examples/pmndrs-vercel/README.md | 9 + {demos => examples}/pmndrs-vercel/index.html | 0 .../pmndrs-vercel/package.json | 4 +- {demos => examples}/pmndrs-vercel/pmndrs.json | 0 .../pmndrs-vercel/public/vite.svg | 0 {demos => examples}/pmndrs-vercel/src/App.jsx | 0 .../pmndrs-vercel/src/cursor.glb | Bin .../pmndrs-vercel/src/index.jsx | 0 .../pmndrs-vercel/src/pmndrs.glb | Bin .../pmndrs-vercel/src/styles.css | 0 .../pmndrs-vercel/src/vite-env.d.ts | 0 .../pmndrs-vercel/thumbnail.webp | Bin .../pmndrs-vercel/tsconfig.json | 0 .../pmndrs-vercel/tsconfig.node.json | 0 .../pmndrs-vercel/vite.config.ts | 0 {demos => examples}/portal-shapes/.prettierrc | 0 examples/portal-shapes/README.md | 9 + {demos => examples}/portal-shapes/index.html | 0 .../portal-shapes/package.json | 4 +- {demos => examples}/portal-shapes/pmndrs.json | 0 .../public/journey-transformed.glb | Bin .../public/shapes-transformed.glb | Bin .../portal-shapes/public/vite.svg | 0 .../portal-shapes/sandbox.config.json | 0 {demos => examples}/portal-shapes/src/App.jsx | 0 .../portal-shapes/src/bold.blob | 0 .../portal-shapes/src/index.jsx | 0 .../portal-shapes/src/sandboxes/Basic.jsx | 0 .../portal-shapes/src/sandboxes/PingPong.jsx | 0 .../portal-shapes/src/sandboxes/Rocket.jsx | 0 .../portal-shapes/src/sandboxes/Shoe.jsx | 0 .../portal-shapes/src/sandboxes/Stencil.jsx | 0 .../portal-shapes/src/sandboxes/Turtle.jsx | 0 ...ps_ridley_sea_turtle_no_id-transformed.glb | Bin .../src/sandboxes/react-transformed.glb | Bin .../src/sandboxes/rocket-transformed.glb | Bin .../src/sandboxes/shoe-draco.glb | Bin .../portal-shapes/src/styles.css | 0 .../portal-shapes/src/vite-env.d.ts | 0 .../portal-shapes/thumbnail.webp | Bin .../portal-shapes/tsconfig.json | 0 .../portal-shapes/tsconfig.node.json | 0 .../portal-shapes/vite.config.ts | 0 {demos => examples}/portals/.prettierrc | 0 .../portals}/README.md | 8 +- {demos => examples}/portals/index.html | 0 .../portals}/package.json | 4 +- {demos => examples}/portals/pmndrs.json | 0 .../portals/public/Inter_Medium_Regular.json | 0 {demos => examples}/portals/public/vite.svg | 0 .../portals/sandbox.config.json | 0 {demos => examples}/portals/src/App.jsx | 0 {demos => examples}/portals/src/ao_shapes.glb | Bin {demos => examples}/portals/src/index.jsx | 0 {demos => examples}/portals/src/styles.css | 0 {demos => examples}/portals/src/vite-env.d.ts | 0 {demos => examples}/portals/thumbnail.webp | Bin {demos => examples}/portals/tsconfig.json | 0 .../portals/tsconfig.node.json | 0 {demos => examples}/portals/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 37 + .../pmndrs.json | 0 .../public/vite.svg | 0 .../sandbox.config.json | 0 .../src/App.jsx | 0 .../src/bust-hi.glb | Bin .../src/bust-lo-draco.glb | Bin .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 {demos => examples}/racing-game/.prettierrc | 0 examples/racing-game/README.md | 9 + {demos => examples}/racing-game/index.html | 0 {demos => examples}/racing-game/package.json | 4 +- {demos => examples}/racing-game/pmndrs.json | 0 .../racing-game/public/images/bronze.png | Bin .../racing-game/public/images/gold.png | Bin .../racing-game/public/images/silver.png | Bin .../public/models/chassis-draco.glb | Bin .../racing-game/public/models/track-draco.glb | Bin .../racing-game/public/models/wheel-draco.glb | Bin .../racing-game/public/sounds/accelerate.mp3 | Bin .../racing-game/public/sounds/boost.mp3 | Bin .../racing-game/public/sounds/crash.mp3 | Bin .../racing-game/public/sounds/engine.mp3 | Bin .../racing-game/public/sounds/honk.mp3 | Bin .../racing-game/public/sounds/tire-brake.mp3 | Bin .../racing-game/public/sounds/train.mp3 | Bin .../racing-game/public/sounds/water.mp3 | Bin .../racing-game/public/textures/cursor.svg | 0 .../public/textures/dikhololo_night_1k.hdr | Bin .../public/textures/heightmap_1024.png | Bin .../racing-game/public/textures/mask.svg | 0 .../racing-game/public/textures/no_sound.png | Bin .../racing-game/public/vite.svg | 0 {demos => examples}/racing-game/src/App.tsx | 0 .../racing-game/src/assetUrl.ts | 2 +- .../racing-game/src/controls/HideMouse.ts | 0 .../racing-game/src/controls/Keyboard.ts | 0 .../racing-game/src/controls/index.tsx | 0 .../racing-game/src/effects/Boost.tsx | 0 .../racing-game/src/effects/Dust.tsx | 0 .../racing-game/src/effects/Skid.tsx | 0 .../racing-game/src/effects/index.ts | 0 {demos => examples}/racing-game/src/index.tsx | 0 .../racing-game/src/models/Goal.ts | 0 .../racing-game/src/models/Ramp.tsx | 0 .../racing-game/src/models/index.ts | 0 .../src/models/track/Heightmap.tsx | 0 .../racing-game/src/models/track/Track.tsx | 0 .../racing-game/src/models/track/Train.tsx | 0 .../racing-game/src/models/track/index.ts | 0 .../src/models/vehicle/Chassis.tsx | 0 .../src/models/vehicle/Vehicle.tsx | 0 .../racing-game/src/models/vehicle/Wheel.tsx | 0 .../racing-game/src/models/vehicle/index.ts | 0 {demos => examples}/racing-game/src/store.ts | 0 .../racing-game/src/styles.css | 0 .../racing-game/src/ui/Clock.tsx | 0 .../racing-game/src/ui/Editor.ts | 0 .../racing-game/src/ui/Help.tsx | 0 .../racing-game/src/ui/Intro.tsx | 0 .../racing-game/src/ui/Minimap.tsx | 0 .../racing-game/src/ui/Speed/Boost.tsx | 0 .../racing-game/src/ui/Speed/Gauge.tsx | 0 .../racing-game/src/ui/Speed/Text.tsx | 0 .../racing-game/src/ui/Speed/index.tsx | 0 .../racing-game/src/ui/index.ts | 0 .../racing-game/src/useToggle.tsx | 0 .../racing-game/src/vite-env.d.ts | 0 .../racing-game/thumbnail.webp | Bin {demos => examples}/racing-game/tsconfig.json | 0 .../racing-game/tsconfig.node.json | 0 .../racing-game/vite.config.ts | 0 .../ragdoll-physics/.prettierrc | 0 examples/ragdoll-physics/README.md | 9 + .../ragdoll-physics/index.html | 0 .../ragdoll-physics}/package.json | 5 +- .../ragdoll-physics/pmndrs.json | 0 .../ragdoll-physics/public/vite.svg | 0 .../ragdoll-physics/sandbox.config.json | 0 .../ragdoll-physics/src/App.jsx | 0 .../src/components/Furniture.jsx | 0 .../ragdoll-physics/src/components/Guy.jsx | 0 .../ragdoll-physics/src/components/cup.glb | Bin .../ragdoll-physics/src/helpers/Block.jsx | 0 .../ragdoll-physics/src/helpers/Drag.js | 0 .../src/helpers/createRagdoll.js | 2 +- .../ragdoll-physics/src/index.jsx | 0 .../ragdoll-physics/src/styles.css | 0 .../ragdoll-physics/src/vite-env.d.ts | 0 .../ragdoll-physics/thumbnail.webp | Bin .../ragdoll-physics/tsconfig.json | 0 .../ragdoll-physics/tsconfig.node.json | 0 .../ragdoll-physics/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../rapier-physics/.prettierrc | 0 examples/rapier-physics/README.md | 9 + {demos => examples}/rapier-physics/index.html | 0 .../rapier-physics/package.json | 4 +- .../rapier-physics/pmndrs.json | 0 .../rapier-physics/public/vite.svg | 0 .../rapier-physics/sandbox.config.json | 0 .../rapier-physics/src/App.jsx | 0 .../src/ball-trip.optimized.glb | Bin .../rapier-physics/src/index.jsx | 0 .../rapier-physics/src/styles.css | 0 .../rapier-physics/src/vite-env.d.ts | 0 .../rapier-physics/thumbnail.webp | Bin .../rapier-physics/tsconfig.json | 0 .../rapier-physics/tsconfig.node.json | 0 .../rapier-physics/vite.config.ts | 0 .../rapier-ping-pong/.prettierrc | 0 examples/rapier-ping-pong/README.md | 9 + .../rapier-ping-pong/index.html | 0 .../rapier-ping-pong/package.json | 4 +- .../rapier-ping-pong/pmndrs.json | 0 .../rapier-ping-pong/public/vite.svg | 0 .../rapier-ping-pong/src/App.jsx | 0 .../rapier-ping-pong/src/Intro.jsx | 0 .../rapier-ping-pong/src/index.jsx | 0 .../rapier-ping-pong/src/resources/bg.jpg | Bin .../rapier-ping-pong/src/resources/crossp.jpg | Bin .../src/resources/firasans_regular.json | 0 .../rapier-ping-pong/src/resources/ping.mp3 | Bin .../src/resources/pingpong.glb | Bin .../rapier-ping-pong/src/styles.css | 0 .../rapier-ping-pong/src/vite-env.d.ts | 0 .../rapier-ping-pong/thumbnail.webp | Bin .../rapier-ping-pong/tsconfig.json | 0 .../rapier-ping-pong/tsconfig.node.json | 0 .../rapier-ping-pong/vite.config.ts | 0 .../raycast-cycling/.prettierrc | 0 examples/raycast-cycling/README.md | 9 + .../raycast-cycling/index.html | 0 .../raycast-cycling/package.json | 4 +- .../raycast-cycling/pmndrs.json | 0 .../raycast-cycling/public/vite.svg | 0 .../raycast-cycling/src/App.jsx | 0 .../raycast-cycling/src/example}/Underlay.jsx | 0 .../raycast-cycling/src/index.jsx | 2 +- .../raycast-cycling/src/styles.css | 0 .../raycast-cycling/src/vite-env.d.ts | 0 .../raycast-cycling/thumbnail.webp | Bin .../raycast-cycling/tsconfig.json | 0 .../raycast-cycling/tsconfig.node.json | 0 .../raycast-cycling/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 37 + .../pmndrs.json | 0 .../public/vite.svg | 0 .../sandbox.config.json | 0 .../src/App.jsx | 0 .../src/bust-1-d.glb | Bin .../src/bust-2-d.glb | Bin .../src/bust-3-d.glb | Bin .../src/bust-4-d.glb | Bin .../src/bust-5-d.glb | Bin .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../re-using-gltfs/.prettierrc | 0 examples/re-using-gltfs/README.md | 9 + {demos => examples}/re-using-gltfs/index.html | 0 .../re-using-gltfs/package.json | 4 +- .../re-using-gltfs/pmndrs.json | 0 .../re-using-gltfs/public/vite.svg | 0 .../re-using-gltfs/src/App.jsx | 0 .../re-using-gltfs/src/index.jsx | 0 .../re-using-gltfs/src/shoe.gltf | 0 .../re-using-gltfs/src/style.css | 0 .../re-using-gltfs/src/vite-env.d.ts | 0 .../re-using-gltfs/thumbnail.webp | Bin .../re-using-gltfs/tsconfig.json | 0 .../re-using-gltfs/tsconfig.node.json | 0 .../re-using-gltfs/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../react-ellipsecurve/.eslintrc | 0 .../react-ellipsecurve/.prettierrc | 0 examples/react-ellipsecurve/README.md | 9 + .../react-ellipsecurve/index.html | 0 .../react-ellipsecurve/package.json | 4 +- .../react-ellipsecurve/pmndrs.json | 0 .../react-ellipsecurve/public/vite.svg | 0 .../react-ellipsecurve/src/App.jsx | 0 .../react-ellipsecurve/src/index.jsx | 0 .../react-ellipsecurve/src/styles.css | 0 .../react-ellipsecurve/src/vite-env.d.ts | 0 .../react-ellipsecurve/thumbnail.webp | Bin .../react-ellipsecurve/tsconfig.json | 0 .../react-ellipsecurve/tsconfig.node.json | 0 .../react-ellipsecurve/vite.config.ts | 0 .../react-pp-outlines/.prettierrc | 0 examples/react-pp-outlines/README.md | 9 + .../react-pp-outlines/index.html | 0 .../react-pp-outlines}/package.json | 20 +- .../react-pp-outlines/pmndrs.json | 0 .../react-pp-outlines/public/vite.svg | 0 .../react-pp-outlines/src/App.jsx | 0 .../react-pp-outlines/src/Engine.jsx | 0 .../react-pp-outlines/src/index.jsx | 0 .../src/machine-transformed.glb | Bin .../react-pp-outlines/src/styles.css | 0 .../react-pp-outlines/src/vite-env.d.ts | 0 .../react-pp-outlines/thumbnail.webp | Bin .../react-pp-outlines/tsconfig.json | 0 .../react-pp-outlines/tsconfig.node.json | 0 .../react-pp-outlines/vite.config.ts | 0 .../react-spring-animations/.prettierrc | 0 examples/react-spring-animations/README.md | 9 + .../react-spring-animations/index.html | 0 .../react-spring-animations/package.json | 4 +- .../react-spring-animations/pmndrs.json | 0 .../react-spring-animations/public/vite.svg | 0 .../react-spring-animations/src/Canvas.jsx | 0 .../react-spring-animations/src/cross.jpg | Bin .../react-spring-animations/src/headless.glb | Bin .../react-spring-animations/src/index.jsx | 0 .../react-spring-animations/src/styles.css | 0 .../react-spring-animations/src/switch.glb | Bin .../react-spring-animations/src/vite-env.d.ts | 0 .../react-spring-animations/thumbnail.webp | Bin .../react-spring-animations/tsconfig.json | 0 .../tsconfig.node.json | 0 .../react-spring-animations/vite.config.ts | 0 .../room-with-soft-shadows/.prettierrc | 0 examples/room-with-soft-shadows/README.md | 9 + .../room-with-soft-shadows/index.html | 0 .../room-with-soft-shadows/package.json | 4 +- .../room-with-soft-shadows/pmndrs.json | 0 .../room-with-soft-shadows/public/vite.svg | 0 .../room-with-soft-shadows/src/App.jsx | 0 .../room-with-soft-shadows/src/Room.jsx | 0 .../room-with-soft-shadows/src/index.jsx | 0 .../src/room-transformed.glb | Bin .../room-with-soft-shadows/src/styles.css | 0 .../room-with-soft-shadows/src/vite-env.d.ts | 0 .../room-with-soft-shadows/thumbnail.webp | Bin .../room-with-soft-shadows/tsconfig.json | 0 .../room-with-soft-shadows/tsconfig.node.json | 0 .../room-with-soft-shadows/vite.config.ts | 0 .../router-transitions/.prettierrc | 0 examples/router-transitions/README.md | 9 + .../router-transitions/index.html | 0 .../router-transitions/package.json | 4 +- .../router-transitions/pmndrs.json | 0 .../router-transitions/public/ao.jpg | Bin .../router-transitions/public/height.png | Bin .../router-transitions/public/normal.jpg | Bin .../public/photo_studio_01_1k.hdr | Bin .../router-transitions/public/roughness.jpg | Bin .../router-transitions/public/vite.svg | 0 .../router-transitions/src/App.jsx | 0 .../router-transitions/src/bomb-gp.glb | Bin .../router-transitions/src/index.jsx | 0 .../router-transitions/src/styles.css | 0 .../router-transitions/src/vite-env.d.ts | 0 .../router-transitions/thumbnail.webp | Bin .../router-transitions/tsconfig.json | 0 .../router-transitions/tsconfig.node.json | 0 .../router-transitions/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../src/App.jsx | 0 .../src/Inter-Regular.woff | Bin .../src/img1.jpg | Bin .../src/img2.jpg | Bin .../src/img3.jpg | Bin .../src/img4.jpg | Bin .../src/img5.jpg | Bin .../src/img6.jpg | Bin .../src/img7.jpg | Bin .../src/img8.jpg | Bin .../src/index.jsx | 0 .../src/lens-transformed.glb | Bin .../src/styles.css | 0 .../src/trip1.jpg | Bin .../src/trip2.jpg | Bin .../src/trip3.jpg | Bin .../src/trip4.jpg | Bin .../src/vite-env.d.ts | 0 .../src/vite.svg | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../scrollcontrols-gltf/.prettierrc | 0 examples/scrollcontrols-gltf/README.md | 9 + .../scrollcontrols-gltf/index.html | 0 .../scrollcontrols-gltf}/package.json | 4 +- .../scrollcontrols-gltf/pmndrs.json | 0 .../scrollcontrols-gltf/public/vite.svg | 0 .../scrollcontrols-gltf/src/App.jsx | 0 .../src/LittlestTokyo-transformed.glb | Bin .../scrollcontrols-gltf/src/index.jsx | 0 .../scrollcontrols-gltf/src/styles.css | 0 .../scrollcontrols-gltf/src/vite-env.d.ts | 0 .../scrollcontrols-gltf/thumbnail.webp | Bin .../scrollcontrols-gltf/tsconfig.json | 0 .../scrollcontrols-gltf/tsconfig.node.json | 0 .../scrollcontrols-gltf/vite.config.ts | 0 .../scrollcontrols-with-minimap/.prettierrc | 0 .../scrollcontrols-with-minimap/README.md | 9 + .../scrollcontrols-with-minimap/index.html | 0 .../scrollcontrols-with-minimap/package.json | 38 + .../scrollcontrols-with-minimap/pmndrs.json | 0 .../public/Inter-UI-Medium.ttf | Bin .../public/vite.svg | 0 .../scrollcontrols-with-minimap/src/App.jsx | 0 .../scrollcontrols-with-minimap/src/img1.jpg | Bin .../scrollcontrols-with-minimap/src/img2.jpg | Bin .../scrollcontrols-with-minimap/src/img3.jpg | Bin .../scrollcontrols-with-minimap/src/img4.jpg | Bin .../scrollcontrols-with-minimap/src/img5.jpg | Bin .../scrollcontrols-with-minimap/src/img6.jpg | Bin .../scrollcontrols-with-minimap/src/img7.jpg | Bin .../scrollcontrols-with-minimap/src/img8.jpg | Bin .../scrollcontrols-with-minimap/src/index.jsx | 0 .../src/styles.css | 0 .../scrollcontrols-with-minimap/src/trip1.jpg | Bin .../scrollcontrols-with-minimap/src/trip2.jpg | Bin .../scrollcontrols-with-minimap/src/trip3.jpg | Bin .../scrollcontrols-with-minimap/src/trip4.jpg | Bin .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../scrollcontrols-with-minimap/tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../selective-outlines/.prettierrc | 0 .../selective-outlines}/README.md | 8 +- .../selective-outlines/index.html | 0 .../selective-outlines/package.json | 4 +- .../selective-outlines/pmndrs.json | 0 .../selective-outlines/public/vite.svg | 0 .../selective-outlines/src/App.jsx | 0 .../selective-outlines/src/index.jsx | 0 .../selective-outlines/src/styles.css | 0 .../selective-outlines/src/vite-env.d.ts | 0 .../selective-outlines/thumbnail.webp | Bin .../selective-outlines/tsconfig.json | 0 .../selective-outlines/tsconfig.node.json | 0 .../selective-outlines/vite.config.ts | 0 {demos => examples}/shader-fire/.prettierrc | 0 examples/shader-fire/README.md | 9 + {demos => examples}/shader-fire/index.html | 0 {demos => examples}/shader-fire/package.json | 4 +- {demos => examples}/shader-fire/pmndrs.json | 0 .../shader-fire/public/vite.svg | 0 {demos => examples}/shader-fire/src/App.jsx | 0 {demos => examples}/shader-fire/src/fire.png | Bin {demos => examples}/shader-fire/src/index.jsx | 0 .../shader-fire/src/styles.css | 0 .../shader-fire/src/vite-env.d.ts | 0 .../shader-fire/thumbnail.webp | Bin {demos => examples}/shader-fire/tsconfig.json | 0 .../shader-fire/tsconfig.node.json | 0 .../shader-fire/vite.config.ts | 0 {demos => examples}/shader-hmr/.prettierrc | 0 .../shader-hmr}/README.md | 8 +- {demos => examples}/shader-hmr/index.html | 0 .../shader-hmr}/package.json | 4 +- {demos => examples}/shader-hmr/pmndrs.json | 0 .../shader-hmr/public/vite.svg | 0 {demos => examples}/shader-hmr/src/App.jsx | 0 .../shader-hmr/src/WaveMaterial.js | 0 {demos => examples}/shader-hmr/src/index.jsx | 0 {demos => examples}/shader-hmr/src/styles.css | 0 .../shader-hmr/src/vite-env.d.ts | 0 {demos => examples}/shader-hmr/thumbnail.webp | Bin {demos => examples}/shader-hmr/tsconfig.json | 0 .../shader-hmr/tsconfig.node.json | 0 {demos => examples}/shader-hmr/vite.config.ts | 0 .../shadermaterials/.prettierrc | 0 examples/shadermaterials/README.md | 9 + .../shadermaterials/index.html | 0 examples/shadermaterials/package.json | 37 + .../shadermaterials/pmndrs.json | 0 .../shadermaterials/public/vite.svg | 0 .../shadermaterials/src/App.jsx | 0 .../shadermaterials/src/img/Img1.jpg | Bin .../shadermaterials/src/img/Img2.jpg | Bin .../src/img/displacement/10.jpg | Bin .../src/img/displacement/11.jpg | Bin .../src/img/displacement/13.jpg | Bin .../src/img/displacement/14.jpg | Bin .../shadermaterials/src/index.jsx | 0 .../shadermaterials/src/styles.css | 0 .../shadermaterials/src/vite-env.d.ts | 0 .../shadermaterials/thumbnail.webp | Bin .../shadermaterials/tsconfig.json | 0 .../shadermaterials/tsconfig.node.json | 0 .../shadermaterials/vite.config.ts | 0 .../shoe-configurator/.prettierrc | 0 examples/shoe-configurator/README.md | 9 + .../shoe-configurator/index.html | 0 .../shoe-configurator/package.json | 4 +- .../shoe-configurator/pmndrs.json | 0 .../shoe-configurator/public/vite.svg | 0 .../shoe-configurator/src/App.jsx | 0 .../shoe-configurator/src/index.jsx | 0 .../shoe-configurator/src/shoe-draco.glb | Bin .../shoe-configurator/src/styles.css | 0 .../shoe-configurator/src/vite-env.d.ts | 0 .../shoe-configurator/thumbnail.webp | Bin .../shoe-configurator/tsconfig.json | 0 .../shoe-configurator/tsconfig.node.json | 0 .../shoe-configurator/vite.config.ts | 0 {demos => examples}/shopping/.prettierrc | 0 examples/shopping/README.md | 9 + {demos => examples}/shopping/index.html | 0 {demos => examples}/shopping/package.json | 4 +- {demos => examples}/shopping/pmndrs.json | 0 {demos => examples}/shopping/public/vite.svg | 0 .../shopping/sandbox.config.json | 0 {demos => examples}/shopping/src/App.jsx | 0 .../shopping/src/Inter-Regular.woff | Bin {demos => examples}/shopping/src/Price.jsx | 0 {demos => examples}/shopping/src/Scene.jsx | 0 {demos => examples}/shopping/src/index.jsx | 0 .../shopping/src/kitchen-transformed.glb | Bin {demos => examples}/shopping/src/styles.css | 0 .../shopping/src/vite-env.d.ts | 0 {demos => examples}/shopping/thumbnail.webp | Bin {demos => examples}/shopping/tsconfig.json | 0 .../shopping/tsconfig.node.json | 0 {demos => examples}/shopping/vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../simple-audio-analyser/.prettierrc | 0 examples/simple-audio-analyser/README.md | 9 + .../simple-audio-analyser/index.html | 0 .../simple-audio-analyser/package.json | 4 +- .../simple-audio-analyser/pmndrs.json | 0 .../simple-audio-analyser/public/vite.svg | 0 .../simple-audio-analyser/sandbox.config.json | 0 .../simple-audio-analyser/src/App.jsx | 2 +- .../simple-audio-analyser/src/drums.mp3 | Bin .../simple-audio-analyser/src/index.jsx | 0 .../simple-audio-analyser/src/snare.mp3 | Bin .../simple-audio-analyser/src/styles.css | 0 .../simple-audio-analyser/src/synth.mp3 | Bin .../simple-audio-analyser/src/vite-env.d.ts | 0 .../simple-audio-analyser/thumbnail.webp | Bin .../simple-audio-analyser/tsconfig.json | 0 .../simple-audio-analyser/tsconfig.node.json | 0 .../simple-audio-analyser/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 2 +- .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../simple-physics-example}/.prettierrc | 0 examples/simple-physics-example/README.md | 9 + .../simple-physics-example}/index.html | 0 .../simple-physics-example}/package.json | 4 +- .../simple-physics-example}/pmndrs.json | 2 +- .../simple-physics-example}/public/vite.svg | 0 .../simple-physics-example}/src/App.jsx | 0 .../simple-physics-example}/src/index.jsx | 0 .../simple-physics-example}/src/styles.css | 0 .../simple-physics-example}/src/vite-env.d.ts | 0 .../simple-physics-example}/thumbnail.webp | Bin .../simple-physics-example}/tsconfig.json | 0 .../tsconfig.node.json | 0 .../simple-physics-example}/vite.config.ts | 0 .../sky-dome-with-annotations/.prettierrc | 0 examples/sky-dome-with-annotations/README.md | 9 + .../sky-dome-with-annotations/index.html | 0 .../sky-dome-with-annotations/package.json | 4 +- .../sky-dome-with-annotations/pmndrs.json | 0 .../sky-dome-with-annotations/public/vite.svg | 0 .../sandbox.config.json | 0 .../src/2294472375_24a3b8ef46_o.jpg | Bin .../sky-dome-with-annotations/src/App.jsx | 0 .../src/Photosphere1.jpg | Bin .../sky-dome-with-annotations/src/index.jsx | 0 .../sky-dome-with-annotations/src/styles.css | 0 .../src/vite-env.d.ts | 0 .../sky-dome-with-annotations/thumbnail.webp | Bin .../sky-dome-with-annotations/tsconfig.json | 0 .../tsconfig.node.json | 0 .../sky-dome-with-annotations/vite.config.ts | 0 {demos => examples}/soft-shadows/.prettierrc | 0 examples/soft-shadows/README.md | 9 + {demos => examples}/soft-shadows/index.html | 0 {demos => examples}/soft-shadows/package.json | 4 +- {demos => examples}/soft-shadows/pmndrs.json | 0 .../soft-shadows/public/vite.svg | 0 {demos => examples}/soft-shadows/src/App.jsx | 0 .../soft-shadows/src/index.jsx | 0 .../soft-shadows/src/styles.css | 0 .../soft-shadows/src/vite-env.d.ts | 0 .../soft-shadows/thumbnail.webp | Bin .../soft-shadows/tsconfig.json | 0 .../soft-shadows/tsconfig.node.json | 0 .../soft-shadows/vite.config.ts | 0 {demos => examples}/space-game/.prettierrc | 0 examples/space-game/README.md | 9 + {demos => examples}/space-game/index.html | 0 {demos => examples}/space-game/package.json | 4 +- {demos => examples}/space-game/pmndrs.json | 2 +- .../space-game/public/bold.blob | 0 .../space-game/public/vite.svg | 0 .../space-game/sandbox.config.json | 0 .../space-game/src/3d/Effects.jsx | 0 .../space-game/src/3d/Enemies.jsx | 0 .../space-game/src/3d/Explosions.jsx | 0 .../space-game/src/3d/Particles.jsx | 0 .../space-game/src/3d/Planets.jsx | 0 {demos => examples}/space-game/src/3d/Rig.jsx | 0 .../space-game/src/3d/Rings.jsx | 0 .../space-game/src/3d/Rocks.jsx | 0 .../space-game/src/3d/Ship.jsx | 0 .../space-game/src/3d/Stars.jsx | 0 .../space-game/src/3d/Track.jsx | 0 .../space-game/src/3d/rock.gltf | 0 .../space-game/src/3d/ship.gltf | 0 .../space-game/src/3d/spacedrone.gltf | 0 {demos => examples}/space-game/src/App.jsx | 0 {demos => examples}/space-game/src/Hud.jsx | 0 .../space-game/src/audio/bg.mp3 | Bin .../space-game/src/audio/click.mp3 | Bin .../space-game/src/audio/engine.mp3 | Bin .../space-game/src/audio/engine2.mp3 | Bin .../space-game/src/audio/explosion.mp3 | Bin .../space-game/src/audio/index.js | 0 .../space-game/src/audio/laser.mp3 | Bin .../space-game/src/audio/warp.mp3 | Bin .../space-game/src/images/earth.jpg | Bin .../space-game/src/images/moon.png | Bin {demos => examples}/space-game/src/index.jsx | 0 {demos => examples}/space-game/src/store.js | 0 {demos => examples}/space-game/src/styles.css | 0 .../space-game/src/vite-env.d.ts | 0 {demos => examples}/space-game/thumbnail.webp | Bin {demos => examples}/space-game/tsconfig.json | 0 .../space-game/tsconfig.node.json | 0 {demos => examples}/space-game/vite.config.ts | 0 .../sparks-and-effects/.prettierrc | 0 examples/sparks-and-effects/README.md | 9 + .../sparks-and-effects/index.html | 0 .../sparks-and-effects/package.json | 4 +- .../sparks-and-effects/pmndrs.json | 0 .../sparks-and-effects/public/cursor.png | Bin .../sparks-and-effects/public/vite.svg | 0 .../sparks-and-effects/sandbox.config.json | 0 .../sparks-and-effects/src/App.jsx | 0 .../sparks-and-effects/src/Effects.jsx | 0 .../sparks-and-effects/src/Particles.jsx | 0 .../sparks-and-effects/src/Sparks.jsx | 0 .../sparks-and-effects/src/Text.jsx | 0 .../sparks-and-effects/src/WaterEffect.js | 0 .../sparks-and-effects/src/bold.blob | 0 .../sparks-and-effects/src/index.jsx | 0 .../sparks-and-effects/src/styles.css | 0 .../sparks-and-effects/src/vite-env.d.ts | 0 .../sparks-and-effects/thumbnail.webp | Bin .../sparks-and-effects/tsconfig.json | 0 .../sparks-and-effects/tsconfig.node.json | 0 .../sparks-and-effects/vite.config.ts | 0 .../spline-glass-shapes/.prettierrc | 0 examples/spline-glass-shapes/README.md | 9 + .../spline-glass-shapes/index.html | 0 .../spline-glass-shapes/package.json | 4 +- .../spline-glass-shapes/pmndrs.json | 0 .../public/shapes.splinecode | Bin .../spline-glass-shapes/public/vite.svg | 0 .../spline-glass-shapes/src/App.jsx | 0 .../spline-glass-shapes/src/index.jsx | 0 .../spline-glass-shapes/src/styles.css | 0 .../spline-glass-shapes/src/vite-env.d.ts | 0 .../spline-glass-shapes/thumbnail.webp | Bin .../spline-glass-shapes/tsconfig.json | 0 .../spline-glass-shapes/tsconfig.node.json | 0 .../spline-glass-shapes/vite.config.ts | 0 {demos => examples}/sport-hall/.prettierrc | 0 examples/sport-hall/README.md | 9 + {demos => examples}/sport-hall/index.html | 0 .../sport-hall}/package.json | 4 +- {demos => examples}/sport-hall/pmndrs.json | 0 .../sport-hall/public/vite.svg | 0 {demos => examples}/sport-hall/src/App.jsx | 0 .../sport-hall/src/assets/noon_grass_1k.hdr | Bin {demos => examples}/sport-hall/src/court.glb | Bin {demos => examples}/sport-hall/src/index.jsx | 0 {demos => examples}/sport-hall/src/styles.css | 0 .../sport-hall/src/vite-env.d.ts | 0 {demos => examples}/sport-hall/thumbnail.webp | Bin {demos => examples}/sport-hall/tsconfig.json | 0 .../sport-hall/tsconfig.node.json | 0 {demos => examples}/sport-hall/vite.config.ts | 0 .../spotlight-shadows/.prettierrc | 0 examples/spotlight-shadows/README.md | 9 + .../spotlight-shadows/index.html | 0 examples/spotlight-shadows/package.json | 37 + .../spotlight-shadows/pmndrs.json | 0 .../spotlight-shadows/public/vite.svg | 0 .../spotlight-shadows/src/App.jsx | 0 .../src/components/Lights.jsx | 0 .../spotlight-shadows/src/index.jsx | 0 .../spotlight-shadows/src/styles.css | 0 .../src/textures/grassy_cobblestone_ao_2k.jpg | Bin .../textures/grassy_cobblestone_diff_2k.jpg | Bin .../textures/grassy_cobblestone_nor_gl_2k.jpg | Bin .../textures/grassy_cobblestone_rough_2k.jpg | Bin .../spotlight-shadows/src/textures/leaves.jpg | Bin .../spotlight-shadows/src/vite-env.d.ts | 0 .../spotlight-shadows/thumbnail.webp | Bin .../spotlight-shadows/tsconfig.json | 0 .../spotlight-shadows/tsconfig.node.json | 0 .../spotlight-shadows/vite.config.ts | 0 {demos => examples}/springy-boxes/.prettierrc | 0 examples/springy-boxes/README.md | 9 + {demos => examples}/springy-boxes/index.html | 0 .../springy-boxes/package.json | 4 +- {demos => examples}/springy-boxes/pmndrs.json | 0 .../springy-boxes/public/vite.svg | 0 .../springy-boxes/src/index.jsx | 0 .../springy-boxes/src/styles.css | 0 .../springy-boxes/src/vite-env.d.ts | 0 .../springy-boxes/thumbnail.webp | Bin .../springy-boxes/tsconfig.json | 0 .../springy-boxes/tsconfig.node.json | 0 .../springy-boxes/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/Effects.js | 0 .../src/index.jsx | 0 .../src/realism-effects/index.js | 0 .../src/realism-effects/v2.js | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 {demos => examples}/ssr-test/.prettierrc | 0 examples/ssr-test/README.md | 9 + {demos => examples}/ssr-test/index.html | 0 {demos => examples}/ssr-test/package.json | 4 +- {demos => examples}/ssr-test/pmndrs.json | 0 {demos => examples}/ssr-test/public/vite.svg | 0 .../ssr-test/sandbox.config.json | 0 {demos => examples}/ssr-test/src/App.jsx | 0 {demos => examples}/ssr-test/src/Effects.jsx | 0 {demos => examples}/ssr-test/src/drei_r.mp4 | Bin {demos => examples}/ssr-test/src/index.jsx | 0 {demos => examples}/ssr-test/src/styles.css | 0 .../ssr-test/src/vite-env.d.ts | 0 {demos => examples}/ssr-test/thumbnail.webp | Bin {demos => examples}/ssr-test/tsconfig.json | 0 .../ssr-test/tsconfig.node.json | 0 {demos => examples}/ssr-test/vite.config.ts | 0 .../stage-presets-gltfjsx/.prettierrc | 0 examples/stage-presets-gltfjsx/README.md | 9 + .../stage-presets-gltfjsx/index.html | 0 .../stage-presets-gltfjsx/package.json | 4 +- .../stage-presets-gltfjsx/pmndrs.json | 0 .../stage-presets-gltfjsx/public/vite.svg | 0 .../stage-presets-gltfjsx/src/App.jsx | 0 .../stage-presets-gltfjsx/src/Cobra.jsx | 0 .../stage-presets-gltfjsx/src/Datsun.jsx | 0 .../stage-presets-gltfjsx/src/Effects.js | 0 .../src/cobra-transformed.glb | Bin .../src/datsun-transformed.glb | Bin .../stage-presets-gltfjsx/src/index.jsx | 0 .../src/realism-effects/gdata-in-float.js | 0 .../src/realism-effects/index.js | 0 .../src/realism-effects/index_1.js | 0 .../src/realism-effects/v2.js | 0 .../stage-presets-gltfjsx/src/styles.css | 0 .../stage-presets-gltfjsx/src/vite-env.d.ts | 0 .../stage-presets-gltfjsx/thumbnail.webp | Bin .../stage-presets-gltfjsx/tsconfig.json | 0 .../stage-presets-gltfjsx/tsconfig.node.json | 0 .../stage-presets-gltfjsx/vite.config.ts | 0 .../staging-and-camerashake/.gitignore | 0 .../staging-and-camerashake/.prettierrc | 0 examples/staging-and-camerashake/README.md | 9 + .../staging-and-camerashake/index.html | 0 examples/staging-and-camerashake/package.json | 37 + .../staging-and-camerashake/pmndrs.json | 0 .../staging-and-camerashake/public/view.svg | 0 .../staging-and-camerashake/public/vite.svg | 0 .../staging-and-camerashake/src/App.jsx | 0 .../staging-and-camerashake/src/index.jsx | 0 .../src/robot-draco.glb | Bin .../staging-and-camerashake/src/style.css | 0 .../staging-and-camerashake/src/vite-env.d.ts | 0 .../staging-and-camerashake/thumbnail.webp | Bin .../staging-and-camerashake/tsconfig.json | 0 .../tsconfig.node.json | 0 .../staging-and-camerashake/vite.config.ts | 0 {demos => examples}/starwars/.prettierrc | 0 examples/starwars/README.md | 9 + {demos => examples}/starwars/index.html | 0 {demos => examples}/starwars/package.json | 4 +- {demos => examples}/starwars/pmndrs.json | 0 {demos => examples}/starwars/public/vite.svg | 0 {demos => examples}/starwars/src/App.jsx | 0 {demos => examples}/starwars/src/Effects.jsx | 0 .../starwars/src/F-6800-STD.cube | 0 .../starwars/src/darth-transformed.glb | Bin .../starwars/src/hall-transformed.glb | Bin {demos => examples}/starwars/src/index.jsx | 0 .../starwars/src/probe-transformed.glb | Bin {demos => examples}/starwars/src/styles.css | 0 .../starwars/src/vite-env.d.ts | 0 {demos => examples}/starwars/thumbnail.webp | Bin {demos => examples}/starwars/tsconfig.json | 0 .../starwars/tsconfig.node.json | 0 {demos => examples}/starwars/vite.config.ts | 0 {demos => examples}/stencil-mask/.prettierrc | 0 examples/stencil-mask/README.md | 9 + {demos => examples}/stencil-mask/index.html | 0 .../stencil-mask}/package.json | 4 +- {demos => examples}/stencil-mask/pmndrs.json | 0 .../stencil-mask/public/Car.glb | Bin .../stencil-mask/public/vite.svg | 0 {demos => examples}/stencil-mask/src/App.jsx | 0 .../stencil-mask/src/assets/target-stand.gltf | 0 .../stencil-mask/src/index.jsx | 0 .../stencil-mask/src/styles.css | 0 .../stencil-mask/src/vite-env.d.ts | 0 .../stencil-mask/thumbnail.webp | Bin .../stencil-mask/tsconfig.json | 0 .../stencil-mask/tsconfig.node.json | 0 .../stencil-mask/vite.config.ts | 0 .../.prettierrc | 0 .../svg-maps-with-html-annotations/README.md | 9 + .../svg-maps-with-html-annotations/index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/vite.svg | 0 .../src/index.jsx | 0 .../src/map.svg | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 {demos => examples}/svg-renderer/.prettierrc | 0 examples/svg-renderer/README.md | 9 + {demos => examples}/svg-renderer/index.html | 0 {demos => examples}/svg-renderer/package.json | 4 +- {demos => examples}/svg-renderer/pmndrs.json | 0 .../svg-renderer/public/vite.svg | 0 {demos => examples}/svg-renderer/src/App.jsx | 0 .../svg-renderer/src/index.jsx | 0 .../svg-renderer/src/styles.css | 0 .../svg-renderer/src/vite-env.d.ts | 0 .../svg-renderer/thumbnail.webp | Bin .../svg-renderer/tsconfig.json | 0 .../svg-renderer/tsconfig.node.json | 0 .../svg-renderer/vite.config.ts | 0 .../t-shirt-configurator/.prettierrc | 0 examples/t-shirt-configurator/README.md | 9 + .../t-shirt-configurator/index.html | 0 .../t-shirt-configurator/package.json | 4 +- .../t-shirt-configurator/pmndrs.json | 0 .../t-shirt-configurator/public/vite.svg | 0 .../t-shirt-configurator/src/Canvas.jsx | 0 .../t-shirt-configurator/src/Overlay.jsx | 0 .../t-shirt-configurator/src/index.jsx | 0 .../t-shirt-configurator/src/pmndrs.png | Bin .../t-shirt-configurator/src/pmndrs_thumb.png | Bin .../t-shirt-configurator/src/react.png | Bin .../t-shirt-configurator/src/react_thumb.png | Bin .../src/shirt_baked_2.glb | Bin .../src/shirt_baked_collapsed.glb | Bin .../src/shirt_baked_lower2.glb | Bin .../t-shirt-configurator/src/store.js | 0 .../t-shirt-configurator/src/styles.css | 0 .../t-shirt-configurator/src/three2.png | Bin .../t-shirt-configurator/src/three2_thumb.png | Bin .../t-shirt-configurator/src/vite-env.d.ts | 0 .../t-shirt-configurator/thumbnail.webp | Bin .../t-shirt-configurator/tsconfig.json | 0 .../t-shirt-configurator/tsconfig.node.json | 0 .../t-shirt-configurator/vite.config.ts | 0 .../the-three-graces/.prettierrc | 0 examples/the-three-graces/README.md | 9 + .../the-three-graces/index.html | 0 .../the-three-graces/package.json | 4 +- .../the-three-graces/pmndrs.json | 0 .../the-three-graces/public/favicon.ico | Bin .../the-three-graces/public/logo192.png | Bin .../the-three-graces/public/logo512.png | Bin .../the-three-graces/public/manifest.json | 0 .../the-three-graces/public/robots.txt | 0 .../the-three-graces/public/vite.svg | 0 .../the-three-graces/src/App.jsx | 0 .../the-three-graces/src/graces-draco.glb | Bin .../the-three-graces/src/index.jsx | 0 .../the-three-graces/src/styles.css | 0 .../the-three-graces/src/vite-env.d.ts | 0 .../the-three-graces/thumbnail.webp | Bin .../the-three-graces/tsconfig.json | 0 .../the-three-graces/tsconfig.node.json | 0 .../the-three-graces/vite.config.ts | 0 .../threejs-journey-lv-1-fisheye/.prettierrc | 0 .../threejs-journey-lv-1-fisheye/README.md | 9 + .../threejs-journey-lv-1-fisheye/index.html | 0 .../threejs-journey-lv-1-fisheye/package.json | 4 +- .../threejs-journey-lv-1-fisheye/pmndrs.json | 0 .../public/vite.svg | 0 .../threejs-journey-lv-1-fisheye/src/App.jsx | 0 .../src/Scene.jsx | 0 .../src/index.jsx | 0 .../src/level-react-draco.glb | Bin .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../.codesandbox/workspace.json | 0 .../threejs-journey-portal/.prettierrc | 0 examples/threejs-journey-portal/README.md | 9 + .../threejs-journey-portal/index.html | 0 .../threejs-journey-portal/package.json | 4 +- .../threejs-journey-portal/pmndrs.json | 0 .../threejs-journey-portal/public/vite.svg | 0 .../sandbox.config.json | 0 .../threejs-journey-portal/src/App.jsx | 0 .../threejs-journey-portal/src/baked-02.jpeg | Bin .../threejs-journey-portal/src/index.jsx | 0 .../threejs-journey-portal/src/portal-2.glb | Bin .../threejs-journey-portal/src/styles.css | 0 .../threejs-journey-portal/src/vite-env.d.ts | 0 .../threejs-journey-portal/thumbnail.webp | Bin .../threejs-journey-portal/tsconfig.json | 0 .../threejs-journey-portal/tsconfig.node.json | 0 .../threejs-journey-portal/vite.config.ts | 0 .../thunder-clouds/.prettierrc | 0 examples/thunder-clouds/README.md | 9 + {demos => examples}/thunder-clouds/index.html | 0 .../thunder-clouds/package.json | 4 +- .../thunder-clouds/pmndrs.json | 0 .../thunder-clouds/public/cloud.png | Bin .../thunder-clouds/public/favicon.ico | Bin .../thunder-clouds/public/logo192.png | Bin .../thunder-clouds/public/logo512.png | Bin .../thunder-clouds/public/manifest.json | 0 .../thunder-clouds/public/robots.txt | 0 .../thunder-clouds/public/vite.svg | 0 .../thunder-clouds/sandbox.config.json | 0 .../thunder-clouds/src/App.jsx | 0 .../thunder-clouds/src/index.jsx | 0 .../thunder-clouds/src/styles.css | 0 .../thunder-clouds/src/vite-env.d.ts | 0 .../thunder-clouds/thumbnail.webp | Bin .../thunder-clouds/tsconfig.json | 0 .../thunder-clouds/tsconfig.node.json | 0 .../thunder-clouds/vite.config.ts | 0 {demos => examples}/trails/.prettierrc | 0 examples/trails/README.md | 9 + {demos => examples}/trails/index.html | 0 {demos => examples}/trails/package.json | 4 +- {demos => examples}/trails/pmndrs.json | 0 {demos => examples}/trails/public/vite.svg | 0 {demos => examples}/trails/src/App.jsx | 0 {demos => examples}/trails/src/cursor.glb | Bin {demos => examples}/trails/src/index.jsx | 0 {demos => examples}/trails/src/pmndrs.glb | Bin {demos => examples}/trails/src/styles.css | 0 {demos => examples}/trails/src/vite-env.d.ts | 0 {demos => examples}/trails/thumbnail.webp | Bin {demos => examples}/trails/tsconfig.json | 0 {demos => examples}/trails/tsconfig.node.json | 0 {demos => examples}/trails/vite.config.ts | 0 .../.prettierrc | 0 .../README.md | 9 + .../index.html | 0 .../package.json | 4 +- .../pmndrs.json | 0 .../public/draco/draco_decoder.js | 0 .../public/draco/draco_decoder.wasm | Bin .../public/draco/draco_encoder.js | 0 .../public/draco/draco_wasm_wrapper.js | 0 .../public/vite.svg | 0 .../src/App.jsx | 0 .../src/compressed.glb | Bin .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../transparent-aesop-bottles/.prettierrc | 0 examples/transparent-aesop-bottles/README.md | 9 + .../transparent-aesop-bottles/index.html | 0 .../transparent-aesop-bottles/package.json | 4 +- .../transparent-aesop-bottles/pmndrs.json | 0 .../public/Harmond-ExtBdItaExp.otf | 0 .../public/Harmond-SemBdItaCond.otf | 0 .../public/Ki-Thin.ttf | Bin .../public/Ki_Regular.blob | 0 .../transparent-aesop-bottles/public/logo.png | Bin .../public/manifest.json | 0 .../public/robots.txt | 0 .../transparent-aesop-bottles/public/vite.svg | 0 .../transparent-aesop-bottles/src/App.jsx | 0 .../transparent-aesop-bottles/src/Bottles.jsx | 0 .../src/Ki-Medium.ttf | Bin .../transparent-aesop-bottles/src/draco.glb | Bin .../transparent-aesop-bottles/src/index.jsx | 0 .../transparent-aesop-bottles/src/styles.css | 0 .../src/vite-env.d.ts | 0 .../transparent-aesop-bottles/thumbnail.webp | Bin .../transparent-aesop-bottles/tsconfig.json | 0 .../tsconfig.node.json | 0 .../transparent-aesop-bottles/vite.config.ts | 0 .../trigger-meshes/.prettierrc | 0 examples/trigger-meshes/README.md | 9 + {demos => examples}/trigger-meshes/index.html | 0 .../trigger-meshes}/package.json | 4 +- .../trigger-meshes/pmndrs.json | 0 .../trigger-meshes/public/vite.svg | 0 .../trigger-meshes/src/App.jsx | 0 .../trigger-meshes/src/index.jsx | 0 .../trigger-meshes/src/styles.css | 0 .../trigger-meshes/src/vite-env.d.ts | 0 .../trigger-meshes/thumbnail.webp | Bin .../trigger-meshes/tsconfig.json | 0 .../trigger-meshes/tsconfig.node.json | 0 .../trigger-meshes/vite.config.ts | 0 .../tying-canvas-to-scroll-offset/.prettierrc | 0 .../tying-canvas-to-scroll-offset/README.md | 9 + .../tying-canvas-to-scroll-offset/index.html | 0 .../package.json | 37 + .../tying-canvas-to-scroll-offset/pmndrs.json | 0 .../public/vite.svg | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 .../.prettierrc | 0 .../useintersect-and-scrollcontrols/README.md | 9 + .../index.html | 0 .../package.json | 38 + .../pmndrs.json | 0 .../public/Inter-UI-Medium.ttf | Bin .../public/vite.svg | 0 .../useintersect-and-scrollcontrols/src/1.jpg | Bin .../src/10.jpg | Bin .../src/11.jpg | Bin .../src/12.jpg | Bin .../useintersect-and-scrollcontrols/src/2.jpg | Bin .../useintersect-and-scrollcontrols/src/3.jpg | Bin .../useintersect-and-scrollcontrols/src/4.jpg | Bin .../useintersect-and-scrollcontrols/src/5.jpg | Bin .../useintersect-and-scrollcontrols/src/6.jpg | Bin .../useintersect-and-scrollcontrols/src/7.jpg | Bin .../useintersect-and-scrollcontrols/src/8.jpg | Bin .../useintersect-and-scrollcontrols/src/9.jpg | Bin .../src/App.jsx | 0 .../src/index.jsx | 0 .../src/styles.css | 0 .../src/vite-env.d.ts | 0 .../thumbnail.webp | Bin .../tsconfig.json | 0 .../tsconfig.node.json | 0 .../vite.config.ts | 0 {demos => examples}/video-cookies/.prettierrc | 0 examples/video-cookies/README.md | 9 + {demos => examples}/video-cookies/index.html | 0 .../video-cookies/package.json | 4 +- {demos => examples}/video-cookies/pmndrs.json | 0 .../video-cookies/public/vite.svg | 0 {demos => examples}/video-cookies/src/App.jsx | 0 .../src/assets/suzanne-high-poly.gltf | 0 .../video-cookies/src/caustics.mp4 | Bin .../video-cookies/src/index.jsx | 0 .../video-cookies/src/styles.css | 0 .../video-cookies/src/vite-env.d.ts | 0 .../video-cookies/thumbnail.webp | Bin .../video-cookies/tsconfig.json | 0 .../video-cookies/tsconfig.node.json | 0 .../video-cookies/vite.config.ts | 0 .../video-textures/.prettierrc | 0 examples/video-textures/README.md | 9 + {demos => examples}/video-textures/index.html | 0 examples/video-textures/package.json | 37 + .../video-textures/pmndrs.json | 0 .../video-textures/public/vite.svg | 0 {demos => examples}/video-textures/src/10.jpg | Bin {demos => examples}/video-textures/src/10.mp4 | Bin .../video-textures/src/App.jsx | 0 .../video-textures/src/index.jsx | 0 .../video-textures/src/styles.css | 0 .../video-textures/src/vite-env.d.ts | 0 .../video-textures/thumbnail.webp | Bin .../video-textures/tsconfig.json | 0 .../video-textures/tsconfig.node.json | 0 .../video-textures/vite.config.ts | 0 {demos => examples}/view-tracking/.prettierrc | 0 examples/view-tracking/README.md | 9 + {demos => examples}/view-tracking/index.html | 0 .../view-tracking/package.json | 4 +- {demos => examples}/view-tracking/pmndrs.json | 0 .../view-tracking/public/vite.svg | 0 {demos => examples}/view-tracking/src/App.jsx | 0 .../view-tracking/src/Models.jsx | 0 .../view-tracking/src/assets/apple-half.gltf | 0 .../src/assets/candy-bucket.gltf | 0 .../view-tracking/src/assets/duck.gltf | 0 .../view-tracking/src/assets/lightning.gltf | 0 .../view-tracking/src/assets/soda-bottle.gltf | 0 .../src/assets/target-stand.gltf | 0 .../view-tracking/src/index.jsx | 0 .../view-tracking/src/styles.css | 0 .../view-tracking/src/vite-env.d.ts | 0 .../view-tracking/thumbnail.webp | Bin .../view-tracking/tsconfig.json | 0 .../view-tracking/tsconfig.node.json | 0 .../view-tracking/vite.config.ts | 0 {demos => examples}/viewcube/.prettierrc | 0 examples/viewcube/README.md | 9 + {demos => examples}/viewcube/index.html | 0 {demos => examples}/viewcube/package.json | 4 +- {demos => examples}/viewcube/pmndrs.json | 0 {demos => examples}/viewcube/public/vite.svg | 0 {demos => examples}/viewcube/src/App.jsx | 0 {demos => examples}/viewcube/src/index.jsx | 0 {demos => examples}/viewcube/src/styles.css | 0 .../viewcube/src/vite-env.d.ts | 0 {demos => examples}/viewcube/thumbnail.webp | Bin {demos => examples}/viewcube/tsconfig.json | 0 .../viewcube/tsconfig.node.json | 0 {demos => examples}/viewcube/vite.config.ts | 0 {demos => examples}/viking-ship/.prettierrc | 0 examples/viking-ship/README.md | 9 + {demos => examples}/viking-ship/index.html | 0 {demos => examples}/viking-ship/package.json | 4 +- {demos => examples}/viking-ship/pmndrs.json | 0 .../viking-ship/public/favicon.ico | Bin .../viking-ship/public/logo192.png | Bin .../viking-ship/public/logo512.png | Bin .../viking-ship/public/manifest.json | 0 .../viking-ship/public/robots.txt | 0 .../viking-ship/public/vite.svg | 0 .../viking-ship/sandbox.config.json | 0 {demos => examples}/viking-ship/src/App.tsx | 0 {demos => examples}/viking-ship/src/Model.tsx | 0 {demos => examples}/viking-ship/src/index.tsx | 0 .../viking-ship/src/styles.css | 0 ...or_and_the_midgard_serpent-transformed.glb | Bin .../viking-ship/src/vite-env.d.ts | 0 .../viking-ship/thumbnail.webp | Bin {demos => examples}/viking-ship/tsconfig.json | 0 .../viking-ship/tsconfig.node.json | 0 .../viking-ship/vite.config.ts | 0 .../volumetric-light-godray/.prettierrc | 0 examples/volumetric-light-godray/README.md | 9 + .../volumetric-light-godray/index.html | 0 examples/volumetric-light-godray/package.json | 38 + .../volumetric-light-godray/pmndrs.json | 0 .../volumetric-light-godray/public/vite.svg | 0 .../sandbox.config.json | 0 .../volumetric-light-godray/src/10.mp4 | Bin .../volumetric-light-godray/src/App.jsx | 0 .../volumetric-light-godray/src/index.jsx | 0 .../volumetric-light-godray/src/styles.css | 0 .../volumetric-light-godray/src/vite-env.d.ts | 0 .../volumetric-light-godray/thumbnail.webp | Bin .../volumetric-light-godray/tsconfig.json | 0 .../tsconfig.node.json | 0 .../volumetric-light-godray/vite.config.ts | 0 .../volumetric-spotlight/.prettierrc | 0 examples/volumetric-spotlight/README.md | 9 + .../volumetric-spotlight/index.html | 0 .../volumetric-spotlight}/package.json | 4 +- .../volumetric-spotlight/pmndrs.json | 0 .../volumetric-spotlight/public/vite.svg | 0 .../volumetric-spotlight/src/App.jsx | 0 .../src/assets/dragon.gltf | 0 .../volumetric-spotlight/src/index.jsx | 0 .../volumetric-spotlight/src/styles.css | 0 .../volumetric-spotlight/src/vite-env.d.ts | 0 .../volumetric-spotlight/thumbnail.webp | Bin .../volumetric-spotlight/tsconfig.json | 0 .../volumetric-spotlight/tsconfig.node.json | 0 .../volumetric-spotlight/vite.config.ts | 0 {demos => examples}/water-shader/.prettierrc | 0 examples/water-shader/README.md | 9 + {demos => examples}/water-shader/index.html | 0 {demos => examples}/water-shader/package.json | 4 +- {demos => examples}/water-shader/pmndrs.json | 0 .../water-shader/public/vite.svg | 0 {demos => examples}/water-shader/src/App.jsx | 0 .../water-shader/src/index.jsx | 0 .../water-shader/src/styles.css | 0 .../water-shader/src/vite-env.d.ts | 0 .../water-shader/src/waternormals.jpeg | Bin .../water-shader/thumbnail.webp | Bin .../water-shader/tsconfig.json | 0 .../water-shader/tsconfig.node.json | 0 .../water-shader/vite.config.ts | 0 {demos => examples}/wireframes/.prettierrc | 0 examples/wireframes/README.md | 9 + {demos => examples}/wireframes/index.html | 0 {demos => examples}/wireframes/package.json | 4 +- {demos => examples}/wireframes/pmndrs.json | 0 .../wireframes/public/vite.svg | 0 {demos => examples}/wireframes/src/App.jsx | 0 {demos => examples}/wireframes/src/Car.jsx | 0 .../wireframes/src/Primitive.jsx | 0 {demos => examples}/wireframes/src/Shader.jsx | 0 {demos => examples}/wireframes/src/car.glb | Bin .../wireframes/src/components/Branding.jsx | 0 .../wireframes/src/components/Lights.jsx | 0 {demos => examples}/wireframes/src/index.jsx | 0 {demos => examples}/wireframes/src/styles.css | 0 .../wireframes/src/useOptions.jsx | 0 .../wireframes/src/vite-env.d.ts | 0 {demos => examples}/wireframes/thumbnail.webp | Bin {demos => examples}/wireframes/tsconfig.json | 0 .../wireframes/tsconfig.node.json | 0 {demos => examples}/wireframes/vite.config.ts | 0 .../wobbling-sphere/.prettierrc | 0 examples/wobbling-sphere/README.md | 9 + .../wobbling-sphere/index.html | 0 .../wobbling-sphere}/package.json | 4 +- .../wobbling-sphere/pmndrs.json | 0 .../wobbling-sphere/public/vite.svg | 0 .../wobbling-sphere/src/App.jsx | 0 .../wobbling-sphere/src/Overlay.jsx | 0 .../wobbling-sphere/src/Scene.jsx | 0 .../wobbling-sphere/src/index.jsx | 0 .../wobbling-sphere/src/styles.css | 0 .../wobbling-sphere/src/vite-env.d.ts | 0 .../wobbling-sphere/thumbnail.webp | Bin .../wobbling-sphere/tsconfig.json | 0 .../wobbling-sphere/tsconfig.node.json | 0 .../wobbling-sphere/vite.config.ts | 0 {demos => examples}/zustand-site/.prettierrc | 0 examples/zustand-site/README.md | 9 + {demos => examples}/zustand-site/index.html | 0 {demos => examples}/zustand-site/package.json | 4 +- {demos => examples}/zustand-site/pmndrs.json | 0 .../zustand-site/public/favicon.ico | Bin .../zustand-site/public/logo192.png | Bin .../zustand-site/public/logo512.png | Bin .../zustand-site/public/manifest.json | 0 .../zustand-site/public/ogimage.jpg | Bin .../zustand-site/public/robots.txt | 0 .../zustand-site/public/vite.svg | 0 {demos => examples}/zustand-site/src/App.jsx | 0 .../zustand-site/src/components/Fireflies.jsx | 0 .../zustand-site/src/index.jsx | 0 .../src/materials/layerMaterial.js | 0 .../zustand-site/src/resources/bear.png | Bin .../zustand-site/src/resources/bg.jpg | Bin .../zustand-site/src/resources/ground.png | Bin .../zustand-site/src/resources/leaves1.png | Bin .../zustand-site/src/resources/leaves2.png | Bin .../zustand-site/src/resources/stars.png | Bin .../zustand-site/src/styles.css | 0 .../zustand-site/src/vite-env.d.ts | 0 .../zustand-site/thumbnail.webp | Bin .../zustand-site/tsconfig.json | 0 .../zustand-site/tsconfig.node.json | 0 .../zustand-site/vite.config.ts | 0 out.sh | 26 +- packages/e2e/bin/build.mjs | 4 +- packages/e2e/bin/dev.mjs | 6 +- packages/e2e/bin/test.mjs | 8 +- packages/e2e/snapshot.test.js | 12 +- pnpm-lock.yaml | 954 +++++++++--------- pnpm-workspace.yaml | 4 +- postprocessing-tone-mapping.txt | 18 +- 3195 files changed, 3392 insertions(+), 3374 deletions(-) rename apps/website/app/{demos/[demoname] => examples/[examplename]}/Dev.tsx (91%) rename apps/website/app/{demos/[demoname] => examples/[examplename]}/Info.tsx (89%) rename apps/website/app/{demos/[demoname] => examples/[examplename]}/Social.tsx (91%) rename apps/website/app/{demos/[demoname] => examples/[examplename]}/layout.tsx (78%) rename apps/website/app/{demos/[demoname] => examples/[examplename]}/page.tsx (59%) rename apps/website/components/{ScaledDemoFrame.tsx => ScaledExampleFrame.tsx} (91%) delete mode 100644 demos/arkanoid-under-60-loc/README.md delete mode 100644 demos/backdrop-and-cables/README.md delete mode 100644 demos/baking-soft-shadows/README.md delete mode 100644 demos/bestservedbold-christmas-baubles/README.md delete mode 100644 demos/bezier-curves-and-nodes/README.md delete mode 100644 demos/bloom-hdr-workflow-gltf/README.md delete mode 100644 demos/bounds-and-makedefault/README.md delete mode 100644 demos/bruno-simons-20k-challenge/README.md delete mode 100644 demos/building-dynamic-envmaps/README.md delete mode 100644 demos/building-live-envmaps/README.md delete mode 100644 demos/camera-scroll/README.md delete mode 100644 demos/camera-shake/README.md delete mode 100644 demos/canvas-text/README.md delete mode 100644 demos/cards-with-border-radius/README.md delete mode 100644 demos/caustics/README.md delete mode 100644 demos/cell-fracture/README.md delete mode 100644 demos/cell-fracture/package.json delete mode 100644 demos/clones/README.md delete mode 100644 demos/clouds/README.md delete mode 100644 demos/color-grading/README.md delete mode 100644 demos/color-grading/package.json delete mode 100644 demos/confetti/README.md delete mode 100644 demos/csg-bunny-usegroups/README.md delete mode 100644 demos/csg-house/README.md delete mode 100644 demos/csg-operations-rapier-physics/README.md delete mode 100644 demos/dbismut-furniture/README.md delete mode 100644 demos/diamond-refraction/README.md delete mode 100644 demos/diamond-ring/README.md delete mode 100644 demos/drei-rendertexture/README.md delete mode 100644 demos/ecctrl-fisheye/README.md delete mode 100644 demos/edgesgeometry/README.md delete mode 100644 demos/edgesgeometry/package.json delete mode 100644 demos/environment-blur-and-transitions/README.md delete mode 100644 demos/envmap-ground-projection/README.md delete mode 100644 demos/faucets-select-highlight/README.md delete mode 100755 demos/flexbox-yoga-in-webgl/README.md delete mode 100644 demos/floating-diamonds/README.md delete mode 100644 demos/floating-instanced-shoes/README.md delete mode 100644 demos/floating-laptop/README.md delete mode 100644 demos/flow-shield/README.md delete mode 100644 demos/flying-bananas/README.md delete mode 100644 demos/frosted-glass/README.md delete mode 100644 demos/gatsby-stars/README.md delete mode 100644 demos/glass-flower/README.md delete mode 100644 demos/gltf-animations-re-used/README.md delete mode 100644 demos/gltf-animations-tied-to-scroll/README.md delete mode 100644 demos/gltf-animations/README.md delete mode 100644 demos/gltf-animations/package.json delete mode 100644 demos/gltfjsx-400kb-drone/README.md delete mode 100644 demos/gpgpu-curl-noise-dof/README.md delete mode 100644 demos/grass-shader/README.md delete mode 100644 demos/ground-projected-envmaps-lamina/README.md delete mode 100644 demos/ground-reflections-and-video-textures/README.md delete mode 100644 demos/hi-key-bubbles/README.md delete mode 100644 demos/horizontal-tiles/README.md delete mode 100644 demos/html-annotations/package.json delete mode 100644 demos/html-input-fields/README.md delete mode 100644 demos/html-markers/README.md delete mode 100644 demos/image-gallery/README.md delete mode 100644 demos/infinite-scroll/README.md delete mode 100644 demos/instanced-particles-effects/README.md delete mode 100644 demos/instanced-particles-effects/package.json delete mode 100644 demos/instanced-vertex-colors/README.md delete mode 100644 demos/instances/README.md delete mode 100644 demos/inter-epoxy-resin/README.md delete mode 100644 demos/interactive-spline-scene-live-html/README.md delete mode 100644 demos/inverted-stencil-buffer/README.md delete mode 100644 demos/iridescent-decals/package.json delete mode 100644 demos/lamina-1x/README.md delete mode 100644 demos/landing-page/README.md delete mode 100644 demos/learn-with-jason/README.md delete mode 100644 demos/lulaby-city/README.md delete mode 100644 demos/lusion-connectors/README.md delete mode 100644 demos/magic-box/README.md delete mode 100644 demos/merged-instance/README.md delete mode 100644 demos/minecraft/README.md delete mode 100644 demos/mixing-controls/README.md delete mode 100644 demos/mixing-html-and-webgl-w-occlusion/README.md delete mode 100644 demos/mixing-html-and-webgl/README.md delete mode 100644 demos/monitors/README.md delete mode 100644 demos/motionpathcontrols/README.md delete mode 100644 demos/mount-transitions/README.md delete mode 100644 demos/multiple-views-with-uniform-controls/README.md delete mode 100644 demos/nextjs-prism/README.md delete mode 100644 demos/night-train/README.md delete mode 100644 demos/night-train/package.json delete mode 100644 demos/object-clump/README.md delete mode 100644 demos/pairing-threejs-to-ui/README.md delete mode 100644 demos/pass-through-portals/README.md delete mode 100644 demos/physics-with-convex-polyhedrons/README.md delete mode 100644 demos/pinball-in-70-lines/package.json delete mode 100644 demos/pmndrs-vercel/README.md delete mode 100644 demos/portal-shapes/README.md delete mode 100644 demos/portals/README.md delete mode 100644 demos/progressive-loading-states-with-suspense/README.md delete mode 100644 demos/progressive-loading-states-with-suspense/package.json delete mode 100644 demos/racing-game/README.md delete mode 100644 demos/ragdoll-physics/README.md delete mode 100644 demos/rapier-physics/README.md delete mode 100644 demos/rapier-ping-pong/README.md delete mode 100644 demos/raycast-cycling/README.md delete mode 100644 demos/re-using-geometry-and-level-of-detail/README.md delete mode 100644 demos/re-using-geometry-and-level-of-detail/package.json delete mode 100644 demos/re-using-gltfs/README.md delete mode 100644 demos/react-ellipsecurve/README.md delete mode 100644 demos/react-pp-outlines/README.md delete mode 100644 demos/react-spring-animations/README.md delete mode 100644 demos/room-with-soft-shadows/README.md delete mode 100644 demos/router-transitions/README.md delete mode 100644 demos/scrollcontrols-and-lens-refraction/README.md delete mode 100644 demos/scrollcontrols-gltf/README.md delete mode 100644 demos/scrollcontrols-gltf/package.json delete mode 100644 demos/scrollcontrols-with-minimap/README.md delete mode 100644 demos/scrollcontrols-with-minimap/package.json delete mode 100644 demos/selective-outlines/README.md delete mode 100644 demos/shader-fire/README.md delete mode 100644 demos/shader-hmr/README.md delete mode 100644 demos/shadermaterials/README.md delete mode 100644 demos/shadermaterials/package.json delete mode 100644 demos/shoe-configurator/README.md delete mode 100644 demos/shopping/README.md delete mode 100644 demos/simple-audio-analyser/README.md delete mode 100644 demos/simple-physics-demo-with-debug-bounds/README.md delete mode 100644 demos/simple-physics-demo/README.md delete mode 100644 demos/sky-dome-with-annotations/README.md delete mode 100644 demos/soft-shadows/README.md delete mode 100644 demos/space-game/README.md delete mode 100644 demos/sparks-and-effects/README.md delete mode 100644 demos/spline-glass-shapes/README.md delete mode 100644 demos/sport-hall/README.md delete mode 100644 demos/spotlight-shadows/README.md delete mode 100644 demos/spotlight-shadows/package.json delete mode 100644 demos/springy-boxes/README.md delete mode 100644 demos/ssgi-spheres-with-rapier-physics/README.md delete mode 100644 demos/ssr-test/README.md delete mode 100644 demos/stage-presets-gltfjsx/README.md delete mode 100644 demos/staging-and-camerashake/README.md delete mode 100644 demos/staging-and-camerashake/package.json delete mode 100644 demos/starwars/README.md delete mode 100644 demos/stencil-mask/README.md delete mode 100644 demos/svg-maps-with-html-annotations/README.md delete mode 100644 demos/svg-renderer/README.md delete mode 100644 demos/t-shirt-configurator/README.md delete mode 100644 demos/the-three-graces/README.md delete mode 100644 demos/threejs-journey-lv-1-fisheye/README.md delete mode 100644 demos/threejs-journey-portal/README.md delete mode 100644 demos/thunder-clouds/README.md delete mode 100644 demos/trails/README.md delete mode 100644 demos/transformcontrols-and-makedefault/README.md delete mode 100644 demos/transparent-aesop-bottles/README.md delete mode 100644 demos/trigger-meshes/README.md delete mode 100644 demos/tying-canvas-to-scroll-offset/README.md delete mode 100644 demos/tying-canvas-to-scroll-offset/package.json delete mode 100644 demos/useintersect-and-scrollcontrols/README.md delete mode 100644 demos/useintersect-and-scrollcontrols/package.json delete mode 100644 demos/video-cookies/README.md delete mode 100644 demos/video-textures/README.md delete mode 100644 demos/video-textures/package.json delete mode 100644 demos/view-tracking/README.md delete mode 100644 demos/viewcube/README.md delete mode 100644 demos/viking-ship/README.md delete mode 100644 demos/volumetric-light-godray/README.md delete mode 100644 demos/volumetric-light-godray/package.json delete mode 100644 demos/volumetric-spotlight/README.md delete mode 100644 demos/volumetric-spotlight/package.json delete mode 100644 demos/water-shader/README.md delete mode 100644 demos/wireframes/README.md delete mode 100644 demos/wobbling-sphere/README.md delete mode 100644 demos/zustand-site/README.md rename {demos => examples}/aquarium/.prettierrc (100%) rename {demos/basic-demo => examples/aquarium}/README.md (51%) rename {demos => examples}/aquarium/index.html (100%) rename {demos => examples}/aquarium/package.json (88%) rename {demos => examples}/aquarium/pmndrs.json (100%) rename {demos => examples}/aquarium/public/vite.svg (100%) rename {demos => examples}/aquarium/src/App.jsx (100%) rename {demos => examples}/aquarium/src/index.jsx (100%) rename {demos => examples}/aquarium/src/model_52a_-_kemps_ridley_sea_turtle_no_id-transformed.glb (100%) rename {demos => examples}/aquarium/src/shapes-transformed.glb (100%) rename {demos => examples}/aquarium/src/styles.css (100%) rename {demos => examples}/aquarium/src/vite-env.d.ts (100%) rename {demos => examples}/aquarium/thumbnail.webp (100%) rename {demos => examples}/aquarium/tsconfig.json (100%) rename {demos => examples}/aquarium/tsconfig.node.json (100%) rename {demos => examples}/aquarium/vite.config.ts (100%) rename {demos => examples}/arkanoid-under-60-loc/.prettierrc (100%) create mode 100644 examples/arkanoid-under-60-loc/README.md rename {demos => examples}/arkanoid-under-60-loc/index.html (100%) rename {demos => examples}/arkanoid-under-60-loc/package.json (85%) rename {demos => examples}/arkanoid-under-60-loc/pmndrs.json (100%) rename {demos => examples}/arkanoid-under-60-loc/public/vite.svg (100%) rename {demos => examples}/arkanoid-under-60-loc/src/App.jsx (100%) rename {demos => examples}/arkanoid-under-60-loc/src/index.jsx (100%) rename {demos => examples}/arkanoid-under-60-loc/src/styles.css (100%) rename {demos => examples}/arkanoid-under-60-loc/src/vite-env.d.ts (100%) rename {demos => examples}/arkanoid-under-60-loc/thumbnail.webp (100%) rename {demos => examples}/arkanoid-under-60-loc/tsconfig.json (100%) rename {demos => examples}/arkanoid-under-60-loc/tsconfig.node.json (100%) rename {demos => examples}/arkanoid-under-60-loc/vite.config.ts (100%) rename {demos => examples}/arkanoid/.prettierrc (100%) create mode 100644 examples/arkanoid/README.md rename {demos => examples}/arkanoid/index.html (100%) rename {demos => examples}/arkanoid/package.json (89%) rename {demos => examples}/arkanoid/pmndrs.json (100%) rename {demos => examples}/arkanoid/public/pingpong.glb (100%) rename {demos => examples}/arkanoid/public/vite.svg (100%) rename {demos => examples}/arkanoid/src/App.jsx (100%) rename {demos => examples}/arkanoid/src/Effects.jsx (100%) rename {demos => examples}/arkanoid/src/index.jsx (100%) rename {demos => examples}/arkanoid/src/resources/bg.jpg (100%) rename {demos => examples}/arkanoid/src/resources/cross.jpg (100%) rename {demos => examples}/arkanoid/src/resources/firasans_regular.json (100%) rename {demos => examples}/arkanoid/src/resources/ping.mp3 (100%) rename {demos => examples}/arkanoid/src/resources/sawsquarenoise_-_01_-_Towel_Defence_Splash_Screen.mp3 (100%) rename {demos => examples}/arkanoid/src/resources/select_006.ogg (100%) rename {demos => examples}/arkanoid/src/resources/select_007.ogg (100%) rename {demos => examples}/arkanoid/src/store.js (100%) rename {demos => examples}/arkanoid/src/styles.css (100%) rename {demos => examples}/arkanoid/src/vite-env.d.ts (100%) rename {demos => examples}/arkanoid/thumbnail.webp (100%) rename {demos => examples}/arkanoid/tsconfig.json (100%) rename {demos => examples}/arkanoid/tsconfig.node.json (100%) rename {demos => examples}/arkanoid/vite.config.ts (100%) rename {demos => examples}/audio-analyser/.codesandbox/workspace.json (100%) rename {demos => examples}/audio-analyser/.prettierrc (100%) create mode 100644 examples/audio-analyser/README.md rename {demos => examples}/audio-analyser/index.html (100%) rename {demos => examples}/audio-analyser/package.json (87%) rename {demos => examples}/audio-analyser/pmndrs.json (100%) rename {demos => examples}/audio-analyser/public/vite.svg (100%) rename {demos => examples}/audio-analyser/sandbox.config.json (100%) rename {demos => examples}/audio-analyser/src/App.jsx (100%) rename {demos => examples}/audio-analyser/src/SurfaceImperfections003_1K_Normal.jpg (100%) rename {demos => examples}/audio-analyser/src/SurfaceImperfections003_1K_var1.jpg (100%) rename {demos => examples}/audio-analyser/src/bust.glb (100%) rename {demos => examples}/audio-analyser/src/drums.mp3 (100%) rename {demos => examples}/audio-analyser/src/explosion.glb (100%) rename {demos => examples}/audio-analyser/src/index.jsx (100%) rename {demos => examples}/audio-analyser/src/snare.mp3 (100%) rename {demos => examples}/audio-analyser/src/store.js (100%) rename {demos => examples}/audio-analyser/src/styles.css (100%) rename {demos => examples}/audio-analyser/src/synth.mp3 (100%) rename {demos => examples}/audio-analyser/src/vite-env.d.ts (100%) rename {demos => examples}/audio-analyser/thumbnail.webp (100%) rename {demos => examples}/audio-analyser/tsconfig.json (100%) rename {demos => examples}/audio-analyser/tsconfig.node.json (100%) rename {demos => examples}/audio-analyser/vite.config.ts (100%) rename {demos => examples}/backdrop-and-cables/.prettierrc (100%) create mode 100644 examples/backdrop-and-cables/README.md rename {demos => examples}/backdrop-and-cables/index.html (100%) rename {demos/baking-soft-shadows => examples/backdrop-and-cables}/package.json (86%) rename {demos => examples}/backdrop-and-cables/pmndrs.json (100%) rename {demos => examples}/backdrop-and-cables/public/vite.svg (100%) rename {demos => examples}/backdrop-and-cables/src/App.jsx (100%) rename {demos => examples}/backdrop-and-cables/src/assets/Astronaut-transformed.glb (100%) rename {demos => examples}/backdrop-and-cables/src/assets/Low-Poly-Spaceship.gltf (100%) rename {demos => examples}/backdrop-and-cables/src/index.jsx (100%) rename {demos => examples}/backdrop-and-cables/src/styles.css (100%) rename {demos => examples}/backdrop-and-cables/src/vite-env.d.ts (100%) rename {demos => examples}/backdrop-and-cables/thumbnail.webp (100%) rename {demos => examples}/backdrop-and-cables/tsconfig.json (100%) rename {demos => examples}/backdrop-and-cables/tsconfig.node.json (100%) rename {demos => examples}/backdrop-and-cables/vite.config.ts (100%) rename {demos => examples}/baking-soft-shadows/.prettierrc (100%) create mode 100644 examples/baking-soft-shadows/README.md rename {demos => examples}/baking-soft-shadows/index.html (100%) rename {demos/backdrop-and-cables => examples/baking-soft-shadows}/package.json (86%) rename {demos => examples}/baking-soft-shadows/pmndrs.json (100%) rename {demos => examples}/baking-soft-shadows/public/vite.svg (100%) rename {demos => examples}/baking-soft-shadows/src/App.jsx (100%) rename {demos => examples}/baking-soft-shadows/src/index.jsx (100%) rename {demos => examples}/baking-soft-shadows/src/styles.css (100%) rename {demos => examples}/baking-soft-shadows/src/suzi-model.gltf (100%) rename {demos => examples}/baking-soft-shadows/src/vite-env.d.ts (100%) rename {demos => examples}/baking-soft-shadows/thumbnail.webp (100%) rename {demos => examples}/baking-soft-shadows/tsconfig.json (100%) rename {demos => examples}/baking-soft-shadows/tsconfig.node.json (100%) rename {demos => examples}/baking-soft-shadows/vite.config.ts (100%) rename {demos => examples}/basic-ballpit/.prettierrc (100%) create mode 100644 examples/basic-ballpit/README.md rename {demos => examples}/basic-ballpit/index.html (100%) rename {demos => examples}/basic-ballpit/package.json (87%) rename {demos => examples}/basic-ballpit/pmndrs.json (100%) rename {demos => examples}/basic-ballpit/public/vite.svg (100%) rename {demos => examples}/basic-ballpit/src/App.jsx (100%) rename {demos => examples}/basic-ballpit/src/index.jsx (100%) rename {demos => examples}/basic-ballpit/src/styles.css (100%) rename {demos => examples}/basic-ballpit/src/vite-env.d.ts (100%) rename {demos => examples}/basic-ballpit/thumbnail.webp (100%) rename {demos => examples}/basic-ballpit/tsconfig.json (100%) rename {demos => examples}/basic-ballpit/tsconfig.node.json (100%) rename {demos => examples}/basic-ballpit/vite.config.ts (100%) rename {demos/basic-demo => examples/basic-example}/.prettierrc (100%) create mode 100644 examples/basic-example/README.md rename {demos/basic-demo => examples/basic-example}/index.html (100%) rename {demos/basic-demo => examples/basic-example}/package.json (86%) rename {demos/basic-demo => examples/basic-example}/pmndrs.json (93%) rename {demos/basic-demo => examples/basic-example}/public/vite.svg (100%) rename {demos/basic-demo => examples/basic-example}/src/App.jsx (100%) rename {demos/basic-demo => examples/basic-example}/src/index.jsx (100%) rename {demos/basic-demo => examples/basic-example}/src/styles.css (100%) rename {demos/basic-demo => examples/basic-example}/src/vite-env.d.ts (100%) rename {demos/basic-demo => examples/basic-example}/thumbnail.webp (100%) rename {demos/basic-demo => examples/basic-example}/tsconfig.json (100%) rename {demos/basic-demo => examples/basic-example}/tsconfig.node.json (100%) rename {demos/basic-demo => examples/basic-example}/vite.config.ts (100%) rename {demos => examples}/bestservedbold-christmas-baubles/.prettierrc (100%) create mode 100644 examples/bestservedbold-christmas-baubles/README.md rename {demos => examples}/bestservedbold-christmas-baubles/index.html (100%) rename {demos => examples}/bestservedbold-christmas-baubles/package.json (84%) rename {demos => examples}/bestservedbold-christmas-baubles/pmndrs.json (100%) rename {demos => examples}/bestservedbold-christmas-baubles/public/vite.svg (100%) rename {demos => examples}/bestservedbold-christmas-baubles/sandbox.config.json (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/App.jsx (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/DirtyFigmaExport.jsx (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/adamsbridge.hdr (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/cap.glb (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/index.jsx (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/styles.css (100%) rename {demos => examples}/bestservedbold-christmas-baubles/src/vite-env.d.ts (100%) rename {demos => examples}/bestservedbold-christmas-baubles/thumbnail.webp (100%) rename {demos => examples}/bestservedbold-christmas-baubles/tsconfig.json (100%) rename {demos => examples}/bestservedbold-christmas-baubles/tsconfig.node.json (100%) rename {demos => examples}/bestservedbold-christmas-baubles/vite.config.ts (100%) rename {demos => examples}/bezier-curves-and-nodes/.prettierrc (100%) create mode 100644 examples/bezier-curves-and-nodes/README.md rename {demos => examples}/bezier-curves-and-nodes/index.html (100%) rename {demos => examples}/bezier-curves-and-nodes/package.json (85%) rename {demos => examples}/bezier-curves-and-nodes/pmndrs.json (100%) rename {demos => examples}/bezier-curves-and-nodes/public/Inter-Regular.woff (100%) rename {demos => examples}/bezier-curves-and-nodes/public/vite.svg (100%) rename {demos => examples}/bezier-curves-and-nodes/src/App.jsx (100%) rename {demos => examples}/bezier-curves-and-nodes/src/Nodes.jsx (100%) rename {demos => examples}/bezier-curves-and-nodes/src/index.jsx (100%) rename {demos => examples}/bezier-curves-and-nodes/src/styles.css (100%) rename {demos => examples}/bezier-curves-and-nodes/src/vite-env.d.ts (100%) rename {demos => examples}/bezier-curves-and-nodes/thumbnail.webp (100%) rename {demos => examples}/bezier-curves-and-nodes/tsconfig.json (100%) rename {demos => examples}/bezier-curves-and-nodes/tsconfig.node.json (100%) rename {demos => examples}/bezier-curves-and-nodes/vite.config.ts (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/.prettierrc (100%) create mode 100644 examples/bloom-hdr-workflow-gltf/README.md rename {demos => examples}/bloom-hdr-workflow-gltf/index.html (100%) create mode 100644 examples/bloom-hdr-workflow-gltf/package.json rename {demos => examples}/bloom-hdr-workflow-gltf/pmndrs.json (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/public/vite.svg (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/src/123-transformed.glb (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/src/App.jsx (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/src/Tower.jsx (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/src/index.jsx (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/src/styles.css (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/src/vite-env.d.ts (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/thumbnail.webp (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/tsconfig.json (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/tsconfig.node.json (100%) rename {demos => examples}/bloom-hdr-workflow-gltf/vite.config.ts (100%) rename {demos => examples}/bouncy-watch/.prettierrc (100%) create mode 100644 examples/bouncy-watch/README.md rename {demos => examples}/bouncy-watch/index.html (100%) rename {demos/caustics => examples/bouncy-watch}/package.json (86%) rename {demos => examples}/bouncy-watch/pmndrs.json (100%) rename {demos => examples}/bouncy-watch/public/vite.svg (100%) rename {demos => examples}/bouncy-watch/src/App.jsx (100%) rename {demos => examples}/bouncy-watch/src/index.jsx (100%) rename {demos => examples}/bouncy-watch/src/styles.css (100%) rename {demos => examples}/bouncy-watch/src/vite-env.d.ts (100%) rename {demos => examples}/bouncy-watch/src/watch-v1.glb (100%) rename {demos => examples}/bouncy-watch/thumbnail.webp (100%) rename {demos => examples}/bouncy-watch/tsconfig.json (100%) rename {demos => examples}/bouncy-watch/tsconfig.node.json (100%) rename {demos => examples}/bouncy-watch/vite.config.ts (100%) rename {demos => examples}/bounds-and-makedefault/.prettierrc (100%) create mode 100644 examples/bounds-and-makedefault/README.md rename {demos => examples}/bounds-and-makedefault/index.html (100%) create mode 100644 examples/bounds-and-makedefault/package.json rename {demos => examples}/bounds-and-makedefault/pmndrs.json (100%) rename {demos => examples}/bounds-and-makedefault/public/draco/draco_decoder.js (100%) rename {demos => examples}/bounds-and-makedefault/public/draco/draco_decoder.wasm (100%) rename {demos => examples}/bounds-and-makedefault/public/draco/draco_encoder.js (100%) rename {demos => examples}/bounds-and-makedefault/public/draco/draco_wasm_wrapper.js (100%) rename {demos => examples}/bounds-and-makedefault/public/vite.svg (100%) rename {demos => examples}/bounds-and-makedefault/src/App.jsx (100%) rename {demos => examples}/bounds-and-makedefault/src/compressed.glb (100%) rename {demos => examples}/bounds-and-makedefault/src/index.jsx (100%) rename {demos => examples}/bounds-and-makedefault/src/styles.css (100%) rename {demos => examples}/bounds-and-makedefault/src/vite-env.d.ts (100%) rename {demos => examples}/bounds-and-makedefault/thumbnail.webp (100%) rename {demos => examples}/bounds-and-makedefault/tsconfig.json (100%) rename {demos => examples}/bounds-and-makedefault/tsconfig.node.json (100%) rename {demos => examples}/bounds-and-makedefault/vite.config.ts (100%) rename {demos => examples}/bruno-simons-20k-challenge/.prettierrc (100%) create mode 100644 examples/bruno-simons-20k-challenge/README.md rename {demos => examples}/bruno-simons-20k-challenge/index.html (100%) rename {demos => examples}/bruno-simons-20k-challenge/package.json (86%) rename {demos => examples}/bruno-simons-20k-challenge/pmndrs.json (100%) rename {demos => examples}/bruno-simons-20k-challenge/public/vite.svg (100%) rename {demos => examples}/bruno-simons-20k-challenge/src/App.jsx (100%) rename {demos => examples}/bruno-simons-20k-challenge/src/blender-threejs-journey-20k-hat-transformed.glb (100%) rename {demos => examples}/bruno-simons-20k-challenge/src/blender-threejs-journey-20k-transformed.glb (100%) rename {demos => examples}/bruno-simons-20k-challenge/src/index.jsx (100%) rename {demos => examples}/bruno-simons-20k-challenge/src/styles.css (100%) rename {demos => examples}/bruno-simons-20k-challenge/src/vite-env.d.ts (100%) rename {demos => examples}/bruno-simons-20k-challenge/thumbnail.webp (100%) rename {demos => examples}/bruno-simons-20k-challenge/tsconfig.json (100%) rename {demos => examples}/bruno-simons-20k-challenge/tsconfig.node.json (100%) rename {demos => examples}/bruno-simons-20k-challenge/vite.config.ts (100%) rename {demos => examples}/building-dynamic-envmaps/.prettierrc (100%) create mode 100644 examples/building-dynamic-envmaps/README.md rename {demos => examples}/building-dynamic-envmaps/index.html (100%) rename {demos => examples}/building-dynamic-envmaps/package.json (85%) rename {demos => examples}/building-dynamic-envmaps/pmndrs.json (100%) rename {demos => examples}/building-dynamic-envmaps/public/vite.svg (100%) rename {demos => examples}/building-dynamic-envmaps/src/App.jsx (100%) rename {demos => examples}/building-dynamic-envmaps/src/Effects.jsx (100%) rename {demos => examples}/building-dynamic-envmaps/src/F-6800-STD.cube (100%) rename {demos => examples}/building-dynamic-envmaps/src/Lamborghini.jsx (100%) rename {demos => examples}/building-dynamic-envmaps/src/index.jsx (100%) rename {demos => examples}/building-dynamic-envmaps/src/lambo.glb (100%) rename {demos => examples}/building-dynamic-envmaps/src/styles.css (100%) rename {demos => examples}/building-dynamic-envmaps/src/vite-env.d.ts (100%) rename {demos => examples}/building-dynamic-envmaps/thumbnail.webp (100%) rename {demos => examples}/building-dynamic-envmaps/tsconfig.json (100%) rename {demos => examples}/building-dynamic-envmaps/tsconfig.node.json (100%) rename {demos => examples}/building-dynamic-envmaps/vite.config.ts (100%) rename {demos => examples}/building-live-envmaps/.prettierrc (100%) create mode 100644 examples/building-live-envmaps/README.md rename {demos => examples}/building-live-envmaps/index.html (100%) rename {demos => examples}/building-live-envmaps/package.json (86%) rename {demos => examples}/building-live-envmaps/pmndrs.json (100%) rename {demos => examples}/building-live-envmaps/public/vite.svg (100%) rename {demos => examples}/building-live-envmaps/src/911-transformed.glb (100%) rename {demos => examples}/building-live-envmaps/src/App.jsx (100%) rename {demos => examples}/building-live-envmaps/src/index.jsx (100%) rename {demos => examples}/building-live-envmaps/src/styles.css (100%) rename {demos => examples}/building-live-envmaps/src/vite-env.d.ts (100%) rename {demos => examples}/building-live-envmaps/thumbnail.webp (100%) rename {demos => examples}/building-live-envmaps/tsconfig.json (100%) rename {demos => examples}/building-live-envmaps/tsconfig.node.json (100%) rename {demos => examples}/building-live-envmaps/vite.config.ts (100%) rename {demos => examples}/bvh/.prettierrc (100%) rename {demos/moksha => examples/bvh}/README.md (53%) rename {demos => examples}/bvh/index.html (100%) rename {demos => examples}/bvh/package.json (89%) rename {demos => examples}/bvh/pmndrs.json (100%) rename {demos => examples}/bvh/public/vite.svg (100%) rename {demos => examples}/bvh/src/App.jsx (100%) rename {demos => examples}/bvh/src/Rays.jsx (100%) rename {demos => examples}/bvh/src/index.jsx (100%) rename {demos => examples}/bvh/src/styles.css (100%) rename {demos => examples}/bvh/src/vite-env.d.ts (100%) rename {demos => examples}/bvh/thumbnail.webp (100%) rename {demos => examples}/bvh/tsconfig.json (100%) rename {demos => examples}/bvh/tsconfig.node.json (100%) rename {demos => examples}/bvh/vite.config.ts (100%) rename {demos => examples}/camera-scroll/.prettierrc (100%) create mode 100644 examples/camera-scroll/README.md rename {demos => examples}/camera-scroll/index.html (100%) create mode 100644 examples/camera-scroll/package.json rename {demos => examples}/camera-scroll/pmndrs.json (100%) rename {demos => examples}/camera-scroll/public/vite.svg (100%) rename {demos => examples}/camera-scroll/src/App.jsx (100%) rename {demos => examples}/camera-scroll/src/Model.jsx (100%) rename {demos => examples}/camera-scroll/src/Overlay.jsx (100%) rename {demos => examples}/camera-scroll/src/index.jsx (100%) rename {demos => examples}/camera-scroll/src/model.glb (100%) rename {demos => examples}/camera-scroll/src/styles.css (100%) rename {demos => examples}/camera-scroll/src/vite-env.d.ts (100%) rename {demos => examples}/camera-scroll/thumbnail.webp (100%) rename {demos => examples}/camera-scroll/tsconfig.json (100%) rename {demos => examples}/camera-scroll/tsconfig.node.json (100%) rename {demos => examples}/camera-scroll/vite.config.ts (100%) rename {demos => examples}/camera-shake/.codesandbox/workspace.json (100%) rename {demos => examples}/camera-shake/.prettierrc (100%) create mode 100644 examples/camera-shake/README.md rename {demos => examples}/camera-shake/index.html (100%) rename {demos => examples}/camera-shake/package.json (86%) rename {demos => examples}/camera-shake/pmndrs.json (100%) rename {demos => examples}/camera-shake/public/view.svg (100%) rename {demos => examples}/camera-shake/public/vite.svg (100%) rename {demos => examples}/camera-shake/src/App.jsx (100%) rename {demos => examples}/camera-shake/src/Model.jsx (100%) rename {demos => examples}/camera-shake/src/index.jsx (100%) rename {demos => examples}/camera-shake/src/pink-d.glb (100%) rename {demos => examples}/camera-shake/src/styles.css (100%) rename {demos => examples}/camera-shake/src/vite-env.d.ts (100%) rename {demos => examples}/camera-shake/thumbnail.webp (100%) rename {demos => examples}/camera-shake/tsconfig.json (100%) rename {demos => examples}/camera-shake/tsconfig.node.json (100%) rename {demos => examples}/camera-shake/vite.config.ts (100%) rename {demos => examples}/canvas-text/.prettierrc (100%) rename {demos/audio-analyser => examples/canvas-text}/README.md (50%) rename {demos => examples}/canvas-text/index.html (100%) rename {demos => examples}/canvas-text/package.json (86%) rename {demos => examples}/canvas-text/pmndrs.json (100%) rename {demos => examples}/canvas-text/public/vite.svg (100%) rename {demos => examples}/canvas-text/src/App.jsx (100%) rename {demos => examples}/canvas-text/src/index.jsx (100%) rename {demos => examples}/canvas-text/src/styles.css (100%) rename {demos => examples}/canvas-text/src/vite-env.d.ts (100%) rename {demos => examples}/canvas-text/thumbnail.webp (100%) rename {demos => examples}/canvas-text/tsconfig.json (100%) rename {demos => examples}/canvas-text/tsconfig.node.json (100%) rename {demos => examples}/canvas-text/vite.config.ts (100%) rename {demos => examples}/cards-with-border-radius/.prettierrc (100%) create mode 100644 examples/cards-with-border-radius/README.md rename {demos => examples}/cards-with-border-radius/index.html (100%) rename {demos => examples}/cards-with-border-radius/package.json (85%) rename {demos => examples}/cards-with-border-radius/pmndrs.json (100%) rename {demos => examples}/cards-with-border-radius/public/img10_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img1_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img2_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img3_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img4_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img5_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img6_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img7_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img8_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/img9_.jpg (100%) rename {demos => examples}/cards-with-border-radius/public/vite.svg (100%) rename {demos => examples}/cards-with-border-radius/public/work_.png (100%) rename {demos => examples}/cards-with-border-radius/src/App.jsx (100%) rename {demos => examples}/cards-with-border-radius/src/index.jsx (100%) rename {demos => examples}/cards-with-border-radius/src/styles.css (100%) rename {demos => examples}/cards-with-border-radius/src/util.js (100%) rename {demos => examples}/cards-with-border-radius/src/vite-env.d.ts (100%) rename {demos => examples}/cards-with-border-radius/thumbnail.webp (100%) rename {demos => examples}/cards-with-border-radius/tsconfig.json (100%) rename {demos => examples}/cards-with-border-radius/tsconfig.node.json (100%) rename {demos => examples}/cards-with-border-radius/vite.config.ts (100%) rename {demos => examples}/cards/.prettierrc (100%) rename {demos/bvh => examples/cards}/README.md (52%) rename {demos => examples}/cards/index.html (100%) rename {demos => examples}/cards/package.json (89%) rename {demos => examples}/cards/pmndrs.json (100%) rename {demos => examples}/cards/public/vite.svg (100%) rename {demos => examples}/cards/src/App.jsx (100%) rename {demos => examples}/cards/src/img1.jpg (100%) rename {demos => examples}/cards/src/img10.jpg (100%) rename {demos => examples}/cards/src/img2.jpg (100%) rename {demos => examples}/cards/src/img3.jpg (100%) rename {demos => examples}/cards/src/img4.jpg (100%) rename {demos => examples}/cards/src/img5.jpg (100%) rename {demos => examples}/cards/src/img6.jpg (100%) rename {demos => examples}/cards/src/img7.jpg (100%) rename {demos => examples}/cards/src/img8.jpg (100%) rename {demos => examples}/cards/src/img9.jpg (100%) rename {demos => examples}/cards/src/index.jsx (100%) rename {demos => examples}/cards/src/styles.css (100%) rename {demos => examples}/cards/src/vite-env.d.ts (100%) rename {demos => examples}/cards/thumbnail.webp (100%) rename {demos => examples}/cards/tsconfig.json (100%) rename {demos => examples}/cards/tsconfig.node.json (100%) rename {demos => examples}/cards/vite.config.ts (100%) rename {demos => examples}/caustics/.prettierrc (100%) create mode 100644 examples/caustics/README.md rename {demos => examples}/caustics/index.html (100%) rename {demos/shader-hmr => examples/caustics}/package.json (87%) rename {demos => examples}/caustics/pmndrs.json (100%) rename {demos => examples}/caustics/public/vite.svg (100%) rename {demos => examples}/caustics/sandbox.config.json (100%) rename {demos => examples}/caustics/src/App.jsx (100%) rename {demos => examples}/caustics/src/Overlay.jsx (100%) rename {demos => examples}/caustics/src/glass-transformed.glb (100%) rename {demos => examples}/caustics/src/index.jsx (100%) rename {demos => examples}/caustics/src/styles.css (100%) rename {demos => examples}/caustics/src/vite-env.d.ts (100%) rename {demos => examples}/caustics/thumbnail.webp (100%) rename {demos => examples}/caustics/tsconfig.json (100%) rename {demos => examples}/caustics/tsconfig.node.json (100%) rename {demos => examples}/caustics/vite.config.ts (100%) rename {demos => examples}/cell-fracture/.prettierrc (100%) create mode 100644 examples/cell-fracture/README.md rename {demos => examples}/cell-fracture/index.html (100%) create mode 100644 examples/cell-fracture/package.json rename {demos => examples}/cell-fracture/pmndrs.json (100%) rename {demos => examples}/cell-fracture/public/vite.svg (100%) rename {demos => examples}/cell-fracture/resources/hello.blend.zip (100%) rename {demos => examples}/cell-fracture/sandbox.config.json (100%) rename {demos => examples}/cell-fracture/src/App.jsx (100%) rename {demos => examples}/cell-fracture/src/Text.jsx (100%) rename {demos => examples}/cell-fracture/src/hello-fragments.glb (100%) rename {demos => examples}/cell-fracture/src/hello-text.glb (100%) rename {demos => examples}/cell-fracture/src/index.jsx (100%) rename {demos => examples}/cell-fracture/src/styles.css (100%) rename {demos => examples}/cell-fracture/src/vite-env.d.ts (100%) rename {demos => examples}/cell-fracture/thumbnail.webp (100%) rename {demos => examples}/cell-fracture/tsconfig.json (100%) rename {demos => examples}/cell-fracture/tsconfig.node.json (100%) rename {demos => examples}/cell-fracture/vite.config.ts (100%) rename {demos => examples}/clones/.prettierrc (100%) rename {demos/arkanoid => examples/clones}/README.md (52%) rename {demos => examples}/clones/index.html (100%) rename {demos => examples}/clones/package.json (88%) rename {demos => examples}/clones/pmndrs.json (100%) rename {demos => examples}/clones/public/vite.svg (100%) rename {demos => examples}/clones/src/App.jsx (100%) rename {demos => examples}/clones/src/Room.jsx (100%) rename {demos => examples}/clones/src/index.jsx (100%) rename {demos => examples}/clones/src/scene-transformed.glb (100%) rename {demos => examples}/clones/src/styles.css (100%) rename {demos => examples}/clones/src/vite-env.d.ts (100%) rename {demos => examples}/clones/thumbnail.webp (100%) rename {demos => examples}/clones/tsconfig.json (100%) rename {demos => examples}/clones/tsconfig.node.json (100%) rename {demos => examples}/clones/vite.config.ts (100%) rename {demos => examples}/clouds/.prettierrc (100%) rename {demos/aquarium => examples/clouds}/README.md (52%) rename {demos => examples}/clouds/index.html (100%) rename {demos => examples}/clouds/package.json (90%) rename {demos => examples}/clouds/pmndrs.json (100%) rename {demos => examples}/clouds/public/cloud.png (100%) rename {demos => examples}/clouds/public/favicon.ico (100%) rename {demos => examples}/clouds/public/logo192.png (100%) rename {demos => examples}/clouds/public/logo512.png (100%) rename {demos => examples}/clouds/public/manifest.json (100%) rename {demos => examples}/clouds/public/robots.txt (100%) rename {demos => examples}/clouds/public/vite.svg (100%) rename {demos => examples}/clouds/sandbox.config.json (100%) rename {demos => examples}/clouds/src/App.jsx (100%) rename {demos => examples}/clouds/src/Clouds.tsx (100%) rename {demos => examples}/clouds/src/index.jsx (100%) rename {demos => examples}/clouds/src/styles.css (100%) rename {demos => examples}/clouds/src/vite-env.d.ts (100%) rename {demos => examples}/clouds/thumbnail.webp (100%) rename {demos => examples}/clouds/tsconfig.json (100%) rename {demos => examples}/clouds/tsconfig.node.json (100%) rename {demos => examples}/clouds/vite.config.ts (100%) rename {demos => examples}/color-grading/.prettierrc (100%) create mode 100644 examples/color-grading/README.md rename {demos => examples}/color-grading/index.html (100%) create mode 100644 examples/color-grading/package.json rename {demos => examples}/color-grading/pmndrs.json (100%) rename {demos => examples}/color-grading/public/vite.svg (100%) rename {demos => examples}/color-grading/src/App.jsx (100%) rename {demos => examples}/color-grading/src/cubicle-99.cube (100%) rename {demos => examples}/color-grading/src/index.jsx (100%) rename {demos => examples}/color-grading/src/styles.css (100%) rename {demos => examples}/color-grading/src/terrazo.png (100%) rename {demos => examples}/color-grading/src/vite-env.d.ts (100%) rename {demos => examples}/color-grading/thumbnail.webp (100%) rename {demos => examples}/color-grading/tsconfig.json (100%) rename {demos => examples}/color-grading/tsconfig.node.json (100%) rename {demos => examples}/color-grading/vite.config.ts (100%) rename {demos => examples}/confetti/.prettierrc (100%) create mode 100644 examples/confetti/README.md rename {demos => examples}/confetti/index.html (100%) rename {demos => examples}/confetti/package.json (88%) rename {demos => examples}/confetti/pmndrs.json (100%) rename {demos => examples}/confetti/public/Earth.gltf (100%) rename {demos => examples}/confetti/public/Flamingo.glb (100%) rename {demos => examples}/confetti/public/Island.gltf (100%) rename {demos => examples}/confetti/public/Parrot.glb (100%) rename {demos => examples}/confetti/public/Stork.glb (100%) rename {demos => examples}/confetti/public/vite.svg (100%) rename {demos => examples}/confetti/sandbox.config.json (100%) rename {demos => examples}/confetti/src/App.jsx (100%) rename {demos => examples}/confetti/src/index.jsx (100%) rename {demos => examples}/confetti/src/styles.css (100%) rename {demos => examples}/confetti/src/vite-env.d.ts (100%) rename {demos => examples}/confetti/thumbnail.webp (100%) rename {demos => examples}/confetti/tsconfig.json (100%) rename {demos => examples}/confetti/tsconfig.node.json (100%) rename {demos => examples}/confetti/vite.config.ts (100%) rename {demos => examples}/csg-bunny-usegroups/.codesandbox/workspace.json (100%) rename {demos => examples}/csg-bunny-usegroups/.prettierrc (100%) create mode 100644 examples/csg-bunny-usegroups/README.md rename {demos => examples}/csg-bunny-usegroups/index.html (100%) rename {demos => examples}/csg-bunny-usegroups/package.json (86%) rename {demos => examples}/csg-bunny-usegroups/pmndrs.json (100%) rename {demos => examples}/csg-bunny-usegroups/public/vite.svg (100%) rename {demos => examples}/csg-bunny-usegroups/sandbox.config.json (100%) rename {demos => examples}/csg-bunny-usegroups/src/App.jsx (100%) rename {demos => examples}/csg-bunny-usegroups/src/bunny-transformed.glb (100%) rename {demos => examples}/csg-bunny-usegroups/src/index.jsx (100%) rename {demos => examples}/csg-bunny-usegroups/src/styles.css (100%) rename {demos => examples}/csg-bunny-usegroups/src/vite-env.d.ts (100%) rename {demos => examples}/csg-bunny-usegroups/thumbnail.webp (100%) rename {demos => examples}/csg-bunny-usegroups/tsconfig.json (100%) rename {demos => examples}/csg-bunny-usegroups/tsconfig.node.json (100%) rename {demos => examples}/csg-bunny-usegroups/vite.config.ts (100%) rename {demos => examples}/csg-house/.codesandbox/workspace.json (100%) rename {demos => examples}/csg-house/.prettierrc (100%) rename {demos/bouncy-watch => examples/csg-house}/README.md (51%) rename {demos => examples}/csg-house/index.html (100%) rename {demos => examples}/csg-house/package.json (88%) rename {demos => examples}/csg-house/pmndrs.json (100%) rename {demos => examples}/csg-house/public/bunny-transformed.glb (100%) rename {demos => examples}/csg-house/public/vite.svg (100%) rename {demos => examples}/csg-house/sandbox.config.json (100%) rename {demos => examples}/csg-house/src/App.jsx (100%) rename {demos => examples}/csg-house/src/Environment.jsx (100%) rename {demos => examples}/csg-house/src/index.jsx (100%) rename {demos => examples}/csg-house/src/styles.css (100%) rename {demos => examples}/csg-house/src/vite-env.d.ts (100%) rename {demos => examples}/csg-house/thumbnail.webp (100%) rename {demos => examples}/csg-house/tsconfig.json (100%) rename {demos => examples}/csg-house/tsconfig.node.json (100%) rename {demos => examples}/csg-house/vite.config.ts (100%) rename {demos => examples}/csg-operations-rapier-physics/.codesandbox/workspace.json (100%) rename {demos => examples}/csg-operations-rapier-physics/.prettierrc (100%) create mode 100644 examples/csg-operations-rapier-physics/README.md rename {demos => examples}/csg-operations-rapier-physics/index.html (100%) rename {demos => examples}/csg-operations-rapier-physics/package.json (85%) rename {demos => examples}/csg-operations-rapier-physics/pmndrs.json (100%) rename {demos => examples}/csg-operations-rapier-physics/public/bunny-transformed.glb (100%) rename {demos => examples}/csg-operations-rapier-physics/public/vite.svg (100%) rename {demos => examples}/csg-operations-rapier-physics/sandbox.config.json (100%) rename {demos => examples}/csg-operations-rapier-physics/src/App.jsx (100%) rename {demos => examples}/csg-operations-rapier-physics/src/geometries/BoxBlendGeometry.jsx (100%) rename {demos => examples}/csg-operations-rapier-physics/src/geometries/HeartGeometry.jsx (100%) rename {demos => examples}/csg-operations-rapier-physics/src/geometries/index.js (100%) rename {demos => examples}/csg-operations-rapier-physics/src/index.jsx (100%) rename {demos => examples}/csg-operations-rapier-physics/src/styles.css (100%) rename {demos => examples}/csg-operations-rapier-physics/src/vite-env.d.ts (100%) rename {demos => examples}/csg-operations-rapier-physics/thumbnail.webp (100%) rename {demos => examples}/csg-operations-rapier-physics/tsconfig.json (100%) rename {demos => examples}/csg-operations-rapier-physics/tsconfig.node.json (100%) rename {demos => examples}/csg-operations-rapier-physics/vite.config.ts (100%) rename {demos => examples}/dbismut-furniture/.prettierrc (100%) create mode 100644 examples/dbismut-furniture/README.md rename {demos => examples}/dbismut-furniture/index.html (100%) rename {demos/wobbling-sphere => examples/dbismut-furniture}/package.json (86%) rename {demos => examples}/dbismut-furniture/pmndrs.json (100%) rename {demos => examples}/dbismut-furniture/public/vite.svg (100%) rename {demos => examples}/dbismut-furniture/src/App.jsx (100%) rename {demos => examples}/dbismut-furniture/src/Scene.jsx (100%) rename {demos => examples}/dbismut-furniture/src/XFadeMaterial.jsx (100%) rename {demos => examples}/dbismut-furniture/src/bench.glb (100%) rename {demos => examples}/dbismut-furniture/src/index.jsx (100%) rename {demos => examples}/dbismut-furniture/src/stool.glb (100%) rename {demos => examples}/dbismut-furniture/src/styles.css (100%) rename {demos => examples}/dbismut-furniture/src/table.glb (100%) rename {demos => examples}/dbismut-furniture/src/vite-env.d.ts (100%) rename {demos => examples}/dbismut-furniture/thumbnail.webp (100%) rename {demos => examples}/dbismut-furniture/tsconfig.json (100%) rename {demos => examples}/dbismut-furniture/tsconfig.node.json (100%) rename {demos => examples}/dbismut-furniture/vite.config.ts (100%) rename {demos => examples}/diamond-refraction/.prettierrc (100%) create mode 100644 examples/diamond-refraction/README.md rename {demos => examples}/diamond-refraction/index.html (100%) rename {demos/react-pp-outlines => examples/diamond-refraction}/package.json (86%) rename {demos => examples}/diamond-refraction/pmndrs.json (100%) rename {demos => examples}/diamond-refraction/public/vite.svg (100%) rename {demos => examples}/diamond-refraction/src/App.jsx (100%) rename {demos => examples}/diamond-refraction/src/aerodynamics_workshop_1k.hdr (100%) rename {demos => examples}/diamond-refraction/src/dflat.glb (100%) rename {demos => examples}/diamond-refraction/src/index.jsx (100%) rename {demos => examples}/diamond-refraction/src/styles.css (100%) rename {demos => examples}/diamond-refraction/src/vite-env.d.ts (100%) rename {demos => examples}/diamond-refraction/thumbnail.webp (100%) rename {demos => examples}/diamond-refraction/tsconfig.json (100%) rename {demos => examples}/diamond-refraction/tsconfig.node.json (100%) rename {demos => examples}/diamond-refraction/vite.config.ts (100%) rename {demos => examples}/diamond-ring/.prettierrc (100%) create mode 100644 examples/diamond-ring/README.md rename {demos => examples}/diamond-ring/index.html (100%) rename {demos => examples}/diamond-ring/package.json (87%) rename {demos => examples}/diamond-ring/pmndrs.json (100%) rename {demos => examples}/diamond-ring/public/vite.svg (100%) rename {demos => examples}/diamond-ring/src/App.jsx (100%) rename {demos => examples}/diamond-ring/src/index.jsx (100%) rename {demos => examples}/diamond-ring/src/ring-transformed.glb (100%) rename {demos => examples}/diamond-ring/src/styles.css (100%) rename {demos => examples}/diamond-ring/src/vite-env.d.ts (100%) rename {demos => examples}/diamond-ring/thumbnail.webp (100%) rename {demos => examples}/diamond-ring/tsconfig.json (100%) rename {demos => examples}/diamond-ring/tsconfig.node.json (100%) rename {demos => examples}/diamond-ring/vite.config.ts (100%) rename {demos => examples}/drei-rendertexture/.prettierrc (100%) create mode 100644 examples/drei-rendertexture/README.md rename {demos => examples}/drei-rendertexture/index.html (100%) rename {demos => examples}/drei-rendertexture/package.json (86%) rename {demos => examples}/drei-rendertexture/pmndrs.json (100%) rename {demos => examples}/drei-rendertexture/public/vite.svg (100%) rename {demos => examples}/drei-rendertexture/src/App.jsx (100%) rename {demos => examples}/drei-rendertexture/src/index.jsx (100%) rename {demos => examples}/drei-rendertexture/src/styles.css (100%) rename {demos => examples}/drei-rendertexture/src/vite-env.d.ts (100%) rename {demos => examples}/drei-rendertexture/thumbnail.webp (100%) rename {demos => examples}/drei-rendertexture/tsconfig.json (100%) rename {demos => examples}/drei-rendertexture/tsconfig.node.json (100%) rename {demos => examples}/drei-rendertexture/vite.config.ts (100%) rename {demos => examples}/ecctrl-fisheye/.prettierrc (100%) create mode 100644 examples/ecctrl-fisheye/README.md rename {demos => examples}/ecctrl-fisheye/index.html (100%) rename {demos => examples}/ecctrl-fisheye/package.json (87%) rename {demos => examples}/ecctrl-fisheye/pmndrs.json (100%) rename {demos => examples}/ecctrl-fisheye/public/vite.svg (100%) rename {demos => examples}/ecctrl-fisheye/sandbox.config.json (100%) rename {demos => examples}/ecctrl-fisheye/src/App.jsx (100%) rename {demos => examples}/ecctrl-fisheye/src/controls.png (100%) rename {demos => examples}/ecctrl-fisheye/src/fantasy_game_inn2-transformed.glb (100%) rename {demos => examples}/ecctrl-fisheye/src/ghost_w_tophat-transformed.glb (100%) rename {demos => examples}/ecctrl-fisheye/src/index.jsx (100%) rename {demos => examples}/ecctrl-fisheye/src/night.hdr (100%) rename {demos => examples}/ecctrl-fisheye/src/styles.css (100%) rename {demos => examples}/ecctrl-fisheye/src/vite-env.d.ts (100%) rename {demos => examples}/ecctrl-fisheye/thumbnail.webp (100%) rename {demos => examples}/ecctrl-fisheye/tsconfig.json (100%) rename {demos => examples}/ecctrl-fisheye/tsconfig.node.json (100%) rename {demos => examples}/ecctrl-fisheye/vite.config.ts (100%) rename {demos => examples}/edgesgeometry/.prettierrc (100%) create mode 100644 examples/edgesgeometry/README.md rename {demos => examples}/edgesgeometry/index.html (100%) create mode 100644 examples/edgesgeometry/package.json rename {demos => examples}/edgesgeometry/pmndrs.json (100%) rename {demos => examples}/edgesgeometry/public/vite.svg (100%) rename {demos => examples}/edgesgeometry/src/App.jsx (100%) rename {demos => examples}/edgesgeometry/src/day58_aluminium_bracket-transformed.glb (100%) rename {demos => examples}/edgesgeometry/src/index.jsx (100%) rename {demos => examples}/edgesgeometry/src/styles.css (100%) rename {demos => examples}/edgesgeometry/src/vite-env.d.ts (100%) rename {demos => examples}/edgesgeometry/thumbnail.webp (100%) rename {demos => examples}/edgesgeometry/tsconfig.json (100%) rename {demos => examples}/edgesgeometry/tsconfig.node.json (100%) rename {demos => examples}/edgesgeometry/vite.config.ts (100%) rename {demos => examples}/enter-portals/.prettierrc (100%) create mode 100644 examples/enter-portals/README.md rename {demos => examples}/enter-portals/index.html (100%) rename {demos => examples}/enter-portals/package.json (88%) rename {demos => examples}/enter-portals/pmndrs.json (100%) rename {demos => examples}/enter-portals/public/vite.svg (100%) rename {demos => examples}/enter-portals/sandbox.config.json (100%) rename {demos => examples}/enter-portals/src/App.jsx (100%) rename {demos => examples}/enter-portals/src/fiesta_tea-transformed.glb (100%) rename {demos => examples}/enter-portals/src/index.jsx (100%) rename {demos => examples}/enter-portals/src/pickles_3d_version_of_hyuna_lees_illustration-transformed.glb (100%) rename {demos => examples}/enter-portals/src/still_life_based_on_heathers_artwork-transformed.glb (100%) rename {demos => examples}/enter-portals/src/styles.css (100%) rename {demos => examples}/enter-portals/src/vite-env.d.ts (100%) rename {demos => examples}/enter-portals/thumbnail.webp (100%) rename {demos => examples}/enter-portals/tsconfig.json (100%) rename {demos => examples}/enter-portals/tsconfig.node.json (100%) rename {demos => examples}/enter-portals/vite.config.ts (100%) rename {demos => examples}/environment-blur-and-transitions/.prettierrc (100%) create mode 100644 examples/environment-blur-and-transitions/README.md rename {demos => examples}/environment-blur-and-transitions/index.html (100%) rename {demos => examples}/environment-blur-and-transitions/package.json (84%) rename {demos => examples}/environment-blur-and-transitions/pmndrs.json (100%) rename {demos => examples}/environment-blur-and-transitions/public/pmndrs.png (100%) rename {demos => examples}/environment-blur-and-transitions/public/react.png (100%) rename {demos => examples}/environment-blur-and-transitions/public/three.png (100%) rename {demos => examples}/environment-blur-and-transitions/public/vite.svg (100%) rename {demos => examples}/environment-blur-and-transitions/src/App.jsx (100%) rename {demos => examples}/environment-blur-and-transitions/src/index.jsx (100%) rename {demos => examples}/environment-blur-and-transitions/src/styles.css (100%) rename {demos => examples}/environment-blur-and-transitions/src/vite-env.d.ts (100%) rename {demos => examples}/environment-blur-and-transitions/thumbnail.webp (100%) rename {demos => examples}/environment-blur-and-transitions/tsconfig.json (100%) rename {demos => examples}/environment-blur-and-transitions/tsconfig.node.json (100%) rename {demos => examples}/environment-blur-and-transitions/vite.config.ts (100%) rename {demos => examples}/envmap-ground-projection/.codesandbox/workspace.json (100%) rename {demos => examples}/envmap-ground-projection/.prettierrc (100%) create mode 100644 examples/envmap-ground-projection/README.md rename {demos => examples}/envmap-ground-projection/index.html (100%) rename {demos => examples}/envmap-ground-projection/package.json (85%) rename {demos => examples}/envmap-ground-projection/pmndrs.json (100%) rename {demos => examples}/envmap-ground-projection/public/vite.svg (100%) rename {demos => examples}/envmap-ground-projection/src/App.jsx (100%) rename {demos => examples}/envmap-ground-projection/src/Car.jsx (100%) rename {demos => examples}/envmap-ground-projection/src/index.jsx (100%) rename {demos => examples}/envmap-ground-projection/src/old_depot_2k.hdr (100%) rename {demos => examples}/envmap-ground-projection/src/porsche-transformed.glb (100%) rename {demos => examples}/envmap-ground-projection/src/styles.css (100%) rename {demos => examples}/envmap-ground-projection/src/vite-env.d.ts (100%) rename {demos => examples}/envmap-ground-projection/thumbnail.webp (100%) rename {demos => examples}/envmap-ground-projection/tsconfig.json (100%) rename {demos => examples}/envmap-ground-projection/tsconfig.node.json (100%) rename {demos => examples}/envmap-ground-projection/vite.config.ts (100%) rename {demos => examples}/faucets-select-highlight/.prettierrc (100%) create mode 100644 examples/faucets-select-highlight/README.md rename {demos => examples}/faucets-select-highlight/index.html (100%) rename {demos => examples}/faucets-select-highlight/package.json (85%) rename {demos => examples}/faucets-select-highlight/pmndrs.json (100%) rename {demos => examples}/faucets-select-highlight/public/vite.svg (100%) rename {demos => examples}/faucets-select-highlight/src/App.jsx (100%) rename {demos => examples}/faucets-select-highlight/src/faucet-transformed.glb (100%) rename {demos => examples}/faucets-select-highlight/src/index.jsx (100%) rename {demos => examples}/faucets-select-highlight/src/styles.css (100%) rename {demos => examples}/faucets-select-highlight/src/vite-env.d.ts (100%) rename {demos => examples}/faucets-select-highlight/thumbnail.webp (100%) rename {demos => examples}/faucets-select-highlight/tsconfig.json (100%) rename {demos => examples}/faucets-select-highlight/tsconfig.node.json (100%) rename {demos => examples}/faucets-select-highlight/vite.config.ts (100%) rename {demos => examples}/flexbox-yoga-in-webgl/.prettierrc (100%) create mode 100755 examples/flexbox-yoga-in-webgl/README.md rename {demos => examples}/flexbox-yoga-in-webgl/index.html (100%) rename {demos => examples}/flexbox-yoga-in-webgl/package.json (89%) rename {demos => examples}/flexbox-yoga-in-webgl/pmndrs.json (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/Inter-Bold.woff (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/Inter-Regular.woff (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/draco-gltf/draco_decoder.js (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/draco-gltf/draco_decoder.wasm (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/draco-gltf/draco_wasm_wrapper.js (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/favicon.ico (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/04zTfWB.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/BH41NVu.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/ajQ73ol.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/c4cA8UN.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/cAKwexj.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/ellipse.svg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/fBoIJLX.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/gZOmLNU.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/gwuZrgo.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/mbFIW1b.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/images/mlDUVig.jpg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/logo192.png (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/logo512.png (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/manifest.json (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/robots.txt (100%) rename {demos => examples}/flexbox-yoga-in-webgl/public/vite.svg (100%) rename {demos => examples}/flexbox-yoga-in-webgl/sandbox.config.json (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/App.jsx (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/components/Effects.jsx (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/components/Geo.jsx (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/components/Text.jsx (81%) rename {demos => examples}/flexbox-yoga-in-webgl/src/components/WaterEffect.js (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/components/geo.min.glb (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/index.jsx (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/state.js (94%) rename {demos => examples}/flexbox-yoga-in-webgl/src/styles.css (100%) rename {demos => examples}/flexbox-yoga-in-webgl/src/vite-env.d.ts (100%) rename {demos => examples}/flexbox-yoga-in-webgl/thumbnail.webp (100%) rename {demos => examples}/flexbox-yoga-in-webgl/tsconfig.json (100%) rename {demos => examples}/flexbox-yoga-in-webgl/tsconfig.node.json (100%) rename {demos => examples}/flexbox-yoga-in-webgl/vite.config.ts (100%) rename {demos => examples}/floating-diamonds/.prettierrc (100%) create mode 100644 examples/floating-diamonds/README.md rename {demos => examples}/floating-diamonds/index.html (100%) rename {demos => examples}/floating-diamonds/package.json (86%) rename {demos => examples}/floating-diamonds/pmndrs.json (100%) rename {demos => examples}/floating-diamonds/public/vite.svg (100%) rename {demos => examples}/floating-diamonds/src/233.jpg (100%) rename {demos => examples}/floating-diamonds/src/App.jsx (100%) rename {demos => examples}/floating-diamonds/src/dflat.glb (100%) rename {demos => examples}/floating-diamonds/src/diamond.glb (100%) rename {demos => examples}/floating-diamonds/src/index.jsx (100%) rename {demos => examples}/floating-diamonds/src/styles.css (100%) rename {demos => examples}/floating-diamonds/src/vite-env.d.ts (100%) rename {demos => examples}/floating-diamonds/thumbnail.webp (100%) rename {demos => examples}/floating-diamonds/tsconfig.json (100%) rename {demos => examples}/floating-diamonds/tsconfig.node.json (100%) rename {demos => examples}/floating-diamonds/vite.config.ts (100%) rename {demos => examples}/floating-instanced-shoes/.prettierrc (100%) create mode 100644 examples/floating-instanced-shoes/README.md rename {demos => examples}/floating-instanced-shoes/index.html (100%) rename {demos => examples}/floating-instanced-shoes/package.json (83%) rename {demos => examples}/floating-instanced-shoes/pmndrs.json (100%) rename {demos => examples}/floating-instanced-shoes/public/vite.svg (100%) rename {demos => examples}/floating-instanced-shoes/src/App.jsx (100%) rename {demos => examples}/floating-instanced-shoes/src/index.jsx (100%) rename {demos => examples}/floating-instanced-shoes/src/shoe.glb (100%) rename {demos => examples}/floating-instanced-shoes/src/store.js (100%) rename {demos => examples}/floating-instanced-shoes/src/style.css (100%) rename {demos => examples}/floating-instanced-shoes/src/vite-env.d.ts (100%) rename {demos => examples}/floating-instanced-shoes/thumbnail.webp (100%) rename {demos => examples}/floating-instanced-shoes/tsconfig.json (100%) rename {demos => examples}/floating-instanced-shoes/tsconfig.node.json (100%) rename {demos => examples}/floating-instanced-shoes/vite.config.ts (100%) rename {demos => examples}/floating-laptop/.prettierrc (100%) create mode 100644 examples/floating-laptop/README.md rename {demos => examples}/floating-laptop/index.html (100%) rename {demos => examples}/floating-laptop/package.json (87%) rename {demos => examples}/floating-laptop/pmndrs.json (100%) rename {demos => examples}/floating-laptop/public/vite.svg (100%) rename {demos => examples}/floating-laptop/sandbox.config.json (100%) rename {demos => examples}/floating-laptop/src/App.jsx (100%) rename {demos => examples}/floating-laptop/src/index.jsx (100%) rename {demos => examples}/floating-laptop/src/mac-draco.glb (100%) rename {demos => examples}/floating-laptop/src/styles.css (100%) rename {demos => examples}/floating-laptop/src/vite-env.d.ts (100%) rename {demos => examples}/floating-laptop/thumbnail.webp (100%) rename {demos => examples}/floating-laptop/tsconfig.json (100%) rename {demos => examples}/floating-laptop/tsconfig.node.json (100%) rename {demos => examples}/floating-laptop/vite.config.ts (100%) rename {demos => examples}/flow-shield/.prettierrc (100%) create mode 100644 examples/flow-shield/README.md rename {demos => examples}/flow-shield/index.html (100%) rename {demos => examples}/flow-shield/package.json (88%) rename {demos => examples}/flow-shield/pmndrs.json (100%) rename {demos => examples}/flow-shield/public/droideka-5mb.glb (100%) rename {demos => examples}/flow-shield/public/vite.svg (100%) rename {demos => examples}/flow-shield/src/App.jsx (100%) rename {demos => examples}/flow-shield/src/components/ForceShield/consts/index.ts (100%) rename {demos => examples}/flow-shield/src/components/ForceShield/index.tsx (100%) rename {demos => examples}/flow-shield/src/components/ForceShield/shaderMaterial.ts (100%) rename {demos => examples}/flow-shield/src/components/ForceShield/useShieldControls.ts (100%) rename {demos => examples}/flow-shield/src/components/overlay/LoadingOverlay.module.css (100%) rename {demos => examples}/flow-shield/src/components/overlay/LoadingOverlay.tsx (100%) rename {demos => examples}/flow-shield/src/components/overlay/OverlayButtons.module.css (100%) rename {demos => examples}/flow-shield/src/components/overlay/OverlayButtons.tsx (100%) rename {demos => examples}/flow-shield/src/components/overlay/OverlayHeader.module.css (100%) rename {demos => examples}/flow-shield/src/components/overlay/OverlayHeader.tsx (100%) rename {demos => examples}/flow-shield/src/components/overlay/UIOverlay.module.css (100%) rename {demos => examples}/flow-shield/src/components/overlay/UIOverlay.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/Droideka.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/GlbModel.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/GridFloor.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/PostProcessing.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/SceneCamera.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/SceneContent.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/SceneEnvironment.tsx (100%) rename {demos => examples}/flow-shield/src/components/playground/SceneLighting.tsx (100%) rename {demos => examples}/flow-shield/src/components/theme/theme.ts (100%) rename {demos => examples}/flow-shield/src/hooks/useIsMobile.ts (100%) rename {demos => examples}/flow-shield/src/index.jsx (100%) rename {demos => examples}/flow-shield/src/react-three-fiber-jsx.d.ts (100%) rename {demos => examples}/flow-shield/src/styles.css (100%) rename {demos => examples}/flow-shield/src/vite-env.d.ts (100%) rename {demos => examples}/flow-shield/thumbnail.jpg (100%) rename {demos => examples}/flow-shield/thumbnail.webp (100%) rename {demos => examples}/flow-shield/tsconfig.json (100%) rename {demos => examples}/flow-shield/tsconfig.node.json (100%) rename {demos => examples}/flow-shield/vite.config.ts (100%) rename {demos => examples}/flying-bananas/.codesandbox/workspace.json (100%) rename {demos => examples}/flying-bananas/.prettierrc (100%) create mode 100644 examples/flying-bananas/README.md rename {demos => examples}/flying-bananas/index.html (100%) rename {demos => examples}/flying-bananas/package.json (87%) rename {demos => examples}/flying-bananas/pmndrs.json (100%) rename {demos => examples}/flying-bananas/public/vite.svg (100%) rename {demos => examples}/flying-bananas/sandbox.config.json (100%) rename {demos => examples}/flying-bananas/src/AyerPoster-Medium.ttf (100%) rename {demos => examples}/flying-bananas/src/AyerPoster-Medium.woff (100%) rename {demos => examples}/flying-bananas/src/AyerPoster-Medium.woff2 (100%) rename {demos => examples}/flying-bananas/src/Bananas.jsx (100%) rename {demos => examples}/flying-bananas/src/banana-v1-transformed.glb (100%) rename {demos => examples}/flying-bananas/src/banana-v2-transformed.glb (100%) rename {demos => examples}/flying-bananas/src/index.jsx (100%) rename {demos => examples}/flying-bananas/src/layout/Overlay.jsx (100%) rename {demos => examples}/flying-bananas/src/layout/VelvetBanana.jsx (100%) rename {demos => examples}/flying-bananas/src/layout/styles.js (100%) rename {demos => examples}/flying-bananas/src/styles.css (100%) rename {demos => examples}/flying-bananas/src/vite-env.d.ts (100%) rename {demos => examples}/flying-bananas/thumbnail.webp (100%) rename {demos => examples}/flying-bananas/tsconfig.json (100%) rename {demos => examples}/flying-bananas/tsconfig.node.json (100%) rename {demos => examples}/flying-bananas/vite.config.ts (100%) rename {demos => examples}/frosted-glass/.codesandbox/workspace.json (100%) rename {demos => examples}/frosted-glass/.prettierrc (100%) create mode 100644 examples/frosted-glass/README.md rename {demos => examples}/frosted-glass/index.html (100%) rename {demos => examples}/frosted-glass/package.json (88%) rename {demos => examples}/frosted-glass/pmndrs.json (100%) rename {demos => examples}/frosted-glass/public/vite.svg (100%) rename {demos => examples}/frosted-glass/src/App.jsx (100%) rename {demos => examples}/frosted-glass/src/Overlay.jsx (100%) rename {demos => examples}/frosted-glass/src/index.jsx (100%) rename {demos => examples}/frosted-glass/src/nike_air_zoom_pegasus_36-transformed.glb (100%) rename {demos => examples}/frosted-glass/src/store.js (100%) rename {demos => examples}/frosted-glass/src/styles.css (100%) rename {demos => examples}/frosted-glass/src/vite-env.d.ts (100%) rename {demos => examples}/frosted-glass/thumbnail.webp (100%) rename {demos => examples}/frosted-glass/tsconfig.json (100%) rename {demos => examples}/frosted-glass/tsconfig.node.json (100%) rename {demos => examples}/frosted-glass/vite.config.ts (100%) rename {demos => examples}/gatsby-stars/.prettierrc (100%) create mode 100644 examples/gatsby-stars/README.md rename {demos => examples}/gatsby-stars/index.html (100%) rename {demos => examples}/gatsby-stars/package.json (87%) rename {demos => examples}/gatsby-stars/pmndrs.json (100%) rename {demos => examples}/gatsby-stars/public/Ki-Medium.ttf (100%) rename {demos => examples}/gatsby-stars/public/vite.svg (100%) rename {demos => examples}/gatsby-stars/src/App.jsx (100%) rename {demos => examples}/gatsby-stars/src/index.jsx (100%) rename {demos => examples}/gatsby-stars/src/styles.css (100%) rename {demos => examples}/gatsby-stars/src/vite-env.d.ts (100%) rename {demos => examples}/gatsby-stars/thumbnail.webp (100%) rename {demos => examples}/gatsby-stars/tsconfig.json (100%) rename {demos => examples}/gatsby-stars/tsconfig.node.json (100%) rename {demos => examples}/gatsby-stars/vite.config.ts (100%) rename {demos => examples}/glass-flower/.prettierrc (100%) create mode 100644 examples/glass-flower/README.md rename {demos => examples}/glass-flower/index.html (100%) rename {demos => examples}/glass-flower/package.json (87%) rename {demos => examples}/glass-flower/pmndrs.json (100%) rename {demos => examples}/glass-flower/public/vite.svg (100%) rename {demos => examples}/glass-flower/src/App.jsx (100%) rename {demos => examples}/glass-flower/src/F-6800-STD.cube (100%) rename {demos => examples}/glass-flower/src/flower-transformed.glb (100%) rename {demos => examples}/glass-flower/src/index.jsx (100%) rename {demos => examples}/glass-flower/src/styles.css (100%) rename {demos => examples}/glass-flower/src/vite-env.d.ts (100%) rename {demos => examples}/glass-flower/thumbnail.webp (100%) rename {demos => examples}/glass-flower/tsconfig.json (100%) rename {demos => examples}/glass-flower/tsconfig.node.json (100%) rename {demos => examples}/glass-flower/vite.config.ts (100%) rename {demos => examples}/gltf-animations-re-used/.prettierrc (100%) create mode 100644 examples/gltf-animations-re-used/README.md rename {demos => examples}/gltf-animations-re-used/index.html (100%) rename {demos => examples}/gltf-animations-re-used/package.json (85%) rename {demos => examples}/gltf-animations-re-used/pmndrs.json (100%) rename {demos => examples}/gltf-animations-re-used/public/vite.svg (100%) rename {demos => examples}/gltf-animations-re-used/src/App.jsx (100%) rename {demos => examples}/gltf-animations-re-used/src/Model.jsx (100%) rename {demos => examples}/gltf-animations-re-used/src/index.jsx (100%) rename {demos => examples}/gltf-animations-re-used/src/stacy.glb (100%) rename {demos => examples}/gltf-animations-re-used/src/stacy.jpg (100%) rename {demos => examples}/gltf-animations-re-used/src/styles.css (100%) rename {demos => examples}/gltf-animations-re-used/src/vite-env.d.ts (100%) rename {demos => examples}/gltf-animations-re-used/thumbnail.webp (100%) rename {demos => examples}/gltf-animations-re-used/tsconfig.json (100%) rename {demos => examples}/gltf-animations-re-used/tsconfig.node.json (100%) rename {demos => examples}/gltf-animations-re-used/vite.config.ts (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/.prettierrc (100%) create mode 100644 examples/gltf-animations-tied-to-scroll/README.md rename {demos => examples}/gltf-animations-tied-to-scroll/index.html (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/package.json (84%) rename {demos => examples}/gltf-animations-tied-to-scroll/pmndrs.json (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/public/vite.svg (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/src/App.jsx (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/src/index.jsx (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/src/jump-transformed.glb (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/src/styles.css (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/src/vite-env.d.ts (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/thumbnail.webp (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/tsconfig.json (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/tsconfig.node.json (100%) rename {demos => examples}/gltf-animations-tied-to-scroll/vite.config.ts (100%) rename {demos => examples}/gltf-animations/.prettierrc (100%) create mode 100644 examples/gltf-animations/README.md rename {demos => examples}/gltf-animations/index.html (100%) create mode 100644 examples/gltf-animations/package.json rename {demos => examples}/gltf-animations/pmndrs.json (100%) rename {demos => examples}/gltf-animations/public/vite.svg (100%) rename {demos => examples}/gltf-animations/src/App.jsx (100%) rename {demos => examples}/gltf-animations/src/Model.jsx (100%) rename {demos => examples}/gltf-animations/src/index.jsx (100%) rename {demos => examples}/gltf-animations/src/stacy.glb (100%) rename {demos => examples}/gltf-animations/src/stacy.jpg (100%) rename {demos => examples}/gltf-animations/src/styles.css (100%) rename {demos => examples}/gltf-animations/src/vite-env.d.ts (100%) rename {demos => examples}/gltf-animations/thumbnail.webp (100%) rename {demos => examples}/gltf-animations/tsconfig.json (100%) rename {demos => examples}/gltf-animations/tsconfig.node.json (100%) rename {demos => examples}/gltf-animations/vite.config.ts (100%) rename {demos => examples}/gltfjsx-400kb-drone/.prettierrc (100%) create mode 100644 examples/gltfjsx-400kb-drone/README.md rename {demos => examples}/gltfjsx-400kb-drone/index.html (100%) rename {demos => examples}/gltfjsx-400kb-drone/package.json (87%) rename {demos => examples}/gltfjsx-400kb-drone/pmndrs.json (100%) rename {demos => examples}/gltfjsx-400kb-drone/public/vite.svg (100%) rename {demos => examples}/gltfjsx-400kb-drone/src/App.jsx (100%) rename {demos => examples}/gltfjsx-400kb-drone/src/index.jsx (100%) rename {demos => examples}/gltfjsx-400kb-drone/src/meslo.woff2 (100%) rename {demos => examples}/gltfjsx-400kb-drone/src/s2wt_kamdo_industrial_divinities-transformed.glb (100%) rename {demos => examples}/gltfjsx-400kb-drone/src/styles.css (100%) rename {demos => examples}/gltfjsx-400kb-drone/src/vite-env.d.ts (100%) rename {demos => examples}/gltfjsx-400kb-drone/thumbnail.webp (100%) rename {demos => examples}/gltfjsx-400kb-drone/tsconfig.json (100%) rename {demos => examples}/gltfjsx-400kb-drone/tsconfig.node.json (100%) rename {demos => examples}/gltfjsx-400kb-drone/vite.config.ts (100%) rename {demos => examples}/gpgpu-curl-noise-dof/.prettierrc (100%) create mode 100644 examples/gpgpu-curl-noise-dof/README.md rename {demos => examples}/gpgpu-curl-noise-dof/index.html (100%) rename {demos => examples}/gpgpu-curl-noise-dof/package.json (85%) rename {demos => examples}/gpgpu-curl-noise-dof/pmndrs.json (100%) rename {demos => examples}/gpgpu-curl-noise-dof/public/vite.svg (100%) rename {demos => examples}/gpgpu-curl-noise-dof/sandbox.config.json (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/App.jsx (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/Particles.jsx (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/index.jsx (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/shaders/dofPointsMaterial.js (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/shaders/simulationMaterial.js (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/styles.css (100%) rename {demos => examples}/gpgpu-curl-noise-dof/src/vite-env.d.ts (100%) rename {demos => examples}/gpgpu-curl-noise-dof/thumbnail.webp (100%) rename {demos => examples}/gpgpu-curl-noise-dof/tsconfig.json (100%) rename {demos => examples}/gpgpu-curl-noise-dof/tsconfig.node.json (100%) rename {demos => examples}/gpgpu-curl-noise-dof/vite.config.ts (100%) rename {demos => examples}/grass-shader/.prettierrc (100%) create mode 100644 examples/grass-shader/README.md rename {demos => examples}/grass-shader/index.html (100%) rename {demos => examples}/grass-shader/package.json (87%) rename {demos => examples}/grass-shader/pmndrs.json (100%) rename {demos => examples}/grass-shader/public/vite.svg (100%) rename {demos => examples}/grass-shader/sandbox.config.json (100%) rename {demos => examples}/grass-shader/src/App.jsx (100%) rename {demos => examples}/grass-shader/src/Grass.jsx (100%) rename {demos => examples}/grass-shader/src/GrassMaterial.js (100%) rename {demos => examples}/grass-shader/src/index.jsx (100%) rename {demos => examples}/grass-shader/src/resources/blade_alpha.jpg (100%) rename {demos => examples}/grass-shader/src/resources/blade_diffuse.jpg (100%) rename {demos => examples}/grass-shader/src/styles.css (100%) rename {demos => examples}/grass-shader/src/vite-env.d.ts (100%) rename {demos => examples}/grass-shader/thumbnail.webp (100%) rename {demos => examples}/grass-shader/tsconfig.json (100%) rename {demos => examples}/grass-shader/tsconfig.node.json (100%) rename {demos => examples}/grass-shader/vite.config.ts (100%) rename {demos => examples}/ground-projected-envmaps-lamina/.prettierrc (100%) create mode 100644 examples/ground-projected-envmaps-lamina/README.md rename {demos => examples}/ground-projected-envmaps-lamina/index.html (100%) rename {demos => examples}/ground-projected-envmaps-lamina/package.json (83%) rename {demos => examples}/ground-projected-envmaps-lamina/pmndrs.json (100%) rename {demos => examples}/ground-projected-envmaps-lamina/public/911-transformed.glb (100%) rename {demos => examples}/ground-projected-envmaps-lamina/public/cubicle-99.CUBE (100%) rename {demos => examples}/ground-projected-envmaps-lamina/public/vite.svg (100%) rename {demos => examples}/ground-projected-envmaps-lamina/src/App.jsx (100%) rename {demos => examples}/ground-projected-envmaps-lamina/src/index.jsx (100%) rename {demos => examples}/ground-projected-envmaps-lamina/src/styles.css (100%) rename {demos => examples}/ground-projected-envmaps-lamina/src/vite-env.d.ts (100%) rename {demos => examples}/ground-projected-envmaps-lamina/thumbnail.webp (100%) rename {demos => examples}/ground-projected-envmaps-lamina/tsconfig.json (100%) rename {demos => examples}/ground-projected-envmaps-lamina/tsconfig.node.json (100%) rename {demos => examples}/ground-projected-envmaps-lamina/vite.config.ts (100%) rename {demos => examples}/ground-reflections-and-video-textures/.prettierrc (100%) create mode 100644 examples/ground-reflections-and-video-textures/README.md rename {demos => examples}/ground-reflections-and-video-textures/index.html (100%) rename {demos => examples}/ground-reflections-and-video-textures/package.json (82%) rename {demos => examples}/ground-reflections-and-video-textures/pmndrs.json (100%) rename {demos => examples}/ground-reflections-and-video-textures/public/vite.svg (100%) rename {demos => examples}/ground-reflections-and-video-textures/sandbox.config.json (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/App.jsx (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/Inter-Bold.woff (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/Overlay.jsx (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/SurfaceImperfections003_1K_Normal.jpg (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/SurfaceImperfections003_1K_var1.jpg (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/carla-draco.glb (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/drei.mp4 (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/index.jsx (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/model.glb (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/styles.css (100%) rename {demos => examples}/ground-reflections-and-video-textures/src/vite-env.d.ts (100%) rename {demos => examples}/ground-reflections-and-video-textures/thumbnail.webp (100%) rename {demos => examples}/ground-reflections-and-video-textures/tsconfig.json (100%) rename {demos => examples}/ground-reflections-and-video-textures/tsconfig.node.json (100%) rename {demos => examples}/ground-reflections-and-video-textures/vite.config.ts (100%) rename {demos => examples}/hi-key-bubbles/.prettierrc (100%) create mode 100644 examples/hi-key-bubbles/README.md rename {demos => examples}/hi-key-bubbles/index.html (100%) rename {demos/nextjs-prism => examples/hi-key-bubbles}/package.json (87%) rename {demos => examples}/hi-key-bubbles/pmndrs.json (100%) rename {demos => examples}/hi-key-bubbles/public/Inter_UI-bold.json (100%) rename {demos => examples}/hi-key-bubbles/public/vite.svg (100%) rename {demos => examples}/hi-key-bubbles/sandbox.config.json (100%) rename {demos => examples}/hi-key-bubbles/src/App.jsx (100%) rename {demos => examples}/hi-key-bubbles/src/index.jsx (100%) rename {demos => examples}/hi-key-bubbles/src/styles.css (100%) rename {demos => examples}/hi-key-bubbles/src/vite-env.d.ts (100%) rename {demos => examples}/hi-key-bubbles/thumbnail.webp (100%) rename {demos => examples}/hi-key-bubbles/tsconfig.json (100%) rename {demos => examples}/hi-key-bubbles/tsconfig.node.json (100%) rename {demos => examples}/hi-key-bubbles/vite.config.ts (100%) rename {demos => examples}/horizontal-tiles/.prettierrc (100%) create mode 100644 examples/horizontal-tiles/README.md rename {demos => examples}/horizontal-tiles/index.html (100%) rename {demos => examples}/horizontal-tiles/package.json (87%) rename {demos => examples}/horizontal-tiles/pmndrs.json (100%) rename {demos => examples}/horizontal-tiles/public/1.jpg (100%) rename {demos => examples}/horizontal-tiles/public/10.jpg (100%) rename {demos => examples}/horizontal-tiles/public/11.jpg (100%) rename {demos => examples}/horizontal-tiles/public/12.jpg (100%) rename {demos => examples}/horizontal-tiles/public/2.jpg (100%) rename {demos => examples}/horizontal-tiles/public/3.jpg (100%) rename {demos => examples}/horizontal-tiles/public/4.jpg (100%) rename {demos => examples}/horizontal-tiles/public/5.jpg (100%) rename {demos => examples}/horizontal-tiles/public/6.jpg (100%) rename {demos => examples}/horizontal-tiles/public/7.jpg (100%) rename {demos => examples}/horizontal-tiles/public/8.jpg (100%) rename {demos => examples}/horizontal-tiles/public/9.jpg (100%) rename {demos => examples}/horizontal-tiles/public/Inter-UI-Medium.ttf (100%) rename {demos => examples}/horizontal-tiles/public/vite.svg (100%) rename {demos => examples}/horizontal-tiles/src/App.jsx (100%) rename {demos => examples}/horizontal-tiles/src/index.jsx (100%) rename {demos => examples}/horizontal-tiles/src/styles.css (100%) rename {demos => examples}/horizontal-tiles/src/vite-env.d.ts (100%) rename {demos => examples}/horizontal-tiles/thumbnail.webp (100%) rename {demos => examples}/horizontal-tiles/tsconfig.json (100%) rename {demos => examples}/horizontal-tiles/tsconfig.node.json (100%) rename {demos => examples}/horizontal-tiles/vite.config.ts (100%) rename {demos => examples}/html-annotations/.prettierrc (100%) create mode 100644 examples/html-annotations/README.md rename {demos => examples}/html-annotations/index.html (100%) create mode 100644 examples/html-annotations/package.json rename {demos => examples}/html-annotations/pmndrs.json (100%) rename {demos => examples}/html-annotations/public/photo-1502765839562-c2fe539b56db.jpeg (100%) rename {demos => examples}/html-annotations/public/photo-1520107128464-da450679f704.jpeg (100%) rename {demos => examples}/html-annotations/public/photo-1527201987695-67c06571957e.jpeg (100%) rename {demos => examples}/html-annotations/public/photo-1527203561188-dae1bc1a417f.jpeg (100%) rename {demos => examples}/html-annotations/public/photo-1574318465229-e1e822f604fc.jpeg (100%) rename {demos => examples}/html-annotations/public/vite.svg (100%) rename {demos => examples}/html-annotations/src/index.jsx (100%) rename {demos => examples}/html-annotations/src/styles.css (100%) rename {demos => examples}/html-annotations/src/vite-env.d.ts (100%) rename {demos => examples}/html-annotations/thumbnail.webp (100%) rename {demos => examples}/html-annotations/tsconfig.json (100%) rename {demos => examples}/html-annotations/tsconfig.node.json (100%) rename {demos => examples}/html-annotations/vite.config.ts (100%) rename {demos => examples}/html-input-fields/.prettierrc (100%) create mode 100644 examples/html-input-fields/README.md rename {demos => examples}/html-input-fields/index.html (100%) rename {demos => examples}/html-input-fields/package.json (86%) rename {demos => examples}/html-input-fields/pmndrs.json (100%) rename {demos => examples}/html-input-fields/public/Inter-Regular.woff (100%) rename {demos => examples}/html-input-fields/public/vite.svg (100%) rename {demos => examples}/html-input-fields/src/App.jsx (96%) rename {demos => examples}/html-input-fields/src/ControlledInput.jsx (100%) rename {demos => examples}/html-input-fields/src/assets/bunny.gltf (100%) rename {demos => examples}/html-input-fields/src/index.jsx (100%) rename {demos => examples}/html-input-fields/src/styles.css (100%) rename {demos => examples}/html-input-fields/src/vite-env.d.ts (100%) rename {demos => examples}/html-input-fields/thumbnail.webp (100%) rename {demos => examples}/html-input-fields/tsconfig.json (100%) rename {demos => examples}/html-input-fields/tsconfig.node.json (100%) rename {demos => examples}/html-input-fields/vite.config.ts (100%) rename {demos => examples}/html-markers/.gitignore (100%) rename {demos => examples}/html-markers/.prettierrc (100%) create mode 100644 examples/html-markers/README.md rename {demos => examples}/html-markers/index.html (100%) rename {demos => examples}/html-markers/package.json (87%) rename {demos => examples}/html-markers/pmndrs.json (100%) rename {demos => examples}/html-markers/public/vite.svg (100%) rename {demos => examples}/html-markers/src/App.jsx (100%) rename {demos => examples}/html-markers/src/earth.gltf (100%) rename {demos => examples}/html-markers/src/index.jsx (100%) rename {demos => examples}/html-markers/src/style.css (100%) rename {demos => examples}/html-markers/src/vite-env.d.ts (100%) rename {demos => examples}/html-markers/thumbnail.webp (100%) rename {demos => examples}/html-markers/tsconfig.json (100%) rename {demos => examples}/html-markers/tsconfig.node.json (100%) rename {demos => examples}/html-markers/vite.config.ts (100%) rename {demos => examples}/image-gallery/.prettierrc (100%) rename {demos/pinball-in-70-lines => examples/image-gallery}/README.md (57%) rename {demos => examples}/image-gallery/index.html (100%) rename {demos => examples}/image-gallery/package.json (87%) rename {demos => examples}/image-gallery/pmndrs.json (100%) rename {demos => examples}/image-gallery/public/vite.svg (100%) rename {demos => examples}/image-gallery/src/App.jsx (100%) rename {demos => examples}/image-gallery/src/index.jsx (100%) rename {demos => examples}/image-gallery/src/styles.css (100%) rename {demos => examples}/image-gallery/src/vite-env.d.ts (100%) rename {demos => examples}/image-gallery/thumbnail.webp (100%) rename {demos => examples}/image-gallery/tsconfig.json (100%) rename {demos => examples}/image-gallery/tsconfig.node.json (100%) rename {demos => examples}/image-gallery/vite.config.ts (100%) rename {demos => examples}/infinite-scroll/.prettierrc (100%) create mode 100644 examples/infinite-scroll/README.md rename {demos => examples}/infinite-scroll/index.html (100%) rename {demos => examples}/infinite-scroll/package.json (86%) rename {demos => examples}/infinite-scroll/pmndrs.json (100%) rename {demos => examples}/infinite-scroll/public/Inter-UI-Medium.ttf (100%) rename {demos => examples}/infinite-scroll/public/ScrollControls.tsx (100%) rename {demos => examples}/infinite-scroll/public/vite.svg (100%) rename {demos => examples}/infinite-scroll/src/App.jsx (100%) rename {demos => examples}/infinite-scroll/src/ScrollControls.tsx (100%) rename {demos => examples}/infinite-scroll/src/img1.jpg (100%) rename {demos => examples}/infinite-scroll/src/img2.jpg (100%) rename {demos => examples}/infinite-scroll/src/img3.jpg (100%) rename {demos => examples}/infinite-scroll/src/img4.jpg (100%) rename {demos => examples}/infinite-scroll/src/img5.jpg (100%) rename {demos => examples}/infinite-scroll/src/img6.jpg (100%) rename {demos => examples}/infinite-scroll/src/img7.jpg (100%) rename {demos => examples}/infinite-scroll/src/img8.jpg (100%) rename {demos => examples}/infinite-scroll/src/index.jsx (100%) rename {demos => examples}/infinite-scroll/src/styles.css (100%) rename {demos => examples}/infinite-scroll/src/trip1.jpg (100%) rename {demos => examples}/infinite-scroll/src/trip2.jpg (100%) rename {demos => examples}/infinite-scroll/src/trip3.jpg (100%) rename {demos => examples}/infinite-scroll/src/trip4.jpg (100%) rename {demos => examples}/infinite-scroll/src/vite-env.d.ts (100%) rename {demos => examples}/infinite-scroll/thumbnail.webp (100%) rename {demos => examples}/infinite-scroll/tsconfig.json (100%) rename {demos => examples}/infinite-scroll/tsconfig.node.json (100%) rename {demos => examples}/infinite-scroll/vite.config.ts (100%) rename {demos => examples}/instanced-particles-effects/.prettierrc (100%) create mode 100644 examples/instanced-particles-effects/README.md rename {demos => examples}/instanced-particles-effects/index.html (100%) create mode 100644 examples/instanced-particles-effects/package.json rename {demos => examples}/instanced-particles-effects/pmndrs.json (100%) rename {demos => examples}/instanced-particles-effects/public/vite.svg (100%) rename {demos => examples}/instanced-particles-effects/sandbox.config.json (100%) rename {demos => examples}/instanced-particles-effects/src/App.jsx (100%) rename {demos => examples}/instanced-particles-effects/src/cubicle.CUBE (100%) rename {demos => examples}/instanced-particles-effects/src/index.jsx (100%) rename {demos => examples}/instanced-particles-effects/src/styles.css (100%) rename {demos => examples}/instanced-particles-effects/src/vite-env.d.ts (100%) rename {demos => examples}/instanced-particles-effects/thumbnail.webp (100%) rename {demos => examples}/instanced-particles-effects/tsconfig.json (100%) rename {demos => examples}/instanced-particles-effects/tsconfig.node.json (100%) rename {demos => examples}/instanced-particles-effects/vite.config.ts (100%) rename {demos => examples}/instanced-vertex-colors/.prettierrc (100%) create mode 100644 examples/instanced-vertex-colors/README.md rename {demos => examples}/instanced-vertex-colors/index.html (100%) rename {demos => examples}/instanced-vertex-colors/package.json (85%) rename {demos => examples}/instanced-vertex-colors/pmndrs.json (100%) rename {demos => examples}/instanced-vertex-colors/public/vite.svg (100%) rename {demos => examples}/instanced-vertex-colors/src/App.jsx (100%) rename {demos => examples}/instanced-vertex-colors/src/index.jsx (100%) rename {demos => examples}/instanced-vertex-colors/src/styles.css (100%) rename {demos => examples}/instanced-vertex-colors/src/vite-env.d.ts (100%) rename {demos => examples}/instanced-vertex-colors/thumbnail.webp (100%) rename {demos => examples}/instanced-vertex-colors/tsconfig.json (100%) rename {demos => examples}/instanced-vertex-colors/tsconfig.node.json (100%) rename {demos => examples}/instanced-vertex-colors/vite.config.ts (100%) rename {demos => examples}/instances/.prettierrc (100%) create mode 100644 examples/instances/README.md rename {demos => examples}/instances/index.html (100%) rename {demos => examples}/instances/package.json (88%) rename {demos => examples}/instances/pmndrs.json (100%) rename {demos => examples}/instances/public/vite.svg (100%) rename {demos => examples}/instances/src/App.jsx (100%) rename {demos => examples}/instances/src/index.jsx (100%) rename {demos => examples}/instances/src/styles.css (100%) rename {demos => examples}/instances/src/vite-env.d.ts (100%) rename {demos => examples}/instances/thumbnail.webp (100%) rename {demos => examples}/instances/tsconfig.json (100%) rename {demos => examples}/instances/tsconfig.node.json (100%) rename {demos => examples}/instances/vite.config.ts (100%) rename {demos => examples}/inter-epoxy-resin/.prettierrc (100%) create mode 100644 examples/inter-epoxy-resin/README.md rename {demos => examples}/inter-epoxy-resin/index.html (100%) rename {demos => examples}/inter-epoxy-resin/package.json (87%) rename {demos => examples}/inter-epoxy-resin/pmndrs.json (100%) rename {demos => examples}/inter-epoxy-resin/public/vite.svg (100%) rename {demos => examples}/inter-epoxy-resin/src/App.jsx (100%) rename {demos => examples}/inter-epoxy-resin/src/Inter_Medium_Regular.json (100%) rename {demos => examples}/inter-epoxy-resin/src/index.jsx (100%) rename {demos => examples}/inter-epoxy-resin/src/styles.css (100%) rename {demos => examples}/inter-epoxy-resin/src/vite-env.d.ts (100%) rename {demos => examples}/inter-epoxy-resin/thumbnail.webp (100%) rename {demos => examples}/inter-epoxy-resin/tsconfig.json (100%) rename {demos => examples}/inter-epoxy-resin/tsconfig.node.json (100%) rename {demos => examples}/inter-epoxy-resin/vite.config.ts (100%) rename {demos => examples}/interactive-spline-scene-live-html/.prettierrc (100%) create mode 100644 examples/interactive-spline-scene-live-html/README.md rename {demos => examples}/interactive-spline-scene-live-html/index.html (100%) rename {demos => examples}/interactive-spline-scene-live-html/package.json (85%) rename {demos => examples}/interactive-spline-scene-live-html/pmndrs.json (100%) rename {demos => examples}/interactive-spline-scene-live-html/public/scroll.splinecode (100%) rename {demos => examples}/interactive-spline-scene-live-html/public/vite.svg (100%) rename {demos => examples}/interactive-spline-scene-live-html/sandbox.config.json (100%) rename {demos => examples}/interactive-spline-scene-live-html/src/App.jsx (100%) rename {demos => examples}/interactive-spline-scene-live-html/src/Embed.jsx (99%) rename {demos => examples}/interactive-spline-scene-live-html/src/assets/cloud-illustration.svg (100%) rename {demos => examples}/interactive-spline-scene-live-html/src/assets/logo.svg (100%) rename {demos => examples}/interactive-spline-scene-live-html/src/index.jsx (100%) rename {demos => examples}/interactive-spline-scene-live-html/src/styles.css (100%) rename {demos => examples}/interactive-spline-scene-live-html/src/vite-env.d.ts (100%) rename {demos => examples}/interactive-spline-scene-live-html/thumbnail.webp (100%) rename {demos => examples}/interactive-spline-scene-live-html/tsconfig.json (100%) rename {demos => examples}/interactive-spline-scene-live-html/tsconfig.node.json (100%) rename {demos => examples}/interactive-spline-scene-live-html/vite.config.ts (100%) rename {demos => examples}/inverted-stencil-buffer/.prettierrc (100%) create mode 100644 examples/inverted-stencil-buffer/README.md rename {demos => examples}/inverted-stencil-buffer/index.html (100%) rename {demos => examples}/inverted-stencil-buffer/package.json (85%) rename {demos => examples}/inverted-stencil-buffer/pmndrs.json (100%) rename {demos => examples}/inverted-stencil-buffer/public/vite.svg (100%) rename {demos => examples}/inverted-stencil-buffer/src/App.jsx (100%) rename {demos => examples}/inverted-stencil-buffer/src/index.jsx (100%) rename {demos => examples}/inverted-stencil-buffer/src/react-transformed.glb (100%) rename {demos => examples}/inverted-stencil-buffer/src/styles.css (100%) rename {demos => examples}/inverted-stencil-buffer/src/vite-env.d.ts (100%) rename {demos => examples}/inverted-stencil-buffer/thumbnail.webp (100%) rename {demos => examples}/inverted-stencil-buffer/tsconfig.json (100%) rename {demos => examples}/inverted-stencil-buffer/tsconfig.node.json (100%) rename {demos => examples}/inverted-stencil-buffer/vite.config.ts (100%) rename {demos => examples}/iridescent-decals/.prettierrc (100%) create mode 100644 examples/iridescent-decals/README.md rename {demos => examples}/iridescent-decals/index.html (100%) create mode 100644 examples/iridescent-decals/package.json rename {demos => examples}/iridescent-decals/pmndrs.json (100%) rename {demos => examples}/iridescent-decals/public/vite.svg (100%) rename {demos => examples}/iridescent-decals/src/App.jsx (100%) rename {demos => examples}/iridescent-decals/src/D64aIWkXoAAFI08.png (100%) rename {demos => examples}/iridescent-decals/src/Sticjer_1024x1024@2x.png (100%) rename {demos => examples}/iridescent-decals/src/Twemoji_1f600.svg.png (100%) rename {demos => examples}/iridescent-decals/src/assets/bunny.gltf (100%) rename {demos => examples}/iridescent-decals/src/index.jsx (100%) rename {demos => examples}/iridescent-decals/src/styles.css (100%) rename {demos => examples}/iridescent-decals/src/three.png (100%) rename {demos => examples}/iridescent-decals/src/vite-env.d.ts (100%) rename {demos => examples}/iridescent-decals/thumbnail.webp (100%) rename {demos => examples}/iridescent-decals/tsconfig.json (100%) rename {demos => examples}/iridescent-decals/tsconfig.node.json (100%) rename {demos => examples}/iridescent-decals/vite.config.ts (100%) rename {demos => examples}/lamina-1x/.prettierrc (100%) create mode 100644 examples/lamina-1x/README.md rename {demos => examples}/lamina-1x/index.html (100%) rename {demos => examples}/lamina-1x/package.json (88%) rename {demos => examples}/lamina-1x/pmndrs.json (100%) rename {demos => examples}/lamina-1x/public/vite.svg (100%) rename {demos => examples}/lamina-1x/src/App.jsx (100%) rename {demos => examples}/lamina-1x/src/cursor.glb (100%) rename {demos => examples}/lamina-1x/src/index.jsx (100%) rename {demos => examples}/lamina-1x/src/styles.css (100%) rename {demos => examples}/lamina-1x/src/vite-env.d.ts (100%) rename {demos => examples}/lamina-1x/thumbnail.webp (100%) rename {demos => examples}/lamina-1x/tsconfig.json (100%) rename {demos => examples}/lamina-1x/tsconfig.node.json (100%) rename {demos => examples}/lamina-1x/vite.config.ts (100%) rename {demos => examples}/landing-page/.prettierrc (100%) create mode 100644 examples/landing-page/README.md rename {demos => examples}/landing-page/index.html (100%) rename {demos => examples}/landing-page/package.json (87%) rename {demos => examples}/landing-page/pmndrs.json (100%) rename {demos => examples}/landing-page/public/vite.svg (100%) rename {demos => examples}/landing-page/src/App.jsx (100%) rename {demos => examples}/landing-page/src/Thunder-BlackLC.ttf (100%) rename {demos => examples}/landing-page/src/Thunder-BlackLC.woff (100%) rename {demos => examples}/landing-page/src/Thunder-BlackLC.woff2 (100%) rename {demos => examples}/landing-page/src/Thunder-ThinLC.ttf (100%) rename {demos => examples}/landing-page/src/Thunder-ThinLC.woff (100%) rename {demos => examples}/landing-page/src/Thunder-ThinLC.woff2 (100%) rename {demos => examples}/landing-page/src/Underlay.jsx (100%) rename {demos => examples}/landing-page/src/index.jsx (100%) rename {demos => examples}/landing-page/src/shoe-draco.glb (100%) rename {demos => examples}/landing-page/src/styles.css (100%) rename {demos => examples}/landing-page/src/vite-env.d.ts (100%) rename {demos => examples}/landing-page/thumbnail.webp (100%) rename {demos => examples}/landing-page/tsconfig.json (100%) rename {demos => examples}/landing-page/tsconfig.node.json (100%) rename {demos => examples}/landing-page/vite.config.ts (100%) rename {demos => examples}/learn-with-jason/.prettierrc (100%) create mode 100644 examples/learn-with-jason/README.md rename {demos => examples}/learn-with-jason/index.html (100%) rename {demos => examples}/learn-with-jason/package.json (88%) rename {demos => examples}/learn-with-jason/pmndrs.json (100%) rename {demos => examples}/learn-with-jason/public/favicon.ico (100%) rename {demos => examples}/learn-with-jason/public/logo192.png (100%) rename {demos => examples}/learn-with-jason/public/logo512.png (100%) rename {demos => examples}/learn-with-jason/public/manifest.json (100%) rename {demos => examples}/learn-with-jason/public/robots.txt (100%) rename {demos => examples}/learn-with-jason/public/vite.svg (100%) rename {demos => examples}/learn-with-jason/src/App.jsx (100%) rename {demos => examples}/learn-with-jason/src/index.jsx (100%) rename {demos => examples}/learn-with-jason/src/scene.glb (100%) rename {demos => examples}/learn-with-jason/src/styles.css (100%) rename {demos => examples}/learn-with-jason/src/vite-env.d.ts (100%) rename {demos => examples}/learn-with-jason/thumbnail.webp (100%) rename {demos => examples}/learn-with-jason/tsconfig.json (100%) rename {demos => examples}/learn-with-jason/tsconfig.node.json (100%) rename {demos => examples}/learn-with-jason/vite.config.ts (100%) rename {demos => examples}/lulaby-city/.prettierrc (100%) create mode 100644 examples/lulaby-city/README.md rename {demos => examples}/lulaby-city/index.html (100%) rename {demos => examples}/lulaby-city/package.json (91%) rename {demos => examples}/lulaby-city/pmndrs.json (100%) rename {demos => examples}/lulaby-city/public/favicon.ico (100%) rename {demos => examples}/lulaby-city/public/logo192.png (100%) rename {demos => examples}/lulaby-city/public/logo512.png (100%) rename {demos => examples}/lulaby-city/public/manifest.json (100%) rename {demos => examples}/lulaby-city/public/robots.txt (100%) rename {demos => examples}/lulaby-city/public/vite.svg (100%) rename {demos => examples}/lulaby-city/sandbox.config.json (100%) rename {demos => examples}/lulaby-city/src/App.jsx (100%) rename {demos => examples}/lulaby-city/src/Intro.jsx (100%) rename {demos => examples}/lulaby-city/src/index.jsx (100%) rename {demos => examples}/lulaby-city/src/scene-draco.glb (100%) rename {demos => examples}/lulaby-city/src/styles.css (100%) rename {demos => examples}/lulaby-city/src/vite-env.d.ts (100%) rename {demos => examples}/lulaby-city/src/zapsplat_icecream.mp3 (100%) rename {demos => examples}/lulaby-city/thumbnail.webp (100%) rename {demos => examples}/lulaby-city/tsconfig.json (100%) rename {demos => examples}/lulaby-city/tsconfig.node.json (100%) rename {demos => examples}/lulaby-city/vite.config.ts (100%) rename {demos => examples}/lusion-connectors/.prettierrc (100%) create mode 100644 examples/lusion-connectors/README.md rename {demos => examples}/lusion-connectors/index.html (100%) rename {demos => examples}/lusion-connectors/package.json (87%) rename {demos => examples}/lusion-connectors/pmndrs.json (100%) rename {demos => examples}/lusion-connectors/public/vite.svg (100%) rename {demos => examples}/lusion-connectors/src/App.jsx (100%) rename {demos => examples}/lusion-connectors/src/c-transformed.glb (100%) rename {demos => examples}/lusion-connectors/src/index.jsx (100%) rename {demos => examples}/lusion-connectors/src/styles.css (100%) rename {demos => examples}/lusion-connectors/src/vite-env.d.ts (100%) rename {demos => examples}/lusion-connectors/thumbnail.webp (100%) rename {demos => examples}/lusion-connectors/tsconfig.json (100%) rename {demos => examples}/lusion-connectors/tsconfig.node.json (100%) rename {demos => examples}/lusion-connectors/vite.config.ts (100%) rename {demos => examples}/magic-box/.prettierrc (100%) create mode 100644 examples/magic-box/README.md rename {demos => examples}/magic-box/index.html (100%) rename {demos/portals => examples/magic-box}/package.json (87%) rename {demos => examples}/magic-box/pmndrs.json (100%) rename {demos => examples}/magic-box/public/vite.svg (100%) rename {demos => examples}/magic-box/sandbox.config.json (100%) rename {demos => examples}/magic-box/src/App.jsx (100%) rename {demos => examples}/magic-box/src/aobox-transformed.glb (100%) rename {demos => examples}/magic-box/src/index.jsx (100%) rename {demos => examples}/magic-box/src/styles.css (100%) rename {demos => examples}/magic-box/src/vite-env.d.ts (100%) rename {demos => examples}/magic-box/thumbnail.webp (100%) rename {demos => examples}/magic-box/tsconfig.json (100%) rename {demos => examples}/magic-box/tsconfig.node.json (100%) rename {demos => examples}/magic-box/vite.config.ts (100%) rename {demos => examples}/merged-instance/.prettierrc (100%) create mode 100644 examples/merged-instance/README.md rename {demos => examples}/merged-instance/index.html (100%) create mode 100644 examples/merged-instance/package.json rename {demos => examples}/merged-instance/pmndrs.json (100%) rename {demos => examples}/merged-instance/public/vite.svg (100%) rename {demos => examples}/merged-instance/src/App.jsx (100%) rename {demos => examples}/merged-instance/src/Model.jsx (100%) rename {demos => examples}/merged-instance/src/index.jsx (100%) rename {demos => examples}/merged-instance/src/scene-draco.glb (100%) rename {demos => examples}/merged-instance/src/styles.css (100%) rename {demos => examples}/merged-instance/src/vite-env.d.ts (100%) rename {demos => examples}/merged-instance/thumbnail.webp (100%) rename {demos => examples}/merged-instance/tsconfig.json (100%) rename {demos => examples}/merged-instance/tsconfig.node.json (100%) rename {demos => examples}/merged-instance/vite.config.ts (100%) rename {demos => examples}/minecraft/.prettierrc (100%) create mode 100644 examples/minecraft/README.md rename {demos => examples}/minecraft/index.html (100%) rename {demos => examples}/minecraft/package.json (90%) rename {demos => examples}/minecraft/pmndrs.json (100%) rename {demos => examples}/minecraft/public/favicon.ico (100%) rename {demos => examples}/minecraft/public/logo192.png (100%) rename {demos => examples}/minecraft/public/logo512.png (100%) rename {demos => examples}/minecraft/public/manifest.json (100%) rename {demos => examples}/minecraft/public/robots.txt (100%) rename {demos => examples}/minecraft/public/vite.svg (100%) rename {demos => examples}/minecraft/sandbox.config.json (100%) rename {demos => examples}/minecraft/src/App.jsx (93%) rename {demos => examples}/minecraft/src/Axe.jsx (100%) rename {demos => examples}/minecraft/src/Cube.jsx (100%) rename {demos => examples}/minecraft/src/Ground.jsx (100%) rename {demos => examples}/minecraft/src/Player.jsx (100%) rename {demos => examples}/minecraft/src/axe.glb (100%) rename {demos => examples}/minecraft/src/dirt.jpg (100%) rename {demos => examples}/minecraft/src/grass.jpg (100%) rename {demos => examples}/minecraft/src/index.jsx (100%) rename {demos => examples}/minecraft/src/styles.css (100%) rename {demos => examples}/minecraft/src/vite-env.d.ts (100%) rename {demos => examples}/minecraft/thumbnail.webp (100%) rename {demos => examples}/minecraft/tsconfig.json (100%) rename {demos => examples}/minecraft/tsconfig.node.json (100%) rename {demos => examples}/minecraft/vite.config.ts (100%) rename {demos => examples}/mixing-controls/.prettierrc (100%) rename {demos/iridescent-decals => examples/mixing-controls}/README.md (57%) rename {demos => examples}/mixing-controls/index.html (100%) rename {demos => examples}/mixing-controls/package.json (87%) rename {demos => examples}/mixing-controls/pmndrs.json (100%) rename {demos => examples}/mixing-controls/public/vite.svg (100%) rename {demos => examples}/mixing-controls/src/App.jsx (100%) rename {demos => examples}/mixing-controls/src/index.jsx (100%) rename {demos => examples}/mixing-controls/src/styles.css (100%) rename {demos => examples}/mixing-controls/src/vite-env.d.ts (100%) rename {demos => examples}/mixing-controls/thumbnail.webp (100%) rename {demos => examples}/mixing-controls/tsconfig.json (100%) rename {demos => examples}/mixing-controls/tsconfig.node.json (100%) rename {demos => examples}/mixing-controls/vite.config.ts (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/.prettierrc (100%) create mode 100644 examples/mixing-html-and-webgl-w-occlusion/README.md rename {demos => examples}/mixing-html-and-webgl-w-occlusion/index.html (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/package.json (84%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/pmndrs.json (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/public/vite.svg (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/sandbox.config.json (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/App.jsx (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/HeroPage.jsx (99%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/assets/logo.svg (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/index.jsx (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/mac-draco.glb (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/styles.css (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/src/vite-env.d.ts (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/thumbnail.webp (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/tsconfig.json (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/tsconfig.node.json (100%) rename {demos => examples}/mixing-html-and-webgl-w-occlusion/vite.config.ts (100%) rename {demos => examples}/mixing-html-and-webgl/.prettierrc (100%) create mode 100644 examples/mixing-html-and-webgl/README.md rename {demos => examples}/mixing-html-and-webgl/index.html (100%) rename {demos => examples}/mixing-html-and-webgl/package.json (85%) rename {demos => examples}/mixing-html-and-webgl/pmndrs.json (100%) rename {demos => examples}/mixing-html-and-webgl/public/vite.svg (100%) rename {demos => examples}/mixing-html-and-webgl/src/App.jsx (100%) rename {demos => examples}/mixing-html-and-webgl/src/index.jsx (100%) rename {demos => examples}/mixing-html-and-webgl/src/styles.css (100%) rename {demos => examples}/mixing-html-and-webgl/src/vite-env.d.ts (100%) rename {demos => examples}/mixing-html-and-webgl/thumbnail.webp (100%) rename {demos => examples}/mixing-html-and-webgl/tsconfig.json (100%) rename {demos => examples}/mixing-html-and-webgl/tsconfig.node.json (100%) rename {demos => examples}/mixing-html-and-webgl/vite.config.ts (100%) rename {demos => examples}/moksha/.prettierrc (100%) rename {demos/cards => examples/moksha}/README.md (52%) rename {demos => examples}/moksha/index.html (100%) rename {demos => examples}/moksha/package.json (88%) rename {demos => examples}/moksha/pmndrs.json (100%) rename {demos => examples}/moksha/public/vite.svg (100%) rename {demos => examples}/moksha/sandbox.config.json (100%) rename {demos => examples}/moksha/src/blocks.jsx (100%) rename {demos => examples}/moksha/src/components/CustomMaterial.js (100%) rename {demos => examples}/moksha/src/components/MOONGET_Heavy.blob (100%) rename {demos => examples}/moksha/src/components/Plane.jsx (100%) rename {demos => examples}/moksha/src/components/Text.jsx (100%) rename {demos => examples}/moksha/src/diamonds/BackfaceMaterial.js (100%) rename {demos => examples}/moksha/src/diamonds/Diamonds.jsx (100%) rename {demos => examples}/moksha/src/diamonds/RefractionMaterial.js (100%) rename {demos => examples}/moksha/src/diamonds/diamond.glb (100%) rename {demos => examples}/moksha/src/index.jsx (100%) rename {demos => examples}/moksha/src/ph1.jpg (100%) rename {demos => examples}/moksha/src/ph3.jpg (100%) rename {demos => examples}/moksha/src/photo-1515036551567-bf1198cccc35.jpeg (100%) rename {demos => examples}/moksha/src/photo-1519608487953-e999c86e7455.jpeg (100%) rename {demos => examples}/moksha/src/photo-1533577116850-9cc66cad8a9b.jpeg (100%) rename {demos => examples}/moksha/src/photo-1548191265-cc70d3d45ba1.jpeg (100%) rename {demos => examples}/moksha/src/store.js (100%) rename {demos => examples}/moksha/src/styles.css (100%) rename {demos => examples}/moksha/src/vite-env.d.ts (100%) rename {demos => examples}/moksha/thumbnail.webp (100%) rename {demos => examples}/moksha/tsconfig.json (100%) rename {demos => examples}/moksha/tsconfig.node.json (100%) rename {demos => examples}/moksha/vite.config.ts (100%) rename {demos => examples}/monitors/.prettierrc (100%) create mode 100644 examples/monitors/README.md rename {demos => examples}/monitors/index.html (100%) rename {demos => examples}/monitors/package.json (89%) rename {demos => examples}/monitors/pmndrs.json (100%) rename {demos => examples}/monitors/public/vite.svg (100%) rename {demos => examples}/monitors/src/App.jsx (100%) rename {demos => examples}/monitors/src/Computers.jsx (100%) rename {demos => examples}/monitors/src/Inter-Medium.woff (100%) rename {demos => examples}/monitors/src/SpinningBox.jsx (100%) rename {demos => examples}/monitors/src/computers_1-transformed.glb (100%) rename {demos => examples}/monitors/src/index.jsx (100%) rename {demos => examples}/monitors/src/styles.css (100%) rename {demos => examples}/monitors/src/vite-env.d.ts (100%) rename {demos => examples}/monitors/thumbnail.webp (100%) rename {demos => examples}/monitors/tsconfig.json (100%) rename {demos => examples}/monitors/tsconfig.node.json (100%) rename {demos => examples}/monitors/vite.config.ts (100%) rename {demos => examples}/motionpathcontrols/.prettierrc (100%) create mode 100644 examples/motionpathcontrols/README.md rename {demos => examples}/motionpathcontrols/index.html (100%) rename {demos/diamond-refraction => examples/motionpathcontrols}/package.json (86%) rename {demos => examples}/motionpathcontrols/pmndrs.json (100%) rename {demos => examples}/motionpathcontrols/public/vite.svg (100%) rename {demos => examples}/motionpathcontrols/src/App.jsx (100%) rename {demos => examples}/motionpathcontrols/src/Sticjer_1024x1024@2x.png (100%) rename {demos => examples}/motionpathcontrols/src/Sticjer_1024x1024@2x_invert.png (100%) rename {demos => examples}/motionpathcontrols/src/curves.jsx (100%) rename {demos => examples}/motionpathcontrols/src/index.jsx (100%) rename {demos => examples}/motionpathcontrols/src/sony_cinema_camera-transformed.glb (100%) rename {demos => examples}/motionpathcontrols/src/styles.css (100%) rename {demos => examples}/motionpathcontrols/src/vite-env.d.ts (100%) rename {demos => examples}/motionpathcontrols/thumbnail.webp (100%) rename {demos => examples}/motionpathcontrols/tsconfig.json (100%) rename {demos => examples}/motionpathcontrols/tsconfig.node.json (100%) rename {demos => examples}/motionpathcontrols/vite.config.ts (100%) rename {demos => examples}/mount-transitions/.prettierrc (100%) create mode 100644 examples/mount-transitions/README.md rename {demos => examples}/mount-transitions/index.html (100%) rename {demos => examples}/mount-transitions/package.json (87%) rename {demos => examples}/mount-transitions/pmndrs.json (100%) rename {demos => examples}/mount-transitions/public/font.blob (100%) rename {demos => examples}/mount-transitions/public/vite.svg (100%) rename {demos => examples}/mount-transitions/sandbox.config.json (100%) rename {demos => examples}/mount-transitions/src/App.jsx (100%) rename {demos => examples}/mount-transitions/src/index.jsx (100%) rename {demos => examples}/mount-transitions/src/styles.css (100%) rename {demos => examples}/mount-transitions/src/vite-env.d.ts (100%) rename {demos => examples}/mount-transitions/thumbnail.webp (100%) rename {demos => examples}/mount-transitions/tsconfig.json (100%) rename {demos => examples}/mount-transitions/tsconfig.node.json (100%) rename {demos => examples}/mount-transitions/vite.config.ts (100%) rename {demos => examples}/multiple-views-with-uniform-controls/.prettierrc (100%) create mode 100644 examples/multiple-views-with-uniform-controls/README.md rename {demos => examples}/multiple-views-with-uniform-controls/index.html (100%) rename {demos => examples}/multiple-views-with-uniform-controls/package.json (85%) rename {demos => examples}/multiple-views-with-uniform-controls/pmndrs.json (100%) rename {demos => examples}/multiple-views-with-uniform-controls/public/mac.glb (100%) rename {demos => examples}/multiple-views-with-uniform-controls/public/vite.svg (100%) rename {demos => examples}/multiple-views-with-uniform-controls/src/App.jsx (100%) rename {demos => examples}/multiple-views-with-uniform-controls/src/assets/bricks.gltf (100%) rename {demos => examples}/multiple-views-with-uniform-controls/src/index.jsx (100%) rename {demos => examples}/multiple-views-with-uniform-controls/src/styles.css (100%) rename {demos => examples}/multiple-views-with-uniform-controls/src/vite-env.d.ts (100%) rename {demos => examples}/multiple-views-with-uniform-controls/thumbnail.webp (100%) rename {demos => examples}/multiple-views-with-uniform-controls/tsconfig.json (100%) rename {demos => examples}/multiple-views-with-uniform-controls/tsconfig.node.json (100%) rename {demos => examples}/multiple-views-with-uniform-controls/vite.config.ts (100%) rename {demos => examples}/nextjs-prism/.prettierrc (100%) create mode 100644 examples/nextjs-prism/README.md rename {demos => examples}/nextjs-prism/index.html (100%) rename {demos/hi-key-bubbles => examples/nextjs-prism}/package.json (87%) rename {demos => examples}/nextjs-prism/pmndrs.json (100%) rename {demos => examples}/nextjs-prism/public/vite.svg (100%) rename {demos => examples}/nextjs-prism/sandbox.config.json (100%) rename {demos => examples}/nextjs-prism/src/App.jsx (100%) rename {demos => examples}/nextjs-prism/src/components/Beam.jsx (100%) rename {demos => examples}/nextjs-prism/src/components/Box.jsx (100%) rename {demos => examples}/nextjs-prism/src/components/Flare.jsx (100%) rename {demos => examples}/nextjs-prism/src/components/Prism.jsx (100%) rename {demos => examples}/nextjs-prism/src/components/Rainbow.jsx (100%) rename {demos => examples}/nextjs-prism/src/components/Reflect.jsx (100%) rename {demos => examples}/nextjs-prism/src/fonts/Inter_Bold.json (100%) rename {demos => examples}/nextjs-prism/src/gltf/prism.glb (100%) rename {demos => examples}/nextjs-prism/src/index.jsx (100%) rename {demos => examples}/nextjs-prism/src/lut/F-6800-STD.cube (100%) rename {demos => examples}/nextjs-prism/src/styles.css (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/LICENSE.txt (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/hexangle.png (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare0.png (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare0_alpha.png (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare0_bw.jpg (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare0_bw.png (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare1.png (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare2.png (100%) rename {demos => examples}/nextjs-prism/src/textures/lensflare/lensflare3.png (100%) rename {demos => examples}/nextjs-prism/src/util.js (100%) rename {demos => examples}/nextjs-prism/src/vite-env.d.ts (100%) rename {demos => examples}/nextjs-prism/thumbnail.webp (100%) rename {demos => examples}/nextjs-prism/tsconfig.json (100%) rename {demos => examples}/nextjs-prism/tsconfig.node.json (100%) rename {demos => examples}/nextjs-prism/vite.config.ts (100%) rename {demos => examples}/night-train/.prettierrc (100%) create mode 100644 examples/night-train/README.md rename {demos => examples}/night-train/index.html (100%) rename {demos/camera-scroll => examples/night-train}/package.json (87%) rename {demos => examples}/night-train/pmndrs.json (100%) rename {demos => examples}/night-train/public/vite.svg (100%) rename {demos => examples}/night-train/sandbox.config.json (100%) rename {demos => examples}/night-train/src/App.jsx (100%) rename {demos => examples}/night-train/src/cabin-transformed.glb (100%) rename {demos => examples}/night-train/src/index.jsx (100%) rename {demos => examples}/night-train/src/seat-transformed.glb (100%) rename {demos => examples}/night-train/src/styles.css (100%) rename {demos => examples}/night-train/src/vite-env.d.ts (100%) rename {demos => examples}/night-train/thumbnail.webp (100%) rename {demos => examples}/night-train/tsconfig.json (100%) rename {demos => examples}/night-train/tsconfig.node.json (100%) rename {demos => examples}/night-train/vite.config.ts (100%) rename {demos => examples}/object-clump/.prettierrc (100%) create mode 100644 examples/object-clump/README.md rename {demos => examples}/object-clump/index.html (100%) rename {demos => examples}/object-clump/package.json (88%) rename {demos => examples}/object-clump/pmndrs.json (100%) rename {demos => examples}/object-clump/public/vite.svg (100%) rename {demos => examples}/object-clump/sandbox.config.json (100%) rename {demos => examples}/object-clump/src/App.jsx (100%) rename {demos => examples}/object-clump/src/Outlines.tsx (100%) rename {demos => examples}/object-clump/src/adamsbridge.hdr (100%) rename {demos => examples}/object-clump/src/cross.jpg (100%) rename {demos => examples}/object-clump/src/index.jsx (100%) rename {demos => examples}/object-clump/src/styles.css (100%) rename {demos => examples}/object-clump/src/vite-env.d.ts (100%) rename {demos => examples}/object-clump/thumbnail.webp (100%) rename {demos => examples}/object-clump/tsconfig.json (100%) rename {demos => examples}/object-clump/tsconfig.node.json (100%) rename {demos => examples}/object-clump/vite.config.ts (100%) rename {demos => examples}/pairing-threejs-to-ui/.codesandbox/workspace.json (100%) rename {demos => examples}/pairing-threejs-to-ui/.prettierrc (100%) create mode 100644 examples/pairing-threejs-to-ui/README.md rename {demos => examples}/pairing-threejs-to-ui/index.html (100%) rename {demos => examples}/pairing-threejs-to-ui/package.json (86%) rename {demos => examples}/pairing-threejs-to-ui/pmndrs.json (100%) rename {demos => examples}/pairing-threejs-to-ui/public/vite.svg (100%) rename {demos => examples}/pairing-threejs-to-ui/src/App.jsx (100%) rename {demos => examples}/pairing-threejs-to-ui/src/assets/tree-beech.gltf (100%) rename {demos => examples}/pairing-threejs-to-ui/src/assets/tree-lime.gltf (100%) rename {demos => examples}/pairing-threejs-to-ui/src/assets/tree-spruce.gltf (100%) rename {demos => examples}/pairing-threejs-to-ui/src/index.jsx (100%) rename {demos => examples}/pairing-threejs-to-ui/src/styles.css (100%) rename {demos => examples}/pairing-threejs-to-ui/src/vite-env.d.ts (100%) rename {demos => examples}/pairing-threejs-to-ui/thumbnail.webp (100%) rename {demos => examples}/pairing-threejs-to-ui/tsconfig.json (100%) rename {demos => examples}/pairing-threejs-to-ui/tsconfig.node.json (100%) rename {demos => examples}/pairing-threejs-to-ui/vite.config.ts (100%) rename {demos => examples}/pass-through-portals/.prettierrc (100%) create mode 100644 examples/pass-through-portals/README.md rename {demos => examples}/pass-through-portals/index.html (100%) rename {demos => examples}/pass-through-portals/package.json (86%) rename {demos => examples}/pass-through-portals/pmndrs.json (100%) rename {demos => examples}/pass-through-portals/public/vite.svg (100%) rename {demos => examples}/pass-through-portals/sandbox.config.json (100%) rename {demos => examples}/pass-through-portals/src/App.jsx (100%) rename {demos => examples}/pass-through-portals/src/index.jsx (100%) rename {demos => examples}/pass-through-portals/src/low_poly_mccree-transformed.glb (100%) rename {demos => examples}/pass-through-portals/src/styles.css (100%) rename {demos => examples}/pass-through-portals/src/vite-env.d.ts (100%) rename {demos => examples}/pass-through-portals/thumbnail.webp (100%) rename {demos => examples}/pass-through-portals/tsconfig.json (100%) rename {demos => examples}/pass-through-portals/tsconfig.node.json (100%) rename {demos => examples}/pass-through-portals/vite.config.ts (100%) create mode 100644 examples/physics-with-convex-polyhedrons/README.md rename {demos => examples}/physics-with-convex-polyhedrons/index.html (100%) rename {demos => examples}/physics-with-convex-polyhedrons/package.json (84%) rename {demos => examples}/physics-with-convex-polyhedrons/pmndrs.json (100%) rename {demos => examples}/physics-with-convex-polyhedrons/public/vite.svg (100%) rename {demos => examples}/physics-with-convex-polyhedrons/src/App.jsx (100%) rename {demos => examples}/physics-with-convex-polyhedrons/src/diamond.glb (100%) rename {demos => examples}/physics-with-convex-polyhedrons/src/index.jsx (100%) rename {demos => examples}/physics-with-convex-polyhedrons/src/styles.css (100%) rename {demos => examples}/physics-with-convex-polyhedrons/src/vite-env.d.ts (100%) rename {demos => examples}/physics-with-convex-polyhedrons/thumbnail.webp (100%) rename {demos => examples}/physics-with-convex-polyhedrons/tsconfig.json (100%) rename {demos => examples}/physics-with-convex-polyhedrons/tsconfig.node.json (100%) rename {demos => examples}/physics-with-convex-polyhedrons/vite.config.ts (100%) rename {demos => examples}/pinball-in-70-lines/.prettierrc (100%) create mode 100644 examples/pinball-in-70-lines/README.md rename {demos => examples}/pinball-in-70-lines/index.html (100%) rename {demos/trigger-meshes => examples/pinball-in-70-lines}/package.json (86%) rename {demos => examples}/pinball-in-70-lines/pmndrs.json (100%) rename {demos => examples}/pinball-in-70-lines/public/vite.svg (100%) rename {demos => examples}/pinball-in-70-lines/src/App.jsx (100%) rename {demos => examples}/pinball-in-70-lines/src/bg.jpg (100%) rename {demos => examples}/pinball-in-70-lines/src/cross.jpg (100%) rename {demos => examples}/pinball-in-70-lines/src/index.jsx (100%) rename {demos => examples}/pinball-in-70-lines/src/styles.css (100%) rename {demos => examples}/pinball-in-70-lines/src/vite-env.d.ts (100%) rename {demos => examples}/pinball-in-70-lines/thumbnail.webp (100%) rename {demos => examples}/pinball-in-70-lines/tsconfig.json (100%) rename {demos => examples}/pinball-in-70-lines/tsconfig.node.json (100%) rename {demos => examples}/pinball-in-70-lines/vite.config.ts (100%) rename {demos => examples}/pmndrs-vercel/.prettierrc (100%) create mode 100644 examples/pmndrs-vercel/README.md rename {demos => examples}/pmndrs-vercel/index.html (100%) rename {demos => examples}/pmndrs-vercel/package.json (87%) rename {demos => examples}/pmndrs-vercel/pmndrs.json (100%) rename {demos => examples}/pmndrs-vercel/public/vite.svg (100%) rename {demos => examples}/pmndrs-vercel/src/App.jsx (100%) rename {demos => examples}/pmndrs-vercel/src/cursor.glb (100%) rename {demos => examples}/pmndrs-vercel/src/index.jsx (100%) rename {demos => examples}/pmndrs-vercel/src/pmndrs.glb (100%) rename {demos => examples}/pmndrs-vercel/src/styles.css (100%) rename {demos => examples}/pmndrs-vercel/src/vite-env.d.ts (100%) rename {demos => examples}/pmndrs-vercel/thumbnail.webp (100%) rename {demos => examples}/pmndrs-vercel/tsconfig.json (100%) rename {demos => examples}/pmndrs-vercel/tsconfig.node.json (100%) rename {demos => examples}/pmndrs-vercel/vite.config.ts (100%) rename {demos => examples}/portal-shapes/.prettierrc (100%) create mode 100644 examples/portal-shapes/README.md rename {demos => examples}/portal-shapes/index.html (100%) rename {demos => examples}/portal-shapes/package.json (87%) rename {demos => examples}/portal-shapes/pmndrs.json (100%) rename {demos => examples}/portal-shapes/public/journey-transformed.glb (100%) rename {demos => examples}/portal-shapes/public/shapes-transformed.glb (100%) rename {demos => examples}/portal-shapes/public/vite.svg (100%) rename {demos => examples}/portal-shapes/sandbox.config.json (100%) rename {demos => examples}/portal-shapes/src/App.jsx (100%) rename {demos => examples}/portal-shapes/src/bold.blob (100%) rename {demos => examples}/portal-shapes/src/index.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/Basic.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/PingPong.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/Rocket.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/Shoe.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/Stencil.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/Turtle.jsx (100%) rename {demos => examples}/portal-shapes/src/sandboxes/model_52a_-_kemps_ridley_sea_turtle_no_id-transformed.glb (100%) rename {demos => examples}/portal-shapes/src/sandboxes/react-transformed.glb (100%) rename {demos => examples}/portal-shapes/src/sandboxes/rocket-transformed.glb (100%) rename {demos => examples}/portal-shapes/src/sandboxes/shoe-draco.glb (100%) rename {demos => examples}/portal-shapes/src/styles.css (100%) rename {demos => examples}/portal-shapes/src/vite-env.d.ts (100%) rename {demos => examples}/portal-shapes/thumbnail.webp (100%) rename {demos => examples}/portal-shapes/tsconfig.json (100%) rename {demos => examples}/portal-shapes/tsconfig.node.json (100%) rename {demos => examples}/portal-shapes/vite.config.ts (100%) rename {demos => examples}/portals/.prettierrc (100%) rename {demos/enter-portals => examples/portals}/README.md (59%) rename {demos => examples}/portals/index.html (100%) rename {demos/magic-box => examples/portals}/package.json (88%) rename {demos => examples}/portals/pmndrs.json (100%) rename {demos => examples}/portals/public/Inter_Medium_Regular.json (100%) rename {demos => examples}/portals/public/vite.svg (100%) rename {demos => examples}/portals/sandbox.config.json (100%) rename {demos => examples}/portals/src/App.jsx (100%) rename {demos => examples}/portals/src/ao_shapes.glb (100%) rename {demos => examples}/portals/src/index.jsx (100%) rename {demos => examples}/portals/src/styles.css (100%) rename {demos => examples}/portals/src/vite-env.d.ts (100%) rename {demos => examples}/portals/thumbnail.webp (100%) rename {demos => examples}/portals/tsconfig.json (100%) rename {demos => examples}/portals/tsconfig.node.json (100%) rename {demos => examples}/portals/vite.config.ts (100%) rename {demos => examples}/progressive-loading-states-with-suspense/.codesandbox/workspace.json (100%) rename {demos => examples}/progressive-loading-states-with-suspense/.prettierrc (100%) create mode 100644 examples/progressive-loading-states-with-suspense/README.md rename {demos => examples}/progressive-loading-states-with-suspense/index.html (100%) create mode 100644 examples/progressive-loading-states-with-suspense/package.json rename {demos => examples}/progressive-loading-states-with-suspense/pmndrs.json (100%) rename {demos => examples}/progressive-loading-states-with-suspense/public/vite.svg (100%) rename {demos => examples}/progressive-loading-states-with-suspense/sandbox.config.json (100%) rename {demos => examples}/progressive-loading-states-with-suspense/src/App.jsx (100%) rename {demos => examples}/progressive-loading-states-with-suspense/src/bust-hi.glb (100%) rename {demos => examples}/progressive-loading-states-with-suspense/src/bust-lo-draco.glb (100%) rename {demos => examples}/progressive-loading-states-with-suspense/src/index.jsx (100%) rename {demos => examples}/progressive-loading-states-with-suspense/src/styles.css (100%) rename {demos => examples}/progressive-loading-states-with-suspense/src/vite-env.d.ts (100%) rename {demos => examples}/progressive-loading-states-with-suspense/thumbnail.webp (100%) rename {demos => examples}/progressive-loading-states-with-suspense/tsconfig.json (100%) rename {demos => examples}/progressive-loading-states-with-suspense/tsconfig.node.json (100%) rename {demos => examples}/progressive-loading-states-with-suspense/vite.config.ts (100%) rename {demos => examples}/racing-game/.prettierrc (100%) create mode 100644 examples/racing-game/README.md rename {demos => examples}/racing-game/index.html (100%) rename {demos => examples}/racing-game/package.json (89%) rename {demos => examples}/racing-game/pmndrs.json (100%) rename {demos => examples}/racing-game/public/images/bronze.png (100%) rename {demos => examples}/racing-game/public/images/gold.png (100%) rename {demos => examples}/racing-game/public/images/silver.png (100%) rename {demos => examples}/racing-game/public/models/chassis-draco.glb (100%) rename {demos => examples}/racing-game/public/models/track-draco.glb (100%) rename {demos => examples}/racing-game/public/models/wheel-draco.glb (100%) rename {demos => examples}/racing-game/public/sounds/accelerate.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/boost.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/crash.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/engine.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/honk.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/tire-brake.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/train.mp3 (100%) rename {demos => examples}/racing-game/public/sounds/water.mp3 (100%) rename {demos => examples}/racing-game/public/textures/cursor.svg (100%) rename {demos => examples}/racing-game/public/textures/dikhololo_night_1k.hdr (100%) rename {demos => examples}/racing-game/public/textures/heightmap_1024.png (100%) rename {demos => examples}/racing-game/public/textures/mask.svg (100%) rename {demos => examples}/racing-game/public/textures/no_sound.png (100%) rename {demos => examples}/racing-game/public/vite.svg (100%) rename {demos => examples}/racing-game/src/App.tsx (100%) rename {demos => examples}/racing-game/src/assetUrl.ts (70%) rename {demos => examples}/racing-game/src/controls/HideMouse.ts (100%) rename {demos => examples}/racing-game/src/controls/Keyboard.ts (100%) rename {demos => examples}/racing-game/src/controls/index.tsx (100%) rename {demos => examples}/racing-game/src/effects/Boost.tsx (100%) rename {demos => examples}/racing-game/src/effects/Dust.tsx (100%) rename {demos => examples}/racing-game/src/effects/Skid.tsx (100%) rename {demos => examples}/racing-game/src/effects/index.ts (100%) rename {demos => examples}/racing-game/src/index.tsx (100%) rename {demos => examples}/racing-game/src/models/Goal.ts (100%) rename {demos => examples}/racing-game/src/models/Ramp.tsx (100%) rename {demos => examples}/racing-game/src/models/index.ts (100%) rename {demos => examples}/racing-game/src/models/track/Heightmap.tsx (100%) rename {demos => examples}/racing-game/src/models/track/Track.tsx (100%) rename {demos => examples}/racing-game/src/models/track/Train.tsx (100%) rename {demos => examples}/racing-game/src/models/track/index.ts (100%) rename {demos => examples}/racing-game/src/models/vehicle/Chassis.tsx (100%) rename {demos => examples}/racing-game/src/models/vehicle/Vehicle.tsx (100%) rename {demos => examples}/racing-game/src/models/vehicle/Wheel.tsx (100%) rename {demos => examples}/racing-game/src/models/vehicle/index.ts (100%) rename {demos => examples}/racing-game/src/store.ts (100%) rename {demos => examples}/racing-game/src/styles.css (100%) rename {demos => examples}/racing-game/src/ui/Clock.tsx (100%) rename {demos => examples}/racing-game/src/ui/Editor.ts (100%) rename {demos => examples}/racing-game/src/ui/Help.tsx (100%) rename {demos => examples}/racing-game/src/ui/Intro.tsx (100%) rename {demos => examples}/racing-game/src/ui/Minimap.tsx (100%) rename {demos => examples}/racing-game/src/ui/Speed/Boost.tsx (100%) rename {demos => examples}/racing-game/src/ui/Speed/Gauge.tsx (100%) rename {demos => examples}/racing-game/src/ui/Speed/Text.tsx (100%) rename {demos => examples}/racing-game/src/ui/Speed/index.tsx (100%) rename {demos => examples}/racing-game/src/ui/index.ts (100%) rename {demos => examples}/racing-game/src/useToggle.tsx (100%) rename {demos => examples}/racing-game/src/vite-env.d.ts (100%) rename {demos => examples}/racing-game/thumbnail.webp (100%) rename {demos => examples}/racing-game/tsconfig.json (100%) rename {demos => examples}/racing-game/tsconfig.node.json (100%) rename {demos => examples}/racing-game/vite.config.ts (100%) rename {demos => examples}/ragdoll-physics/.prettierrc (100%) create mode 100644 examples/ragdoll-physics/README.md rename {demos => examples}/ragdoll-physics/index.html (100%) rename {demos/merged-instance => examples/ragdoll-physics}/package.json (87%) rename {demos => examples}/ragdoll-physics/pmndrs.json (100%) rename {demos => examples}/ragdoll-physics/public/vite.svg (100%) rename {demos => examples}/ragdoll-physics/sandbox.config.json (100%) rename {demos => examples}/ragdoll-physics/src/App.jsx (100%) rename {demos => examples}/ragdoll-physics/src/components/Furniture.jsx (100%) rename {demos => examples}/ragdoll-physics/src/components/Guy.jsx (100%) rename {demos => examples}/ragdoll-physics/src/components/cup.glb (100%) rename {demos => examples}/ragdoll-physics/src/helpers/Block.jsx (100%) rename {demos => examples}/ragdoll-physics/src/helpers/Drag.js (100%) rename {demos => examples}/ragdoll-physics/src/helpers/createRagdoll.js (99%) rename {demos => examples}/ragdoll-physics/src/index.jsx (100%) rename {demos => examples}/ragdoll-physics/src/styles.css (100%) rename {demos => examples}/ragdoll-physics/src/vite-env.d.ts (100%) rename {demos => examples}/ragdoll-physics/thumbnail.webp (100%) rename {demos => examples}/ragdoll-physics/tsconfig.json (100%) rename {demos => examples}/ragdoll-physics/tsconfig.node.json (100%) rename {demos => examples}/ragdoll-physics/vite.config.ts (100%) rename {demos => examples}/rapier-physics/.codesandbox/workspace.json (100%) rename {demos => examples}/rapier-physics/.prettierrc (100%) create mode 100644 examples/rapier-physics/README.md rename {demos => examples}/rapier-physics/index.html (100%) rename {demos => examples}/rapier-physics/package.json (87%) rename {demos => examples}/rapier-physics/pmndrs.json (100%) rename {demos => examples}/rapier-physics/public/vite.svg (100%) rename {demos => examples}/rapier-physics/sandbox.config.json (100%) rename {demos => examples}/rapier-physics/src/App.jsx (100%) rename {demos => examples}/rapier-physics/src/ball-trip.optimized.glb (100%) rename {demos => examples}/rapier-physics/src/index.jsx (100%) rename {demos => examples}/rapier-physics/src/styles.css (100%) rename {demos => examples}/rapier-physics/src/vite-env.d.ts (100%) rename {demos => examples}/rapier-physics/thumbnail.webp (100%) rename {demos => examples}/rapier-physics/tsconfig.json (100%) rename {demos => examples}/rapier-physics/tsconfig.node.json (100%) rename {demos => examples}/rapier-physics/vite.config.ts (100%) rename {demos => examples}/rapier-ping-pong/.prettierrc (100%) create mode 100644 examples/rapier-ping-pong/README.md rename {demos => examples}/rapier-ping-pong/index.html (100%) rename {demos => examples}/rapier-ping-pong/package.json (88%) rename {demos => examples}/rapier-ping-pong/pmndrs.json (100%) rename {demos => examples}/rapier-ping-pong/public/vite.svg (100%) rename {demos => examples}/rapier-ping-pong/src/App.jsx (100%) rename {demos => examples}/rapier-ping-pong/src/Intro.jsx (100%) rename {demos => examples}/rapier-ping-pong/src/index.jsx (100%) rename {demos => examples}/rapier-ping-pong/src/resources/bg.jpg (100%) rename {demos => examples}/rapier-ping-pong/src/resources/crossp.jpg (100%) rename {demos => examples}/rapier-ping-pong/src/resources/firasans_regular.json (100%) rename {demos => examples}/rapier-ping-pong/src/resources/ping.mp3 (100%) rename {demos => examples}/rapier-ping-pong/src/resources/pingpong.glb (100%) rename {demos => examples}/rapier-ping-pong/src/styles.css (100%) rename {demos => examples}/rapier-ping-pong/src/vite-env.d.ts (100%) rename {demos => examples}/rapier-ping-pong/thumbnail.webp (100%) rename {demos => examples}/rapier-ping-pong/tsconfig.json (100%) rename {demos => examples}/rapier-ping-pong/tsconfig.node.json (100%) rename {demos => examples}/rapier-ping-pong/vite.config.ts (100%) rename {demos => examples}/raycast-cycling/.prettierrc (100%) create mode 100644 examples/raycast-cycling/README.md rename {demos => examples}/raycast-cycling/index.html (100%) rename {demos => examples}/raycast-cycling/package.json (86%) rename {demos => examples}/raycast-cycling/pmndrs.json (100%) rename {demos => examples}/raycast-cycling/public/vite.svg (100%) rename {demos => examples}/raycast-cycling/src/App.jsx (100%) rename {demos/raycast-cycling/src/demo => examples/raycast-cycling/src/example}/Underlay.jsx (100%) rename {demos => examples}/raycast-cycling/src/index.jsx (81%) rename {demos => examples}/raycast-cycling/src/styles.css (100%) rename {demos => examples}/raycast-cycling/src/vite-env.d.ts (100%) rename {demos => examples}/raycast-cycling/thumbnail.webp (100%) rename {demos => examples}/raycast-cycling/tsconfig.json (100%) rename {demos => examples}/raycast-cycling/tsconfig.node.json (100%) rename {demos => examples}/raycast-cycling/vite.config.ts (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/.codesandbox/workspace.json (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/.prettierrc (100%) create mode 100644 examples/re-using-geometry-and-level-of-detail/README.md rename {demos => examples}/re-using-geometry-and-level-of-detail/index.html (100%) create mode 100644 examples/re-using-geometry-and-level-of-detail/package.json rename {demos => examples}/re-using-geometry-and-level-of-detail/pmndrs.json (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/public/vite.svg (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/sandbox.config.json (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/App.jsx (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/bust-1-d.glb (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/bust-2-d.glb (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/bust-3-d.glb (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/bust-4-d.glb (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/bust-5-d.glb (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/index.jsx (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/styles.css (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/src/vite-env.d.ts (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/thumbnail.webp (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/tsconfig.json (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/tsconfig.node.json (100%) rename {demos => examples}/re-using-geometry-and-level-of-detail/vite.config.ts (100%) rename {demos => examples}/re-using-gltfs/.prettierrc (100%) create mode 100644 examples/re-using-gltfs/README.md rename {demos => examples}/re-using-gltfs/index.html (100%) rename {demos => examples}/re-using-gltfs/package.json (84%) rename {demos => examples}/re-using-gltfs/pmndrs.json (100%) rename {demos => examples}/re-using-gltfs/public/vite.svg (100%) rename {demos => examples}/re-using-gltfs/src/App.jsx (100%) rename {demos => examples}/re-using-gltfs/src/index.jsx (100%) rename {demos => examples}/re-using-gltfs/src/shoe.gltf (100%) rename {demos => examples}/re-using-gltfs/src/style.css (100%) rename {demos => examples}/re-using-gltfs/src/vite-env.d.ts (100%) rename {demos => examples}/re-using-gltfs/thumbnail.webp (100%) rename {demos => examples}/re-using-gltfs/tsconfig.json (100%) rename {demos => examples}/re-using-gltfs/tsconfig.node.json (100%) rename {demos => examples}/re-using-gltfs/vite.config.ts (100%) rename {demos => examples}/react-ellipsecurve/.codesandbox/workspace.json (100%) rename {demos => examples}/react-ellipsecurve/.eslintrc (100%) rename {demos => examples}/react-ellipsecurve/.prettierrc (100%) create mode 100644 examples/react-ellipsecurve/README.md rename {demos => examples}/react-ellipsecurve/index.html (100%) rename {demos => examples}/react-ellipsecurve/package.json (88%) rename {demos => examples}/react-ellipsecurve/pmndrs.json (100%) rename {demos => examples}/react-ellipsecurve/public/vite.svg (100%) rename {demos => examples}/react-ellipsecurve/src/App.jsx (100%) rename {demos => examples}/react-ellipsecurve/src/index.jsx (100%) rename {demos => examples}/react-ellipsecurve/src/styles.css (100%) rename {demos => examples}/react-ellipsecurve/src/vite-env.d.ts (100%) rename {demos => examples}/react-ellipsecurve/thumbnail.webp (100%) rename {demos => examples}/react-ellipsecurve/tsconfig.json (100%) rename {demos => examples}/react-ellipsecurve/tsconfig.node.json (100%) rename {demos => examples}/react-ellipsecurve/vite.config.ts (100%) rename {demos => examples}/react-pp-outlines/.prettierrc (100%) create mode 100644 examples/react-pp-outlines/README.md rename {demos => examples}/react-pp-outlines/index.html (100%) rename {demos/motionpathcontrols => examples/react-pp-outlines}/package.json (86%) rename {demos => examples}/react-pp-outlines/pmndrs.json (100%) rename {demos => examples}/react-pp-outlines/public/vite.svg (100%) rename {demos => examples}/react-pp-outlines/src/App.jsx (100%) rename {demos => examples}/react-pp-outlines/src/Engine.jsx (100%) rename {demos => examples}/react-pp-outlines/src/index.jsx (100%) rename {demos => examples}/react-pp-outlines/src/machine-transformed.glb (100%) rename {demos => examples}/react-pp-outlines/src/styles.css (100%) rename {demos => examples}/react-pp-outlines/src/vite-env.d.ts (100%) rename {demos => examples}/react-pp-outlines/thumbnail.webp (100%) rename {demos => examples}/react-pp-outlines/tsconfig.json (100%) rename {demos => examples}/react-pp-outlines/tsconfig.node.json (100%) rename {demos => examples}/react-pp-outlines/vite.config.ts (100%) rename {demos => examples}/react-spring-animations/.prettierrc (100%) create mode 100644 examples/react-spring-animations/README.md rename {demos => examples}/react-spring-animations/index.html (100%) rename {demos => examples}/react-spring-animations/package.json (86%) rename {demos => examples}/react-spring-animations/pmndrs.json (100%) rename {demos => examples}/react-spring-animations/public/vite.svg (100%) rename {demos => examples}/react-spring-animations/src/Canvas.jsx (100%) rename {demos => examples}/react-spring-animations/src/cross.jpg (100%) rename {demos => examples}/react-spring-animations/src/headless.glb (100%) rename {demos => examples}/react-spring-animations/src/index.jsx (100%) rename {demos => examples}/react-spring-animations/src/styles.css (100%) rename {demos => examples}/react-spring-animations/src/switch.glb (100%) rename {demos => examples}/react-spring-animations/src/vite-env.d.ts (100%) rename {demos => examples}/react-spring-animations/thumbnail.webp (100%) rename {demos => examples}/react-spring-animations/tsconfig.json (100%) rename {demos => examples}/react-spring-animations/tsconfig.node.json (100%) rename {demos => examples}/react-spring-animations/vite.config.ts (100%) rename {demos => examples}/room-with-soft-shadows/.prettierrc (100%) create mode 100644 examples/room-with-soft-shadows/README.md rename {demos => examples}/room-with-soft-shadows/index.html (100%) rename {demos => examples}/room-with-soft-shadows/package.json (85%) rename {demos => examples}/room-with-soft-shadows/pmndrs.json (100%) rename {demos => examples}/room-with-soft-shadows/public/vite.svg (100%) rename {demos => examples}/room-with-soft-shadows/src/App.jsx (100%) rename {demos => examples}/room-with-soft-shadows/src/Room.jsx (100%) rename {demos => examples}/room-with-soft-shadows/src/index.jsx (100%) rename {demos => examples}/room-with-soft-shadows/src/room-transformed.glb (100%) rename {demos => examples}/room-with-soft-shadows/src/styles.css (100%) rename {demos => examples}/room-with-soft-shadows/src/vite-env.d.ts (100%) rename {demos => examples}/room-with-soft-shadows/thumbnail.webp (100%) rename {demos => examples}/room-with-soft-shadows/tsconfig.json (100%) rename {demos => examples}/room-with-soft-shadows/tsconfig.node.json (100%) rename {demos => examples}/room-with-soft-shadows/vite.config.ts (100%) rename {demos => examples}/router-transitions/.prettierrc (100%) create mode 100644 examples/router-transitions/README.md rename {demos => examples}/router-transitions/index.html (100%) rename {demos => examples}/router-transitions/package.json (87%) rename {demos => examples}/router-transitions/pmndrs.json (100%) rename {demos => examples}/router-transitions/public/ao.jpg (100%) rename {demos => examples}/router-transitions/public/height.png (100%) rename {demos => examples}/router-transitions/public/normal.jpg (100%) rename {demos => examples}/router-transitions/public/photo_studio_01_1k.hdr (100%) rename {demos => examples}/router-transitions/public/roughness.jpg (100%) rename {demos => examples}/router-transitions/public/vite.svg (100%) rename {demos => examples}/router-transitions/src/App.jsx (100%) rename {demos => examples}/router-transitions/src/bomb-gp.glb (100%) rename {demos => examples}/router-transitions/src/index.jsx (100%) rename {demos => examples}/router-transitions/src/styles.css (100%) rename {demos => examples}/router-transitions/src/vite-env.d.ts (100%) rename {demos => examples}/router-transitions/thumbnail.webp (100%) rename {demos => examples}/router-transitions/tsconfig.json (100%) rename {demos => examples}/router-transitions/tsconfig.node.json (100%) rename {demos => examples}/router-transitions/vite.config.ts (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/.prettierrc (100%) create mode 100644 examples/scrollcontrols-and-lens-refraction/README.md rename {demos => examples}/scrollcontrols-and-lens-refraction/index.html (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/package.json (83%) rename {demos => examples}/scrollcontrols-and-lens-refraction/pmndrs.json (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/App.jsx (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/Inter-Regular.woff (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img1.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img2.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img3.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img4.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img5.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img6.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img7.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/img8.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/index.jsx (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/lens-transformed.glb (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/styles.css (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/trip1.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/trip2.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/trip3.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/trip4.jpg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/vite-env.d.ts (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/src/vite.svg (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/thumbnail.webp (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/tsconfig.json (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/tsconfig.node.json (100%) rename {demos => examples}/scrollcontrols-and-lens-refraction/vite.config.ts (100%) rename {demos => examples}/scrollcontrols-gltf/.prettierrc (100%) create mode 100644 examples/scrollcontrols-gltf/README.md rename {demos => examples}/scrollcontrols-gltf/index.html (100%) rename {demos/bounds-and-makedefault => examples/scrollcontrols-gltf}/package.json (85%) rename {demos => examples}/scrollcontrols-gltf/pmndrs.json (100%) rename {demos => examples}/scrollcontrols-gltf/public/vite.svg (100%) rename {demos => examples}/scrollcontrols-gltf/src/App.jsx (100%) rename {demos => examples}/scrollcontrols-gltf/src/LittlestTokyo-transformed.glb (100%) rename {demos => examples}/scrollcontrols-gltf/src/index.jsx (100%) rename {demos => examples}/scrollcontrols-gltf/src/styles.css (100%) rename {demos => examples}/scrollcontrols-gltf/src/vite-env.d.ts (100%) rename {demos => examples}/scrollcontrols-gltf/thumbnail.webp (100%) rename {demos => examples}/scrollcontrols-gltf/tsconfig.json (100%) rename {demos => examples}/scrollcontrols-gltf/tsconfig.node.json (100%) rename {demos => examples}/scrollcontrols-gltf/vite.config.ts (100%) rename {demos => examples}/scrollcontrols-with-minimap/.prettierrc (100%) create mode 100644 examples/scrollcontrols-with-minimap/README.md rename {demos => examples}/scrollcontrols-with-minimap/index.html (100%) create mode 100644 examples/scrollcontrols-with-minimap/package.json rename {demos => examples}/scrollcontrols-with-minimap/pmndrs.json (100%) rename {demos => examples}/scrollcontrols-with-minimap/public/Inter-UI-Medium.ttf (100%) rename {demos => examples}/scrollcontrols-with-minimap/public/vite.svg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/App.jsx (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img1.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img2.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img3.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img4.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img5.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img6.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img7.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/img8.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/index.jsx (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/styles.css (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/trip1.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/trip2.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/trip3.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/trip4.jpg (100%) rename {demos => examples}/scrollcontrols-with-minimap/src/vite-env.d.ts (100%) rename {demos => examples}/scrollcontrols-with-minimap/thumbnail.webp (100%) rename {demos => examples}/scrollcontrols-with-minimap/tsconfig.json (100%) rename {demos => examples}/scrollcontrols-with-minimap/tsconfig.node.json (100%) rename {demos => examples}/scrollcontrols-with-minimap/vite.config.ts (100%) rename {demos => examples}/selective-outlines/.prettierrc (100%) rename {demos/html-annotations => examples/selective-outlines}/README.md (56%) rename {demos => examples}/selective-outlines/index.html (100%) rename {demos => examples}/selective-outlines/package.json (86%) rename {demos => examples}/selective-outlines/pmndrs.json (100%) rename {demos => examples}/selective-outlines/public/vite.svg (100%) rename {demos => examples}/selective-outlines/src/App.jsx (100%) rename {demos => examples}/selective-outlines/src/index.jsx (100%) rename {demos => examples}/selective-outlines/src/styles.css (100%) rename {demos => examples}/selective-outlines/src/vite-env.d.ts (100%) rename {demos => examples}/selective-outlines/thumbnail.webp (100%) rename {demos => examples}/selective-outlines/tsconfig.json (100%) rename {demos => examples}/selective-outlines/tsconfig.node.json (100%) rename {demos => examples}/selective-outlines/vite.config.ts (100%) rename {demos => examples}/shader-fire/.prettierrc (100%) create mode 100644 examples/shader-fire/README.md rename {demos => examples}/shader-fire/index.html (100%) rename {demos => examples}/shader-fire/package.json (87%) rename {demos => examples}/shader-fire/pmndrs.json (100%) rename {demos => examples}/shader-fire/public/vite.svg (100%) rename {demos => examples}/shader-fire/src/App.jsx (100%) rename {demos => examples}/shader-fire/src/fire.png (100%) rename {demos => examples}/shader-fire/src/index.jsx (100%) rename {demos => examples}/shader-fire/src/styles.css (100%) rename {demos => examples}/shader-fire/src/vite-env.d.ts (100%) rename {demos => examples}/shader-fire/thumbnail.webp (100%) rename {demos => examples}/shader-fire/tsconfig.json (100%) rename {demos => examples}/shader-fire/tsconfig.node.json (100%) rename {demos => examples}/shader-fire/vite.config.ts (100%) rename {demos => examples}/shader-hmr/.prettierrc (100%) rename {demos/basic-ballpit => examples/shader-hmr}/README.md (50%) rename {demos => examples}/shader-hmr/index.html (100%) rename {demos/bouncy-watch => examples/shader-hmr}/package.json (87%) rename {demos => examples}/shader-hmr/pmndrs.json (100%) rename {demos => examples}/shader-hmr/public/vite.svg (100%) rename {demos => examples}/shader-hmr/src/App.jsx (100%) rename {demos => examples}/shader-hmr/src/WaveMaterial.js (100%) rename {demos => examples}/shader-hmr/src/index.jsx (100%) rename {demos => examples}/shader-hmr/src/styles.css (100%) rename {demos => examples}/shader-hmr/src/vite-env.d.ts (100%) rename {demos => examples}/shader-hmr/thumbnail.webp (100%) rename {demos => examples}/shader-hmr/tsconfig.json (100%) rename {demos => examples}/shader-hmr/tsconfig.node.json (100%) rename {demos => examples}/shader-hmr/vite.config.ts (100%) rename {demos => examples}/shadermaterials/.prettierrc (100%) create mode 100644 examples/shadermaterials/README.md rename {demos => examples}/shadermaterials/index.html (100%) create mode 100644 examples/shadermaterials/package.json rename {demos => examples}/shadermaterials/pmndrs.json (100%) rename {demos => examples}/shadermaterials/public/vite.svg (100%) rename {demos => examples}/shadermaterials/src/App.jsx (100%) rename {demos => examples}/shadermaterials/src/img/Img1.jpg (100%) rename {demos => examples}/shadermaterials/src/img/Img2.jpg (100%) rename {demos => examples}/shadermaterials/src/img/displacement/10.jpg (100%) rename {demos => examples}/shadermaterials/src/img/displacement/11.jpg (100%) rename {demos => examples}/shadermaterials/src/img/displacement/13.jpg (100%) rename {demos => examples}/shadermaterials/src/img/displacement/14.jpg (100%) rename {demos => examples}/shadermaterials/src/index.jsx (100%) rename {demos => examples}/shadermaterials/src/styles.css (100%) rename {demos => examples}/shadermaterials/src/vite-env.d.ts (100%) rename {demos => examples}/shadermaterials/thumbnail.webp (100%) rename {demos => examples}/shadermaterials/tsconfig.json (100%) rename {demos => examples}/shadermaterials/tsconfig.node.json (100%) rename {demos => examples}/shadermaterials/vite.config.ts (100%) rename {demos => examples}/shoe-configurator/.prettierrc (100%) create mode 100644 examples/shoe-configurator/README.md rename {demos => examples}/shoe-configurator/index.html (100%) rename {demos => examples}/shoe-configurator/package.json (86%) rename {demos => examples}/shoe-configurator/pmndrs.json (100%) rename {demos => examples}/shoe-configurator/public/vite.svg (100%) rename {demos => examples}/shoe-configurator/src/App.jsx (100%) rename {demos => examples}/shoe-configurator/src/index.jsx (100%) rename {demos => examples}/shoe-configurator/src/shoe-draco.glb (100%) rename {demos => examples}/shoe-configurator/src/styles.css (100%) rename {demos => examples}/shoe-configurator/src/vite-env.d.ts (100%) rename {demos => examples}/shoe-configurator/thumbnail.webp (100%) rename {demos => examples}/shoe-configurator/tsconfig.json (100%) rename {demos => examples}/shoe-configurator/tsconfig.node.json (100%) rename {demos => examples}/shoe-configurator/vite.config.ts (100%) rename {demos => examples}/shopping/.prettierrc (100%) create mode 100644 examples/shopping/README.md rename {demos => examples}/shopping/index.html (100%) rename {demos => examples}/shopping/package.json (87%) rename {demos => examples}/shopping/pmndrs.json (100%) rename {demos => examples}/shopping/public/vite.svg (100%) rename {demos => examples}/shopping/sandbox.config.json (100%) rename {demos => examples}/shopping/src/App.jsx (100%) rename {demos => examples}/shopping/src/Inter-Regular.woff (100%) rename {demos => examples}/shopping/src/Price.jsx (100%) rename {demos => examples}/shopping/src/Scene.jsx (100%) rename {demos => examples}/shopping/src/index.jsx (100%) rename {demos => examples}/shopping/src/kitchen-transformed.glb (100%) rename {demos => examples}/shopping/src/styles.css (100%) rename {demos => examples}/shopping/src/vite-env.d.ts (100%) rename {demos => examples}/shopping/thumbnail.webp (100%) rename {demos => examples}/shopping/tsconfig.json (100%) rename {demos => examples}/shopping/tsconfig.node.json (100%) rename {demos => examples}/shopping/vite.config.ts (100%) rename {demos => examples}/simple-audio-analyser/.codesandbox/workspace.json (100%) rename {demos => examples}/simple-audio-analyser/.prettierrc (100%) create mode 100644 examples/simple-audio-analyser/README.md rename {demos => examples}/simple-audio-analyser/index.html (100%) rename {demos => examples}/simple-audio-analyser/package.json (85%) rename {demos => examples}/simple-audio-analyser/pmndrs.json (100%) rename {demos => examples}/simple-audio-analyser/public/vite.svg (100%) rename {demos => examples}/simple-audio-analyser/sandbox.config.json (100%) rename {demos => examples}/simple-audio-analyser/src/App.jsx (97%) rename {demos => examples}/simple-audio-analyser/src/drums.mp3 (100%) rename {demos => examples}/simple-audio-analyser/src/index.jsx (100%) rename {demos => examples}/simple-audio-analyser/src/snare.mp3 (100%) rename {demos => examples}/simple-audio-analyser/src/styles.css (100%) rename {demos => examples}/simple-audio-analyser/src/synth.mp3 (100%) rename {demos => examples}/simple-audio-analyser/src/vite-env.d.ts (100%) rename {demos => examples}/simple-audio-analyser/thumbnail.webp (100%) rename {demos => examples}/simple-audio-analyser/tsconfig.json (100%) rename {demos => examples}/simple-audio-analyser/tsconfig.node.json (100%) rename {demos => examples}/simple-audio-analyser/vite.config.ts (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/.prettierrc (100%) create mode 100644 examples/simple-physics-example-with-debug-bounds/README.md rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/index.html (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/package.json (81%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/pmndrs.json (85%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/public/vite.svg (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/src/App.jsx (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/src/index.jsx (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/src/styles.css (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/src/vite-env.d.ts (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/thumbnail.webp (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/tsconfig.json (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/tsconfig.node.json (100%) rename {demos/simple-physics-demo-with-debug-bounds => examples/simple-physics-example-with-debug-bounds}/vite.config.ts (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/.prettierrc (100%) create mode 100644 examples/simple-physics-example/README.md rename {demos/simple-physics-demo => examples/simple-physics-example}/index.html (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/package.json (85%) rename {demos/simple-physics-demo => examples/simple-physics-example}/pmndrs.json (90%) rename {demos/simple-physics-demo => examples/simple-physics-example}/public/vite.svg (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/src/App.jsx (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/src/index.jsx (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/src/styles.css (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/src/vite-env.d.ts (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/thumbnail.webp (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/tsconfig.json (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/tsconfig.node.json (100%) rename {demos/simple-physics-demo => examples/simple-physics-example}/vite.config.ts (100%) rename {demos => examples}/sky-dome-with-annotations/.prettierrc (100%) create mode 100644 examples/sky-dome-with-annotations/README.md rename {demos => examples}/sky-dome-with-annotations/index.html (100%) rename {demos => examples}/sky-dome-with-annotations/package.json (84%) rename {demos => examples}/sky-dome-with-annotations/pmndrs.json (100%) rename {demos => examples}/sky-dome-with-annotations/public/vite.svg (100%) rename {demos => examples}/sky-dome-with-annotations/sandbox.config.json (100%) rename {demos => examples}/sky-dome-with-annotations/src/2294472375_24a3b8ef46_o.jpg (100%) rename {demos => examples}/sky-dome-with-annotations/src/App.jsx (100%) rename {demos => examples}/sky-dome-with-annotations/src/Photosphere1.jpg (100%) rename {demos => examples}/sky-dome-with-annotations/src/index.jsx (100%) rename {demos => examples}/sky-dome-with-annotations/src/styles.css (100%) rename {demos => examples}/sky-dome-with-annotations/src/vite-env.d.ts (100%) rename {demos => examples}/sky-dome-with-annotations/thumbnail.webp (100%) rename {demos => examples}/sky-dome-with-annotations/tsconfig.json (100%) rename {demos => examples}/sky-dome-with-annotations/tsconfig.node.json (100%) rename {demos => examples}/sky-dome-with-annotations/vite.config.ts (100%) rename {demos => examples}/soft-shadows/.prettierrc (100%) create mode 100644 examples/soft-shadows/README.md rename {demos => examples}/soft-shadows/index.html (100%) rename {demos => examples}/soft-shadows/package.json (87%) rename {demos => examples}/soft-shadows/pmndrs.json (100%) rename {demos => examples}/soft-shadows/public/vite.svg (100%) rename {demos => examples}/soft-shadows/src/App.jsx (100%) rename {demos => examples}/soft-shadows/src/index.jsx (100%) rename {demos => examples}/soft-shadows/src/styles.css (100%) rename {demos => examples}/soft-shadows/src/vite-env.d.ts (100%) rename {demos => examples}/soft-shadows/thumbnail.webp (100%) rename {demos => examples}/soft-shadows/tsconfig.json (100%) rename {demos => examples}/soft-shadows/tsconfig.node.json (100%) rename {demos => examples}/soft-shadows/vite.config.ts (100%) rename {demos => examples}/space-game/.prettierrc (100%) create mode 100644 examples/space-game/README.md rename {demos => examples}/space-game/index.html (100%) rename {demos => examples}/space-game/package.json (88%) rename {demos => examples}/space-game/pmndrs.json (80%) rename {demos => examples}/space-game/public/bold.blob (100%) rename {demos => examples}/space-game/public/vite.svg (100%) rename {demos => examples}/space-game/sandbox.config.json (100%) rename {demos => examples}/space-game/src/3d/Effects.jsx (100%) rename {demos => examples}/space-game/src/3d/Enemies.jsx (100%) rename {demos => examples}/space-game/src/3d/Explosions.jsx (100%) rename {demos => examples}/space-game/src/3d/Particles.jsx (100%) rename {demos => examples}/space-game/src/3d/Planets.jsx (100%) rename {demos => examples}/space-game/src/3d/Rig.jsx (100%) rename {demos => examples}/space-game/src/3d/Rings.jsx (100%) rename {demos => examples}/space-game/src/3d/Rocks.jsx (100%) rename {demos => examples}/space-game/src/3d/Ship.jsx (100%) rename {demos => examples}/space-game/src/3d/Stars.jsx (100%) rename {demos => examples}/space-game/src/3d/Track.jsx (100%) rename {demos => examples}/space-game/src/3d/rock.gltf (100%) rename {demos => examples}/space-game/src/3d/ship.gltf (100%) rename {demos => examples}/space-game/src/3d/spacedrone.gltf (100%) rename {demos => examples}/space-game/src/App.jsx (100%) rename {demos => examples}/space-game/src/Hud.jsx (100%) rename {demos => examples}/space-game/src/audio/bg.mp3 (100%) rename {demos => examples}/space-game/src/audio/click.mp3 (100%) rename {demos => examples}/space-game/src/audio/engine.mp3 (100%) rename {demos => examples}/space-game/src/audio/engine2.mp3 (100%) rename {demos => examples}/space-game/src/audio/explosion.mp3 (100%) rename {demos => examples}/space-game/src/audio/index.js (100%) rename {demos => examples}/space-game/src/audio/laser.mp3 (100%) rename {demos => examples}/space-game/src/audio/warp.mp3 (100%) rename {demos => examples}/space-game/src/images/earth.jpg (100%) rename {demos => examples}/space-game/src/images/moon.png (100%) rename {demos => examples}/space-game/src/index.jsx (100%) rename {demos => examples}/space-game/src/store.js (100%) rename {demos => examples}/space-game/src/styles.css (100%) rename {demos => examples}/space-game/src/vite-env.d.ts (100%) rename {demos => examples}/space-game/thumbnail.webp (100%) rename {demos => examples}/space-game/tsconfig.json (100%) rename {demos => examples}/space-game/tsconfig.node.json (100%) rename {demos => examples}/space-game/vite.config.ts (100%) rename {demos => examples}/sparks-and-effects/.prettierrc (100%) create mode 100644 examples/sparks-and-effects/README.md rename {demos => examples}/sparks-and-effects/index.html (100%) rename {demos => examples}/sparks-and-effects/package.json (86%) rename {demos => examples}/sparks-and-effects/pmndrs.json (100%) rename {demos => examples}/sparks-and-effects/public/cursor.png (100%) rename {demos => examples}/sparks-and-effects/public/vite.svg (100%) rename {demos => examples}/sparks-and-effects/sandbox.config.json (100%) rename {demos => examples}/sparks-and-effects/src/App.jsx (100%) rename {demos => examples}/sparks-and-effects/src/Effects.jsx (100%) rename {demos => examples}/sparks-and-effects/src/Particles.jsx (100%) rename {demos => examples}/sparks-and-effects/src/Sparks.jsx (100%) rename {demos => examples}/sparks-and-effects/src/Text.jsx (100%) rename {demos => examples}/sparks-and-effects/src/WaterEffect.js (100%) rename {demos => examples}/sparks-and-effects/src/bold.blob (100%) rename {demos => examples}/sparks-and-effects/src/index.jsx (100%) rename {demos => examples}/sparks-and-effects/src/styles.css (100%) rename {demos => examples}/sparks-and-effects/src/vite-env.d.ts (100%) rename {demos => examples}/sparks-and-effects/thumbnail.webp (100%) rename {demos => examples}/sparks-and-effects/tsconfig.json (100%) rename {demos => examples}/sparks-and-effects/tsconfig.node.json (100%) rename {demos => examples}/sparks-and-effects/vite.config.ts (100%) rename {demos => examples}/spline-glass-shapes/.prettierrc (100%) create mode 100644 examples/spline-glass-shapes/README.md rename {demos => examples}/spline-glass-shapes/index.html (100%) rename {demos => examples}/spline-glass-shapes/package.json (87%) rename {demos => examples}/spline-glass-shapes/pmndrs.json (100%) rename {demos => examples}/spline-glass-shapes/public/shapes.splinecode (100%) rename {demos => examples}/spline-glass-shapes/public/vite.svg (100%) rename {demos => examples}/spline-glass-shapes/src/App.jsx (100%) rename {demos => examples}/spline-glass-shapes/src/index.jsx (100%) rename {demos => examples}/spline-glass-shapes/src/styles.css (100%) rename {demos => examples}/spline-glass-shapes/src/vite-env.d.ts (100%) rename {demos => examples}/spline-glass-shapes/thumbnail.webp (100%) rename {demos => examples}/spline-glass-shapes/tsconfig.json (100%) rename {demos => examples}/spline-glass-shapes/tsconfig.node.json (100%) rename {demos => examples}/spline-glass-shapes/vite.config.ts (100%) rename {demos => examples}/sport-hall/.prettierrc (100%) create mode 100644 examples/sport-hall/README.md rename {demos => examples}/sport-hall/index.html (100%) rename {demos/stencil-mask => examples/sport-hall}/package.json (87%) rename {demos => examples}/sport-hall/pmndrs.json (100%) rename {demos => examples}/sport-hall/public/vite.svg (100%) rename {demos => examples}/sport-hall/src/App.jsx (100%) rename {demos => examples}/sport-hall/src/assets/noon_grass_1k.hdr (100%) rename {demos => examples}/sport-hall/src/court.glb (100%) rename {demos => examples}/sport-hall/src/index.jsx (100%) rename {demos => examples}/sport-hall/src/styles.css (100%) rename {demos => examples}/sport-hall/src/vite-env.d.ts (100%) rename {demos => examples}/sport-hall/thumbnail.webp (100%) rename {demos => examples}/sport-hall/tsconfig.json (100%) rename {demos => examples}/sport-hall/tsconfig.node.json (100%) rename {demos => examples}/sport-hall/vite.config.ts (100%) rename {demos => examples}/spotlight-shadows/.prettierrc (100%) create mode 100644 examples/spotlight-shadows/README.md rename {demos => examples}/spotlight-shadows/index.html (100%) create mode 100644 examples/spotlight-shadows/package.json rename {demos => examples}/spotlight-shadows/pmndrs.json (100%) rename {demos => examples}/spotlight-shadows/public/vite.svg (100%) rename {demos => examples}/spotlight-shadows/src/App.jsx (100%) rename {demos => examples}/spotlight-shadows/src/components/Lights.jsx (100%) rename {demos => examples}/spotlight-shadows/src/index.jsx (100%) rename {demos => examples}/spotlight-shadows/src/styles.css (100%) rename {demos => examples}/spotlight-shadows/src/textures/grassy_cobblestone_ao_2k.jpg (100%) rename {demos => examples}/spotlight-shadows/src/textures/grassy_cobblestone_diff_2k.jpg (100%) rename {demos => examples}/spotlight-shadows/src/textures/grassy_cobblestone_nor_gl_2k.jpg (100%) rename {demos => examples}/spotlight-shadows/src/textures/grassy_cobblestone_rough_2k.jpg (100%) rename {demos => examples}/spotlight-shadows/src/textures/leaves.jpg (100%) rename {demos => examples}/spotlight-shadows/src/vite-env.d.ts (100%) rename {demos => examples}/spotlight-shadows/thumbnail.webp (100%) rename {demos => examples}/spotlight-shadows/tsconfig.json (100%) rename {demos => examples}/spotlight-shadows/tsconfig.node.json (100%) rename {demos => examples}/spotlight-shadows/vite.config.ts (100%) rename {demos => examples}/springy-boxes/.prettierrc (100%) create mode 100644 examples/springy-boxes/README.md rename {demos => examples}/springy-boxes/index.html (100%) rename {demos => examples}/springy-boxes/package.json (86%) rename {demos => examples}/springy-boxes/pmndrs.json (100%) rename {demos => examples}/springy-boxes/public/vite.svg (100%) rename {demos => examples}/springy-boxes/src/index.jsx (100%) rename {demos => examples}/springy-boxes/src/styles.css (100%) rename {demos => examples}/springy-boxes/src/vite-env.d.ts (100%) rename {demos => examples}/springy-boxes/thumbnail.webp (100%) rename {demos => examples}/springy-boxes/tsconfig.json (100%) rename {demos => examples}/springy-boxes/tsconfig.node.json (100%) rename {demos => examples}/springy-boxes/vite.config.ts (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/.prettierrc (100%) create mode 100644 examples/ssgi-spheres-with-rapier-physics/README.md rename {demos => examples}/ssgi-spheres-with-rapier-physics/index.html (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/package.json (85%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/pmndrs.json (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/public/vite.svg (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/App.jsx (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/Effects.js (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/index.jsx (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/realism-effects/index.js (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/realism-effects/v2.js (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/styles.css (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/src/vite-env.d.ts (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/thumbnail.webp (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/tsconfig.json (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/tsconfig.node.json (100%) rename {demos => examples}/ssgi-spheres-with-rapier-physics/vite.config.ts (100%) rename {demos => examples}/ssr-test/.prettierrc (100%) create mode 100644 examples/ssr-test/README.md rename {demos => examples}/ssr-test/index.html (100%) rename {demos => examples}/ssr-test/package.json (88%) rename {demos => examples}/ssr-test/pmndrs.json (100%) rename {demos => examples}/ssr-test/public/vite.svg (100%) rename {demos => examples}/ssr-test/sandbox.config.json (100%) rename {demos => examples}/ssr-test/src/App.jsx (100%) rename {demos => examples}/ssr-test/src/Effects.jsx (100%) rename {demos => examples}/ssr-test/src/drei_r.mp4 (100%) rename {demos => examples}/ssr-test/src/index.jsx (100%) rename {demos => examples}/ssr-test/src/styles.css (100%) rename {demos => examples}/ssr-test/src/vite-env.d.ts (100%) rename {demos => examples}/ssr-test/thumbnail.webp (100%) rename {demos => examples}/ssr-test/tsconfig.json (100%) rename {demos => examples}/ssr-test/tsconfig.node.json (100%) rename {demos => examples}/ssr-test/vite.config.ts (100%) rename {demos => examples}/stage-presets-gltfjsx/.prettierrc (100%) create mode 100644 examples/stage-presets-gltfjsx/README.md rename {demos => examples}/stage-presets-gltfjsx/index.html (100%) rename {demos => examples}/stage-presets-gltfjsx/package.json (86%) rename {demos => examples}/stage-presets-gltfjsx/pmndrs.json (100%) rename {demos => examples}/stage-presets-gltfjsx/public/vite.svg (100%) rename {demos => examples}/stage-presets-gltfjsx/src/App.jsx (100%) rename {demos => examples}/stage-presets-gltfjsx/src/Cobra.jsx (100%) rename {demos => examples}/stage-presets-gltfjsx/src/Datsun.jsx (100%) rename {demos => examples}/stage-presets-gltfjsx/src/Effects.js (100%) rename {demos => examples}/stage-presets-gltfjsx/src/cobra-transformed.glb (100%) rename {demos => examples}/stage-presets-gltfjsx/src/datsun-transformed.glb (100%) rename {demos => examples}/stage-presets-gltfjsx/src/index.jsx (100%) rename {demos => examples}/stage-presets-gltfjsx/src/realism-effects/gdata-in-float.js (100%) rename {demos => examples}/stage-presets-gltfjsx/src/realism-effects/index.js (100%) rename {demos => examples}/stage-presets-gltfjsx/src/realism-effects/index_1.js (100%) rename {demos => examples}/stage-presets-gltfjsx/src/realism-effects/v2.js (100%) rename {demos => examples}/stage-presets-gltfjsx/src/styles.css (100%) rename {demos => examples}/stage-presets-gltfjsx/src/vite-env.d.ts (100%) rename {demos => examples}/stage-presets-gltfjsx/thumbnail.webp (100%) rename {demos => examples}/stage-presets-gltfjsx/tsconfig.json (100%) rename {demos => examples}/stage-presets-gltfjsx/tsconfig.node.json (100%) rename {demos => examples}/stage-presets-gltfjsx/vite.config.ts (100%) rename {demos => examples}/staging-and-camerashake/.gitignore (100%) rename {demos => examples}/staging-and-camerashake/.prettierrc (100%) create mode 100644 examples/staging-and-camerashake/README.md rename {demos => examples}/staging-and-camerashake/index.html (100%) create mode 100644 examples/staging-and-camerashake/package.json rename {demos => examples}/staging-and-camerashake/pmndrs.json (100%) rename {demos => examples}/staging-and-camerashake/public/view.svg (100%) rename {demos => examples}/staging-and-camerashake/public/vite.svg (100%) rename {demos => examples}/staging-and-camerashake/src/App.jsx (100%) rename {demos => examples}/staging-and-camerashake/src/index.jsx (100%) rename {demos => examples}/staging-and-camerashake/src/robot-draco.glb (100%) rename {demos => examples}/staging-and-camerashake/src/style.css (100%) rename {demos => examples}/staging-and-camerashake/src/vite-env.d.ts (100%) rename {demos => examples}/staging-and-camerashake/thumbnail.webp (100%) rename {demos => examples}/staging-and-camerashake/tsconfig.json (100%) rename {demos => examples}/staging-and-camerashake/tsconfig.node.json (100%) rename {demos => examples}/staging-and-camerashake/vite.config.ts (100%) rename {demos => examples}/starwars/.prettierrc (100%) create mode 100644 examples/starwars/README.md rename {demos => examples}/starwars/index.html (100%) rename {demos => examples}/starwars/package.json (88%) rename {demos => examples}/starwars/pmndrs.json (100%) rename {demos => examples}/starwars/public/vite.svg (100%) rename {demos => examples}/starwars/src/App.jsx (100%) rename {demos => examples}/starwars/src/Effects.jsx (100%) rename {demos => examples}/starwars/src/F-6800-STD.cube (100%) rename {demos => examples}/starwars/src/darth-transformed.glb (100%) rename {demos => examples}/starwars/src/hall-transformed.glb (100%) rename {demos => examples}/starwars/src/index.jsx (100%) rename {demos => examples}/starwars/src/probe-transformed.glb (100%) rename {demos => examples}/starwars/src/styles.css (100%) rename {demos => examples}/starwars/src/vite-env.d.ts (100%) rename {demos => examples}/starwars/thumbnail.webp (100%) rename {demos => examples}/starwars/tsconfig.json (100%) rename {demos => examples}/starwars/tsconfig.node.json (100%) rename {demos => examples}/starwars/vite.config.ts (100%) rename {demos => examples}/stencil-mask/.prettierrc (100%) create mode 100644 examples/stencil-mask/README.md rename {demos => examples}/stencil-mask/index.html (100%) rename {demos/sport-hall => examples/stencil-mask}/package.json (87%) rename {demos => examples}/stencil-mask/pmndrs.json (100%) rename {demos => examples}/stencil-mask/public/Car.glb (100%) rename {demos => examples}/stencil-mask/public/vite.svg (100%) rename {demos => examples}/stencil-mask/src/App.jsx (100%) rename {demos => examples}/stencil-mask/src/assets/target-stand.gltf (100%) rename {demos => examples}/stencil-mask/src/index.jsx (100%) rename {demos => examples}/stencil-mask/src/styles.css (100%) rename {demos => examples}/stencil-mask/src/vite-env.d.ts (100%) rename {demos => examples}/stencil-mask/thumbnail.webp (100%) rename {demos => examples}/stencil-mask/tsconfig.json (100%) rename {demos => examples}/stencil-mask/tsconfig.node.json (100%) rename {demos => examples}/stencil-mask/vite.config.ts (100%) rename {demos => examples}/svg-maps-with-html-annotations/.prettierrc (100%) create mode 100644 examples/svg-maps-with-html-annotations/README.md rename {demos => examples}/svg-maps-with-html-annotations/index.html (100%) rename {demos => examples}/svg-maps-with-html-annotations/package.json (84%) rename {demos => examples}/svg-maps-with-html-annotations/pmndrs.json (100%) rename {demos => examples}/svg-maps-with-html-annotations/public/vite.svg (100%) rename {demos => examples}/svg-maps-with-html-annotations/src/index.jsx (100%) rename {demos => examples}/svg-maps-with-html-annotations/src/map.svg (100%) rename {demos => examples}/svg-maps-with-html-annotations/src/styles.css (100%) rename {demos => examples}/svg-maps-with-html-annotations/src/vite-env.d.ts (100%) rename {demos => examples}/svg-maps-with-html-annotations/thumbnail.webp (100%) rename {demos => examples}/svg-maps-with-html-annotations/tsconfig.json (100%) rename {demos => examples}/svg-maps-with-html-annotations/tsconfig.node.json (100%) rename {demos => examples}/svg-maps-with-html-annotations/vite.config.ts (100%) rename {demos => examples}/svg-renderer/.prettierrc (100%) create mode 100644 examples/svg-renderer/README.md rename {demos => examples}/svg-renderer/index.html (100%) rename {demos => examples}/svg-renderer/package.json (86%) rename {demos => examples}/svg-renderer/pmndrs.json (100%) rename {demos => examples}/svg-renderer/public/vite.svg (100%) rename {demos => examples}/svg-renderer/src/App.jsx (100%) rename {demos => examples}/svg-renderer/src/index.jsx (100%) rename {demos => examples}/svg-renderer/src/styles.css (100%) rename {demos => examples}/svg-renderer/src/vite-env.d.ts (100%) rename {demos => examples}/svg-renderer/thumbnail.webp (100%) rename {demos => examples}/svg-renderer/tsconfig.json (100%) rename {demos => examples}/svg-renderer/tsconfig.node.json (100%) rename {demos => examples}/svg-renderer/vite.config.ts (100%) rename {demos => examples}/t-shirt-configurator/.prettierrc (100%) create mode 100644 examples/t-shirt-configurator/README.md rename {demos => examples}/t-shirt-configurator/index.html (100%) rename {demos => examples}/t-shirt-configurator/package.json (87%) rename {demos => examples}/t-shirt-configurator/pmndrs.json (100%) rename {demos => examples}/t-shirt-configurator/public/vite.svg (100%) rename {demos => examples}/t-shirt-configurator/src/Canvas.jsx (100%) rename {demos => examples}/t-shirt-configurator/src/Overlay.jsx (100%) rename {demos => examples}/t-shirt-configurator/src/index.jsx (100%) rename {demos => examples}/t-shirt-configurator/src/pmndrs.png (100%) rename {demos => examples}/t-shirt-configurator/src/pmndrs_thumb.png (100%) rename {demos => examples}/t-shirt-configurator/src/react.png (100%) rename {demos => examples}/t-shirt-configurator/src/react_thumb.png (100%) rename {demos => examples}/t-shirt-configurator/src/shirt_baked_2.glb (100%) rename {demos => examples}/t-shirt-configurator/src/shirt_baked_collapsed.glb (100%) rename {demos => examples}/t-shirt-configurator/src/shirt_baked_lower2.glb (100%) rename {demos => examples}/t-shirt-configurator/src/store.js (100%) rename {demos => examples}/t-shirt-configurator/src/styles.css (100%) rename {demos => examples}/t-shirt-configurator/src/three2.png (100%) rename {demos => examples}/t-shirt-configurator/src/three2_thumb.png (100%) rename {demos => examples}/t-shirt-configurator/src/vite-env.d.ts (100%) rename {demos => examples}/t-shirt-configurator/thumbnail.webp (100%) rename {demos => examples}/t-shirt-configurator/tsconfig.json (100%) rename {demos => examples}/t-shirt-configurator/tsconfig.node.json (100%) rename {demos => examples}/t-shirt-configurator/vite.config.ts (100%) rename {demos => examples}/the-three-graces/.prettierrc (100%) create mode 100644 examples/the-three-graces/README.md rename {demos => examples}/the-three-graces/index.html (100%) rename {demos => examples}/the-three-graces/package.json (88%) rename {demos => examples}/the-three-graces/pmndrs.json (100%) rename {demos => examples}/the-three-graces/public/favicon.ico (100%) rename {demos => examples}/the-three-graces/public/logo192.png (100%) rename {demos => examples}/the-three-graces/public/logo512.png (100%) rename {demos => examples}/the-three-graces/public/manifest.json (100%) rename {demos => examples}/the-three-graces/public/robots.txt (100%) rename {demos => examples}/the-three-graces/public/vite.svg (100%) rename {demos => examples}/the-three-graces/src/App.jsx (100%) rename {demos => examples}/the-three-graces/src/graces-draco.glb (100%) rename {demos => examples}/the-three-graces/src/index.jsx (100%) rename {demos => examples}/the-three-graces/src/styles.css (100%) rename {demos => examples}/the-three-graces/src/vite-env.d.ts (100%) rename {demos => examples}/the-three-graces/thumbnail.webp (100%) rename {demos => examples}/the-three-graces/tsconfig.json (100%) rename {demos => examples}/the-three-graces/tsconfig.node.json (100%) rename {demos => examples}/the-three-graces/vite.config.ts (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/.prettierrc (100%) create mode 100644 examples/threejs-journey-lv-1-fisheye/README.md rename {demos => examples}/threejs-journey-lv-1-fisheye/index.html (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/package.json (84%) rename {demos => examples}/threejs-journey-lv-1-fisheye/pmndrs.json (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/public/vite.svg (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/src/App.jsx (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/src/Scene.jsx (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/src/index.jsx (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/src/level-react-draco.glb (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/src/styles.css (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/src/vite-env.d.ts (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/thumbnail.webp (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/tsconfig.json (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/tsconfig.node.json (100%) rename {demos => examples}/threejs-journey-lv-1-fisheye/vite.config.ts (100%) rename {demos => examples}/threejs-journey-portal/.codesandbox/workspace.json (100%) rename {demos => examples}/threejs-journey-portal/.prettierrc (100%) create mode 100644 examples/threejs-journey-portal/README.md rename {demos => examples}/threejs-journey-portal/index.html (100%) rename {demos => examples}/threejs-journey-portal/package.json (85%) rename {demos => examples}/threejs-journey-portal/pmndrs.json (100%) rename {demos => examples}/threejs-journey-portal/public/vite.svg (100%) rename {demos => examples}/threejs-journey-portal/sandbox.config.json (100%) rename {demos => examples}/threejs-journey-portal/src/App.jsx (100%) rename {demos => examples}/threejs-journey-portal/src/baked-02.jpeg (100%) rename {demos => examples}/threejs-journey-portal/src/index.jsx (100%) rename {demos => examples}/threejs-journey-portal/src/portal-2.glb (100%) rename {demos => examples}/threejs-journey-portal/src/styles.css (100%) rename {demos => examples}/threejs-journey-portal/src/vite-env.d.ts (100%) rename {demos => examples}/threejs-journey-portal/thumbnail.webp (100%) rename {demos => examples}/threejs-journey-portal/tsconfig.json (100%) rename {demos => examples}/threejs-journey-portal/tsconfig.node.json (100%) rename {demos => examples}/threejs-journey-portal/vite.config.ts (100%) rename {demos => examples}/thunder-clouds/.prettierrc (100%) create mode 100644 examples/thunder-clouds/README.md rename {demos => examples}/thunder-clouds/index.html (100%) rename {demos => examples}/thunder-clouds/package.json (89%) rename {demos => examples}/thunder-clouds/pmndrs.json (100%) rename {demos => examples}/thunder-clouds/public/cloud.png (100%) rename {demos => examples}/thunder-clouds/public/favicon.ico (100%) rename {demos => examples}/thunder-clouds/public/logo192.png (100%) rename {demos => examples}/thunder-clouds/public/logo512.png (100%) rename {demos => examples}/thunder-clouds/public/manifest.json (100%) rename {demos => examples}/thunder-clouds/public/robots.txt (100%) rename {demos => examples}/thunder-clouds/public/vite.svg (100%) rename {demos => examples}/thunder-clouds/sandbox.config.json (100%) rename {demos => examples}/thunder-clouds/src/App.jsx (100%) rename {demos => examples}/thunder-clouds/src/index.jsx (100%) rename {demos => examples}/thunder-clouds/src/styles.css (100%) rename {demos => examples}/thunder-clouds/src/vite-env.d.ts (100%) rename {demos => examples}/thunder-clouds/thumbnail.webp (100%) rename {demos => examples}/thunder-clouds/tsconfig.json (100%) rename {demos => examples}/thunder-clouds/tsconfig.node.json (100%) rename {demos => examples}/thunder-clouds/vite.config.ts (100%) rename {demos => examples}/trails/.prettierrc (100%) create mode 100644 examples/trails/README.md rename {demos => examples}/trails/index.html (100%) rename {demos => examples}/trails/package.json (89%) rename {demos => examples}/trails/pmndrs.json (100%) rename {demos => examples}/trails/public/vite.svg (100%) rename {demos => examples}/trails/src/App.jsx (100%) rename {demos => examples}/trails/src/cursor.glb (100%) rename {demos => examples}/trails/src/index.jsx (100%) rename {demos => examples}/trails/src/pmndrs.glb (100%) rename {demos => examples}/trails/src/styles.css (100%) rename {demos => examples}/trails/src/vite-env.d.ts (100%) rename {demos => examples}/trails/thumbnail.webp (100%) rename {demos => examples}/trails/tsconfig.json (100%) rename {demos => examples}/trails/tsconfig.node.json (100%) rename {demos => examples}/trails/vite.config.ts (100%) rename {demos => examples}/transformcontrols-and-makedefault/.prettierrc (100%) create mode 100644 examples/transformcontrols-and-makedefault/README.md rename {demos => examples}/transformcontrols-and-makedefault/index.html (100%) rename {demos => examples}/transformcontrols-and-makedefault/package.json (83%) rename {demos => examples}/transformcontrols-and-makedefault/pmndrs.json (100%) rename {demos => examples}/transformcontrols-and-makedefault/public/draco/draco_decoder.js (100%) rename {demos => examples}/transformcontrols-and-makedefault/public/draco/draco_decoder.wasm (100%) rename {demos => examples}/transformcontrols-and-makedefault/public/draco/draco_encoder.js (100%) rename {demos => examples}/transformcontrols-and-makedefault/public/draco/draco_wasm_wrapper.js (100%) rename {demos => examples}/transformcontrols-and-makedefault/public/vite.svg (100%) rename {demos => examples}/transformcontrols-and-makedefault/src/App.jsx (100%) rename {demos => examples}/transformcontrols-and-makedefault/src/compressed.glb (100%) rename {demos => examples}/transformcontrols-and-makedefault/src/index.jsx (100%) rename {demos => examples}/transformcontrols-and-makedefault/src/styles.css (100%) rename {demos => examples}/transformcontrols-and-makedefault/src/vite-env.d.ts (100%) rename {demos => examples}/transformcontrols-and-makedefault/thumbnail.webp (100%) rename {demos => examples}/transformcontrols-and-makedefault/tsconfig.json (100%) rename {demos => examples}/transformcontrols-and-makedefault/tsconfig.node.json (100%) rename {demos => examples}/transformcontrols-and-makedefault/vite.config.ts (100%) rename {demos => examples}/transparent-aesop-bottles/.prettierrc (100%) create mode 100644 examples/transparent-aesop-bottles/README.md rename {demos => examples}/transparent-aesop-bottles/index.html (100%) rename {demos => examples}/transparent-aesop-bottles/package.json (83%) rename {demos => examples}/transparent-aesop-bottles/pmndrs.json (100%) rename {demos => examples}/transparent-aesop-bottles/public/Harmond-ExtBdItaExp.otf (100%) rename {demos => examples}/transparent-aesop-bottles/public/Harmond-SemBdItaCond.otf (100%) rename {demos => examples}/transparent-aesop-bottles/public/Ki-Thin.ttf (100%) rename {demos => examples}/transparent-aesop-bottles/public/Ki_Regular.blob (100%) rename {demos => examples}/transparent-aesop-bottles/public/logo.png (100%) rename {demos => examples}/transparent-aesop-bottles/public/manifest.json (100%) rename {demos => examples}/transparent-aesop-bottles/public/robots.txt (100%) rename {demos => examples}/transparent-aesop-bottles/public/vite.svg (100%) rename {demos => examples}/transparent-aesop-bottles/src/App.jsx (100%) rename {demos => examples}/transparent-aesop-bottles/src/Bottles.jsx (100%) rename {demos => examples}/transparent-aesop-bottles/src/Ki-Medium.ttf (100%) rename {demos => examples}/transparent-aesop-bottles/src/draco.glb (100%) rename {demos => examples}/transparent-aesop-bottles/src/index.jsx (100%) rename {demos => examples}/transparent-aesop-bottles/src/styles.css (100%) rename {demos => examples}/transparent-aesop-bottles/src/vite-env.d.ts (100%) rename {demos => examples}/transparent-aesop-bottles/thumbnail.webp (100%) rename {demos => examples}/transparent-aesop-bottles/tsconfig.json (100%) rename {demos => examples}/transparent-aesop-bottles/tsconfig.node.json (100%) rename {demos => examples}/transparent-aesop-bottles/vite.config.ts (100%) rename {demos => examples}/trigger-meshes/.prettierrc (100%) create mode 100644 examples/trigger-meshes/README.md rename {demos => examples}/trigger-meshes/index.html (100%) rename {demos/ragdoll-physics => examples/trigger-meshes}/package.json (87%) rename {demos => examples}/trigger-meshes/pmndrs.json (100%) rename {demos => examples}/trigger-meshes/public/vite.svg (100%) rename {demos => examples}/trigger-meshes/src/App.jsx (100%) rename {demos => examples}/trigger-meshes/src/index.jsx (100%) rename {demos => examples}/trigger-meshes/src/styles.css (100%) rename {demos => examples}/trigger-meshes/src/vite-env.d.ts (100%) rename {demos => examples}/trigger-meshes/thumbnail.webp (100%) rename {demos => examples}/trigger-meshes/tsconfig.json (100%) rename {demos => examples}/trigger-meshes/tsconfig.node.json (100%) rename {demos => examples}/trigger-meshes/vite.config.ts (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/.prettierrc (100%) create mode 100644 examples/tying-canvas-to-scroll-offset/README.md rename {demos => examples}/tying-canvas-to-scroll-offset/index.html (100%) create mode 100644 examples/tying-canvas-to-scroll-offset/package.json rename {demos => examples}/tying-canvas-to-scroll-offset/pmndrs.json (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/public/vite.svg (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/src/index.jsx (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/src/styles.css (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/src/vite-env.d.ts (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/thumbnail.webp (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/tsconfig.json (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/tsconfig.node.json (100%) rename {demos => examples}/tying-canvas-to-scroll-offset/vite.config.ts (100%) rename {demos => examples}/useintersect-and-scrollcontrols/.prettierrc (100%) create mode 100644 examples/useintersect-and-scrollcontrols/README.md rename {demos => examples}/useintersect-and-scrollcontrols/index.html (100%) create mode 100644 examples/useintersect-and-scrollcontrols/package.json rename {demos => examples}/useintersect-and-scrollcontrols/pmndrs.json (100%) rename {demos => examples}/useintersect-and-scrollcontrols/public/Inter-UI-Medium.ttf (100%) rename {demos => examples}/useintersect-and-scrollcontrols/public/vite.svg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/1.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/10.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/11.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/12.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/2.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/3.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/4.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/5.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/6.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/7.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/8.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/9.jpg (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/App.jsx (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/index.jsx (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/styles.css (100%) rename {demos => examples}/useintersect-and-scrollcontrols/src/vite-env.d.ts (100%) rename {demos => examples}/useintersect-and-scrollcontrols/thumbnail.webp (100%) rename {demos => examples}/useintersect-and-scrollcontrols/tsconfig.json (100%) rename {demos => examples}/useintersect-and-scrollcontrols/tsconfig.node.json (100%) rename {demos => examples}/useintersect-and-scrollcontrols/vite.config.ts (100%) rename {demos => examples}/video-cookies/.prettierrc (100%) create mode 100644 examples/video-cookies/README.md rename {demos => examples}/video-cookies/index.html (100%) rename {demos => examples}/video-cookies/package.json (87%) rename {demos => examples}/video-cookies/pmndrs.json (100%) rename {demos => examples}/video-cookies/public/vite.svg (100%) rename {demos => examples}/video-cookies/src/App.jsx (100%) rename {demos => examples}/video-cookies/src/assets/suzanne-high-poly.gltf (100%) rename {demos => examples}/video-cookies/src/caustics.mp4 (100%) rename {demos => examples}/video-cookies/src/index.jsx (100%) rename {demos => examples}/video-cookies/src/styles.css (100%) rename {demos => examples}/video-cookies/src/vite-env.d.ts (100%) rename {demos => examples}/video-cookies/thumbnail.webp (100%) rename {demos => examples}/video-cookies/tsconfig.json (100%) rename {demos => examples}/video-cookies/tsconfig.node.json (100%) rename {demos => examples}/video-cookies/vite.config.ts (100%) rename {demos => examples}/video-textures/.prettierrc (100%) create mode 100644 examples/video-textures/README.md rename {demos => examples}/video-textures/index.html (100%) create mode 100644 examples/video-textures/package.json rename {demos => examples}/video-textures/pmndrs.json (100%) rename {demos => examples}/video-textures/public/vite.svg (100%) rename {demos => examples}/video-textures/src/10.jpg (100%) rename {demos => examples}/video-textures/src/10.mp4 (100%) rename {demos => examples}/video-textures/src/App.jsx (100%) rename {demos => examples}/video-textures/src/index.jsx (100%) rename {demos => examples}/video-textures/src/styles.css (100%) rename {demos => examples}/video-textures/src/vite-env.d.ts (100%) rename {demos => examples}/video-textures/thumbnail.webp (100%) rename {demos => examples}/video-textures/tsconfig.json (100%) rename {demos => examples}/video-textures/tsconfig.node.json (100%) rename {demos => examples}/video-textures/vite.config.ts (100%) rename {demos => examples}/view-tracking/.prettierrc (100%) create mode 100644 examples/view-tracking/README.md rename {demos => examples}/view-tracking/index.html (100%) rename {demos => examples}/view-tracking/package.json (87%) rename {demos => examples}/view-tracking/pmndrs.json (100%) rename {demos => examples}/view-tracking/public/vite.svg (100%) rename {demos => examples}/view-tracking/src/App.jsx (100%) rename {demos => examples}/view-tracking/src/Models.jsx (100%) rename {demos => examples}/view-tracking/src/assets/apple-half.gltf (100%) rename {demos => examples}/view-tracking/src/assets/candy-bucket.gltf (100%) rename {demos => examples}/view-tracking/src/assets/duck.gltf (100%) rename {demos => examples}/view-tracking/src/assets/lightning.gltf (100%) rename {demos => examples}/view-tracking/src/assets/soda-bottle.gltf (100%) rename {demos => examples}/view-tracking/src/assets/target-stand.gltf (100%) rename {demos => examples}/view-tracking/src/index.jsx (100%) rename {demos => examples}/view-tracking/src/styles.css (100%) rename {demos => examples}/view-tracking/src/vite-env.d.ts (100%) rename {demos => examples}/view-tracking/thumbnail.webp (100%) rename {demos => examples}/view-tracking/tsconfig.json (100%) rename {demos => examples}/view-tracking/tsconfig.node.json (100%) rename {demos => examples}/view-tracking/vite.config.ts (100%) rename {demos => examples}/viewcube/.prettierrc (100%) create mode 100644 examples/viewcube/README.md rename {demos => examples}/viewcube/index.html (100%) rename {demos => examples}/viewcube/package.json (88%) rename {demos => examples}/viewcube/pmndrs.json (100%) rename {demos => examples}/viewcube/public/vite.svg (100%) rename {demos => examples}/viewcube/src/App.jsx (100%) rename {demos => examples}/viewcube/src/index.jsx (100%) rename {demos => examples}/viewcube/src/styles.css (100%) rename {demos => examples}/viewcube/src/vite-env.d.ts (100%) rename {demos => examples}/viewcube/thumbnail.webp (100%) rename {demos => examples}/viewcube/tsconfig.json (100%) rename {demos => examples}/viewcube/tsconfig.node.json (100%) rename {demos => examples}/viewcube/vite.config.ts (100%) rename {demos => examples}/viking-ship/.prettierrc (100%) create mode 100644 examples/viking-ship/README.md rename {demos => examples}/viking-ship/index.html (100%) rename {demos => examples}/viking-ship/package.json (89%) rename {demos => examples}/viking-ship/pmndrs.json (100%) rename {demos => examples}/viking-ship/public/favicon.ico (100%) rename {demos => examples}/viking-ship/public/logo192.png (100%) rename {demos => examples}/viking-ship/public/logo512.png (100%) rename {demos => examples}/viking-ship/public/manifest.json (100%) rename {demos => examples}/viking-ship/public/robots.txt (100%) rename {demos => examples}/viking-ship/public/vite.svg (100%) rename {demos => examples}/viking-ship/sandbox.config.json (100%) rename {demos => examples}/viking-ship/src/App.tsx (100%) rename {demos => examples}/viking-ship/src/Model.tsx (100%) rename {demos => examples}/viking-ship/src/index.tsx (100%) rename {demos => examples}/viking-ship/src/styles.css (100%) rename {demos => examples}/viking-ship/src/thor_and_the_midgard_serpent-transformed.glb (100%) rename {demos => examples}/viking-ship/src/vite-env.d.ts (100%) rename {demos => examples}/viking-ship/thumbnail.webp (100%) rename {demos => examples}/viking-ship/tsconfig.json (100%) rename {demos => examples}/viking-ship/tsconfig.node.json (100%) rename {demos => examples}/viking-ship/vite.config.ts (100%) rename {demos => examples}/volumetric-light-godray/.prettierrc (100%) create mode 100644 examples/volumetric-light-godray/README.md rename {demos => examples}/volumetric-light-godray/index.html (100%) create mode 100644 examples/volumetric-light-godray/package.json rename {demos => examples}/volumetric-light-godray/pmndrs.json (100%) rename {demos => examples}/volumetric-light-godray/public/vite.svg (100%) rename {demos => examples}/volumetric-light-godray/sandbox.config.json (100%) rename {demos => examples}/volumetric-light-godray/src/10.mp4 (100%) rename {demos => examples}/volumetric-light-godray/src/App.jsx (100%) rename {demos => examples}/volumetric-light-godray/src/index.jsx (100%) rename {demos => examples}/volumetric-light-godray/src/styles.css (100%) rename {demos => examples}/volumetric-light-godray/src/vite-env.d.ts (100%) rename {demos => examples}/volumetric-light-godray/thumbnail.webp (100%) rename {demos => examples}/volumetric-light-godray/tsconfig.json (100%) rename {demos => examples}/volumetric-light-godray/tsconfig.node.json (100%) rename {demos => examples}/volumetric-light-godray/vite.config.ts (100%) rename {demos => examples}/volumetric-spotlight/.prettierrc (100%) create mode 100644 examples/volumetric-spotlight/README.md rename {demos => examples}/volumetric-spotlight/index.html (100%) rename {demos/bloom-hdr-workflow-gltf => examples/volumetric-spotlight}/package.json (85%) rename {demos => examples}/volumetric-spotlight/pmndrs.json (100%) rename {demos => examples}/volumetric-spotlight/public/vite.svg (100%) rename {demos => examples}/volumetric-spotlight/src/App.jsx (100%) rename {demos => examples}/volumetric-spotlight/src/assets/dragon.gltf (100%) rename {demos => examples}/volumetric-spotlight/src/index.jsx (100%) rename {demos => examples}/volumetric-spotlight/src/styles.css (100%) rename {demos => examples}/volumetric-spotlight/src/vite-env.d.ts (100%) rename {demos => examples}/volumetric-spotlight/thumbnail.webp (100%) rename {demos => examples}/volumetric-spotlight/tsconfig.json (100%) rename {demos => examples}/volumetric-spotlight/tsconfig.node.json (100%) rename {demos => examples}/volumetric-spotlight/vite.config.ts (100%) rename {demos => examples}/water-shader/.prettierrc (100%) create mode 100644 examples/water-shader/README.md rename {demos => examples}/water-shader/index.html (100%) rename {demos => examples}/water-shader/package.json (87%) rename {demos => examples}/water-shader/pmndrs.json (100%) rename {demos => examples}/water-shader/public/vite.svg (100%) rename {demos => examples}/water-shader/src/App.jsx (100%) rename {demos => examples}/water-shader/src/index.jsx (100%) rename {demos => examples}/water-shader/src/styles.css (100%) rename {demos => examples}/water-shader/src/vite-env.d.ts (100%) rename {demos => examples}/water-shader/src/waternormals.jpeg (100%) rename {demos => examples}/water-shader/thumbnail.webp (100%) rename {demos => examples}/water-shader/tsconfig.json (100%) rename {demos => examples}/water-shader/tsconfig.node.json (100%) rename {demos => examples}/water-shader/vite.config.ts (100%) rename {demos => examples}/wireframes/.prettierrc (100%) create mode 100644 examples/wireframes/README.md rename {demos => examples}/wireframes/index.html (100%) rename {demos => examples}/wireframes/package.json (88%) rename {demos => examples}/wireframes/pmndrs.json (100%) rename {demos => examples}/wireframes/public/vite.svg (100%) rename {demos => examples}/wireframes/src/App.jsx (100%) rename {demos => examples}/wireframes/src/Car.jsx (100%) rename {demos => examples}/wireframes/src/Primitive.jsx (100%) rename {demos => examples}/wireframes/src/Shader.jsx (100%) rename {demos => examples}/wireframes/src/car.glb (100%) rename {demos => examples}/wireframes/src/components/Branding.jsx (100%) rename {demos => examples}/wireframes/src/components/Lights.jsx (100%) rename {demos => examples}/wireframes/src/index.jsx (100%) rename {demos => examples}/wireframes/src/styles.css (100%) rename {demos => examples}/wireframes/src/useOptions.jsx (100%) rename {demos => examples}/wireframes/src/vite-env.d.ts (100%) rename {demos => examples}/wireframes/thumbnail.webp (100%) rename {demos => examples}/wireframes/tsconfig.json (100%) rename {demos => examples}/wireframes/tsconfig.node.json (100%) rename {demos => examples}/wireframes/vite.config.ts (100%) rename {demos => examples}/wobbling-sphere/.prettierrc (100%) create mode 100644 examples/wobbling-sphere/README.md rename {demos => examples}/wobbling-sphere/index.html (100%) rename {demos/dbismut-furniture => examples/wobbling-sphere}/package.json (86%) rename {demos => examples}/wobbling-sphere/pmndrs.json (100%) rename {demos => examples}/wobbling-sphere/public/vite.svg (100%) rename {demos => examples}/wobbling-sphere/src/App.jsx (100%) rename {demos => examples}/wobbling-sphere/src/Overlay.jsx (100%) rename {demos => examples}/wobbling-sphere/src/Scene.jsx (100%) rename {demos => examples}/wobbling-sphere/src/index.jsx (100%) rename {demos => examples}/wobbling-sphere/src/styles.css (100%) rename {demos => examples}/wobbling-sphere/src/vite-env.d.ts (100%) rename {demos => examples}/wobbling-sphere/thumbnail.webp (100%) rename {demos => examples}/wobbling-sphere/tsconfig.json (100%) rename {demos => examples}/wobbling-sphere/tsconfig.node.json (100%) rename {demos => examples}/wobbling-sphere/vite.config.ts (100%) rename {demos => examples}/zustand-site/.prettierrc (100%) create mode 100644 examples/zustand-site/README.md rename {demos => examples}/zustand-site/index.html (100%) rename {demos => examples}/zustand-site/package.json (91%) rename {demos => examples}/zustand-site/pmndrs.json (100%) rename {demos => examples}/zustand-site/public/favicon.ico (100%) rename {demos => examples}/zustand-site/public/logo192.png (100%) rename {demos => examples}/zustand-site/public/logo512.png (100%) rename {demos => examples}/zustand-site/public/manifest.json (100%) rename {demos => examples}/zustand-site/public/ogimage.jpg (100%) rename {demos => examples}/zustand-site/public/robots.txt (100%) rename {demos => examples}/zustand-site/public/vite.svg (100%) rename {demos => examples}/zustand-site/src/App.jsx (100%) rename {demos => examples}/zustand-site/src/components/Fireflies.jsx (100%) rename {demos => examples}/zustand-site/src/index.jsx (100%) rename {demos => examples}/zustand-site/src/materials/layerMaterial.js (100%) rename {demos => examples}/zustand-site/src/resources/bear.png (100%) rename {demos => examples}/zustand-site/src/resources/bg.jpg (100%) rename {demos => examples}/zustand-site/src/resources/ground.png (100%) rename {demos => examples}/zustand-site/src/resources/leaves1.png (100%) rename {demos => examples}/zustand-site/src/resources/leaves2.png (100%) rename {demos => examples}/zustand-site/src/resources/stars.png (100%) rename {demos => examples}/zustand-site/src/styles.css (100%) rename {demos => examples}/zustand-site/src/vite-env.d.ts (100%) rename {demos => examples}/zustand-site/thumbnail.webp (100%) rename {demos => examples}/zustand-site/tsconfig.json (100%) rename {demos => examples}/zustand-site/tsconfig.node.json (100%) rename {demos => examples}/zustand-site/vite.config.ts (100%) diff --git a/.syncpackrc.json b/.syncpackrc.json index 96c40c68..a8ec0c49 100644 --- a/.syncpackrc.json +++ b/.syncpackrc.json @@ -1,9 +1,9 @@ { "versionGroups": [ { - "label": "React is pinned for all demos (19.x is required by @react-three/fiber 9)", + "label": "React is pinned for all examples (19.x is required by @react-three/fiber 9)", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "react", @@ -12,9 +12,9 @@ "pinVersion": "19.2.8" }, { - "label": "React types are pinned for all demos", + "label": "React types are pinned for all examples", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "@types/react" @@ -22,9 +22,9 @@ "pinVersion": "19.2.17" }, { - "label": "React DOM types are pinned for all demos", + "label": "React DOM types are pinned for all examples", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "@types/react-dom" @@ -34,7 +34,7 @@ { "label": "three is pinned: the @splinetool/loader patch is keyed to r165, and postprocessing 6.36.6 needs < 0.173", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "three" @@ -44,7 +44,7 @@ { "label": "@react-three/fiber is pinned: 9.x is the React 19 line, and a caret could raise the three floor", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "@react-three/fiber" @@ -54,7 +54,7 @@ { "label": "@react-three/drei is pinned: 10.x is the line matching @react-three/fiber 9", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "@react-three/drei" @@ -62,9 +62,9 @@ "pinVersion": "10.7.7" }, { - "label": "Update lamina to 1.2.2 for all demos.", + "label": "Update lamina to 1.2.2 for all examples.", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "lamina" @@ -74,7 +74,7 @@ { "label": "postprocessing is pinned to the last release accepting three 0.165 (6.36.7+ needs >= 0.174); pnpm.overrides pins the transitive copy too", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "postprocessing" @@ -82,9 +82,9 @@ "pinVersion": "6.36.6" }, { - "label": "suspend-react is pinned for all demos (the suspend(promise) pattern requires >= 0.1.3)", + "label": "suspend-react is pinned for all examples (the suspend(promise) pattern requires >= 0.1.3)", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "suspend-react" @@ -94,7 +94,7 @@ { "label": "@splinetool/loader is pinned to the last release that parses the repo's 2022-era .splinecode scenes (0.9.156+ silently fall back to a default gray material or crash; the three-r165 pnpm patch is keyed to this exact version)", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "@splinetool/loader" @@ -102,9 +102,9 @@ "pinVersion": "0.9.153" }, { - "label": "Demos must use identical versions of shared dependencies", + "label": "Examples must use identical versions of shared dependencies", "packages": [ - "@demo/**" + "@example/**" ], "dependencies": [ "@react-three/postprocessing", @@ -145,7 +145,7 @@ { "label": "Workspace deps use workspace protocol", "dependencies": [ - "@demo/**" + "@example/**" ], "dependencyTypes": [ "prod" diff --git a/AGENTS.md b/AGENTS.md index 842c66f2..457b564f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,7 +22,7 @@ Single-context: one `CONTEXT.md` + `docs/adr/` at the repo root (created lazily **`components/ui/*` is vendored, not ours — never edit it.** Those files must stay what the registry emits (modulo `prettier`, which the repo runs over everything), so that `shadcn@latest add --overwrite` is always a safe no-op and any of them can be swapped for the stock version tomorrow. If a component doesn't do what you need, the fix goes at the call site — `className` for layout, the built-in `variant`/`size` props for looks, composition (wrap it, or use `asChild`) for behaviour — or into the theme tokens in `app/globals.css`. Never into the component file. If you genuinely cannot express it from outside, write your own component next to it under `components/` rather than forking the vendored one. -**The colour tokens are Material Design 3.** Every shadcn token in `app/globals.css` reads an `--md-sys-color-*` role, and [`material-theme-builder`](https://github.com/abernier/material-theme-builder) derives all of them from one source hex. Retuning the palette means changing `MCU_SOURCE` in `app/layout.tsx` — or the `scheme` / `contrast` / core-colour overrides in the `builder()` call next to it — never editing a token by hand. The site runs `scheme: "monochrome"`, which derives every role from the source's _tone_ alone and discards its hue: the chrome is greyscale on purpose, so that the only colour on a demo page is the demo. `MCU_SOURCE` still matters — swap the scheme and the mint comes straight back. Anything the m3 roles don't cover belongs in that call's `customColors`, which mints `--md-sys-color-` and a matching `-on-` foreground. +**The colour tokens are Material Design 3.** Every shadcn token in `app/globals.css` reads an `--md-sys-color-*` role, and [`material-theme-builder`](https://github.com/abernier/material-theme-builder) derives all of them from one source hex. Retuning the palette means changing `MCU_SOURCE` in `app/layout.tsx` — or the `scheme` / `contrast` / core-colour overrides in the `builder()` call next to it — never editing a token by hand. The site runs `scheme: "monochrome"`, which derives every role from the source's _tone_ alone and discards its hue: the chrome is greyscale on purpose, so that the only colour on a example page is the example. `MCU_SOURCE` still matters — swap the scheme and the mint comes straight back. Anything the m3 roles don't cover belongs in that call's `customColors`, which mints `--md-sys-color-` and a matching `-on-` foreground. **It has to stay a build-time call.** `layout.tsx` is a server component, so `builder(...).toCss()` runs once at build and the CSS ships inside the prerendered HTML. Don't move it into a client component, and don't reach for the package's ``: this app is `output: "export"`, so the browser paints the whole page well before hydration, and anything that supplies the colours later gives you a frame with none of them. Verify a change here by grepping the built `out/index.html` for `--md-sys-color-surface:` — not just by looking at the running app, where hydration hides the gap. @@ -30,6 +30,6 @@ Two things to know before styling: - **The whole app is on Tailwind.** There is no `