JSFiddle - React, Tailwind, and code Playground

by ashishsiddharth

HTML

<html lang="en">
  <head>
    <title>Stewart Web-Based Simulator</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
	<link rel="stylesheet" type="text/css" href="css/siddharth.css">
	<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r134/three.min.js"></script>
  </head>
<body>
<div id="info">
			<h1>Change Line Thickness<br></h1>
</div>
<input id="rangeX" type="range" min="-2" max="2" step="0.01" style="position: absolute; margin: 50px; width:200px;">
</body>
</html>

CSS

body{
	background:#777;
	padding:0;
	margin:0;
	font-weight:700;
	overflow:hidden}


#info{
	position:absolute;
	top:0;width:100%;
	color:#fff;
	padding:5px;
	font-family:Monospace;
	font-size:13px;
	text-align:center}

JavaScript

let scene = new THREE.Scene();
let camera = new THREE.PerspectiveCamera(60, innerWidth / innerHeight, 1, 2000);
camera.position.set(0, 0.5, 1).setLength(12);
let renderer = new THREE.WebGLRenderer({
  antialias: true
});
renderer.setSize(innerWidth, innerHeight);
document.body.appendChild(renderer.domElement);

window.addEventListener("resize", onWindowResize);

//let controls = new OrbitControls(camera, renderer.domElement);

scene.add(new THREE.GridHelper());

let g = new THREE.BufferGeometry().setFromPoints([
  new THREE.Vector3(),
  new THREE.Vector3(0, 2, 0)
])
let m = new THREE.LineBasicMaterial({
  color: 0xffff00
});
let l = new THREE.Line(g, m);
scene.add(l);

rangeX.addEventListener("input", event => {
  let val = event.target.value;
  g.attributes.position.setX(1, val);
  g.attributes.position.needsUpdate = true;
})


renderer.setAnimationLoop(() => {
  renderer.render(scene, camera);
});

function onWindowResize() {

  camera.aspect = innerWidth / innerHeight;
  camera.updateProjectionMatrix();

  renderer.setSize(innerWidth, innerHeight);

}