A plugin for working with the Kinectron RGBD stream in Three.js
You can create geomtery from the Kinect's RGBD feed by simply:
const kinectGeo = THREE.KinectGeometry("mesh");
You can choose the rendering type by changing the first argument to "mesh" / "wire" / "points"
And then simply add it your Three.js scene:
scene.add(kinectGeo);
You would need to also bind the incoming Kinect image to the '''kinectGeo''' instance
function onNewKinectFrame(ktronImg) {
kinectronGeo.kinectron.bind(ktronImg.src);
}
For further reference use the simple example
All class methods are available on the kinectron property of the THREE.KinectGeometry instance
const kinectGeo = THREE.KinectGeometry("mesh");
kinectGeo.kinectron.setDisplacement(30.0);
.setDisplacement(amount)
- Increase or decrease the amount of displacement on the Z axis (Default value is 1.0)..setBrightness(amount)
- Increase or decrease the brightness of the texture (Default value is 0.0)..setContrast(amount)
- Increase or decrease the contrast of the texture (Default value is 1.0)..setOpacity(opacity)
- Increase or decrease the opacity of the texture (Default value is 1.0)..setPointSize(opacity)
- Increase or decrease the point size (Only when rendering points, "points")..setLineWidth(width)
- Increase or decrease the line width (Only when rendering wireframe, "wire")..pause()
- Pause the rendering of the Kinectron stream, keeps the last frame..play()
- Resume the rendering of the Kinectron stream..bind(imageStream)
- Bind a Kinectron image stream to the material, needs to be called everytime a new frame arrives..update()
- Calling the update method in the render loop will update the time uniform in the shader.
Fork/Clone the repository, make sure to use the --recursive
flag when you clone to clone submodules too, and npm install
all dependencies
npm run start
uses concurrently to run both an http-server and a watchify build opreation on every save todist/kinectron.three.js
.npm run build
builds a minified version of the plugin once and saves it todist/kinectron.three.min.js
Written by juniorxsound based on DepthKit.js as a part XStory grant in ITP, NYU