Published
Edited
May 5, 2022
Insert cell
md`# Three JS Geometry`
Insert cell
x=1+3+4
Insert cell
html`<span style="background:pink;">
My name is wrt.
</span>`
Insert cell
slider = html`<input type=range>`
Insert cell
html`<span style="background:red;">
This is the slider I added to control the speed of the object.
</span>`
Insert cell
sliderValue = Generators.input(slider)
Insert cell
{
const renderer = new THREE.WebGLRenderer({antialias: true});
renderer.setSize(width, height);
renderer.setPixelRatio(devicePixelRatio);

// const controls = new THREE.OrbitControls(camera, renderer.domElement);
// invalidation.then(() => (controls.dispose(), renderer.dispose()));
// controls.addEventListener("change", () => renderer.render(scene, camera));
while (true) {
for(let geo of geos){
geo.rotation.x += sliderValue ;
geo.rotation.y += sliderValue ;
}
renderer.render(scene, camera);
yield renderer.domElement;
}
}
Insert cell
Insert cell
geoCamIndex
Insert cell
height = 600

Insert cell
Insert cell
Insert cell
normalMaterial = new THREE.MeshNormalMaterial();
Insert cell
icosahedron = {
const geometry = new THREE.IcosahedronGeometry(2, 0);//Changing this value can change the number of edges of the object
return new THREE.Mesh(geometry, normalMaterial);
}
Insert cell
dodecahedron = {
const geometry = new THREE.IcosahedronGeometry(1, 2);
return new THREE.Mesh(geometry, normalMaterial);
}
Insert cell
geos = [cube, icosahedron, dodecahedron]
Insert cell
scene = {
const scene = new THREE.Scene();
scene.background = new THREE.Color(0x3f3f3f);
for(let geo of geos){
scene.add(geo);
geo.position.x = 3 * geos.indexOf(geo);
}
return scene;
}
Insert cell
THREE = {
const THREE = window.THREE = await require("three@0.99.0/build/three.min.js");
await require("three@0.99.0/examples/js/controls/OrbitControls.js").catch(() => {});
return THREE;
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more