`](https://drei.docs.pmnd.rs/staging/bounds#bounds) would be welcome.\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/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.",[2867,2870],{"name":2868,"color":2869},"feature","c2e0c6",{"name":2871,"color":2872},"p2-nice-to-have","D4C5F9",408,"Tresjs","cientos","open","\u003CBounds />","2024-12-17T18:07:35Z","https://github.com/Tresjs/cientos/issues/408",0.65253997,{"description":2882,"labels":2883,"number":2890,"owner":2874,"repository":2875,"state":2876,"title":2891,"updated_at":2892,"url":2893,"score":2894},"### Describe the bug\n\nThe examples under https://cientos.tresjs.org/guide/misc/html-component.html#html are currently broken\n\n### Reproduction\n\nhttps://cientos.tresjs.org/guide/misc/html-component.html#html\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/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.",[2884,2887],{"name":2885,"color":2886},"bug","d73a4a",{"name":2888,"color":2889},"docs","0075ca",368,"[Docs] - HTML examples are broken ","2024-07-18T08:07:36Z","https://github.com/Tresjs/cientos/issues/368",0.6681979,{"description":2896,"labels":2897,"number":2902,"owner":2874,"repository":2903,"state":2876,"title":2904,"updated_at":2905,"url":2906,"score":2907},"### Description\n\nThere is an update in the GLTF structure, now they can accept physics, babylonJs already have implemented it, but there's no example with Three.js. So this could be hard to do.\r\n\r\nAs we need to investigate if this is possible directly here in this pkg, if we need to make changes in the GLTF parser provided by Three.js (or if we can extend it) and the match them with the components provided by Rapier itself.\r\n\r\nPlease read the link below for more information.\n\n### Suggested solution\n\nMuch of the result will define the output. But reading about it, a new component could be a good solution.\r\n`import { PhysicalGLTF } from `...` (of course the name has to be defined).\r\n\r\nOther option could be adding extension to the existing `useGLTF` composable provided by `cientos`\r\n\r\nI would prefer not to modify cientos directly for this one. WDYT?\n\n### Alternative\n\nAny other alternative is welcome\n\n### Additional context\n\nPlease check: \r\n- https://www.youtube.com/watch?v=sstdRXYbZrI\r\n- https://github.com/eoineoineoin/glTF_Physics\r\n- https://github.com/eoineoineoin/glTF_Physics_Babylon\r\n- https://www.khronos.org/assets/uploads/developers/presentations/Physics_BOF.pdf\n\n### Validations\n\n- [X] I agree to follow this project's [Code of Conduct](https://github.com/Tresjs/rapier/blob/main/CODE_OF_CONDUCT.md)\n- [X] Read the [Contributing Guidelines](https://github.com/Tresjs/rapier/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://rapier.tresjs.org/guide).\n- [X] Check that there isn't [already an issue](https://github.com/tresjs/rapier/issues) that reports the same bug to avoid creating a duplicate.",[2898,2901],{"name":2899,"color":2900},"investigation","D03599",{"name":2871,"color":2872},156,"rapier","Adding physics from GLTF directly","2025-01-29T08:42:02Z","https://github.com/Tresjs/rapier/issues/156",0.707886,{"description":2909,"labels":2910,"number":2922,"owner":2874,"repository":2923,"state":2876,"title":2924,"updated_at":2925,"url":2926,"score":2927},"### Description\r\n\r\nAs a developer using TresJS I would like to have documentation available in my native language\r\n\r\nThis ticket is meant to keep track of the progress of multiple PRs to translate Tres docs:\r\n\r\n- [x] Enable i18n and add Spanish docs done #123 #534 \r\n- [x] Chinese translations @enpitsuLin #550 \r\n- [x] German @DennisSmuda #548\r\n- [ ] Polish @Dekier #546 \r\n- [x] French @AminGtt #555 \r\n\r\nFeel free to comment below if you would like to add your language and help us translate the docs.,\r\n\r\n### Suggested solution\r\n\r\nCreate a branch `docs/translation-\u003Clanguage-unicode>` and a PR similar to #534 with the following steps:\r\n\r\n1. Add a `\u003Clanguage-unicode>.ts` inside `docs/.vitepress/config` ex: `zh.ts` (copy the `en.ts` which is the original and then translate only what's needed.\r\n2. Remember to add the code prefix route to all the links on this file, ex `link: /guide/` -> `link: /zh/guide`\r\n3. Add to config to `docs/.vitepress/config/index.ts` like this:\r\n\r\n```ts\r\nexport default defineConfig({\r\n ...sharedConfig,\r\n locales: {\r\n root: { label: 'English', lang: 'en-US', link: '/', ...enConfig },\r\n es: { label: 'Español', lang: 'es-ES', link: '/es/', ...esConfig },\r\n /* zh: { label: '简体中文', lang: 'zh-CN', link: '/zh/', ...zhConfig }, */\r\n },\r\n})\r\n```\r\n\r\n4. Create a folder with the language code (ex: zh) inside `docs/`, this is where the translations will live, then start translating the files using the same structure as on the docs root, like this:\r\n\r\n`docs/advanced/extending.md` --> `docs/zh/advanced/extending.md`\r\n\r\n\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.",[2911,2912,2915,2916,2919],{"name":2888,"color":2889},{"name":2913,"color":2914},"help wanted","008672",{"name":2868,"color":2869},{"name":2917,"color":2918},"dx","1576AD",{"name":2920,"color":2921},"p3-significant","2C78E3",540,"tres","Translate docs to multiple languages","2024-07-23T17:42:40Z","https://github.com/Tresjs/tres/issues/540",0.71051824,{"description":2929,"labels":2930,"number":2932,"owner":2874,"repository":2875,"state":2933,"title":2934,"updated_at":2935,"url":2936,"score":2937},"### Describe the bug\n\n\r\n\r\nSome shapes have problems with colors\n\n### Reproduction\n\nhttps://stackblitz.com/edit/tresjs-basic-1skx4b?file=src%2Fcomponents%2FTheExperience.vue\n\n### Steps to reproduce\n\nCheck the console on the reprodution link\n\n### System Info\n\n```shell\npnpm\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.",[2931],{"name":2885,"color":2886},110,"closed","Colors error in some shapes","2023-07-18T23:12:00Z","https://github.com/Tresjs/cientos/issues/110",0.46196353,{"description":2939,"labels":2940,"number":2941,"owner":2874,"repository":2923,"state":2933,"title":2942,"updated_at":2943,"url":2944,"score":2945},"### 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.65838015,{"description":2947,"labels":2948,"number":2951,"owner":2874,"repository":2875,"state":2933,"title":2952,"updated_at":2953,"url":2954,"score":2955},"### Description\r\n\r\nAfter some investigation, we can add a new section to the Cientos pkg regarding the Vue custom directives:\r\n\r\nThe main goal of this would be to provide more DX for the Tresjs Ecosystem:\r\n\r\nWe can't install them globally, because that will interfere with the treeshaking, so they will be imported and used within each component\r\n\r\nSome of the initial proposals right now are:\r\n- [x] **v-log**: to log the mesh, material/geometry, etc. within the component without making a reference and watching it\r\n- [x] **v-look-at**: as we can use the onRenderLoop inside the directive, we could reference a moving object so that it will always update the look-at property\r\n- [ ] **v-responsive**: a proposal that will accept a breakpoint and apply a function to the current mesh\r\n- [ ] **v-follow**: a simple way to follow another mesh, maintaining the initial distance\r\n- [ ] **v-distance-to**: a simple way to calculate the distance \r\n- [x] **v-light-helper**: create helper for the provided light\r\n\r\n### Suggested solution\r\n\r\nEJ.\r\nconst vLog= {\r\n mounted: (el) => console.log(el)\r\n}\r\n...\r\n\r\n \u003CTresMesh v-log>\r\n \u003CTresTorusGeometry />\r\n \u003CTresMeshBasicMaterial />\r\n \u003C/TresMesh>\r\n\r\n### Alternative\r\n\r\nAny other directive that you can think of will be appreciated\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/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.",[2949],{"name":2899,"color":2950},"D0359D",178,"V-directives in cientos proposal","2023-10-07T14:38:28Z","https://github.com/Tresjs/cientos/issues/178",0.661613,{"description":2957,"labels":2958,"number":2964,"owner":2874,"repository":2923,"state":2933,"title":2965,"updated_at":2966,"url":2967,"score":2968},"**Describe the bug**\r\nLight helpers don't render anymore, same for cameraHelper\r\n\r\n**Reproduction**\r\nhttps://playground.tresjs.org/experiments/lights\r\n\r\n**Steps**\r\nSteps to reproduce the behavior:\r\n1. Go to '...'\r\n2. Click on '....'\r\n3. Scroll down to '....'\r\n4. See error\r\n\r\n**Expected behavior**\r\n`\u003CTresDirectionalLightHelper>` should render the helper\r\n\r\n**Screenshots**\r\nIf applicable, add screenshots to help explain your pr\r\n\r\noblem.\r\n\r\n**System Info**\r\nOutput of `npx envinfo --system --npmPackages '{vite,@tresjs/*, three, vue}' --binaries --browsers` \r\n\r\n```\r\n System:\r\n OS: macOS 13.2.1\r\n CPU: (8) arm64 Apple M1 Pro\r\n Memory: 192.11 MB / 16.00 GB\r\n Shell: 5.8.1 - /bin/zsh\r\n Binaries:\r\n Node: 18.14.1 - ~/.nvm/versions/node/v18.14.1/bin/node\r\n Yarn: 1.22.19 - /usr/local/bin/yarn\r\n npm: 9.3.1 - ~/.nvm/versions/node/v18.14.1/bin/npm\r\n Browsers:\r\n Brave Browser: 112.1.50.121\r\n Chrome: 112.0.5615.137\r\n Safari: 16.3\r\n npmPackages:\r\n @tresjs/cientos: 2.0.0-beta.6 => 2.0.0-beta.6 \r\n @tresjs/core: 2.0.0-beta.13 => 2.0.0-beta.13 \r\n```\r\n\r\n**Additional context**\r\nAdd any other context about the problem here.\r\n",[2959,2960,2963],{"name":2885,"color":2886},{"name":2961,"color":2962},"good first issue","7057ff",{"name":2913,"color":2914},241,"Directional Light Helper is not rendered ","2023-09-16T10:32:56Z","https://github.com/Tresjs/tres/issues/241",0.66684103,{"description":2970,"labels":2971,"number":2977,"owner":2874,"repository":2923,"state":2933,"title":2978,"updated_at":2979,"url":2980,"score":2981},"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",[2972,2973,2974],{"name":2888,"color":2889},{"name":2917,"color":2918},{"name":2975,"color":2976},"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.6768958,{"description":2983,"labels":2984,"number":2985,"owner":2874,"repository":2923,"state":2933,"title":2986,"updated_at":2987,"url":2988,"score":2989},"### 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,"New and better state context provider","2023-07-29T08:58:56Z","https://github.com/Tresjs/tres/issues/331",0.6870157,["Reactive",2991],{},["Set"],["ShallowReactive",2994],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fZZAl3UjRv1E52Yz7arAc4IDVemcfcngjuNS5MOUSYac":-1},"/Tresjs/rapier/110"]