1,9 mil tris2,97 × 5,00 × 3,16 m
Use no código
Fazer remix no editorbamboo-cluster.js · 1.115 linhas
Módulo ES autocontido — depende apenas do three. Chame a factory e adicione o grupo à sua cena.
/**
* Bamboo Cluster — Codels 3D model library
* License: CC0-1.0 · Units: meters · Y-up · Front: +Z · Origin: center of the base (y = 0)
* Triangles: 1,916 · Size (W × H × D): 2.97 × 5.00 × 3.15 m
*
* Usage:
* import { createBambooCluster } from './bamboo-cluster.js';
*
* const model = createBambooCluster();
* model.position.set(0, 0, 0);
* scene.add(model);
*/
import * as THREE from 'three';
const deg = THREE.MathUtils.degToRad;
export function createBambooCluster() {
const root = new THREE.Group();
root.name = 'BambooCluster';
// Materials
const stalkMat = new THREE.MeshStandardMaterial({ name: 'stalk', color: 0x86ab45, roughness: 0.6, flatShading: true });
const stalkOldMat = new THREE.MeshStandardMaterial({ name: 'stalkOld', color: 0x8d9844, roughness: 0.65, flatShading: true });
const nodeMat = new THREE.MeshStandardMaterial({ name: 'node', color: 0xabb67e, roughness: 0.7, flatShading: true });
const leafMat = new THREE.MeshStandardMaterial({ name: 'leaf', color: 0x4f8f3a, roughness: 0.8, flatShading: true });
const leafLightMat = new THREE.MeshStandardMaterial({ name: 'leafLight', color: 0x76ad48, roughness: 0.8, flatShading: true });
const shootMat = new THREE.MeshStandardMaterial({ name: 'shoot', color: 0x9a7a4a, roughness: 0.9, flatShading: true });
// Shared geometries
const octahedronGeo = new THREE.OctahedronGeometry(1, 0);
// Parts
const stalk1 = new THREE.Group();
stalk1.name = 'stalk1';
stalk1.position.set(0.0731, 0.0026, 0.006);
stalk1.rotation.set(deg(0.6316), deg(-0.0119), deg(-2.1507));
root.add(stalk1);
const cane = new THREE.Mesh(new THREE.CylinderGeometry(0.045, 0.0693, 5, 6), stalkMat);
cane.name = 'cane';
cane.position.set(0, 2.5, 0);
stalk1.add(cane);
const node1 = new THREE.Mesh(new THREE.CylinderGeometry(0.0758, 0.0798, 0.035, 6, 1, true), nodeMat);
node1.name = 'node1';
node1.position.set(0, 0.5814, 0);
stalk1.add(node1);
const node2 = new THREE.Mesh(new THREE.CylinderGeometry(0.0726, 0.0764, 0.035, 6, 1, true), nodeMat);
node2.name = 'node2';
node2.position.set(0, 1.1628, 0);
stalk1.add(node2);
const node3 = new THREE.Mesh(new THREE.CylinderGeometry(0.0694, 0.073, 0.035, 6, 1, true), nodeMat);
node3.name = 'node3';
node3.position.set(0, 1.7442, 0);
stalk1.add(node3);
const node4 = new THREE.Mesh(new THREE.CylinderGeometry(0.0661, 0.0696, 0.035, 6, 1, true), nodeMat);
node4.name = 'node4';
node4.position.set(0, 2.3256, 0);
stalk1.add(node4);
const node5 = new THREE.Mesh(new THREE.CylinderGeometry(0.0629, 0.0662, 0.035, 6, 1, true), nodeMat);
node5.name = 'node5';
node5.position.set(0, 2.907, 0);
stalk1.add(node5);
const node6 = new THREE.Mesh(new THREE.CylinderGeometry(0.0597, 0.0629, 0.035, 6, 1, true), nodeMat);
node6.name = 'node6';
node6.position.set(0, 3.4884, 0);
stalk1.add(node6);
const node7 = new THREE.Mesh(new THREE.CylinderGeometry(0.0565, 0.0595, 0.035, 6, 1, true), nodeMat);
node7.name = 'node7';
node7.position.set(0, 4.0698, 0);
stalk1.add(node7);
const node8 = new THREE.Mesh(new THREE.CylinderGeometry(0.0533, 0.0561, 0.035, 6, 1, true), nodeMat);
node8.name = 'node8';
node8.position.set(0, 4.6512, 0);
stalk1.add(node8);
const twig1 = new THREE.Mesh(new THREE.CylinderGeometry(0.0083, 0.0148, 0.5004, 4, 1, true), stalkMat);
twig1.name = 'twig1';
twig1.position.set(0.219, 4.8582, -0.064);
twig1.rotation.set(deg(-15.0145), deg(9.134), deg(-62.4438));
stalk1.add(twig1);
const leaf11 = new THREE.Mesh(octahedronGeo, leafMat);
leaf11.name = 'leaf1_1';
leaf11.position.set(0.4556, 4.7852, -0.2854);
leaf11.rotation.set(deg(42.2284), deg(-4.7456), deg(-175.7056));
leaf11.scale.set(0.0662, 0.2365, 0.0142);
stalk1.add(leaf11);
const leaf12 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf12.name = 'leaf1_2';
leaf12.position.set(0.6054, 4.8863, -0.2106);
leaf12.rotation.set(deg(79.98), deg(-19.4246), deg(-117.981));
leaf12.scale.set(0.0563, 0.201, 0.0121);
stalk1.add(leaf12);
const leaf13 = new THREE.Mesh(octahedronGeo, leafMat);
leaf13.name = 'leaf1_3';
leaf13.position.set(0.6131, 4.8013, -0.1328);
leaf13.rotation.set(deg(88.5793), deg(-42.2984), deg(-92.1105));
leaf13.scale.set(0.0663, 0.2369, 0.0142);
stalk1.add(leaf13);
const leaf14 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf14.name = 'leaf1_4';
leaf14.position.set(0.573, 4.8304, 0.0016);
leaf14.rotation.set(deg(115.7484), deg(-24.3655), deg(-40.543));
leaf14.scale.set(0.0639, 0.2281, 0.0137);
stalk1.add(leaf14);
const twig2 = new THREE.Mesh(new THREE.CylinderGeometry(0.009, 0.016, 0.5274, 4, 1, true), stalkMat);
twig2.name = 'twig2';
twig2.position.set(-0.2255, 4.0794, 0.0835);
twig2.rotation.set(deg(18.8169), deg(11.0665), deg(60.6244));
stalk1.add(twig2);
const leaf21 = new THREE.Mesh(octahedronGeo, leafMat);
leaf21.name = 'leaf2_1';
leaf21.position.set(-0.4992, 4.0362, 0.295);
leaf21.rotation.set(deg(136.0176), deg(15.1432), deg(14.1502));
leaf21.scale.set(0.0571, 0.204, 0.0122);
stalk1.add(leaf21);
const leaf22 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf22.name = 'leaf2_2';
leaf22.position.set(-0.6138, 4.0676, 0.3212);
leaf22.rotation.set(deg(110.2146), deg(20.0308), deg(42.9297));
leaf22.scale.set(0.0712, 0.2544, 0.0153);
stalk1.add(leaf22);
const leaf23 = new THREE.Mesh(octahedronGeo, leafMat);
leaf23.name = 'leaf2_3';
leaf23.position.set(-0.6151, 4.0175, 0.1534);
leaf23.rotation.set(deg(85.1558), deg(45.7419), deg(96.7485));
leaf23.scale.set(0.0663, 0.2367, 0.0142);
stalk1.add(leaf23);
const leaf24 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf24.name = 'leaf2_4';
leaf24.position.set(-0.6077, 4.0116, 0.0771);
leaf24.rotation.set(deg(64.1246), deg(37.2594), deg(128.7004));
leaf24.scale.set(0.0706, 0.2523, 0.0151);
stalk1.add(leaf24);
const twig3 = new THREE.Mesh(new THREE.CylinderGeometry(0.0097, 0.0172, 0.542, 4, 1, true), stalkMat);
twig3.name = 'twig3';
twig3.position.set(0.0565, 3.3092, -0.2406);
twig3.rotation.set(deg(-63.5743), deg(7.5413), deg(-12.1409));
stalk1.add(twig3);
const leaf31 = new THREE.Mesh(octahedronGeo, leafMat);
leaf31.name = 'leaf3_1';
leaf31.position.set(-0.0267, 3.3385, -0.6369);
leaf31.rotation.set(deg(73.7453), deg(14.1009), deg(140.1178));
leaf31.scale.set(0.0629, 0.2246, 0.0135);
stalk1.add(leaf31);
const leaf32 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf32.name = 'leaf3_2';
leaf32.position.set(0.0989, 3.3471, -0.6715);
leaf32.rotation.set(deg(69.0312), deg(1.5222), deg(176.035));
leaf32.scale.set(0.0572, 0.2044, 0.0123);
stalk1.add(leaf32);
const leaf33 = new THREE.Mesh(octahedronGeo, leafMat);
leaf33.name = 'leaf3_3';
leaf33.position.set(0.2027, 3.2517, -0.6232);
leaf33.rotation.set(deg(49.6435), deg(-22.2472), deg(-155.985));
leaf33.scale.set(0.0667, 0.2381, 0.0143);
stalk1.add(leaf33);
const leaf34 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf34.name = 'leaf3_4';
leaf34.position.set(0.2912, 3.3237, -0.52);
leaf34.rotation.set(deg(83.5635), deg(-27.2558), deg(-103.8386));
leaf34.scale.set(0.0578, 0.2064, 0.0124);
stalk1.add(leaf34);
const crest1 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest1.name = 'crest1';
crest1.position.set(0.0904, 4.8692, 0.0286);
crest1.rotation.set(deg(112.5998), deg(-50.5189), deg(-61.6617));
crest1.scale.set(0.0452, 0.1615, 0.0097);
stalk1.add(crest1);
const crest2 = new THREE.Mesh(octahedronGeo, leafMat);
crest2.name = 'crest2';
crest2.position.set(-0.0113, 4.8599, 0.1048);
crest2.rotation.set(deg(142.8917), deg(4.9011), deg(3.6981));
crest2.scale.set(0.0491, 0.1753, 0.0105);
stalk1.add(crest2);
const crest3 = new THREE.Mesh(octahedronGeo, leafMat);
crest3.name = 'crest3';
crest3.position.set(-0.1276, 4.9193, -0.0476);
crest3.rotation.set(deg(78.305), deg(28.5196), deg(113.4388));
crest3.scale.set(0.0443, 0.1583, 0.0095);
stalk1.add(crest3);
const crest4 = new THREE.Mesh(octahedronGeo, leafMat);
crest4.name = 'crest4';
crest4.position.set(0.0313, 4.9009, -0.1441);
crest4.rotation.set(deg(56.7193), deg(-6.7952), deg(-169.7817));
crest4.scale.set(0.0497, 0.1777, 0.0107);
stalk1.add(crest4);
const stalk2 = new THREE.Group();
stalk2.name = 'stalk2';
stalk2.position.set(-0.1221, 0.0048, 0.0917);
stalk2.rotation.set(deg(2.2297), deg(0.0798), deg(4.0996));
root.add(stalk2);
const cane2 = new THREE.Mesh(new THREE.CylinderGeometry(0.0383, 0.059, 4.8703, 6), stalkMat);
cane2.name = 'cane';
cane2.position.set(0, 2.4352, 0);
stalk2.add(cane2);
const node12 = new THREE.Mesh(new THREE.CylinderGeometry(0.0645, 0.0679, 0.0341, 6, 1, true), nodeMat);
node12.name = 'node1';
node12.position.set(0, 0.5663, 0);
stalk2.add(node12);
const node22 = new THREE.Mesh(new THREE.CylinderGeometry(0.0618, 0.065, 0.0341, 6, 1, true), nodeMat);
node22.name = 'node2';
node22.position.set(0, 1.1326, 0);
stalk2.add(node22);
const node32 = new THREE.Mesh(new THREE.CylinderGeometry(0.059, 0.0621, 0.0341, 6, 1, true), nodeMat);
node32.name = 'node3';
node32.position.set(0, 1.699, 0);
stalk2.add(node32);
const node42 = new THREE.Mesh(new THREE.CylinderGeometry(0.0563, 0.0593, 0.0341, 6, 1, true), nodeMat);
node42.name = 'node4';
node42.position.set(0, 2.2653, 0);
stalk2.add(node42);
const node52 = new THREE.Mesh(new THREE.CylinderGeometry(0.0536, 0.0564, 0.0341, 6, 1, true), nodeMat);
node52.name = 'node5';
node52.position.set(0, 2.8316, 0);
stalk2.add(node52);
const node62 = new THREE.Mesh(new THREE.CylinderGeometry(0.0508, 0.0535, 0.0341, 6, 1, true), nodeMat);
node62.name = 'node6';
node62.position.set(0, 3.3979, 0);
stalk2.add(node62);
const node72 = new THREE.Mesh(new THREE.CylinderGeometry(0.0481, 0.0506, 0.0341, 6, 1, true), nodeMat);
node72.name = 'node7';
node72.position.set(0, 3.9642, 0);
stalk2.add(node72);
const node82 = new THREE.Mesh(new THREE.CylinderGeometry(0.0453, 0.0477, 0.0341, 6, 1, true), nodeMat);
node82.name = 'node8';
node82.position.set(0, 4.5305, 0);
stalk2.add(node82);
const twig12 = new THREE.Mesh(new THREE.CylinderGeometry(0.0071, 0.0127, 0.4, 4, 1, true), stalkMat);
twig12.name = 'twig1';
twig12.position.set(-0.1786, 4.6305, 0.0373);
twig12.rotation.set(deg(10.82), deg(6.7759), deg(64.0196));
stalk2.add(twig12);
const leaf112 = new THREE.Mesh(octahedronGeo, leafMat);
leaf112.name = 'leaf1_1';
leaf112.position.set(-0.4258, 4.5781, 0.2068);
leaf112.rotation.set(deg(128.6829), deg(17.9962), deg(21.1002));
leaf112.scale.set(0.0562, 0.2007, 0.012);
stalk2.add(leaf112);
const leaf122 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf122.name = 'leaf1_2';
leaf122.position.set(-0.531, 4.5879, 0.223);
leaf122.rotation.set(deg(109.5009), deg(21.3583), deg(45.8025));
leaf122.scale.set(0.0729, 0.2605, 0.0156);
stalk2.add(leaf122);
const leaf132 = new THREE.Mesh(octahedronGeo, leafMat);
leaf132.name = 'leaf1_3';
leaf132.position.set(-0.5415, 4.6245, 0.0367);
leaf132.rotation.set(deg(84.6165), deg(24.5414), deg(102.7832));
leaf132.scale.set(0.0582, 0.2078, 0.0125);
stalk2.add(leaf132);
const leaf142 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf142.name = 'leaf1_4';
leaf142.position.set(-0.5184, 4.6083, -0.0623);
leaf142.rotation.set(deg(72.3172), deg(19.701), deg(133.4017));
leaf142.scale.set(0.066, 0.2359, 0.0142);
stalk2.add(leaf142);
const twig22 = new THREE.Mesh(new THREE.CylinderGeometry(0.0077, 0.0137, 0.5499, 4, 1, true), stalkMat);
twig22.name = 'twig2';
twig22.position.set(-0.0976, 3.9575, -0.231);
twig22.rotation.set(deg(-59.2537), deg(-12.2041), deg(21.2927));
stalk2.add(twig22);
const leaf212 = new THREE.Mesh(octahedronGeo, leafMat);
leaf212.name = 'leaf2_1';
leaf212.position.set(-0.3866, 3.9346, -0.5183);
leaf212.rotation.set(deg(79.1243), deg(32.6433), deg(109.6052));
leaf212.scale.set(0.0676, 0.2413, 0.0145);
stalk2.add(leaf212);
const leaf222 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf222.name = 'leaf2_2';
leaf222.position.set(-0.3175, 3.9933, -0.6351);
leaf222.rotation.set(deg(73.4729), deg(11.3624), deg(146.4176));
leaf222.scale.set(0.0632, 0.2256, 0.0135);
stalk2.add(leaf222);
const leaf232 = new THREE.Mesh(octahedronGeo, leafMat);
leaf232.name = 'leaf2_3';
leaf232.position.set(-0.1853, 3.9234, -0.5966);
leaf232.rotation.set(deg(42.6781), deg(-3.0752), deg(-177.1681));
leaf232.scale.set(0.0559, 0.1995, 0.012);
stalk2.add(leaf232);
const leaf242 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf242.name = 'leaf2_4';
leaf242.position.set(-0.1124, 3.9936, -0.6433);
leaf242.rotation.set(deg(70.6969), deg(-8.5808), deg(-156.9266));
leaf242.scale.set(0.0598, 0.2136, 0.0128);
stalk2.add(leaf242);
const twig32 = new THREE.Mesh(new THREE.CylinderGeometry(0.0082, 0.0146, 0.4633, 4, 1, true), stalkMat);
twig32.name = 'twig3';
twig32.position.set(0.0793, 3.2319, 0.1958);
twig32.rotation.set(deg(59.7172), deg(-11.8434), deg(-20.4835));
stalk2.add(twig32);
const leaf312 = new THREE.Mesh(octahedronGeo, leafMat);
leaf312.name = 'leaf3_1';
leaf312.position.set(0.3225, 3.2112, 0.4221);
leaf312.rotation.set(deg(97.2449), deg(-34.1102), deg(-77.2274));
leaf312.scale.set(0.0568, 0.2029, 0.0122);
stalk2.add(leaf312);
const leaf322 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf322.name = 'leaf3_2';
leaf322.position.set(0.3011, 3.1886, 0.5065);
leaf322.rotation.set(deg(115.3834), deg(-27.9909), deg(-44.6874));
leaf322.scale.set(0.0642, 0.2294, 0.0138);
stalk2.add(leaf322);
const leaf332 = new THREE.Mesh(octahedronGeo, leafMat);
leaf332.name = 'leaf3_3';
leaf332.position.set(0.1841, 3.173, 0.5545);
leaf332.rotation.set(deg(132.6948), deg(-6.0359), deg(-6.502));
leaf332.scale.set(0.0632, 0.2256, 0.0135);
stalk2.add(leaf332);
const leaf342 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf342.name = 'leaf3_4';
leaf342.position.set(0.0679, 3.1817, 0.5336);
leaf342.rotation.set(deg(125.9838), deg(20.5787), deg(25.8305));
leaf342.scale.set(0.0623, 0.2225, 0.0134);
stalk2.add(leaf342);
const crest12 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest12.name = 'crest1';
crest12.position.set(-0.0787, 4.7682, 0.0955);
crest12.rotation.set(deg(122.5069), deg(23.8729), deg(32.4195));
crest12.scale.set(0.0449, 0.1605, 0.0096);
stalk2.add(crest12);
const crest22 = new THREE.Mesh(octahedronGeo, leafMat);
crest22.name = 'crest2';
crest22.position.set(-0.1056, 4.7742, -0.0715);
crest22.rotation.set(deg(67.0946), deg(29.8951), deg(130.2894));
crest22.scale.set(0.0447, 0.1597, 0.0096);
stalk2.add(crest22);
const crest32 = new THREE.Mesh(octahedronGeo, leafMat);
crest32.name = 'crest3';
crest32.position.set(0.0963, 4.7767, -0.1056);
crest32.rotation.set(deg(64.1574), deg(-21.6666), deg(-142.682));
crest32.scale.set(0.0478, 0.1709, 0.0103);
stalk2.add(crest32);
const crest42 = new THREE.Mesh(octahedronGeo, leafMat);
crest42.name = 'crest4';
crest42.position.set(0.1173, 4.7799, 0.1013);
crest42.rotation.set(deg(110.8772), deg(-22.4199), deg(-44.9989));
crest42.scale.set(0.0503, 0.1795, 0.0108);
stalk2.add(crest42);
const stalk3 = new THREE.Group();
stalk3.name = 'stalk3';
stalk3.position.set(0.0129, 0.006, -0.2026);
stalk3.rotation.set(deg(-5.1332), deg(0.0848), deg(-1.8915));
root.add(stalk3);
const cane3 = new THREE.Mesh(new THREE.CylinderGeometry(0.0436, 0.0671, 4.6918, 6), stalkOldMat);
cane3.name = 'cane';
cane3.position.set(0, 2.3459, 0);
stalk3.add(cane3);
const node13 = new THREE.Mesh(new THREE.CylinderGeometry(0.0734, 0.0773, 0.0328, 6, 1, true), nodeMat);
node13.name = 'node1';
node13.position.set(0, 0.5456, 0);
stalk3.add(node13);
const node23 = new THREE.Mesh(new THREE.CylinderGeometry(0.0703, 0.074, 0.0328, 6, 1, true), nodeMat);
node23.name = 'node2';
node23.position.set(0, 1.0911, 0);
stalk3.add(node23);
const node33 = new THREE.Mesh(new THREE.CylinderGeometry(0.0672, 0.0707, 0.0328, 6, 1, true), nodeMat);
node33.name = 'node3';
node33.position.set(0, 1.6367, 0);
stalk3.add(node33);
const node43 = new THREE.Mesh(new THREE.CylinderGeometry(0.0641, 0.0675, 0.0328, 6, 1, true), nodeMat);
node43.name = 'node4';
node43.position.set(0, 2.1822, 0);
stalk3.add(node43);
const node53 = new THREE.Mesh(new THREE.CylinderGeometry(0.061, 0.0642, 0.0328, 6, 1, true), nodeMat);
node53.name = 'node5';
node53.position.set(0, 2.7278, 0);
stalk3.add(node53);
const node63 = new THREE.Mesh(new THREE.CylinderGeometry(0.0578, 0.0609, 0.0328, 6, 1, true), nodeMat);
node63.name = 'node6';
node63.position.set(0, 3.2734, 0);
stalk3.add(node63);
const node73 = new THREE.Mesh(new THREE.CylinderGeometry(0.0547, 0.0576, 0.0328, 6, 1, true), nodeMat);
node73.name = 'node7';
node73.position.set(0, 3.8189, 0);
stalk3.add(node73);
const node83 = new THREE.Mesh(new THREE.CylinderGeometry(0.0516, 0.0543, 0.0328, 6, 1, true), nodeMat);
node83.name = 'node8';
node83.position.set(0, 4.3645, 0);
stalk3.add(node83);
const twig13 = new THREE.Mesh(new THREE.CylinderGeometry(0.0081, 0.0145, 0.4222, 4, 1, true), stalkOldMat);
twig13.name = 'twig1';
twig13.position.set(-0.0705, 4.4649, -0.1791);
twig13.rotation.set(deg(-60.0315), deg(-11.5855), deg(19.9194));
stalk3.add(twig13);
const leaf113 = new THREE.Mesh(octahedronGeo, leafMat);
leaf113.name = 'leaf1_1';
leaf113.position.set(-0.3217, 4.4887, -0.4192);
leaf113.rotation.set(deg(83.9949), deg(17.2416), deg(109.5401));
leaf113.scale.set(0.0562, 0.2008, 0.0121);
stalk3.add(leaf113);
const leaf123 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf123.name = 'leaf1_2';
leaf123.position.set(-0.2536, 4.4188, -0.5426);
leaf123.rotation.set(deg(62.3301), deg(15.8533), deg(152.481));
leaf123.scale.set(0.071, 0.2535, 0.0152);
stalk3.add(leaf123);
const leaf133 = new THREE.Mesh(octahedronGeo, leafMat);
leaf133.name = 'leaf1_3';
leaf133.position.set(-0.1375, 4.4427, -0.5346);
leaf133.rotation.set(deg(58.3197), deg(-0.5855), deg(-179.0513));
leaf133.scale.set(0.058, 0.2072, 0.0124);
stalk3.add(leaf133);
const leaf143 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf143.name = 'leaf1_4';
leaf143.position.set(-0.0354, 4.4507, -0.5131);
leaf143.rotation.set(deg(66.0285), deg(-15.4797), deg(-149.0252));
leaf143.scale.set(0.0596, 0.2128, 0.0128);
stalk3.add(leaf143);
const twig23 = new THREE.Mesh(new THREE.CylinderGeometry(0.0087, 0.0155, 0.4011, 4, 1, true), stalkOldMat);
twig23.name = 'twig2';
twig23.position.set(0.0356, 3.8332, 0.1794);
twig23.rotation.set(deg(64.1803), deg(-6.4722), deg(-10.3046));
stalk3.add(twig23);
const leaf213 = new THREE.Mesh(octahedronGeo, leafMat);
leaf213.name = 'leaf2_1';
leaf213.position.set(0.252, 3.8399, 0.4107);
leaf213.rotation.set(deg(96.3424), deg(-21.0095), deg(-72.7754));
leaf213.scale.set(0.0568, 0.2027, 0.0122);
stalk3.add(leaf213);
const leaf223 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf223.name = 'leaf2_2';
leaf223.position.set(0.1586, 3.76, 0.5025);
leaf223.rotation.set(deg(128.3214), deg(-20.6311), deg(-24.0278));
leaf223.scale.set(0.0641, 0.229, 0.0137);
stalk3.add(leaf223);
const leaf233 = new THREE.Mesh(octahedronGeo, leafMat);
leaf233.name = 'leaf2_3';
leaf233.position.set(0.0725, 3.8064, 0.5945);
leaf233.rotation.set(deg(114.8369), deg(-0.1193), deg(-0.2577));
leaf233.scale.set(0.0727, 0.2597, 0.0156);
stalk3.add(leaf233);
const leaf243 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf243.name = 'leaf2_4';
leaf243.position.set(-0.0437, 3.7812, 0.4463);
leaf243.rotation.set(deg(119.3615), deg(32.7899), deg(43.9091));
leaf243.scale.set(0.0552, 0.1973, 0.0118);
stalk3.add(leaf243);
const twig33 = new THREE.Mesh(new THREE.CylinderGeometry(0.0093, 0.0165, 0.5284, 4, 1, true), stalkOldMat);
twig33.name = 'twig3';
twig33.position.set(-0.2409, 3.202, -0.0022);
twig33.rotation.set(deg(-0.4835), deg(-0.3126), deg(65.7687));
stalk3.add(twig33);
const leaf313 = new THREE.Mesh(octahedronGeo, leafMat);
leaf313.name = 'leaf3_1';
leaf313.position.set(-0.5616, 3.1421, 0.1526);
leaf313.rotation.set(deg(130.4197), deg(18.2429), deg(20.182));
leaf313.scale.set(0.0682, 0.2436, 0.0146);
stalk3.add(leaf313);
const leaf323 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf323.name = 'leaf3_2';
leaf323.position.set(-0.6759, 3.1782, 0.0225);
leaf323.rotation.set(deg(95.2965), deg(33.6458), deg(80.5011));
leaf323.scale.set(0.0662, 0.2364, 0.0142);
stalk3.add(leaf323);
const leaf333 = new THREE.Mesh(octahedronGeo, leafMat);
leaf333.name = 'leaf3_3';
leaf333.position.set(-0.6323, 3.1456, -0.0624);
leaf333.rotation.set(deg(69.8365), deg(41.855), deg(118.8253));
leaf333.scale.set(0.0646, 0.2306, 0.0138);
stalk3.add(leaf333);
const leaf343 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf343.name = 'leaf3_4';
leaf343.position.set(-0.5655, 3.1934, -0.1589);
leaf343.rotation.set(deg(59.6303), deg(15.3182), deg(155.7328));
leaf343.scale.set(0.0591, 0.2111, 0.0127);
stalk3.add(leaf343);
const crest13 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest13.name = 'crest1';
crest13.position.set(-0.0032, 4.5373, -0.113);
crest13.rotation.set(deg(36.2089), deg(1.3076), deg(179.0428));
crest13.scale.set(0.0536, 0.1915, 0.0115);
stalk3.add(crest13);
const crest23 = new THREE.Mesh(octahedronGeo, leafMat);
crest23.name = 'crest2';
crest23.position.set(0.1381, 4.5623, 0.0134);
crest23.rotation.set(deg(95.1654), deg(-42.7634), deg(-82.4162));
crest23.scale.set(0.0531, 0.1898, 0.0114);
stalk3.add(crest23);
const crest33 = new THREE.Mesh(octahedronGeo, leafMat);
crest33.name = 'crest3';
crest33.position.set(0.0156, 4.5901, 0.1268);
crest33.rotation.set(deg(128.315), deg(-4.3546), deg(-5.4888));
crest33.scale.set(0.0457, 0.1632, 0.0098);
stalk3.add(crest33);
const crest43 = new THREE.Mesh(octahedronGeo, leafMat);
crest43.name = 'crest4';
crest43.position.set(-0.1151, 4.6051, 0.0392);
crest43.rotation.set(deg(102.9534), deg(33.3451), deg(67.2934));
crest43.scale.set(0.0418, 0.1494, 0.009);
stalk3.add(crest43);
const stalk4 = new THREE.Group();
stalk4.name = 'stalk4';
stalk4.position.set(0.1835, 0.0081, 0.1596);
stalk4.rotation.set(deg(2.6328), deg(-0.1494), deg(-6.4951));
root.add(stalk4);
const cane4 = new THREE.Mesh(new THREE.CylinderGeometry(0.0435, 0.067, 3.6864, 6), stalkMat);
cane4.name = 'cane';
cane4.position.set(0, 1.8432, 0);
stalk4.add(cane4);
const node14 = new THREE.Mesh(new THREE.CylinderGeometry(0.0728, 0.0767, 0.0258, 6, 1, true), nodeMat);
node14.name = 'node1';
node14.position.set(0, 0.4851, 0);
stalk4.add(node14);
const node24 = new THREE.Mesh(new THREE.CylinderGeometry(0.0693, 0.073, 0.0258, 6, 1, true), nodeMat);
node24.name = 'node2';
node24.position.set(0, 0.9701, 0);
stalk4.add(node24);
const node34 = new THREE.Mesh(new THREE.CylinderGeometry(0.0658, 0.0693, 0.0258, 6, 1, true), nodeMat);
node34.name = 'node3';
node34.position.set(0, 1.4552, 0);
stalk4.add(node34);
const node44 = new THREE.Mesh(new THREE.CylinderGeometry(0.0623, 0.0656, 0.0258, 6, 1, true), nodeMat);
node44.name = 'node4';
node44.position.set(0, 1.9402, 0);
stalk4.add(node44);
const node54 = new THREE.Mesh(new THREE.CylinderGeometry(0.0588, 0.0619, 0.0258, 6, 1, true), nodeMat);
node54.name = 'node5';
node54.position.set(0, 2.4253, 0);
stalk4.add(node54);
const node64 = new THREE.Mesh(new THREE.CylinderGeometry(0.0553, 0.0582, 0.0258, 6, 1, true), nodeMat);
node64.name = 'node6';
node64.position.set(0, 2.9103, 0);
stalk4.add(node64);
const node74 = new THREE.Mesh(new THREE.CylinderGeometry(0.0517, 0.0545, 0.0258, 6, 1, true), nodeMat);
node74.name = 'node7';
node74.position.set(0, 3.3954, 0);
stalk4.add(node74);
const twig14 = new THREE.Mesh(new THREE.CylinderGeometry(0.0081, 0.0144, 0.4479, 4, 1, true), stalkMat);
twig14.name = 'twig1';
twig14.position.set(0.1622, 3.5655, 0.124);
twig14.rotation.set(deg(35.2949), deg(-16.5295), deg(-49.0823));
stalk4.add(twig14);
const leaf114 = new THREE.Mesh(octahedronGeo, leafMat);
leaf114.name = 'leaf1_1';
leaf114.position.set(0.4959, 3.5065, 0.197);
leaf114.rotation.set(deg(76.4662), deg(-38.1503), deg(-111.2888));
leaf114.scale.set(0.0655, 0.234, 0.014);
stalk4.add(leaf114);
const leaf124 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf124.name = 'leaf1_2';
leaf124.position.set(0.5379, 3.5247, 0.3204);
leaf124.rotation.set(deg(100.6905), deg(-28.7083), deg(-68.5449));
leaf124.scale.set(0.0732, 0.2616, 0.0157);
stalk4.add(leaf124);
const leaf134 = new THREE.Mesh(octahedronGeo, leafMat);
leaf134.name = 'leaf1_3';
leaf134.position.set(0.4357, 3.5542, 0.4221);
leaf134.rotation.set(deg(112.8215), deg(-13.9239), deg(-29.7628));
leaf134.scale.set(0.0647, 0.2309, 0.0139);
stalk4.add(leaf134);
const leaf144 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf144.name = 'leaf1_4';
leaf144.position.set(0.3224, 3.5015, 0.4082);
leaf144.rotation.set(deg(134.2234), deg(0.5078), deg(0.5217));
leaf144.scale.set(0.0626, 0.2235, 0.0134);
stalk4.add(leaf144);
const twig24 = new THREE.Mesh(new THREE.CylinderGeometry(0.0088, 0.0156, 0.3889, 4, 1, true), stalkMat);
twig24.name = 'twig2';
twig24.position.set(-0.1629, 2.9291, -0.0701);
twig24.rotation.set(deg(-21.6443), deg(-12.3574), deg(59.0477));
stalk4.add(twig24);
const leaf214 = new THREE.Mesh(octahedronGeo, leafMat);
leaf214.name = 'leaf2_1';
leaf214.position.set(-0.5048, 2.856, -0.0705);
leaf214.rotation.set(deg(106.1128), deg(35.4789), deg(63.5396));
leaf214.scale.set(0.0687, 0.2455, 0.0147);
stalk4.add(leaf214);
const leaf224 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf224.name = 'leaf2_2';
leaf224.position.set(-0.4938, 2.897, -0.1529);
leaf224.rotation.set(deg(87.1157), deg(33.489), deg(95.2173));
leaf224.scale.set(0.0566, 0.2022, 0.0121);
stalk4.add(leaf224);
const leaf234 = new THREE.Mesh(octahedronGeo, leafMat);
leaf234.name = 'leaf2_3';
leaf234.position.set(-0.498, 2.927, -0.2918);
leaf234.rotation.set(deg(76.7289), deg(14.6145), deg(133.0693));
leaf234.scale.set(0.0682, 0.2436, 0.0146);
stalk4.add(leaf234);
const leaf244 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf244.name = 'leaf2_4';
leaf244.position.set(-0.3737, 2.8605, -0.2842);
leaf244.rotation.set(deg(47.1364), deg(12.7441), deg(166.6293));
leaf244.scale.set(0.0594, 0.2123, 0.0127);
stalk4.add(leaf244);
const twig34 = new THREE.Mesh(new THREE.CylinderGeometry(0.0095, 0.0168, 0.363, 4, 1, true), stalkMat);
twig34.name = 'twig3';
twig34.position.set(0.119, 2.3295, -0.1151);
twig34.rotation.set(deg(-41.5709), deg(17.137), deg(-43.3016));
stalk4.add(twig34);
const leaf314 = new THREE.Mesh(octahedronGeo, leafMat);
leaf314.name = 'leaf3_1';
leaf314.position.set(0.2136, 2.3135, -0.4094);
leaf314.rotation.set(deg(63.6455), deg(3.4455), deg(173.0832));
leaf314.scale.set(0.0566, 0.2022, 0.0121);
stalk4.add(leaf314);
const leaf324 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf324.name = 'leaf3_2';
leaf324.position.set(0.3503, 2.2993, -0.4363);
leaf324.rotation.set(deg(68.6212), deg(-11.2367), deg(-153.5372));
leaf324.scale.set(0.072, 0.257, 0.0154);
stalk4.add(leaf324);
const leaf334 = new THREE.Mesh(octahedronGeo, leafMat);
leaf334.name = 'leaf3_3';
leaf334.position.set(0.4321, 2.3042, -0.3099);
leaf334.rotation.set(deg(79.7654), deg(-23.4004), deg(-114.4472));
leaf334.scale.set(0.0651, 0.2324, 0.0139);
stalk4.add(leaf334);
const leaf344 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf344.name = 'leaf3_4';
leaf344.position.set(0.4284, 2.2335, -0.2244);
leaf344.rotation.set(deg(91.565), deg(-41.7791), deg(-87.6518));
leaf344.scale.set(0.0716, 0.2557, 0.0153);
stalk4.add(leaf344);
const crest14 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest14.name = 'crest1';
crest14.position.set(0.113, 3.556, 0.04);
crest14.rotation.set(deg(109.9691), deg(-43.945), deg(-62.3636));
crest14.scale.set(0.0496, 0.1771, 0.0106);
stalk4.add(crest14);
const crest24 = new THREE.Mesh(octahedronGeo, leafMat);
crest24.name = 'crest2';
crest24.position.set(-0.0816, 3.5521, 0.0725);
crest24.rotation.set(deg(129.2649), deg(35.4631), deg(35.3643));
crest24.scale.set(0.0485, 0.1731, 0.0104);
stalk4.add(crest24);
const crest34 = new THREE.Mesh(octahedronGeo, leafMat);
crest34.name = 'crest3';
crest34.position.set(-0.0883, 3.5598, -0.0366);
crest34.rotation.set(deg(63.0632), deg(47.4989), deg(124.5754));
crest34.scale.set(0.0444, 0.1587, 0.0095);
stalk4.add(crest34);
const crest44 = new THREE.Mesh(octahedronGeo, leafMat);
crest44.name = 'crest4';
crest44.position.set(0.0582, 3.5463, -0.1161);
crest44.rotation.set(deg(46.0286), deg(-19.1945), deg(-161.181));
crest44.scale.set(0.0535, 0.1911, 0.0115);
stalk4.add(crest44);
const stalk5 = new THREE.Group();
stalk5.name = 'stalk5';
stalk5.position.set(-0.2669, 0.0106, -0.0764);
stalk5.rotation.set(deg(-5.2189), deg(-0.3872), deg(8.4802));
root.add(stalk5);
const cane5 = new THREE.Mesh(new THREE.CylinderGeometry(0.0399, 0.0615, 3.5955, 6), stalkMat);
cane5.name = 'cane';
cane5.position.set(0, 1.7978, 0);
stalk5.add(cane5);
const node15 = new THREE.Mesh(new THREE.CylinderGeometry(0.0668, 0.0703, 0.0252, 6, 1, true), nodeMat);
node15.name = 'node1';
node15.position.set(0, 0.4731, 0);
stalk5.add(node15);
const node25 = new THREE.Mesh(new THREE.CylinderGeometry(0.0636, 0.0669, 0.0252, 6, 1, true), nodeMat);
node25.name = 'node2';
node25.position.set(0, 0.9462, 0);
stalk5.add(node25);
const node35 = new THREE.Mesh(new THREE.CylinderGeometry(0.0604, 0.0636, 0.0252, 6, 1, true), nodeMat);
node35.name = 'node3';
node35.position.set(0, 1.4193, 0);
stalk5.add(node35);
const node45 = new THREE.Mesh(new THREE.CylinderGeometry(0.0571, 0.0602, 0.0252, 6, 1, true), nodeMat);
node45.name = 'node4';
node45.position.set(0, 1.8924, 0);
stalk5.add(node45);
const node55 = new THREE.Mesh(new THREE.CylinderGeometry(0.0539, 0.0568, 0.0252, 6, 1, true), nodeMat);
node55.name = 'node5';
node55.position.set(0, 2.3655, 0);
stalk5.add(node55);
const node65 = new THREE.Mesh(new THREE.CylinderGeometry(0.0507, 0.0534, 0.0252, 6, 1, true), nodeMat);
node65.name = 'node6';
node65.position.set(0, 2.8386, 0);
stalk5.add(node65);
const node75 = new THREE.Mesh(new THREE.CylinderGeometry(0.0475, 0.05, 0.0252, 6, 1, true), nodeMat);
node75.name = 'node7';
node75.position.set(0, 3.3116, 0);
stalk5.add(node75);
const twig15 = new THREE.Mesh(new THREE.CylinderGeometry(0.0074, 0.0132, 0.4372, 4, 1, true), stalkMat);
twig15.name = 'twig1';
twig15.position.set(-0.1292, 3.4437, -0.1518);
twig15.rotation.set(deg(-46.5262), deg(-16.9212), deg(38.1715));
stalk5.add(twig15);
const leaf115 = new THREE.Mesh(octahedronGeo, leafMat);
leaf115.name = 'leaf1_1';
leaf115.position.set(-0.4591, 3.4101, -0.2404);
leaf115.rotation.set(deg(99.9872), deg(28.8539), deg(69.9526));
leaf115.scale.set(0.0683, 0.2438, 0.0146);
stalk5.add(leaf115);
const leaf125 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf125.name = 'leaf1_2';
leaf125.position.set(-0.4374, 3.4479, -0.38);
leaf125.rotation.set(deg(80.2041), deg(21.7169), deg(115.0144));
leaf125.scale.set(0.0595, 0.2125, 0.0128);
stalk5.add(leaf125);
const leaf135 = new THREE.Mesh(octahedronGeo, leafMat);
leaf135.name = 'leaf1_3';
leaf135.position.set(-0.3384, 3.397, -0.4276);
leaf135.rotation.set(deg(52.1461), deg(21.5692), deg(154.685));
leaf135.scale.set(0.0563, 0.201, 0.0121);
stalk5.add(leaf135);
const leaf145 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf145.name = 'leaf1_4';
leaf145.position.set(-0.2452, 3.3492, -0.4771);
leaf145.rotation.set(deg(43.4543), deg(-3.1864), deg(-176.9854));
leaf145.scale.set(0.071, 0.2534, 0.0152);
stalk5.add(leaf145);
const twig25 = new THREE.Mesh(new THREE.CylinderGeometry(0.0081, 0.0143, 0.4364, 4, 1, true), stalkMat);
twig25.name = 'twig2';
twig25.position.set(0.1835, 2.8858, -0.077);
twig25.rotation.set(deg(-21.1589), deg(12.1452), deg(-59.3314));
stalk5.add(twig25);
const leaf215 = new THREE.Mesh(octahedronGeo, leafMat);
leaf215.name = 'leaf2_1';
leaf215.position.set(0.429, 2.8448, -0.3114);
leaf215.rotation.set(deg(54.3294), deg(-12.9416), deg(-162.6717));
leaf215.scale.set(0.0598, 0.2136, 0.0128);
stalk5.add(leaf215);
const leaf225 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf225.name = 'leaf2_2';
leaf225.position.set(0.5065, 2.7994, -0.2508);
leaf225.rotation.set(deg(59.4241), deg(-36.2429), deg(-134.9816));
leaf225.scale.set(0.0685, 0.2445, 0.0147);
stalk5.add(leaf225);
const leaf235 = new THREE.Mesh(octahedronGeo, leafMat);
leaf235.name = 'leaf2_3';
leaf235.position.set(0.5845, 2.8369, -0.1676);
leaf235.rotation.set(deg(87.7318), deg(-32.3395), deg(-94.2347));
leaf235.scale.set(0.0723, 0.2582, 0.0155);
stalk5.add(leaf235);
const leaf245 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf245.name = 'leaf2_4';
leaf245.position.set(0.5274, 2.8743, -0.0646);
leaf245.rotation.set(deg(104.9974), deg(-24.8949), deg(-57.5268));
leaf245.scale.set(0.0587, 0.2096, 0.0126);
stalk5.add(leaf245);
const twig35 = new THREE.Mesh(new THREE.CylinderGeometry(0.0087, 0.0154, 0.4059, 4, 1, true), stalkMat);
twig35.name = 'twig3';
twig35.position.set(0.0132, 2.2993, 0.1846);
twig35.rotation.set(deg(65.5608), deg(-2.4039), deg(-3.7321));
stalk5.add(twig35);
const leaf315 = new THREE.Mesh(octahedronGeo, leafMat);
leaf315.name = 'leaf3_1';
leaf315.position.set(0.1768, 2.2183, 0.4253);
leaf315.rotation.set(deg(109.6648), deg(-42.0738), deg(-61.9289));
leaf315.scale.set(0.0643, 0.2297, 0.0138);
stalk5.add(leaf315);
const leaf325 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf325.name = 'leaf3_2';
leaf325.position.set(0.1266, 2.2437, 0.5221);
leaf325.rotation.set(deg(122.4291), deg(-19.368), deg(-27.564));
leaf325.scale.set(0.0643, 0.2296, 0.0138);
stalk5.add(leaf325);
const leaf335 = new THREE.Mesh(octahedronGeo, leafMat);
leaf335.name = 'leaf3_3';
leaf335.position.set(-0.0265, 2.2084, 0.5221);
leaf335.rotation.set(deg(135.4765), deg(13.8617), deg(13.2586));
leaf335.scale.set(0.0666, 0.2377, 0.0143);
stalk5.add(leaf335);
const leaf345 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf345.name = 'leaf3_4';
leaf345.position.set(-0.0819, 2.2236, 0.4825);
leaf345.rotation.set(deg(126.2307), deg(29.4763), deg(33.8839));
leaf345.scale.set(0.0625, 0.2232, 0.0134);
stalk5.add(leaf345);
const crest15 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest15.name = 'crest1';
crest15.position.set(-0.1159, 3.4552, -0.0232);
crest15.rotation.set(deg(76.8595), deg(48.5699), deg(107.295));
crest15.scale.set(0.0514, 0.1834, 0.011);
stalk5.add(crest15);
const crest25 = new THREE.Mesh(octahedronGeo, leafMat);
crest25.name = 'crest2';
crest25.position.set(0.0213, 3.4643, -0.1174);
crest25.rotation.set(deg(42.7446), deg(-7.5816), deg(-173.0477));
crest25.scale.set(0.0496, 0.1773, 0.0106);
stalk5.add(crest25);
const crest35 = new THREE.Mesh(octahedronGeo, leafMat);
crest35.name = 'crest3';
crest35.position.set(0.1081, 3.4717, 0.0479);
crest35.rotation.set(deg(112.9803), deg(-41.3852), deg(-57.3222));
crest35.scale.set(0.0479, 0.1712, 0.0103);
stalk5.add(crest35);
const crest45 = new THREE.Mesh(octahedronGeo, leafMat);
crest45.name = 'crest4';
crest45.position.set(0.0143, 3.5014, 0.1329);
crest45.rotation.set(deg(124.9963), deg(-3.5278), deg(-5.0228));
crest45.scale.set(0.0458, 0.1634, 0.0098);
stalk5.add(crest45);
const stalk6 = new THREE.Group();
stalk6.name = 'stalk6';
stalk6.position.set(0.2291, 0.0128, -0.2062);
stalk6.rotation.set(deg(-9.0598), deg(0.74), deg(-9.3195));
root.add(stalk6);
const cane6 = new THREE.Mesh(new THREE.CylinderGeometry(0.0382, 0.0587, 4.6213, 6), stalkOldMat);
cane6.name = 'cane';
cane6.position.set(0, 2.3107, 0);
stalk6.add(cane6);
const node16 = new THREE.Mesh(new THREE.CylinderGeometry(0.0642, 0.0676, 0.0323, 6, 1, true), nodeMat);
node16.name = 'node1';
node16.position.set(0, 0.5374, 0);
stalk6.add(node16);
const node26 = new THREE.Mesh(new THREE.CylinderGeometry(0.0615, 0.0648, 0.0323, 6, 1, true), nodeMat);
node26.name = 'node2';
node26.position.set(0, 1.0747, 0);
stalk6.add(node26);
const node36 = new THREE.Mesh(new THREE.CylinderGeometry(0.0588, 0.0619, 0.0323, 6, 1, true), nodeMat);
node36.name = 'node3';
node36.position.set(0, 1.6121, 0);
stalk6.add(node36);
const node46 = new THREE.Mesh(new THREE.CylinderGeometry(0.0561, 0.059, 0.0323, 6, 1, true), nodeMat);
node46.name = 'node4';
node46.position.set(0, 2.1495, 0);
stalk6.add(node46);
const node56 = new THREE.Mesh(new THREE.CylinderGeometry(0.0533, 0.0562, 0.0323, 6, 1, true), nodeMat);
node56.name = 'node5';
node56.position.set(0, 2.6868, 0);
stalk6.add(node56);
const node66 = new THREE.Mesh(new THREE.CylinderGeometry(0.0506, 0.0533, 0.0323, 6, 1, true), nodeMat);
node66.name = 'node6';
node66.position.set(0, 3.2242, 0);
stalk6.add(node66);
const node76 = new THREE.Mesh(new THREE.CylinderGeometry(0.0479, 0.0504, 0.0323, 6, 1, true), nodeMat);
node76.name = 'node7';
node76.position.set(0, 3.7616, 0);
stalk6.add(node76);
const node84 = new THREE.Mesh(new THREE.CylinderGeometry(0.0452, 0.0475, 0.0323, 6, 1, true), nodeMat);
node84.name = 'node8';
node84.position.set(0, 4.2989, 0);
stalk6.add(node84);
const twig16 = new THREE.Mesh(new THREE.CylinderGeometry(0.0071, 0.0126, 0.5069, 4, 1, true), stalkOldMat);
twig16.name = 'twig1';
twig16.position.set(0.1386, 4.461, -0.1849);
twig16.rotation.set(deg(-49.5363), deg(16.4375), deg(-34.765));
stalk6.add(twig16);
const leaf116 = new THREE.Mesh(octahedronGeo, leafMat);
leaf116.name = 'leaf1_1';
leaf116.position.set(0.2447, 4.4458, -0.5297);
leaf116.rotation.set(deg(54.4036), deg(6.755), deg(170.6686));
leaf116.scale.set(0.0566, 0.202, 0.0121);
stalk6.add(leaf116);
const leaf126 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf126.name = 'leaf1_2';
leaf126.position.set(0.3502, 4.381, -0.528);
leaf126.rotation.set(deg(46.1868), deg(-17.7198), deg(-162.3989));
leaf126.scale.set(0.0709, 0.2534, 0.0152);
stalk6.add(leaf126);
const leaf136 = new THREE.Mesh(octahedronGeo, leafMat);
leaf136.name = 'leaf1_3';
leaf136.position.set(0.4647, 4.4517, -0.4971);
leaf136.rotation.set(deg(74.317), deg(-21.7153), deg(-127.1927));
leaf136.scale.set(0.0709, 0.2533, 0.0152);
stalk6.add(leaf136);
const leaf146 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf146.name = 'leaf1_4';
leaf146.position.set(0.4266, 4.4352, -0.362);
leaf146.rotation.set(deg(92.6331), deg(-40.8697), deg(-85.9797));
leaf146.scale.set(0.0554, 0.198, 0.0119);
stalk6.add(leaf146);
const twig26 = new THREE.Mesh(new THREE.CylinderGeometry(0.0076, 0.0135, 0.4006, 4, 1, true), stalkOldMat);
twig26.name = 'twig2';
twig26.position.set(0.0284, 3.8059, 0.1805);
twig26.rotation.set(deg(64.7642), deg(-5.1917), deg(-8.1781));
stalk6.add(twig26);
const leaf216 = new THREE.Mesh(octahedronGeo, leafMat);
leaf216.name = 'leaf2_1';
leaf216.position.set(0.2224, 3.7297, 0.4754);
leaf216.rotation.set(deg(114.1078), deg(-30.5832), deg(-48.668));
leaf216.scale.set(0.0718, 0.2563, 0.0154);
stalk6.add(leaf216);
const leaf226 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf226.name = 'leaf2_2';
leaf226.position.set(0.1527, 3.7298, 0.4851);
leaf226.rotation.set(deg(128.613), deg(-25.7489), deg(-28.5438));
leaf226.scale.set(0.0624, 0.2229, 0.0134);
stalk6.add(leaf226);
const leaf236 = new THREE.Mesh(octahedronGeo, leafMat);
leaf236.name = 'leaf2_3';
leaf236.position.set(0.0127, 3.7349, 0.5043);
leaf236.rotation.set(deg(134.314), deg(12.1161), deg(12.1328));
leaf236.scale.set(0.0601, 0.2145, 0.0129);
stalk6.add(leaf236);
const leaf246 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf246.name = 'leaf2_4';
leaf246.position.set(-0.0898, 3.7629, 0.5115);
leaf246.rotation.set(deg(113.1305), deg(20.9279), deg(39.9022));
leaf246.scale.set(0.0685, 0.2446, 0.0147);
stalk6.add(leaf246);
const twig36 = new THREE.Mesh(new THREE.CylinderGeometry(0.0082, 0.0145, 0.4163, 4, 1, true), stalkOldMat);
twig36.name = 'twig3';
twig36.position.set(-0.0941, 3.0903, -0.1649);
twig36.rotation.set(deg(-54.9772), deg(-14.7005), deg(27.8477));
stalk6.add(twig36);
const leaf316 = new THREE.Mesh(octahedronGeo, leafMat);
leaf316.name = 'leaf3_1';
leaf316.position.set(-0.3708, 3.0653, -0.3704);
leaf316.rotation.set(deg(82.7063), deg(29.739), deg(104.468));
leaf316.scale.set(0.0609, 0.2173, 0.013);
stalk6.add(leaf316);
const leaf326 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf326.name = 'leaf3_2';
leaf326.position.set(-0.3369, 3.0679, -0.4441);
leaf326.rotation.set(deg(70.7008), deg(23.272), deg(131.551));
leaf326.scale.set(0.0606, 0.2165, 0.013);
stalk6.add(leaf326);
const leaf336 = new THREE.Mesh(octahedronGeo, leafMat);
leaf336.name = 'leaf3_3';
leaf336.position.set(-0.231, 3.0558, -0.5521);
leaf336.rotation.set(deg(62.5258), deg(5.0873), deg(170.3226));
leaf336.scale.set(0.0717, 0.2562, 0.0154);
stalk6.add(leaf336);
const leaf346 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf346.name = 'leaf3_4';
leaf346.position.set(-0.1318, 3.0063, -0.4932);
leaf346.rotation.set(deg(47.1767), deg(-13.1919), deg(-166.1663));
leaf346.scale.set(0.0678, 0.242, 0.0145);
stalk6.add(leaf346);
const crest16 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest16.name = 'crest1';
crest16.position.set(0.0603, 4.481, -0.1163);
crest16.rotation.set(deg(46.4332), deg(-19.6591), deg(-160.5218));
crest16.scale.set(0.0538, 0.192, 0.0115);
stalk6.add(crest16);
const crest26 = new THREE.Mesh(octahedronGeo, leafMat);
crest26.name = 'crest2';
crest26.position.set(0.0992, 4.5137, 0.0558);
crest26.rotation.set(deg(114.8667), deg(-36.7817), deg(-52.2582));
crest26.scale.set(0.0439, 0.1567, 0.0094);
stalk6.add(crest26);
const crest36 = new THREE.Mesh(octahedronGeo, leafMat);
crest36.name = 'crest3';
crest36.position.set(-0.1112, 4.5276, 0.1045);
crest36.rotation.set(deg(112.8119), deg(22.4079), deg(42.1862));
crest36.scale.set(0.0501, 0.1791, 0.0107);
stalk6.add(crest36);
const crest46 = new THREE.Mesh(octahedronGeo, leafMat);
crest46.name = 'crest4';
crest46.position.set(-0.0656, 4.5188, -0.1248);
crest46.rotation.set(deg(57.2299), deg(15.895), deg(156.9523));
crest46.scale.set(0.0488, 0.1743, 0.0105);
stalk6.add(crest46);
const stalk7 = new THREE.Group();
stalk7.name = 'stalk7';
stalk7.position.set(-0.153, 0.01, 0.2992);
stalk7.rotation.set(deg(8.1995), deg(0.495), deg(6.8983));
root.add(stalk7);
const cane7 = new THREE.Mesh(new THREE.CylinderGeometry(0.0373, 0.0574, 4.5681, 6), stalkMat);
cane7.name = 'cane';
cane7.position.set(0, 2.2841, 0);
stalk7.add(cane7);
const node17 = new THREE.Mesh(new THREE.CylinderGeometry(0.0628, 0.0661, 0.032, 6, 1, true), nodeMat);
node17.name = 'node1';
node17.position.set(0, 0.5312, 0);
stalk7.add(node17);
const node27 = new THREE.Mesh(new THREE.CylinderGeometry(0.0602, 0.0633, 0.032, 6, 1, true), nodeMat);
node27.name = 'node2';
node27.position.set(0, 1.0623, 0);
stalk7.add(node27);
const node37 = new THREE.Mesh(new THREE.CylinderGeometry(0.0575, 0.0605, 0.032, 6, 1, true), nodeMat);
node37.name = 'node3';
node37.position.set(0, 1.5935, 0);
stalk7.add(node37);
const node47 = new THREE.Mesh(new THREE.CylinderGeometry(0.0548, 0.0577, 0.032, 6, 1, true), nodeMat);
node47.name = 'node4';
node47.position.set(0, 2.1247, 0);
stalk7.add(node47);
const node57 = new THREE.Mesh(new THREE.CylinderGeometry(0.0522, 0.0549, 0.032, 6, 1, true), nodeMat);
node57.name = 'node5';
node57.position.set(0, 2.6559, 0);
stalk7.add(node57);
const node67 = new THREE.Mesh(new THREE.CylinderGeometry(0.0495, 0.0521, 0.032, 6, 1, true), nodeMat);
node67.name = 'node6';
node67.position.set(0, 3.187, 0);
stalk7.add(node67);
const node77 = new THREE.Mesh(new THREE.CylinderGeometry(0.0468, 0.0493, 0.032, 6, 1, true), nodeMat);
node77.name = 'node7';
node77.position.set(0, 3.7182, 0);
stalk7.add(node77);
const node85 = new THREE.Mesh(new THREE.CylinderGeometry(0.0442, 0.0465, 0.032, 6, 1, true), nodeMat);
node85.name = 'node8';
node85.position.set(0, 4.2494, 0);
stalk7.add(node85);
const twig17 = new THREE.Mesh(new THREE.CylinderGeometry(0.007, 0.0124, 0.4497, 4, 1, true), stalkMat);
twig17.name = 'twig1';
twig17.position.set(-0.1033, 4.3505, 0.1771);
twig17.rotation.set(deg(54.5919), deg(14.8679), deg(28.379));
stalk7.add(twig17);
const leaf117 = new THREE.Mesh(octahedronGeo, leafMat);
leaf117.name = 'leaf1_1';
leaf117.position.set(-0.084, 4.3519, 0.5217);
leaf117.rotation.set(deg(109.4549), deg(-13.7039), deg(-33.8487));
leaf117.scale.set(0.0634, 0.2266, 0.0136);
stalk7.add(leaf117);
const leaf127 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf127.name = 'leaf1_2';
leaf127.position.set(-0.2352, 4.3116, 0.5074);
leaf127.rotation.set(deg(129.603), deg(6.7831), deg(8.1245));
leaf127.scale.set(0.057, 0.2037, 0.0122);
stalk7.add(leaf127);
const leaf137 = new THREE.Mesh(octahedronGeo, leafMat);
leaf137.name = 'leaf1_3';
leaf137.position.set(-0.3435, 4.2768, 0.4398);
leaf137.rotation.set(deg(118.5838), deg(37.4483), deg(48.1375));
leaf137.scale.set(0.0648, 0.2315, 0.0139);
stalk7.add(leaf137);
const leaf147 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf147.name = 'leaf1_4';
leaf147.position.set(-0.396, 4.2592, 0.365);
leaf147.rotation.set(deg(93.1364), deg(43.9757), deg(85.4878));
leaf147.scale.set(0.0739, 0.264, 0.0158);
stalk7.add(leaf147);
const twig27 = new THREE.Mesh(new THREE.CylinderGeometry(0.0074, 0.0132, 0.4797, 4, 1, true), stalkMat);
twig27.name = 'twig2';
twig27.position.set(0.0273, 3.78, -0.217);
twig27.rotation.set(deg(-65.1237), deg(4.185), deg(-6.5493));
stalk7.add(twig27);
const leaf217 = new THREE.Mesh(octahedronGeo, leafMat);
leaf217.name = 'leaf2_1';
leaf217.position.set(-0.0852, 3.7265, -0.5853);
leaf217.rotation.set(deg(61.549), deg(23.7601), deg(143.3662));
leaf217.scale.set(0.0717, 0.2559, 0.0154);
stalk7.add(leaf217);
const leaf227 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf227.name = 'leaf2_2';
leaf227.position.set(0.0513, 3.7059, -0.5913);
leaf227.rotation.set(deg(42.3607), deg(0.8805), deg(179.1972));
leaf227.scale.set(0.0654, 0.2334, 0.014);
stalk7.add(leaf227);
const leaf237 = new THREE.Mesh(octahedronGeo, leafMat);
leaf237.name = 'leaf2_3';
leaf237.position.set(0.1414, 3.7364, -0.5592);
leaf237.rotation.set(deg(52.5403), deg(-22.8851), deg(-153.0902));
leaf237.scale.set(0.0583, 0.2083, 0.0125);
stalk7.add(leaf237);
const leaf247 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf247.name = 'leaf2_4';
leaf247.position.set(0.2066, 3.7452, -0.5036);
leaf247.rotation.set(deg(71.6504), deg(-34.524), deg(-120.3373));
leaf247.scale.set(0.0599, 0.2138, 0.0128);
stalk7.add(leaf247);
const twig37 = new THREE.Mesh(new THREE.CylinderGeometry(0.008, 0.0143, 0.5011, 4, 1, true), stalkMat);
twig37.name = 'twig3';
twig37.position.set(0.22, 3.0291, 0.0617);
twig37.rotation.set(deg(14.4306), deg(-8.819), deg(-62.6911));
stalk7.add(twig37);
const leaf317 = new THREE.Mesh(octahedronGeo, leafMat);
leaf317.name = 'leaf3_1';
leaf317.position.set(0.5567, 2.9746, -0.0121);
leaf317.rotation.set(deg(56.3163), deg(-25.5418), deg(-147.1007));
leaf317.scale.set(0.0667, 0.2382, 0.0143);
stalk7.add(leaf317);
const leaf327 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf327.name = 'leaf3_2';
leaf327.position.set(0.6298, 3.0624, 0.1364);
leaf327.rotation.set(deg(91.4287), deg(-20.0261), deg(-85.8344));
leaf327.scale.set(0.0567, 0.2025, 0.0122);
stalk7.add(leaf327);
const leaf337 = new THREE.Mesh(octahedronGeo, leafMat);
leaf337.name = 'leaf3_3';
leaf337.position.set(0.5677, 2.9841, 0.216);
leaf337.rotation.set(deg(118.8195), deg(-33.615), deg(-45.1771));
leaf337.scale.set(0.0605, 0.2162, 0.013);
stalk7.add(leaf337);
const leaf347 = new THREE.Mesh(octahedronGeo, leafLightMat);
leaf347.name = 'leaf3_4';
leaf347.position.set(0.5115, 2.9676, 0.2981);
leaf347.rotation.set(deg(128.8451), deg(-14.4074), deg(-17.1692));
leaf347.scale.set(0.0701, 0.2503, 0.015);
stalk7.add(leaf347);
const crest17 = new THREE.Mesh(octahedronGeo, leafLightMat);
crest17.name = 'crest1';
crest17.position.set(-0.0778, 4.476, 0.0918);
crest17.rotation.set(deg(120.2809), deg(23.1283), deg(33.9286));
crest17.scale.set(0.0424, 0.1515, 0.0091);
stalk7.add(crest17);
const crest27 = new THREE.Mesh(octahedronGeo, leafMat);
crest27.name = 'crest2';
crest27.position.set(-0.096, 4.462, -0.1143);
crest27.rotation.set(deg(61.4375), deg(21.8794), deg(145.606));
crest27.scale.set(0.0513, 0.1831, 0.011);
stalk7.add(crest27);
const crest37 = new THREE.Mesh(octahedronGeo, leafMat);
crest37.name = 'crest3';
crest37.position.set(0.0279, 4.4453, -0.1384);
crest37.rotation.set(deg(49.5409), deg(-7.4633), deg(-171.3403));
crest37.scale.set(0.0524, 0.1871, 0.0112);
stalk7.add(crest37);
const crest47 = new THREE.Mesh(octahedronGeo, leafMat);
crest47.name = 'crest4';
crest47.position.set(0.1436, 4.4659, 0.0415);
crest47.rotation.set(deg(100.7567), deg(-32.8392), deg(-70.6931));
crest47.scale.set(0.0507, 0.1811, 0.0109);
stalk7.add(crest47);
const shoot1 = new THREE.Mesh(new THREE.ConeGeometry(0.0715, 0.2924, 6), shootMat);
shoot1.name = 'shoot1';
shoot1.position.set(0.0517, 0.157, 0.4703);
shoot1.rotation.set(deg(7.7359), deg(118.3565), deg(3.6804));
root.add(shoot1);
const shoot2 = new THREE.Mesh(new THREE.ConeGeometry(0.0715, 0.3815, 6), shootMat);
shoot2.name = 'shoot2';
shoot2.position.set(-0.3446, 0.196, -0.2881);
shoot2.rotation.set(deg(-4.891), deg(8.5756), deg(2.8883));
root.add(shoot2);
const shoot3 = new THREE.Mesh(new THREE.ConeGeometry(0.0715, 0.2405, 6), shootMat);
shoot3.name = 'shoot3';
shoot3.position.set(0.3115, 0.1238, -0.3607);
shoot3.rotation.set(deg(1.6945), deg(284.4767), deg(-1.6234));
root.add(shoot3);
root.traverse((o) => {
if (o.isMesh) {
o.castShadow = true;
o.receiveShadow = true;
}
});
return root;
}
export default createBambooCluster;
Avaliações e comentários
0 comentário
Nenhum comentário ainda. Conte como você usou este modelo ou o que poderia melhorar.
Modelos relacionados
Mesma categoria ou tags parecidas









