diff --git a/the-matrix/js/agents.js b/the-matrix/js/agents.js index d88285b..f7540cc 100644 --- a/the-matrix/js/agents.js +++ b/the-matrix/js/agents.js @@ -175,23 +175,23 @@ function buildTimmy(sc) { mouth.position.set(0, -0.18, 0.30); head.add(mouth); - // ── Beard — silver-white, below chin ───────────────────────────────────── + // ── Beard — long grey wizard power beard ───────────────────────────────── const beardMat = new THREE.MeshStandardMaterial({ - color: 0xd8d4cc, - emissive: 0x888880, - emissiveIntensity: 0.08, - roughness: 0.88, + color: 0xaaa8a0, + emissive: 0x666660, + emissiveIntensity: 0.06, + roughness: 0.90, }); - // Main beard volume: wide cone hanging below chin - const beard = new THREE.Mesh(new THREE.ConeGeometry(0.18, 0.38, 7), beardMat); - beard.position.set(0, -0.32, 0.20); - beard.rotation.x = 0.22; // tip slightly forward - head.add(beard); - // Moustache: small cylinder across upper lip - const moustache = new THREE.Mesh(new THREE.CylinderGeometry(0.04, 0.04, 0.22, 6), beardMat.clone()); - moustache.position.set(0, -0.10, 0.35); - moustache.rotation.z = Math.PI / 2; - head.add(moustache); + // Wide top where beard meets chin + const beardTop = new THREE.Mesh(new THREE.CylinderGeometry(0.20, 0.15, 0.22, 7), beardMat); + beardTop.position.set(0, -0.30, 0.14); + beardTop.rotation.x = 0.18; + head.add(beardTop); + // Long tapered body of the beard flowing downward + const beardBody = new THREE.Mesh(new THREE.ConeGeometry(0.17, 0.90, 7), beardMat.clone()); + beardBody.position.set(0, -0.72, 0.10); + beardBody.rotation.x = 0.12; + head.add(beardBody); // ── Hair — silver-white wisps at sides ─────────────────────────────────── const hairMat = new THREE.MeshStandardMaterial({