From 9044396f738087c56ec81ef20397171e60b92270 Mon Sep 17 00:00:00 2001 From: CJSatnarine Date: Thu, 26 Mar 2026 14:01:34 -0400 Subject: [PATCH] Add webring traversing --- static/assets/study.glb | Bin 0 -> 157656 bytes static/scripts/main.js | 104 ++++++++++++++++++++++++++++++++++------ 2 files changed, 90 insertions(+), 14 deletions(-) create mode 100644 static/assets/study.glb diff --git a/static/assets/study.glb b/static/assets/study.glb new file mode 100644 index 0000000000000000000000000000000000000000..aee1209fe4b7482f28d0f3d5693f97fdab67bc9d GIT binary patch literal 157656 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 N)lf{AH@S;K{eNfd*lz#; literal 0 HcmV?d00001 diff --git a/static/scripts/main.js b/static/scripts/main.js index 4ddd3e0..09ae764 100644 --- a/static/scripts/main.js +++ b/static/scripts/main.js @@ -1,25 +1,101 @@ import * as THREE from 'three'; +import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'; +import { PointerLockControls } from 'three/addons/controls/PointerLockControls.js'; -const scene = new THREE.Scene(); -const camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); +const next_url = 'https://3dworldring.cjsatnarine.space/cjsatnarine_study/next'; +const prev_url = 'https://3dworldring.cjsatnarine.space/cjsatnarine_study/previous'; const renderer = new THREE.WebGLRenderer(); -renderer.setSize( window.innerWidth, window.innerHeight ); -renderer.setAnimationLoop( animate ); -document.body.appendChild( renderer.domElement ); -const geometry = new THREE.BoxGeometry( 1, 1, 1 ); -const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); -const cube = new THREE.Mesh( geometry, material ); -scene.add( cube ); +const scene = new THREE.Scene(); +const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); +const light = new THREE.AmbientLight(0xFFFFFF, 2); -camera.position.z = 5; +const study = new GLTFLoader(); -function animate( time ) { +const controls = new PointerLockControls(camera, document.body); +const clock = new THREE.Clock(); +const keymap = {}; +const pointer = new THREE.Vector2(); +const raycaster = new THREE.Raycaster(); - cube.rotation.x = time / 2000; - cube.rotation.y = time / 1000; +init(); - renderer.render( scene, camera ); +function init() { + renderer.setSize(window.innerWidth, window.innerHeight); + + document.body.appendChild(renderer.domElement); + + scene.background = new THREE.Color(0x000000); + scene.add(camera); + + scene.add(light); + + camera.position.y = 1.5; + + study.load('../assets/study.glb', function(gltf) { + scene.add(gltf.scene); + + function onPointerDown(event) { + if (controls.isLocked) { + pointer.set(0, 0); + raycaster.setFromCamera(pointer, camera); + } + else { + const rect = renderer.domElement.getBoundingClientRect(); + pointer.x = ((event.clientX - rect.left) / rect.width) * 2 - 1; + pointer.y = -((event.clientY - rect.top) / rect.height) * 2 + 1; + raycaster.setFromCamera(pointer, camera); + } + + const intersects = raycaster.intersectObject(gltf.scene, true); + if (!intersects.length) return; + + for (let i = 0; i < intersects.length; i++) { + let object = intersects[i].object; + + while (object && object !== gltf.scene) { + if (object.name === 'Next') { + window.open(next_url); + return; + } + + if (object.name === 'Previous') { + window.open(prev_url); + return; + } + object = object.parent; + } + } + } + window.addEventListener('pointerdown', onPointerDown, false); + + }, undefined, function(error) { + console.error(error); + }); + + document.addEventListener('click', () => { controls.lock(); }); + + const onDocumentKey = (e) => { keymap[e.code] = e.type === 'keydown'; }; + document.addEventListener('keydown', onDocumentKey, false); + document.addEventListener('keyup', onDocumentKey, false); +} + + +function animate() { + const delta = clock.getDelta(); + + if (controls.isLocked) { + if (keymap['KeyW']) controls.moveForward(delta * 5); + if (keymap['KeyS']) controls.moveForward(-delta * 5); + if (keymap['KeyA']) controls.moveRight(-delta * 5); + if (keymap['KeyD']) controls.moveRight(delta * 5); + } + + renderer.render(scene, camera); } + +renderer.setAnimationLoop(animate); + +