GrabVR
A module for grabbing objects in WebVR, Three.js and VRController.js projects
Install / Use
/learn @Sean-Bradley/GrabVRREADME
GrabVR
A module for grabbing objects in WebVR Three.js projects
You can download the project and view the examples.
git clone https://github.com/Sean-Bradley/GrabVR.git
cd GrabVR
npm install
npm run dev
Visit https://127.0.0.1:3000/
How to import GrabVR
npm install grabvr
Import into your code
import GrabVR from 'grabvr'
Instantiate And Use
Create a GrabVR object.
const grabVR = new GrabVR()
Create some Object3Ds and add then to the GrabVR grabables.
const box = new THREE.Mesh(
new THREE.BoxGeometry(1.0, 1.0, 1.0),
new THREE.MeshBasicMaterial({
color: 0xff0066,
wireframe: true
})
)
scene.add(box)
grabVR.grabableObjects().push(box);
Add your VR controllers to the scene (see example code for better understanding)
const controllerGrip0 = renderer.xr.getControllerGrip(0)
controllerGrip0.addEventListener("connected", (e: any) => {
controllerGrip0.add(lefthand)
grabVR.add(0, controllerGrip0, e.data.gamepad)
scene.add(controllerGrip0)
})
Update in the render loop.
grabVR.update(clock.getDelta());
renderer.render(scene, camera)
Example 1
Basic GrabVR demo.
Example 2
GrabVR demo using Cannonjs.
GrabVR Source Project
This is a typescript project consisting of two sub projects with there own tsconfigs.
To edit this example, then modify the files in ./src/client/ or ./src/server/
The projects will auto recompile if you started it by using npm run dev
Threejs TypeScript Course
Visit https://github.com/Sean-Bradley/Three.js-TypeScript-Boilerplate for a Threejs TypeScript boilerplate containing many extra branches that demonstrate many examples of Threejs.
To help support this Threejs example, please take a moment to look at my official Threejs TypeScript course at
Three.js and TypeScript<br/>
Discount Coupons for all my courses can be found at https://sbcode.net/coupons
Related Skills
node-connect
347.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。



