` which casts a shadow. When navigating away from the page with the scene and navigating back to the scene (using NuxtLink), I get the error below.\r\n\r\nWhen I remove the `cast-shadow` prop, the bug disappears.\r\n\r\n\r\n```\r\nthree.js?v=f17f74c8:17801 Uncaught TypeError: Cannot read properties of null (reading 'state')\r\n at setProgram (three.js?v=f17f74c8:17801:41)\r\n at WebGLRenderer.renderBufferDirect (three.js?v=f17f74c8:17292:23)\r\n at renderObject (three.js?v=f17f74c8:13624:21)\r\n at renderObject (three.js?v=f17f74c8:13631:7)\r\n at WebGLShadowMap.render (three.js?v=f17f74c8:13519:9)\r\n at WebGLRenderer.render (three.js?v=f17f74c8:17493:17)\r\n at tres.js:387:33\r\n at index.mjs:71:52\r\n at Array.map (\u003Canonymous>)\r\n at Object.trigger (index.mjs:71:40)\r\n ```\r\n \u003Cdetails>\r\n \u003Csummary>complete error log\u003C/summary>\r\n\r\n ```\r\nsetProgram\t\t\t\t@\tthree.js?v=f17f74c8:17801\r\nWebGLRenderer.renderBufferDirect\t@\tthree.js?v=f17f74c8:17292\r\nrenderObject\t\t\t\t@\tthree.js?v=f17f74c8:13624\r\nrenderObject\t\t\t\t@\tthree.js?v=f17f74c8:13631\r\nWebGLShadowMap.render\t\t\t@\tthree.js?v=f17f74c8:13519\r\nWebGLRenderer.render\t\t\t@\tthree.js?v=f17f74c8:17493\r\n(anonymous)\t\t\t\t@\ttres.js:387\r\n(anonymous)\t\t\t\t@\tindex.mjs:71\r\ntrigger\t\t\t\t\t@\tindex.mjs:71\r\nwe.immediate\t\t\t\t@\ttres.js:160\r\nloop\t\t\t\t\t@\tindex.mjs:617\r\nrequestAnimationFrame\t\t\r\nresume\t\t\t\t\t@\tindex.mjs:624\r\nor\t\t\t\t\t@\ttres.js:388\r\ncr\t\t\t\t\t@\ttres.js:593\r\n(anonymous)\t\t\t\t@\ttres.js:1086\r\n(anonymous)\t\t\t\t@\truntime-core.esm-bundler.js:2757\r\ncallWithErrorHandling\t\t\t@\truntime-core.esm-bundler.js:199\r\ncallWithAsyncErrorHandling\t\t@\truntime-core.esm-bundler.js:206\r\nhook.__weh.hook.__weh\t\t\t@\truntime-core.esm-bundler.js:2737\r\nflushPostFlushCbs\t\t\t@\truntime-core.esm-bundler.js:385\r\nflushJobs\t\t\t\t@\truntime-core.esm-bundler.js:427\r\nPromise.then\t\t\r\nqueueFlush\t\t\t\t@\truntime-core.esm-bundler.js:322\r\nqueuePostFlushCb\t\t\t@\truntime-core.esm-bundler.js:336\r\nqueueEffectWithSuspense\t\t\t@\truntime-core.esm-bundler.js:7256\r\nbaseWatchOptions.scheduler\t\t@\truntime-core.esm-bundler.js:6138\r\neffect2.scheduler\t\t\t@\treactivity.esm-bundler.js:1892\r\ntrigger\t\t\t\t\t@\treactivity.esm-bundler.js:250\r\nendBatch\t\t\t\t@\treactivity.esm-bundler.js:308\r\nnotify\t\t\t\t\t@\treactivity.esm-bundler.js:594\r\ntrigger\t\t\t\t\t@\treactivity.esm-bundler.js:568\r\nset value\t\t\t\t@\treactivity.esm-bundler.js:1510\r\nfinalizeNavigation\t\t\t@\tvue-router.mjs:3478\r\n(anonymous)\t\t\t\t@\tvue-router.mjs:3343\r\nPromise.then\t\t\r\npushWithRedirect\t\t\t@\tvue-router.mjs:3310\r\npush\t\t\t\t\t@\tvue-router.mjs:3235\r\nnavigate\t\t\t\t@\tvue-router.mjs:2300\r\ncallWithErrorHandling\t\t\t@\truntime-core.esm-bundler.js:199\r\ncallWithAsyncErrorHandling\t\t@\truntime-core.esm-bundler.js:206\r\ninvoker\t\t\t\t\t@\truntime-dom.esm-bundler.js:722\r\n```\r\n\u003C/details>\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-w3neca?file=pages%2Findex.vue\n\n### Steps to reproduce\n\n_No response_\n\n### System Info\n\n```shell\nSystem:\r\n OS: macOS 14.6.1\r\n CPU: (10) arm64 Apple M1 Pro\r\n Memory: 79.77 MB / 32.00 GB\r\n Shell: 5.9 - /bin/zsh\r\n Binaries:\r\n Node: 20.9.0 - ~/.nvm/versions/node/v20.9.0/bin/node\r\n Yarn: 1.22.19 - /opt/homebrew/bin/yarn\r\n npm: 10.1.0 - ~/.nvm/versions/node/v20.9.0/bin/npm\r\n pnpm: 9.4.0 - ~/Library/pnpm/pnpm\r\n bun: 1.0.3 - ~/.bun/bin/bun\r\n Browsers:\r\n Chrome: 129.0.6668.100\r\n Safari: 17.6\r\n npmPackages:\r\n @tresjs/cientos: ^4.0.3 => 4.0.2 \r\n @tresjs/core: ^4.2.10 => 4.2.10 \r\n @tresjs/nuxt: ^3.0.7 => 3.0.7\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.",[2895],{"name":2896,"color":2897},"pending-triage","97A4FE",851,"tres","Scene breaks when `cast-shadow` enabled and navigating back to a previously initialized scene","2024-10-22T15:09:42Z","https://github.com/Tresjs/tres/issues/851",0.74221253,{"description":2905,"labels":2906,"number":2917,"owner":2872,"repository":2899,"state":2874,"title":2918,"updated_at":2919,"url":2920,"score":2921},"### 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.",[2907,2908,2911,2914],{"name":2866,"color":2867},{"name":2909,"color":2910},"help wanted","008672",{"name":2912,"color":2913},"PR welcome","2D76B0",{"name":2915,"color":2916},"p2-edge-case","ABCC40",754,"How to use vue-cli","2024-08-21T09:51:50Z","https://github.com/Tresjs/tres/issues/754",0.7422349,{"description":2923,"labels":2924,"number":2934,"owner":2872,"repository":2873,"state":2874,"title":2935,"updated_at":2936,"url":2937,"score":2938},"### Description\n\nCheck and measure the measurement of the library (so we can warn the user of potential problems)\r\n\r\nCurrently, `InstancedRigidBody` has a significant performance drop after 100, tested in personal laptop with\r\nWindow 11, 16RAM, Nvidia Gforce 4080 \n\n### Suggested solution\n\nTo end with solutions or warning about what to do and what to avoid (in the docs) or to more GitHub Issues to improve performance.\r\nMaybe comparison with other libraries like R3F or angular three\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/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.",[2925,2928,2931],{"name":2926,"color":2927},"enhancement","a2eeef",{"name":2929,"color":2930},"investigation","D03599",{"name":2932,"color":2933},"p1-chore","BFD4F2",122,"Check performance (maybe re-think InstancedRigidBody)","2025-02-09T07:10:49Z","https://github.com/Tresjs/rapier/issues/122",0.7539189,{"description":2940,"labels":2941,"number":2948,"owner":2872,"repository":2887,"state":2874,"title":2949,"updated_at":2950,"url":2951,"score":2952},"### Description\n\nAs a developer using TresJS, I would like to have a component that can keep child components centered on screen, even after screen resizes.\n\n### Suggested solution\n\nA component that works like [Drei's `\u003CBounds />`](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.",[2942,2945],{"name":2943,"color":2944},"feature","c2e0c6",{"name":2946,"color":2947},"p2-nice-to-have","D4C5F9",408,"\u003CBounds />","2024-12-17T18:07:35Z","https://github.com/Tresjs/cientos/issues/408",0.754093,{"description":2954,"labels":2955,"number":2871,"owner":2872,"repository":2887,"state":2959,"title":2960,"updated_at":2961,"url":2962,"score":2878},"### Description\n\nAs a Developer using TresJS I would like to have a composable `useFBO` that leverages the effort of creating a `THREE.WebGLRenderTarget` \r\n\r\n```\r\nconst target = useFBO({ stencilBuffer: false })\r\n\r\n```\r\n\r\nDrei's\r\nhttps://github.com/pmndrs/drei/blob/master/src/core/useFBO.tsx\r\n\r\nReference:\r\nhttps://github.com/pmndrs/drei/tree/master#usefbo\r\n\r\n\n\n### Suggested solution\n\nImplement a composable that accepts:\r\n\r\n- `width`\r\n- `height`/\r\n- `samples` // Defines the count of MSAA samples. Can only be used with WebGL 2. Default: 0 \r\n- `depth` // If set, the scene depth will be rendered into buffer.depthTexture. Default: false\r\n\r\nAnd returns the renderTarget, The rendertarget should be automatically disposed when unmounted.\r\n\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/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.",[2956],{"name":2957,"color":2958},"good first issue","7057ff","closed","useFBO abstraction","2023-10-07T14:07:10Z","https://github.com/Tresjs/cientos/issues/149",{"description":2964,"labels":2965,"number":2966,"owner":2872,"repository":2899,"state":2959,"title":2967,"updated_at":2968,"url":2969,"score":2970},"### 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.7318084,{"description":2972,"labels":2973,"number":2974,"owner":2872,"repository":2887,"state":2959,"title":2975,"updated_at":2976,"url":2977,"score":2978},"### Description\r\n\r\nAdapt `cientos` package to https://github.com/Tresjs/tres/issues/331 changes\r\n\r\n#### Abstractions\r\n\r\n- [x] Environment\r\n- [x] MouseParallax\r\n- [x] Stars\r\n- [x] Smoke\r\n- [x] Levioso\r\n- [x] Contact Shadows\r\n- [x] Precipitation\r\n\r\n#### Controls\r\n- [x] OrbitControls @alvarosabu \r\n- [x] TransformControls\r\n- [x] PointerLockControls\r\n- [x] KeyboardControls\r\n- [x] MapControls\r\n- [x] ScrollControls\r\n\r\n### Materials\r\n\r\n- [x] WobbleMaterial\r\n\r\n### Staging\r\n\r\n- [x] Backdrop\r\n\r\n### Misc\r\n\r\n- [x] useTweakpane\r\n\r\n### Suggested solution\r\n\r\n- [x] Refactor watchers \r\n- [x] Remove deconstruct props if needed\r\n- [x] Merge to 'next'\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/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.",[],120,"Refactor useCientos to new state context provider","2023-07-29T11:45:37Z","https://github.com/Tresjs/cientos/issues/120",0.7325774,{"description":2980,"labels":2981,"number":2974,"owner":2872,"repository":2983,"state":2959,"title":2984,"updated_at":2985,"url":2986,"score":2978},"**Is your feature request related to a problem? Please describe.**\r\nIt would be helpful for users to have the component's prop types available.\r\n",[2982],{"name":2926,"color":2927},"post-processing","make prop types available","2024-10-15T14:41:37Z","https://github.com/Tresjs/post-processing/issues/120",["Reactive",2988],{},["Set"],["ShallowReactive",2991],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fTYB6Ep84WNNDbiuLsTqJqtcoJWoWYcf-dsh4-8zJhGc":-1},"/Tresjs/tres/796"]