add stereo-exp1
This commit is contained in:
		
							
								
								
									
										15
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								README.md
									
									
									
									
									
								
							@@ -1,2 +1,17 @@
 | 
			
		||||
# play.webxr.dev
 | 
			
		||||
 | 
			
		||||
## Keeping the Template Updated
 | 
			
		||||
 | 
			
		||||
Periodically we should make sure that the template is up to date. To do this,
 | 
			
		||||
we can use the `npm-check-updates` package. To run it, run the following
 | 
			
		||||
command, it will show you what needs updating:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
npx npm-check-updates
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
then to apply the changes:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
npx npm-check-updates -u
 | 
			
		||||
```
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								stereo-exp1/eslint.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								stereo-exp1/eslint.config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
import globals from "globals";
 | 
			
		||||
import pluginJs from "@eslint/js";
 | 
			
		||||
import pluginReactConfig from "eslint-plugin-react/configs/recommended.js";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default [
 | 
			
		||||
  {languageOptions: { globals: globals.browser }},
 | 
			
		||||
  pluginJs.configs.recommended,
 | 
			
		||||
  pluginReactConfig,
 | 
			
		||||
];
 | 
			
		||||
							
								
								
									
										4931
									
								
								stereo-exp1/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										4931
									
								
								stereo-exp1/package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										25
									
								
								stereo-exp1/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								stereo-exp1/package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "stereo-exp1",
 | 
			
		||||
  "private": true,
 | 
			
		||||
  "version": "0.1.0",
 | 
			
		||||
  "type": "module",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "dev": "vite",
 | 
			
		||||
    "build": "vite build"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@eslint/js": "^9.0.0",
 | 
			
		||||
    "@vitejs/plugin-react": "4.2",
 | 
			
		||||
    "eslint": "^8.57.0",
 | 
			
		||||
    "eslint-plugin-react": "^7.34.1",
 | 
			
		||||
    "globals": "^15.0.0",
 | 
			
		||||
    "vite": "^5.2.8"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@react-three/drei": "^9.105.4",
 | 
			
		||||
    "@react-three/fiber": "^8.16.2",
 | 
			
		||||
    "react": "18.2",
 | 
			
		||||
    "react-dom": "18.2",
 | 
			
		||||
    "three": "^0.163.0"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								stereo-exp1/src/Experience.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								stereo-exp1/src/Experience.jsx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
import { useThree, extend } from '@react-three/fiber'
 | 
			
		||||
import { OrbitControls } from '@react-three/drei'
 | 
			
		||||
 | 
			
		||||
export default function Experience()
 | 
			
		||||
{
 | 
			
		||||
  const { camera, gl } = useThree()
 | 
			
		||||
 | 
			
		||||
  return <>
 | 
			
		||||
    <OrbitControls />
 | 
			
		||||
 | 
			
		||||
    <directionalLight position={ [ 1, 2, 3 ] } intensity={ 4.5 } />
 | 
			
		||||
    <ambientLight intensity={ 1.5 } />
 | 
			
		||||
 | 
			
		||||
    <mesh position-y={ 5 } scale={ 10 }>
 | 
			
		||||
      <planeGeometry />
 | 
			
		||||
      <meshStandardMaterial color="blue"/>
 | 
			
		||||
    </mesh>
 | 
			
		||||
 | 
			
		||||
    <mesh position-y={ - 1 } rotation-x={ - Math.PI * 0.5 } scale={ 10 }>
 | 
			
		||||
      <planeGeometry />
 | 
			
		||||
      <meshStandardMaterial color="grey" />
 | 
			
		||||
    </mesh>
 | 
			
		||||
  </>
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										12
									
								
								stereo-exp1/src/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								stereo-exp1/src/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    <title>Stereo Experiment 1</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
    <div id="root"></div>
 | 
			
		||||
    <script type="module" src="./index.jsx"></script></body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										19
									
								
								stereo-exp1/src/index.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								stereo-exp1/src/index.jsx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
import './style.css'
 | 
			
		||||
import ReactDOM from 'react-dom/client'
 | 
			
		||||
import { Canvas } from '@react-three/fiber'
 | 
			
		||||
import Experience from './Experience.jsx'
 | 
			
		||||
 | 
			
		||||
const root = ReactDOM.createRoot(document.querySelector('#root'))
 | 
			
		||||
 | 
			
		||||
root.render(
 | 
			
		||||
    <Canvas
 | 
			
		||||
        camera={ {
 | 
			
		||||
            fov: 45,
 | 
			
		||||
            near: 0.1,
 | 
			
		||||
            far: 200,
 | 
			
		||||
            position: [ - 4, 3, 6 ]
 | 
			
		||||
        } }
 | 
			
		||||
    >
 | 
			
		||||
        <Experience />
 | 
			
		||||
    </Canvas>
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										11
									
								
								stereo-exp1/src/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								stereo-exp1/src/style.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
html,
 | 
			
		||||
body,
 | 
			
		||||
#root
 | 
			
		||||
{
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    top: 0;
 | 
			
		||||
    left: 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    background: ivory;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								stereo-exp1/vite.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								stereo-exp1/vite.config.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
import react from '@vitejs/plugin-react'
 | 
			
		||||
import { transformWithEsbuild } from 'vite'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
    root: 'src/',
 | 
			
		||||
    publicDir: '../public/',
 | 
			
		||||
    base: './',
 | 
			
		||||
    plugins:
 | 
			
		||||
    [
 | 
			
		||||
        // React support
 | 
			
		||||
        react(),
 | 
			
		||||
 | 
			
		||||
        // .js file support as if it was JSX
 | 
			
		||||
        {
 | 
			
		||||
            name: 'load+transform-js-files-as-jsx',
 | 
			
		||||
            async transform(code, id)
 | 
			
		||||
            {
 | 
			
		||||
                if (!id.match(/src\/.*\.js$/))
 | 
			
		||||
                    return null
 | 
			
		||||
 | 
			
		||||
                return transformWithEsbuild(code, id, {
 | 
			
		||||
                    loader: 'jsx',
 | 
			
		||||
                    jsx: 'automatic',
 | 
			
		||||
                });
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    ],
 | 
			
		||||
    server:
 | 
			
		||||
    {
 | 
			
		||||
        host: true, // Open to local network and display URL
 | 
			
		||||
        open: !('SANDBOX_URL' in process.env || 'CODESANDBOX_HOST' in process.env) // Open if it's not a CodeSandbox
 | 
			
		||||
    },
 | 
			
		||||
    build:
 | 
			
		||||
    {
 | 
			
		||||
        outDir: '../dist', // Output in the dist/ folder
 | 
			
		||||
        emptyOutDir: true, // Empty the folder first
 | 
			
		||||
        sourcemap: true // Add sourcemap
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user