and \u003CTresStereoCamera /> but nothing works. I either get a blank black screen or a bluescreen with a line through it (when using the default example from the TresJS starter repo)\r\n\r\nThis is after being able to use \u003CTresPerspectiveCamera /> without any issues and just swapping out the camera used. Would appreciate any ideas or info how to implement this thanks.\n\n### Suggested solution\n\nImplement Array or StereoCamera as Tres JS native component preconfigured to work with VR.\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[2852,2855],{"name":2853,"color":2854},"investigation","D03599",{"name":2856,"color":2857},"waiting for author","B145BC",102,"Tresjs","XR","open","VR Style Camera (Aframe implementation or ArrayCamera/StereoCamera from three","2024-08-21T10:45:26Z","https://github.com/Tresjs/XR/issues/102",0.71511346,{"description":2867,"labels":2868,"number":2881,"owner":2859,"repository":2882,"state":2861,"title":2883,"updated_at":2884,"url":2885,"score":2886},"### Description\n\nHow to use vue-cli\n\n### Suggested solution\n\nHow to use vue-cli\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[2869,2872,2875,2878],{"name":2870,"color":2871},"bug","d73a4a",{"name":2873,"color":2874},"help wanted","008672",{"name":2876,"color":2877},"PR welcome","2D76B0",{"name":2879,"color":2880},"p2-edge-case","ABCC40",754,"tres","How to use vue-cli","2024-08-21T09:51:50Z","https://github.com/Tresjs/tres/issues/754",0.7317997,{"description":2888,"labels":2889,"number":2894,"owner":2859,"repository":2882,"state":2861,"title":2895,"updated_at":2896,"url":2897,"score":2898},"### Describe the bug\r\n\r\nAn object's `pointer-leave` event is fired more than once on a single \"leave\" if it is the descendant of another element that also defines a `pointer-leave`:\r\n\r\n```vue\r\n\u003CTresGroup @pointer-leave=\"() => {}\">\r\n \u003CTresMesh @pointer-leave=\"() => { console.log('Leave') }\">\r\n \u003CTresBoxGeometry :args=\"[1, 1, 1]\" />\r\n \u003CTresMeshToonMaterial color=\"#efefef\" />\r\n \u003C/TresMesh>\r\n\u003C/TresGroup>\r\n```\r\n\r\nSee also: `pointer-out` exhibits similar behavior.\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/tresjs-minimal-reproduction-qd169j?file=src%2Fcomponents%2FTheExperience.vue\r\n\r\n### Steps to reproduce\r\n\r\n* Open Stackblitz link in a browser.\r\n* Mouse over cube, then leave.\r\n* See browser console: multiple `pointer-leave` events will be logged.\r\n\r\n### System Info\r\n\r\n_No response_\r\n\r\n### Used Package Manager\r\n\r\nnpm\r\n\r\n### Code of Conduct\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://tresjs.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.\r\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[2890,2891],{"name":2870,"color":2871},{"name":2892,"color":2893},"p3-minor-bug","F28C37",801,"`pointer-{leave,out}` fired multiple times on single \"leave\"","2025-01-02T17:17:01Z","https://github.com/Tresjs/tres/issues/801",0.7325875,{"description":2900,"labels":2901,"number":2902,"owner":2859,"repository":2903,"state":2861,"title":2904,"updated_at":2905,"url":2906,"score":2907},"### Describe the bug\n\n\u003Cimg width=\"1891\" alt=\"Screenshot 2024-05-01 at 03 05 13\" src=\"https://github.com/Tresjs/cientos/assets/20469369/984e83e7-5a78-4f6e-843c-268498a291e4\">\r\n\n\n### Reproduction\n\nhttps://cientos.tresjs.org/guide/staging/environment.html\n\n### Steps to reproduce\n\n* Visit: https://cientos.tresjs.org/guide/staging/environment.html\r\n* See first demo – stays at 'Loading ... 0%'\n\n### System Info\n\n```shell\nTested in latest FF on Mac\n```\n\n\n### Used Package Manager\n\nnpm\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/cientos/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/cientos/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://cientos.tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/Tresjs/cientos/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],391,"cientos","Docs: guide/staging/environment demo doesn't load","2024-05-01T01:22:38Z","https://github.com/Tresjs/cientos/issues/391",0.7354345,{"description":2909,"labels":2910,"number":2911,"owner":2859,"repository":2882,"state":2912,"title":2913,"updated_at":2914,"url":2915,"score":2916},"### Description\r\n\r\nBased on https://github.com/orgs/Tresjs/discussions/321\r\n\r\nAs a plugin author, I will like to have a reactive state with the following characteristics:\r\n\r\n- Performant, (use of `shallowRef` where needed)\r\n- read-only\r\n- Strictly Typed\r\n- Reduce side effects on watchers\r\n- Needs to work on cientos and the rest of ecosystem via `provide/inject` \r\n\r\n### Suggested solution\r\n\r\n| Name | Type | Requirement | Details |\r\n| ---------------------------------- | -------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\r\n| scene | readonly, shallowRef | essential | |\r\n| cameras | readonly, shallowRef | essential | userData.TRES_IS_ACTIVE_CAMERA = true\u003Cbr>const cameras = shallowRef([]) return { cameras: readonly(cameras)} |\r\n| camera | computed, readonly | essential | |\r\n| pushCamera(newCamera: Camera, setActive: boolean) | function | essential | cameras should be watched and removed from the cameras array if they got removed from the scene |\r\n| removeCamera(camera: Camera) | function | essential ||\r\n| setCamera(cameraId string) | function | essential ||\r\n| renderer | readonly, shallowRef | essential | setRenderer(renderer: Renderer)\u003Cbr>maybe only callable once? |\r\n| setRenderer(renderer: Renderer) | function | essential ||\r\n| sizes (height, width, aspectRatio) | readonly | handy | sizes: {\u003Cbr> height: Ref\u003Cnumber>\u003Cbr> width: Ref\u003Cnumber>\u003Cbr> aspectRatio: Computed\u003Cnumber>\u003Cbr>} |\r\n\r\n### Alternative\r\n\r\n_No response_\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Validations\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://tresjs.org/guide).\r\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.",[],331,"closed","New and better state context provider","2023-07-29T08:58:56Z","https://github.com/Tresjs/tres/issues/331",0.6927352,{"description":2918,"labels":2919,"number":2929,"owner":2859,"repository":2882,"state":2912,"title":2930,"updated_at":2931,"url":2932,"score":2933},"Sometimes previews fail for example with StackBlitz on mobile. \r\n\r\nBut we can use [vitepress-plugin-sandpack](https://github.com/jerrywu001/vitepress-plugin-sandpack) instead. It's a [vitepress plugin](https://vitepress-sandbox.js-bridge.com/get-started/introduction.html), and the syntax is concise, use the MD syntax directly.\r\n\r\n**Setup Steps**\r\nhttps://vitepress-sandbox.js-bridge.com/custom-usage/custom.html\r\n\r\n_**and also support**_ [Use snippets](https://vitepress-sandbox.js-bridge.com/basic-usage/snippets.html)\r\n\r\n**Online demo**:\r\nhttps://vitepress-sandbox.js-bridge.com/vite-templates/vite-vue-ts.html\r\n\r\n\r\n\r\n",[2920,2923,2926],{"name":2921,"color":2922},"docs","0075ca",{"name":2924,"color":2925},"dx","1576AD",{"name":2927,"color":2928},"examples","8F2282",261,"May be we could use vitepress-plugin-sandpack instead","2023-12-13T09:18:46Z","https://github.com/Tresjs/tres/issues/261",0.70058966,{"description":2935,"labels":2936,"number":2937,"owner":2859,"repository":2882,"state":2912,"title":2938,"updated_at":2939,"url":2940,"score":2941},"### Describe the bug\n\nI was trying to load an OBJ file and get the geometry out to make it a TresLine instead of TresMesh, but it kept failed. And every BufferGeometry I've tried has failed the same thing, including empty new one (`new BufferGeometry()`).\r\n\r\n```\r\nUncaught (in promise) TypeError: Spread syntax requires ...iterable[Symbol.iterator] to be a function\r\n at patchProp (chunk-JZH6BBMB.js:1084:11)\r\n at mountElement (chunk-BVQHDTV7.js:6605:11)\r\n at processElement (chunk-BVQHDTV7.js:6552:7)\r\n at patch (chunk-BVQHDTV7.js:6424:11)\r\n at mountChildren (chunk-BVQHDTV7.js:6680:7)\r\n at mountElement (chunk-BVQHDTV7.js:6587:7)\r\n at processElement (chunk-BVQHDTV7.js:6552:7)\r\n at patch (chunk-BVQHDTV7.js:6424:11)\r\n at mountChildren (chunk-BVQHDTV7.js:6680:7)\r\n at processFragment (chunk-BVQHDTV7.js:6897:7)\r\n```\r\n\r\nI could bypass this by changing the nodeOps part of compiled tres.js file, by wrapping the setAttribute call in patchProps method with try-catch, and it seems to work. But it feels kinda hacky and I am assuming there would be some data lost during this process.\r\n\r\n\u003Cimg width=\"1604\" alt=\"스크린샷 2023-08-11 오후 11 01 59\" src=\"https://github.com/Tresjs/tres/assets/7546436/4c959416-d366-43fe-94e3-bb005d2a5ec4\">\r\n\r\n```ts\r\npatchProp(node, prop, _prevValue, nextValue) {\r\n if (node) {\r\n let root = node\r\n let key = prop\r\n let finalKey = kebabToCamel(key)\r\n let target = root?.[finalKey]\r\n\r\n if (root.type === 'BufferGeometry') {\r\n if (key === 'args') return\r\n try { // added to bypass error\r\n root.setAttribute(\r\n kebabToCamel(key),\r\n new BufferAttribute(...(nextValue as ConstructorParameters\u003Ctypeof BufferAttribute>)),\r\n )\r\n } catch {} // added to bypass error\r\n return\r\n }\r\n// ...\r\n```\r\n\r\nhttps://github.com/Tresjs/tres/blob/211c3e172726a4cb339a02333ac596fcf3bb7793/src/core/nodeOps.ts#L187C7-L187C7\n\n### Reproduction\n\nhttps://stackblitz.com/edit/tresjs-basic-yrhocm?file=src%2Fcomponents%2FTheExperience.vue\n\n### Steps to reproduce\n\n1. Create a TresCanvas and include a TresMesh or any other component that utilises a geometry.\r\n2. Create a BufferGeometry in `\u003Cscript>` section. (ex. `const geometry = new BufferGeometry()`)\r\n3. Refer to the BufferGeometry with `\u003Cprimitive :object=\"geometry\">` tag.\r\n4. Run the code.\n\n### System Info\n\n```shell\nSystem:\r\n OS: macOS 14.0\r\n CPU: (10) arm64 Apple M1 Max\r\n Memory: 114.36 MB / 32.00 GB\r\n Shell: 5.9 - /bin/zsh\r\nBinaries:\r\n Node: 18.14.0 - ~/.nvm/versions/node/v18.14.0/bin/node\r\n npm: 9.3.1 - ~/.nvm/versions/node/v18.14.0/bin/npm\r\nBrowsers:\r\n Safari: 17.0\r\nnpmPackages:\r\n @tresjs/cientos: ^3.0.1 => 3.0.1\r\n @tresjs/nuxt: ^1.1.3 => 1.1.3\r\n\r\nNote: I also have ran this on Firefox (116.0.2) and Arc (Version 1.3.0 (40706) / Chromium Engine Version 115.0.5790.170)\n```\n\n\n### Used Package Manager\n\nnpm\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],363,"BufferGeometry as \u003Cprimitive> component throws an error","2024-07-17T09:43:31Z","https://github.com/Tresjs/tres/issues/363",0.71124786,{"description":2943,"labels":2944,"number":2947,"owner":2859,"repository":2882,"state":2912,"title":2948,"updated_at":2949,"url":2950,"score":2951},"### Describe the bug\n\n\"Hello, I have two questions:\r\n\r\n1.In the custom rendering, it seems that Vue's unmount hooks, 'onUnmounted' and 'onBeforeUnmount', are not working. I'm using 'onLoop', and when I navigate to another page and then return, it creates a new 'onLoop' which runs alongside the previous one, including the 'onLoop' inside 'useFBO'. Currently, I can only unmount them by using 'onLoop.off' at the root canvas component.\r\n2.I am using version 3.5.1, and I've noticed significant frame drops with touch and other events. I'm not sure if this has been optimized in newer versions.\r\n3.I encounter a problem when using 'Tres' on two different pages. When I navigate from page 1 with 'tres' to page 2 with 'tres', nothing is displayed. However, if I go from page 1 with 'tres' to page 3 without 'tres', and then to page 2 with 'tres', this problem does not occur.\"\r\n\n\n### Reproduction\n\nhttps://github.com/zhangyijie0214/nuxt-tres-test\n\n### Steps to reproduce\n\nnpm install\r\nnpm run dev\n\n### System Info\n\n_No response_\n\n### Used Package Manager\n\nnpm\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[2945,2946],{"name":2870,"color":2871},{"name":2856,"color":2857},475,"Routing Jump - Problem Occurring","2024-02-18T01:59:58Z","https://github.com/Tresjs/tres/issues/475",0.71422666,{"description":2953,"labels":2954,"number":2961,"owner":2859,"repository":2882,"state":2912,"title":2962,"updated_at":2963,"url":2964,"score":2965},"### Describe the bug\n\nI'm trying to `inject` a variable inside a component in a `TresCanvas`, but it's always `undefined`.\r\n\r\nIn the example i log the variable provided by the first component but in the `SecondTresjs` component, the variable is `undefined`\r\n\r\nAm i doing something wrong? I cannot find anything in the docs about the context.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/vitejs-vite-gtrfxh?file=src%2Fcomponents%2FFirstTresjs.vue\n\n### Steps to reproduce\n\n_No response_\n\n### System Info\n\n_No response_\n\n### Used Package Manager\n\nnpm\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[2955,2958],{"name":2956,"color":2957},"feature","c2e0c6",{"name":2959,"color":2960},"p3-significant","2C78E3",732,"Impossible to `inject` variable in canvas child component","2024-09-30T15:19:42Z","https://github.com/Tresjs/tres/issues/732",0.71513766,{"description":2967,"labels":2968,"number":2969,"owner":2859,"repository":2882,"state":2912,"title":2970,"updated_at":2971,"url":2972,"score":2973},"### Describe the bug\n\nThe english docs have a couple typos, missing whitespaces and in some section I thought we can phrase things a bit different. Hope my suggestions are alright\n\n### Reproduction\n\nhttps://docs.tresjs.org/\n\n### Steps to reproduce\n\nI already addressed most of the typos and enhanced the documentation in this PR: #\n\n### System Info\n\n_No response_\n\n### Used Package Manager\n\npnpm\n\n### Code of Conduct\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/tres/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/tres/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/tres/issues) that reports the same bug to avoid creating a duplicate.\n- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.",[],567,"Typos in docs","2024-03-08T10:34:57Z","https://github.com/Tresjs/tres/issues/567",0.7168437,["Reactive",2975],{},["Set"],["ShallowReactive",2978],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fYDj2pimwnJpmg4fhqmtYKeadpB4XjKU3zzvGoZ9dCrQ":-1},"/Tresjs/cientos/357"]