Three-Kinectron
Three-Kinectron copied to clipboard
A Three.js plugin for rendering Kinectron feeds
Kinectron for Three.js
A plugin for working with the Kinectron RGBD stream in Three.js
- Usage
-
Contribute
Usage
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
Class methods:
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.
Contribute
Fork/Clone the repository, make sure to use the --recursive
flag when you clone to clone submodules too, and npm install
all dependencies
Build system commands:
-
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