Skip to content

Use Vive controllers in WebVR with a semantic event based api

Notifications You must be signed in to change notification settings

msfeldstein/three-vive-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is old code and probably won't work with the latest threejs

three-vive-controller

Use the Vive's controller in ThreeJS webVR applications. It will render a nice model for it, and give it an event based API.

Try the demo. Since this is a module only for the controller, it doesn't use the HMD, it just shows the controller interacting in the browser window.

Installation

npm install --save three-vive-controller

Usage

Set up a ThreeJS scene using the THREE.VRControls addon, then create controllers using the ids 0 and 1.

var ViveController = require('three-vive-controller')(THREE)
var controls = new THREE.VRControls(camera)
var controller = new ViveController(0, controls)
scene.add(controller)

// Listen to events on the controller emitter
controller.on(controller.TriggerClicked, () => {
  console.log("Trigger Clicked")
})

controller.on(controller.TriggerUnclicked, () => {
  console.log("Trigger Unclicked")
})

Available events

TriggerClicked -> ()
TriggerUnclicked -> ()
MenuPressed -> ()
MenuUnpressed -> ()
PadTouched -> ()
PadUntouched -> ()
PadPressed -> ()
PadUnpressed -> ()
PadDragged -> (dx, dy) // Normalized touch deltas
Connected -> () // Called when the controller first becomes available

Available properties

// Current touch positions, normalized from -1 to 1.  Is null if the pad is not currently being touched.
controller.padX
controller.padY
// Boolean if the pad is currently being touched
controller.padTouched
// Boolean if the trigger is currently pressed
controller.triggerClicked
// Is there a vive controller available for this controller. Disconnection doesn't seem to work yet, so if it turns off, it still shows as connected.
controller.connected
// How far the trigger is pulled from 0-1
controller.triggerLevel

See demo for a full example, which can be run with npm start

About

Use Vive controllers in WebVR with a semantic event based api

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •