` and I don't want to force users to wrap the component in a `\u003CSuspense />`.\r\n\r\nI looked for established patterns and found that `\u003CSmoke />` loads textures, but requires `\u003CSuspense />`. I think we can improve the DX by removing that requirement for users *and* providing a standard-ish way for components to avoid `await`ing.\r\n\r\n### Validations\r\n\r\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/cientos/blob/main/CODE_OF_CONDUCT.md)\r\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/cientos/blob/main/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://cientos.tresjs.org/guide).\r\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.",[2867,2870,2873],{"name":2868,"color":2869},"good first issue","7057ff",{"name":2871,"color":2872},"help wanted","008672",{"name":2874,"color":2875},"p3-significant","2C78E3",264,"cientos","Components with textures shouldn't require `\u003CSuspense>`","2024-11-25T09:29:04Z","https://github.com/Tresjs/cientos/issues/264",0.7016491,{"description":2883,"labels":2884,"number":2885,"owner":2857,"repository":2886,"state":2859,"title":2887,"updated_at":2888,"url":2889,"score":2890},"## Bug description\r\n\r\nAll controls created using `useControls` are added to all instances of `\u003CTresLeches />` even if they're in separate files.\r\n\r\n## Expected behavior\r\n\r\nAllow multiple, separate instances of Leches. Don't share state across multiple, separate files.\r\n\r\n## Reproduction\r\n[StackBlitz](https://stackblitz.com/edit/tresjs-basic-jmjdqy?file=src%2Fcomponents%2FTheExperience.vue)\r\n\r\n## Solution?\r\n\r\nMaybe create and return a unique controls instance from `useControls` that closes over the current controls state.\r\n\r\n```\r\nconst controls = useControls({\r\n wireframe: false,\r\n})\r\n\r\ncontrols.useControls( /* ... add more controls to this instance */ )\r\n```\r\n\r\nThen use like\r\n\r\n```\r\n\u003CTresLeches :controls=\"controls\" />\r\n```\r\n\r\n## Screenshot\r\n\r\n\u003Cimg width=\"567\" alt=\"Screenshot 2024-02-23 at 19 56 28\" src=\"https://github.com/Tresjs/leches/assets/20469369/44cef606-cd01-49b4-a8d9-9dfdd3d0566c\">\r\n\r\n\r\n## Context\r\n\r\nWe use Leches for Cientos' docs and often have multiple separate examples of functionality in a given docs page. But we can't have multiple Leches menus on a given page without running into this bug.\r\n",[],98,"leches","Leches shares `useControls`; can't have multiple, distinct instances","2024-02-23T19:02:27Z","https://github.com/Tresjs/leches/issues/98",0.70433587,{"description":2892,"labels":2893,"number":2885,"owner":2857,"repository":2894,"state":2859,"title":2895,"updated_at":2896,"url":2897,"score":2890},"### Describe the bug\n\nI'm posting this here, as it seems to be related to the Nuxt module.\r\n\r\nI've already posted some more info here https://github.com/Tresjs/cientos/issues/369 and here https://github.com/orgs/Tresjs/discussions/642\r\n\r\nThe problem is that both `Levioso` and `MouseParallax` are not working as expected, while other stuff from `cientos` don't seem to have issues (in my case, 3d text is working).\r\n\r\nThe problem started with these two components not working only in development environment, but with the latest dependencies updates (probably caused by Nuxt), they don't work in the built production site too. (the problem with development is on a private project that I cannot share at the moment).\r\n\r\nThe issue with the production environment can be seen also on the linked repository, in the latest commits on the `main` branch. The latest working configuration is available at the `working` tag: https://github.com/stefanobartoletti/tresjs-playground/tree/working tag.\r\n\r\nA live demo is also available here https://tresjs-playground.vercel.app/3d-text\r\n\r\nIf more info is needed, please ask :)\r\n\n\n### Reproduction\n\nhttps://github.com/stefanobartoletti/tresjs-playground\n\n### Steps to reproduce\n\n- pnpm i\r\n- pnpm generate\r\n- pnpm preview\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.",[],"nuxt","`Levioso` and `MouseParallax` are not working as expected.","2024-05-17T09:28:20Z","https://github.com/Tresjs/nuxt/issues/98",{"description":2899,"labels":2900,"number":2907,"owner":2857,"repository":2858,"state":2859,"title":2908,"updated_at":2909,"url":2910,"score":2911},"### Describe the bug\n\na select is meant to swap between sets of objects in the scene.\r\nwhen the code has a comment on the first line of the template, objects are added to the scene, the old ones are not removed. \n\n### Reproduction\n\nhttps://stackblitz.com/edit/tresjs-basic-hmkhgf?file=src%2Fcomponents%2FDonut.vue\n\n### Steps to reproduce\n\nrun the stackblitz.\r\nchange the select to 'donuts 1', a second set of donuts is added to the scene.\r\n\r\ndelete the comment in the template (Donut.vue) and refresh the view\r\nthis time when switching using the select, the scene objects are changed, not added\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.",[2901,2904],{"name":2902,"color":2903},"p2-edge-case","ABCC40",{"name":2905,"color":2906},"has-workaround","AEA9C4",528,"comment on first line of templates affects rendering","2024-08-21T11:03:09Z","https://github.com/Tresjs/tres/issues/528",0.70538586,{"description":2913,"labels":2914,"number":2921,"owner":2857,"repository":2858,"state":2859,"title":2922,"updated_at":2923,"url":2924,"score":2925},"## Expected\r\n\r\nIn this `\u003Ctemplate />` ...\r\n\r\n```vue\r\n\u003Ctemplate>\r\n \u003CTresCanvas>\r\n \u003CTresMesh>\r\n ... \r\n \u003CMyMaterial :prop=\"myProp\" />\r\n \u003C/TresMesh>\r\n \u003C/TresCanvas>\r\n\u003C/template>\r\n```\r\n\r\n... if changing `:prop` changes the material `:key`:\r\n\r\n* the existing material should be removed from the parent.\r\n* the rerendered material should be attached to the parent.\r\n\r\n## Bug\r\n\r\n* The existing material is not removed from the parent.\r\n* The new material is not attached to the parent.\r\n\r\n### What happens instead\r\n\r\n* The existing material remains on the parent.\r\n* A new material is created.\r\n* The new material is not attached.\r\n\r\nChanging the `:prop` again leads to:\r\n\r\n* The new material is disposed.\r\n* Another new material is created.\r\n\r\n## Context\r\n\r\nWorking on updating [`MeshReflectionMaterial` from Cientos](https://github.com/Tresjs/cientos/tree/main/src/core/materials/meshReflectionMaterial). It's based on [this Drei component](https://github.com/pmndrs/drei/blob/master/src/core/MeshReflectorMaterial.tsx). \r\n\r\nBoth components use the `key` prop to force a rerender/recompile. [Drei](https://github.com/pmndrs/drei/blob/47d94d72f70ad23818b993f8b316c132ff04e146/src/core/MeshReflectorMaterial.tsx#L238) | [Cientos](https://github.com/Tresjs/cientos/blob/55ca2bfd4f078ec4633fab2dc40b146adbfac2fd/src/core/materials/meshReflectionMaterial/index.vue#L292)\r\n\r\nUsing the `key` to force rerendering/recompiling currently doesn't work in the Cientos component.\r\n\r\nRerendering/recompiling the material's shader is required here for full reactivity.\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/tresjs-basic-a7wxyh?file=src%2Fcomponents%2FTheExperience.vue\r\n\r\n### Steps to reproduce\r\n\r\nSee Stackblitz.\r\n\r\n### System Info\r\n\r\n```shell\r\nall platforms\r\n```\r\n\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.",[2915,2918],{"name":2916,"color":2917},"pending-triage","97A4FE",{"name":2919,"color":2920},"p2-to-be-discussed","97C1B1",615,"Changing a `\u003CMaterial />`'s `key` prop doesn't attach new material, remove old one","2024-04-17T09:28:14Z","https://github.com/Tresjs/tres/issues/615",0.71318525,{"description":2927,"labels":2928,"number":2932,"owner":2857,"repository":2858,"state":2933,"title":2934,"updated_at":2935,"url":2936,"score":2937},"**Describe the bug**\r\nWhen I use such as `:position-y` to set props, it not works. `position-y` will be transformed to `positionY`.\r\n\r\n**Reproduction**\r\n\r\n\r\n**Steps**\r\nSteps to reproduce the behavior:\r\n1. set vector props just like v1 \r\n2. see the object properties\r\n\r\n**Expected behavior**\r\nvector props set correctly\r\n\r\n**Screenshots**\r\n\r\n\r\n\r\n**System Info**\r\n\r\n\r\n\r\n**Additional context**\r\n \r\n",[2929],{"name":2930,"color":2931},"bug","d73a4a",198,"closed","vector props can't set correctly","2023-04-12T17:58:08Z","https://github.com/Tresjs/tres/issues/198",0.6026627,{"description":2939,"labels":2940,"number":2945,"owner":2857,"repository":2858,"state":2933,"title":2946,"updated_at":2947,"url":2948,"score":2949},"### Description\n\nAs a developer trying to respond to issues filed against the TresJS core, I would like to have a more significant portion of /src/core/nodeOps.ts covered by unit tests.\r\n\r\nThis will allow us to respond more quickly to issues filed against the core, and to modify the core with more confidence and fewer regressions.\r\n\r\nHere's where `pnpm coverage` puts us currently.\r\n\r\n```\r\nFile | % Stmts | % Branch | % Funcs | % Lines |\r\n nodeOps.ts | 48.49 | 37.14 | 26.66 | 48.49 |\r\n```\n\n### Suggested solution\n\nImprove test coverage of core functionality.\r\n\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.",[2941,2944],{"name":2942,"color":2943},"test","2A6996",{"name":2874,"color":2875},631,"Better test coverage for core","2024-04-26T21:14:14Z","https://github.com/Tresjs/tres/issues/631",0.60397214,{"description":2951,"labels":2952,"number":2953,"owner":2857,"repository":2877,"state":2933,"title":2954,"updated_at":2955,"url":2956,"score":2957},"### Describe the bug\n\nAfter setting up a Nuxt 3 project, installing the tres.js package, and adding the @tresjs/cientos package, I noticed that certain functionalities of @tresjs/cientos components were not working as expected. To address this, I made modifications to my nuxt.config.ts file as follows:\r\n```\r\nexport default defineNuxtConfig({\r\n modules: [\"@tresjs/nuxt\"],\r\n build: {\r\n transpile: ['@tresjs/cientos'],\r\n },\r\n})\r\n```\r\nDuring the development process, everything worked smoothly. \r\n\r\nHowever, upon executing the npm run build command, \r\nI observed that the auto-rotate feature of OrbitControls, MouseParallax component, Levioso component, animations within useGLTF, and the Html component were no longer functioning. \r\nImportantly, there were no error messages or warnings in the browser console.\r\n\r\nI have attempted to modify the project by setting ssr: false and removing any @tresjs/cientos-related configurations from nuxt.config.ts before recompiling. However, the issue persists regardless of whether I use npm run generate or npm run build.\r\n\r\nI kindly request assistance in resolving this issue. Your guidance on how to address or workaround this problem would be greatly appreciated.\r\n\r\nThank you for your time and attention to this matter.\n\n### Reproduction\n\nhttps://github.com/WangShuan/nuxt-tres\n\n### Steps to reproduce\n\n1. Run the following commands:\r\n```\r\ngit clone https://github.com/WangShuan/nuxt-tres\r\ncd nuxt-tres\r\nnpm i\r\nnpm run dev\r\n```\r\n2. Open http://localhost:3000/ in your browser and observe the results.\r\n3. Terminate the development server (Ctrl+C) and build the project by `npm run build`\r\n4. Run the production build by `node .output/server/index.mjs`\r\n5. Open http://localhost:3000/ in your browser and observe the discrepancy in functionality compared to the development build.\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/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.",[],316,"@tresjs/cientos Components Not Functioning Properly After Nuxt 3 Build","2024-01-03T14:19:14Z","https://github.com/Tresjs/cientos/issues/316",0.6669705,{"description":2959,"labels":2960,"number":2967,"owner":2857,"repository":2858,"state":2933,"title":2968,"updated_at":2969,"url":2970,"score":2971},"### Describe the bug\n\nIt seems like Tres.js is no longer working in Firefox. Even on your official documentation all examles render just a black canvas.\r\nI would really like to use Tres.js in projects of my company, but I am unable to do this if Firefox is not supported or working :(\n\n### Reproduction\n\nhttps://tresjs.org/guide/\n\n### Steps to reproduce\n\nThe first and all other examples of this page.\n\n### System Info\n\n```shell\nWindows 10\r\nFirerfiox version 114.0.1 (64-Bit)\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.",[2961,2964],{"name":2962,"color":2963},"question","d876e3",{"name":2965,"color":2966},"waiting for author","B145BC",310,"Black Canvas in Firefox","2023-06-20T07:13:04Z","https://github.com/Tresjs/tres/issues/310",0.6770292,["Reactive",2973],{},["Set"],["ShallowReactive",2976],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fFyXyEPWkWJvutWFlpYLUKarrwk9X--tf1oOxnkNDNm4":-1},"/Tresjs/tres/669"]