JSFiddle - React, Tailwind, and code Playground

by atulmourya

HTML

<script src="https://threejs.org/build/three.js"></script>
<div id="container">
	<video autoplay="true" id="videoElement">
	</video>
</div>

CSS

video {
  display: none;
}

JavaScript

var camera, scene, renderer, geometry, material, mesh;

init();
animate();

function init() {

    scene = new THREE.Scene();

    camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
    camera.position.z = 500;
    scene.add(camera);
    
    var video = document.querySelector("#videoElement");

		if (navigator.mediaDevices.getUserMedia) {
      navigator.mediaDevices.getUserMedia({ video: true })
        .then(function (stream) {
          video.srcObject = stream;
        })
        .catch(function (err0r) {
          console.log("Something went wrong!");
        });
    }
    
    var v = document.getElementById( 'videoElement' );

		var texture = new THREE.VideoTexture( v );
    texture.minFilter = THREE.LinearFilter;
    texture.magFilter = THREE.LinearFilter;
    texture.format = THREE.RGBFormat;

    geometry = new THREE.PlaneGeometry(200, 200, 10, 10);
    material = new THREE.MeshBasicMaterial({
    	map: texture
    });

    mesh = new THREE.Mesh(geometry, material);
    scene.add(mesh);

    renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    
   
    
		var container = document.getElementById('container');
    container.appendChild(renderer.domElement);

}

function animate() {

    requestAnimationFrame(animate);
    render();

}

function render() {

    renderer.render(scene, camera);
    //debugger

}