New Blocks & Ported fancyMuzzle flash#43
New Blocks & Ported fancyMuzzle flash#43burntapple7 wants to merge 9 commits intoonlypuppy7:mainfrom
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (2)
You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughA Babylon.js scene configuration file is added for a muzzle flash 3D model. The file includes complete scene setup with cameras, materials, meshes, geometries, and rendering configurations in JSON format. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
what the fuck is coderabbit |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon (2)
1-1: Consider storing this Babylon JSON in pretty-printed form in git.Line 1 is fully minified, which makes diffs and manual auditing difficult. Keeping a formatted source (or exporter setting) improves maintainability and PR review quality.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon` at line 1, The Babylon scene file is stored as a single-line minified JSON which hampers code review and auditing; re-export or reformat plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon into a pretty-printed JSON (multiline, indented) and commit that formatted version (or add a pretty-printed companion file) so mesh/geometry entries like "muzzleFlash" (geometry id "muzzleFlash") and root/skyBox meshes are readable; optionally enable the exporter’s pretty-print setting or add a pre-commit formatter to keep future exports human-readable.
1-1: Disable picking on visual-only muzzle flash meshes.The
__root__andmuzzleFlashmeshes are currently marked"pickable":true. Since these are FX-only meshes (muzzleFlash is purely visual, and root is a container), they should not participate in raycasting. This prevents unnecessary picking overhead and clarifies intent, consistent with howhdrSkyBoxis already configured with"pickable":false.Proposed fix
- "name":"__root__", ... "pickable":true, ... + "name":"__root__", ... "pickable":false, ... - "name":"muzzleFlash", ... "pickable":true, ... + "name":"muzzleFlash", ... "pickable":false, ...🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon` at line 1, The __root__ and muzzleFlash mesh entries have "pickable":true which allows them to participate in raycasting despite being visual-only; change the "pickable" property to false for the objects with name "__root__" (uniqueId 2) and "muzzleFlash" (uniqueId 3) so they no longer receive picks, keeping hdrSkyBox's existing "pickable":false behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon`:
- Line 1: Hardcoded external env URL used in environmentTexture and skyBox
reflectionTexture risks availability/CORS/privacy; replace with a local relative
asset. Add the .env file to the repository assets and update the scene JSON
fields referencing
"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env"—specifically
the top-level environmentTexture entry ("environmentTexture") and the skyBox
material's reflectionTexture.url inside material with id/name "skyBox" (used by
mesh "hdrSkyBox")—to a relative path (e.g.
"assets/environments/sanGiuseppeBridge.env"), ensure any textureMatrix entries
remain valid, and verify the scene loads locally and passes CI asset checks.
---
Nitpick comments:
In `@plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon`:
- Line 1: The Babylon scene file is stored as a single-line minified JSON which
hampers code review and auditing; re-export or reformat
plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon into a
pretty-printed JSON (multiline, indented) and commit that formatted version (or
add a pretty-printed companion file) so mesh/geometry entries like "muzzleFlash"
(geometry id "muzzleFlash") and root/skyBox meshes are readable; optionally
enable the exporter’s pretty-print setting or add a pre-commit formatter to keep
future exports human-readable.
- Line 1: The __root__ and muzzleFlash mesh entries have "pickable":true which
allows them to participate in raycasting despite being visual-only; change the
"pickable" property to false for the objects with name "__root__" (uniqueId 2)
and "muzzleFlash" (uniqueId 3) so they no longer receive picks, keeping
hdrSkyBox's existing "pickable":false behavior.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
plugins_default/burntblocksets/models/Castle Blocks.babylonplugins_default/fancyParticles/models/fancyMuzzleFlash.babylon
| @@ -0,0 +1 @@ | |||
| {"autoClear":true,"clearColor":[0.2,0.2,0.3,1],"ambientColor":[0,0,0],"gravity":[0,-9.807,0],"collisionsEnabled":true,"useRightHandedSystem":false,"fogMode":0,"fogColor":[0.2,0.2,0.3],"fogStart":0,"fogEnd":1000,"fogDensity":0.1,"morphTargetManagers":[],"lights":[],"cameras":[{"tags":null,"alpha":-2.5195018563150295,"beta":1.3674828578550746,"radius":0.4827067205250063,"target":[-0.020158375648393623,0.01808353354265657,-0.10848388472544457],"inertialAlphaOffset":0,"inertialBetaOffset":0,"inertialRadiusOffset":0,"lowerBetaLimit":0.01,"upperBetaLimit":3.1315926535897933,"upperRadiusLimit":2.4135336026250314,"lowerTargetYLimit":null,"inertialPanningX":0,"inertialPanningY":0,"pinchToPanMaxDistance":20,"panningOriginTarget":[0,0,0],"panningInertia":0.9,"zoomToMouseLocation":false,"zoomOnFactor":1,"targetScreenOffset":[0,0],"allowUpsideDown":true,"useInputToRestoreState":true,"restoreStateInterpolationFactor":0,"updateUpVectorFromRotation":false,"rotation":[0,0,0],"speed":0.09654134410500126,"position":[-0.4043559431351135,0.11554957690824036,-0.38398048646120464],"upVector":[0,1,0],"fov":0.8,"projectionPlaneTilt":0,"minZ":0.0048270672052500635,"maxZ":482.7067205250063,"inertia":0.9,"mode":0,"layerMask":268435455,"fovMode":0,"cameraRigMode":0,"ignoreCameraMaxZ":false,"name":"default camera","id":"default camera","state":"","uniqueId":7,"type":"ArcRotateCamera","inputsmgr":{"ArcRotateCameraKeyboardMoveInput":{"tags":null,"keysUp":[38,90,87],"keysDown":[40,83],"keysLeft":[37,65,81],"keysRight":[39,69,68],"keysReset":[220],"panningSensibility":50,"zoomingSensibility":25,"useAltToZoom":true,"angularSpeed":0.01},"ArcRotateCameraMouseWheelInput":{"tags":null,"wheelPrecision":207.16512894462502,"zoomToMouseLocation":false,"wheelDeltaPercentage":0.01},"ArcRotateCameraPointersInput":{"tags":null,"buttons":[0,1,2],"angularSensibilityX":1000,"angularSensibilityY":1000,"pinchPrecision":414.33025788925005,"pinchDeltaPercentage":0.01,"useNaturalPinchZoom":false,"panningSensibility":10358.256447231252,"pinchZoom":true,"multiTouchPanning":true,"multiTouchPanAndZoom":true}},"animations":[],"ranges":[],"isEnabled":true}],"activeCameraID":"default camera","animations":[],"materials":[{"tags":null,"directIntensity":1,"emissiveIntensity":1,"environmentIntensity":1,"specularIntensity":1,"disableBumpMap":false,"ambientTextureStrength":1,"ambientTextureImpactOnAnalyticalLights":0,"metallic":1,"roughness":1,"metallicF0Factor":1,"metallicReflectanceColor":[1,1,1],"useOnlyMetallicFromMetallicReflectanceTexture":false,"ambient":[0,0,0],"albedo":[1,1,1],"baseWeight":1,"reflectivity":[1,1,1],"reflection":[1,1,1],"emissive":[0,0,0],"microSurface":1,"useLightmapAsShadowmap":false,"useAlphaFromAlbedoTexture":false,"forceAlphaTest":false,"alphaCutOff":0.4,"useSpecularOverAlpha":true,"useMicroSurfaceFromReflectivityMapAlpha":false,"useRoughnessFromMetallicTextureAlpha":true,"useRoughnessFromMetallicTextureGreen":false,"useMetallnessFromMetallicTextureBlue":false,"useAmbientOcclusionFromMetallicTextureRed":false,"useAmbientInGrayScale":false,"useAutoMicroSurfaceFromReflectivityMap":false,"usePhysicalLightFalloff":true,"useGLTFLightFalloff":false,"useRadianceOverAlpha":true,"useObjectSpaceNormalMap":false,"useParallax":false,"useParallaxOcclusion":false,"parallaxScaleBias":0.05,"disableLighting":false,"forceIrradianceInFragment":false,"maxSimultaneousLights":4,"invertNormalMapX":false,"invertNormalMapY":false,"twoSidedLighting":false,"useAlphaFresnel":false,"useLinearAlphaFresnel":false,"forceNormalForward":false,"enableSpecularAntiAliasing":true,"useHorizonOcclusion":true,"useRadianceOcclusion":true,"unlit":true,"applyDecalMapAfterDetailMap":false,"id":"Material.001","name":"Material.001","metadata":{},"checkReadyOnEveryCall":false,"checkReadyOnlyOnce":false,"state":"","alpha":1,"backFaceCulling":true,"cullBackFaces":true,"_alphaMode":[2],"_needDepthPrePass":false,"disableDepthWrite":false,"disableColorWrite":false,"forceDepthWrite":false,"depthFunction":0,"separateCullingPass":false,"fogEnabled":true,"pointSize":1,"zOffset":0,"zOffsetUnits":0,"pointsCloud":false,"fillMode":0,"_isVertexOutputInvariant":false,"transparencyMode":0,"stencil":{"tags":null,"func":519,"backFunc":519,"funcRef":1,"funcMask":255,"opStencilFail":7680,"opDepthFail":7680,"opStencilDepthPass":7681,"backOpStencilFail":7680,"backOpDepthFail":7680,"backOpStencilDepthPass":7681,"mask":255,"enabled":false},"uniqueId":5,"plugins":{"PBRBRDFConfiguration":{"tags":null,"useEnergyConservation":true,"useSmithVisibilityHeightCorrelated":true,"useSphericalHarmonics":true,"useSpecularGlossinessInputEnergyConservation":true,"mixIblRadianceWithIrradiance":true,"useLegacySpecularEnergyConservation":true,"baseDiffuseModel":0,"dielectricSpecularModel":0,"conductorSpecularModel":0,"name":"PBRBRDF","priority":90,"resolveIncludes":false,"registerForExtraEvents":false},"PBRClearCoatConfiguration":{"tags":null,"isEnabled":false,"intensity":1,"roughness":0,"indexOfRefraction":1.5,"useRoughnessFromMainTexture":true,"remapF0OnInterfaceChange":true,"isTintEnabled":false,"tintColor":[1,1,1],"tintColorAtDistance":1,"tintThickness":1,"name":"PBRClearCoat","priority":100,"resolveIncludes":false,"registerForExtraEvents":false},"PBRIridescenceConfiguration":{"tags":null,"isEnabled":false,"intensity":1,"minimumThickness":100,"maximumThickness":400,"indexOfRefraction":1.3,"name":"PBRIridescence","priority":110,"resolveIncludes":false,"registerForExtraEvents":false},"PBRAnisotropicConfiguration":{"tags":null,"isEnabled":false,"intensity":1,"direction":[1,0],"legacy":false,"name":"PBRAnisotropic","priority":110,"resolveIncludes":false,"registerForExtraEvents":false},"PBRSheenConfiguration":{"tags":null,"isEnabled":false,"linkSheenWithAlbedo":false,"intensity":1,"color":[1,1,1],"useRoughnessFromMainTexture":true,"albedoScaling":false,"name":"Sheen","priority":120,"resolveIncludes":false,"registerForExtraEvents":false},"PBRSubSurfaceConfiguration":{"tags":null,"isRefractionEnabled":false,"isTranslucencyEnabled":false,"isDispersionEnabled":false,"isScatteringEnabled":false,"_scatteringDiffusionProfileIndex":0,"refractionIntensity":1,"translucencyIntensity":1,"useAlbedoToTintRefraction":false,"useAlbedoToTintTranslucency":false,"indexOfRefraction":1.5,"_volumeIndexOfRefraction":-1,"invertRefractionY":false,"linkRefractionWithTransparency":false,"minimumThickness":0,"maximumThickness":1,"useThicknessAsDepth":false,"tintColor":[1,1,1],"tintColorAtDistance":1,"dispersion":0,"diffusionDistance":[1,1,1],"useMaskFromThicknessTexture":false,"useGltfStyleTextures":true,"applyAlbedoAfterSubSurface":false,"legacyTranslucency":false,"name":"PBRSubSurface","priority":130,"resolveIncludes":false,"registerForExtraEvents":true},"DetailMapConfiguration":{"tags":null,"diffuseBlendLevel":1,"roughnessBlendLevel":1,"bumpLevel":1,"normalBlendMethod":0,"isEnabled":false,"name":"DetailMap","priority":140,"resolveIncludes":false,"registerForExtraEvents":false}},"customType":"BABYLON.PBRMaterial"},{"tags":null,"directIntensity":1,"emissiveIntensity":1,"environmentIntensity":1,"specularIntensity":1,"disableBumpMap":false,"ambientTextureStrength":1,"ambientTextureImpactOnAnalyticalLights":0,"reflectionTexture":{"tags":null,"url":"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env","boundingBoxPosition":[0,0,0],"rotationY":5.54,"files":[],"textureMatrix":[0.7363170019206192,0,0.6766367361314568,0,0,1,0,0,-0.6766367361314568,0,0.7363170019206192,0,0,0,0,1],"textureMatrixRefraction":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"name":"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env","hasAlpha":false,"getAlphaFromRGB":false,"level":1,"coordinatesIndex":0,"optimizeUVAllocation":true,"coordinatesMode":5,"wrapU":0,"wrapV":0,"wrapR":1,"anisotropicFilteringLevel":1,"isCube":true,"is3D":false,"is2DArray":false,"gammaSpace":false,"invertZ":false,"lodLevelInAlpha":false,"lodGenerationOffset":0,"lodGenerationScale":0.8,"linearSpecularLOD":false,"isRenderTarget":false,"animations":[]},"metallicF0Factor":1,"metallicReflectanceColor":[1,1,1],"useOnlyMetallicFromMetallicReflectanceTexture":false,"ambient":[0,0,0],"albedo":[1,1,1],"baseWeight":1,"reflectivity":[1,1,1],"reflection":[1,1,1],"emissive":[0,0,0],"microSurface":0.7,"useLightmapAsShadowmap":false,"useAlphaFromAlbedoTexture":false,"forceAlphaTest":false,"alphaCutOff":0.4,"useSpecularOverAlpha":true,"useMicroSurfaceFromReflectivityMapAlpha":false,"useRoughnessFromMetallicTextureAlpha":true,"useRoughnessFromMetallicTextureGreen":false,"useMetallnessFromMetallicTextureBlue":false,"useAmbientOcclusionFromMetallicTextureRed":false,"useAmbientInGrayScale":false,"useAutoMicroSurfaceFromReflectivityMap":false,"usePhysicalLightFalloff":true,"useGLTFLightFalloff":false,"useRadianceOverAlpha":true,"useObjectSpaceNormalMap":false,"useParallax":false,"useParallaxOcclusion":false,"parallaxScaleBias":0.05,"disableLighting":true,"forceIrradianceInFragment":false,"maxSimultaneousLights":4,"invertNormalMapX":false,"invertNormalMapY":false,"twoSidedLighting":true,"useAlphaFresnel":false,"useLinearAlphaFresnel":false,"forceNormalForward":false,"enableSpecularAntiAliasing":false,"useHorizonOcclusion":true,"useRadianceOcclusion":true,"unlit":false,"applyDecalMapAfterDetailMap":false,"id":"skyBox","name":"skyBox","checkReadyOnEveryCall":false,"checkReadyOnlyOnce":false,"state":"","alpha":1,"backFaceCulling":false,"cullBackFaces":true,"_alphaMode":[2],"_needDepthPrePass":false,"disableDepthWrite":false,"disableColorWrite":false,"forceDepthWrite":false,"depthFunction":0,"separateCullingPass":false,"fogEnabled":true,"pointSize":1,"zOffset":0,"zOffsetUnits":0,"pointsCloud":false,"fillMode":0,"_isVertexOutputInvariant":false,"stencil":{"tags":null,"func":519,"backFunc":519,"funcRef":1,"funcMask":255,"opStencilFail":7680,"opDepthFail":7680,"opStencilDepthPass":7681,"backOpStencilFail":7680,"backOpDepthFail":7680,"backOpStencilDepthPass":7681,"mask":255,"enabled":false},"uniqueId":11,"plugins":{"PBRBRDFConfiguration":{"tags":null,"useEnergyConservation":true,"useSmithVisibilityHeightCorrelated":true,"useSphericalHarmonics":true,"useSpecularGlossinessInputEnergyConservation":true,"mixIblRadianceWithIrradiance":true,"useLegacySpecularEnergyConservation":true,"baseDiffuseModel":0,"dielectricSpecularModel":0,"conductorSpecularModel":0,"name":"PBRBRDF","priority":90,"resolveIncludes":false,"registerForExtraEvents":false},"PBRClearCoatConfiguration":{"tags":null,"isEnabled":false,"intensity":1,"roughness":0,"indexOfRefraction":1.5,"useRoughnessFromMainTexture":true,"remapF0OnInterfaceChange":true,"isTintEnabled":false,"tintColor":[1,1,1],"tintColorAtDistance":1,"tintThickness":1,"name":"PBRClearCoat","priority":100,"resolveIncludes":false,"registerForExtraEvents":false},"PBRIridescenceConfiguration":{"tags":null,"isEnabled":false,"intensity":1,"minimumThickness":100,"maximumThickness":400,"indexOfRefraction":1.3,"name":"PBRIridescence","priority":110,"resolveIncludes":false,"registerForExtraEvents":false},"PBRAnisotropicConfiguration":{"tags":null,"isEnabled":false,"intensity":1,"direction":[1,0],"legacy":false,"name":"PBRAnisotropic","priority":110,"resolveIncludes":false,"registerForExtraEvents":false},"PBRSheenConfiguration":{"tags":null,"isEnabled":false,"linkSheenWithAlbedo":false,"intensity":1,"color":[1,1,1],"useRoughnessFromMainTexture":true,"albedoScaling":false,"name":"Sheen","priority":120,"resolveIncludes":false,"registerForExtraEvents":false},"PBRSubSurfaceConfiguration":{"tags":null,"isRefractionEnabled":false,"isTranslucencyEnabled":false,"isDispersionEnabled":false,"isScatteringEnabled":false,"_scatteringDiffusionProfileIndex":0,"refractionIntensity":1,"translucencyIntensity":1,"useAlbedoToTintRefraction":false,"useAlbedoToTintTranslucency":false,"indexOfRefraction":1.5,"_volumeIndexOfRefraction":-1,"invertRefractionY":false,"linkRefractionWithTransparency":false,"minimumThickness":0,"maximumThickness":1,"useThicknessAsDepth":false,"tintColor":[1,1,1],"tintColorAtDistance":1,"dispersion":0,"diffusionDistance":[1,1,1],"useMaskFromThicknessTexture":false,"useGltfStyleTextures":true,"applyAlbedoAfterSubSurface":false,"legacyTranslucency":false,"name":"PBRSubSurface","priority":130,"resolveIncludes":false,"registerForExtraEvents":true},"DetailMapConfiguration":{"tags":null,"diffuseBlendLevel":1,"roughnessBlendLevel":1,"bumpLevel":1,"normalBlendMethod":0,"isEnabled":false,"name":"DetailMap","priority":140,"resolveIncludes":false,"registerForExtraEvents":false}},"customType":"BABYLON.PBRMaterial"},{"tags":null,"ambient":[0,0,0],"diffuse":[1,1,1],"specular":[1,1,1],"emissive":[0,0,0],"specularPower":64,"useAlphaFromDiffuseTexture":false,"useEmissiveAsIllumination":false,"linkEmissiveWithDiffuse":false,"useSpecularOverAlpha":false,"useReflectionOverAlpha":false,"disableLighting":false,"useObjectSpaceNormalMap":false,"useParallax":false,"useParallaxOcclusion":false,"parallaxScaleBias":0.05,"roughness":0,"indexOfRefraction":0.98,"invertRefractionY":true,"alphaCutOff":0.4,"useLightmapAsShadowmap":false,"useReflectionFresnelFromSpecular":false,"useGlossinessFromSpecularMapAlpha":false,"maxSimultaneousLights":4,"invertNormalMapX":false,"invertNormalMapY":false,"twoSidedLighting":false,"applyDecalMapAfterDetailMap":false,"id":"default material","name":"default material","checkReadyOnEveryCall":false,"checkReadyOnlyOnce":false,"state":"","alpha":1,"backFaceCulling":true,"cullBackFaces":true,"_alphaMode":[2],"_needDepthPrePass":false,"disableDepthWrite":false,"disableColorWrite":false,"forceDepthWrite":false,"depthFunction":0,"separateCullingPass":false,"fogEnabled":true,"pointSize":1,"zOffset":0,"zOffsetUnits":0,"pointsCloud":false,"fillMode":0,"_isVertexOutputInvariant":false,"stencil":{"tags":null,"func":519,"backFunc":519,"funcRef":1,"funcMask":255,"opStencilFail":7680,"opDepthFail":7680,"opStencilDepthPass":7681,"backOpStencilFail":7680,"backOpDepthFail":7680,"backOpStencilDepthPass":7681,"mask":255,"enabled":false},"uniqueId":12,"plugins":{"DetailMapConfiguration":{"tags":null,"diffuseBlendLevel":1,"roughnessBlendLevel":1,"bumpLevel":1,"normalBlendMethod":0,"isEnabled":false,"name":"DetailMap","priority":140,"resolveIncludes":false,"registerForExtraEvents":false}}}],"multiMaterials":[],"environmentTexture":{"tags":null,"url":"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env","boundingBoxPosition":[0,0,0],"rotationY":5.54,"files":[],"textureMatrix":[0.7363170019206192,0,0.6766367361314568,0,0,1,0,0,-0.6766367361314568,0,0.7363170019206192,0,0,0,0,1],"textureMatrixRefraction":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"name":"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env","hasAlpha":false,"getAlphaFromRGB":false,"level":1,"coordinatesIndex":0,"optimizeUVAllocation":true,"coordinatesMode":3,"wrapU":1,"wrapV":1,"wrapR":1,"anisotropicFilteringLevel":1,"isCube":true,"is3D":false,"is2DArray":false,"gammaSpace":false,"invertZ":false,"lodLevelInAlpha":false,"lodGenerationOffset":0,"lodGenerationScale":0.8,"linearSpecularLOD":false,"isRenderTarget":false,"animations":[]},"environmentIntensity":1,"iblIntensity":1,"skeletons":[],"transformNodes":[],"geometries":{"boxes":[],"spheres":[],"cylinders":[],"toruses":[],"grounds":[],"planes":[],"torusKnots":[],"vertexData":[{"id":"muzzleFlash","uniqueId":4,"updatable":false,"positions":[0.024196235463023186,-0.04710705950856209,-0.1354542076587677,0.024196235463023186,-0.04710705950856209,-0.1354542076587677,0.024196235463023186,-0.04710705950856209,-0.1354542076587677,0.024196235463023186,-0.04710705950856209,-0.1354542076587677,0.024196235463023186,-0.04710705950856209,-0.1354542076587677,0.03286192566156387,-0.03427575156092644,-0.0500527024269104,0.03286192566156387,-0.03427575156092644,-0.0500527024269104,0.022143393754959106,-0.040464866906404495,-0.037101712077856064,0.022143393754959106,-0.040464866906404495,-0.037101712077856064,-0.007964923046529293,-0.03427575156092644,-0.08760634064674377,-0.007964923046529293,-0.03427575156092644,-0.08760634064674377,0.0348573662340641,-0.03427574038505554,-0.11276252567768097,0.0348573662340641,-0.03427574038505554,-0.11276252567768097,0.005990752950310707,-0.03427574038505554,-0.11535975337028503,0.005990752950310707,-0.03427574038505554,-0.11535975337028503,-0.0005084238946437836,-0.015423983335494995,-0.13681809604167938,-0.04455231875181198,-0.0024618827737867832,-0.15407390892505646,0.021483255550265312,-0.01909290999174118,-0.12006813287734985,0.06125234067440033,-0.0018706009723246098,-0.16511303186416626,0.04022844135761261,0.005473765078932047,-0.14322307705879211,0.01343143917620182,-0.003592636901885271,-0.19179442524909973,0.025429658591747284,0.02637133002281189,-0.142449289560318,0.0003137141466140747,0.030040452256798744,-0.13455724716186523,-0.014932584017515182,0.005473765078932047,-0.13124743103981018,-0.020029744133353233,0.026371527463197708,-0.11354318261146545,-0.034505557268857956,0.005473765078932047,-0.07163657248020172,-0.024611547589302063,-0.015423998236656189,-0.05338045954704285,-0.030451446771621704,0.038128241896629333,-0.0597873292863369,-0.0500917062163353,0.011251033283770084,-0.0456012599170208,-0.02300429716706276,0.026371512562036514,-0.009237689897418022,-0.015355242416262627,0.005473765078932047,0.005699023604393005,-0.024293754249811172,-0.019092923030257225,0.004998605698347092,-0.0005564577877521515,-0.01542380079627037,0.004925251007080078,0.024559486657381058,-0.019092923030257225,-0.002966795116662979,0.013085203245282173,0.005473765078932047,0.010713845491409302,0.025381624698638916,0.026371512562036514,-0.0007059425115585327,0.025381624698638916,0.026371512562036514,-0.0007059425115585327,0.006242058239877224,0.05067244917154312,-0.00897093117237091,0.04273729398846626,0.005473765078932047,-0.022902023047208786,0.04273729398846626,0.005473765078932047,-0.022902023047208786,0.06361742317676544,-0.03512807935476303,-0.06194835156202316,0.06361742317676544,-0.03512807935476303,-0.06194835156202316,0.04383835569024086,0.04618426039814949,-0.02201114594936371,0.057530950754880905,0.005473765078932047,-0.0554080456495285,0.0853549987077713,0.05202200263738632,-0.06078314408659935,0.05474717915058136,0.005473765078932047,-0.09101344645023346,0.04849601536989212,-0.019092990085482597,-0.05556272715330124,0.04155237227678299,0.030040452256798744,-0.09933820366859436,0.036181285977363586,0.04522328078746796,-0.06887772679328918,0.036181285977363586,0.04522328078746796,-0.06887772679328918,0.0377240814268589,0.07874080538749695,-0.13812273740768433,0.0377240814268589,0.07874080538749695,-0.13812273740768433,0.011512696743011475,0.052201930433511734,-0.06352230906486511,0.011512696743011475,0.052201930433511734,-0.06352230906486511,0.011512696743011475,0.052201930433511734,-0.06352230906486511,0.011512696743011475,0.052201930433511734,-0.06352230906486511,0.011512696743011475,0.052201930433511734,-0.06352230906486511,-0.009836534038186073,0.04522328078746796,-0.07699191570281982,-0.009836534038186073,0.04522328078746796,-0.07699191570281982,-0.029447536915540695,0.0658649429678917,-0.006859522312879562,-0.029447536915540695,0.0658649429678917,-0.006859522312879562,0.021387677639722824,0.04522327333688736,-0.03637213632464409,0.021387677639722824,0.04522327333688736,-0.03637213632464409,0.010237756185233593,-0.019606666639447212,-0.03322618827223778,0.010237756185233593,-0.019606666639447212,-0.03322618827223778,0.010237756185233593,-0.019606666639447212,-0.03322618827223778,0.010237756185233593,-0.019606666639447212,-0.03322618827223778,0.010237756185233593,-0.019606666639447212,-0.03322618827223778,0.02221006155014038,-0.014142882078886032,-0.029469944536685944,0.02221006155014038,-0.014142882078886032,-0.029469944536685944,0.010556994006037712,-0.01568012312054634,-0.011423956602811813,0.010556994006037712,-0.01568012312054634,-0.011423956602811813,-0.0024625472724437714,-0.017619183287024498,-0.028953000903129578,-0.0024625472724437714,-0.017619183287024498,-0.028953000903129578,0.016937261447310448,-0.014971613883972168,-0.043968018144369125,0.016937261447310448,-0.014971613883972168,-0.043968018144369125,0.0016888827085494995,-0.01712006889283657,-0.043648529797792435,0.0016888827085494995,-0.01712006889283657,-0.043648529797792435,-0.005837441422045231,-0.00816078670322895,-0.06383009999990463,-0.011621642857789993,-0.010806290432810783,-0.03939852491021156,0.007285350002348423,-0.008303564041852951,-0.0672464370727539,0.02010483480989933,-0.004505591932684183,-0.06437364965677261,0.011434522457420826,0.00524104991927743,-0.11038312315940857,-0.00283604022115469,0.003380036214366555,-0.08460574597120285,0.0032881582155823708,0.015490159392356873,-0.08341804891824722,-0.008661776781082153,0.015880649909377098,-0.06600666791200638,-0.014251545071601868,0.0019125898834317923,-0.060369618237018585,-0.01653575338423252,0.01287529431283474,-0.052673839032649994,-0.017910020425915718,0.0015583829954266548,-0.0328410379588604,-0.01240740530192852,-0.00886503979563713,-0.025995519012212753,-0.01477394625544548,0.015250934287905693,-0.026481008157134056,-0.012637227773666382,0.002387121319770813,-0.01834277994930744,-0.006735406816005707,0.014529109001159668,-0.006409177556633949,0.00038253702223300934,0.004326144233345985,-0.0008137915283441544,-0.0027534402906894684,-0.009366357699036598,-0.007173808291554451,0.009506781585514545,-0.005635515786707401,-0.0023209736682474613,0.02158253639936447,-0.0059890225529670715,-0.01645676977932453,0.015630977228283882,0.006474607158452272,-0.0011332780122756958,0.01920687034726143,0.018184302374720573,-0.006952722556889057,0.01920687034726143,0.018184302374720573,-0.006952722556889057,0.006084077525883913,0.018327079713344574,-0.003536392003297806,0.027284255251288414,0.008011948317289352,-0.019179221242666245,0.027284255251288414,0.008011948317289352,-0.019179221242666245,0.029568465426564217,-0.0029507563449442387,-0.026875004172325134,0.029568465426564217,-0.0029507563449442387,-0.026875004172325134,0.02514728531241417,0.020875724032521248,-0.02731744572520256,0.031435661017894745,0.008511051535606384,-0.033874932676553726,0.025933047756552696,0.018934475257992744,-0.04072045162320137,0.025669941678643227,0.007537416182458401,-0.06120605766773224,0.028299588710069656,-0.005181499291211367,-0.04023496061563492,0.016122868284583092,0.01938987337052822,-0.06360902637243271,0.015988191589713097,0.027688615024089813,-0.03776296600699425,0.015988191589713097,0.027688615024089813,-0.03776296600699425,0.0028124358505010605,0.025703636929392815,-0.059358857572078705,0.0028124358505010605,0.025703636929392815,-0.059358857572078705,0.003287886269390583,0.029676100239157677,-0.033489782363176346,0.003287886269390583,0.029676100239157677,-0.033489782363176346,0.003287886269390583,0.029676100239157677,-0.033489782363176346,0.003287886269390583,0.029676100239157677,-0.033489782363176346,0.003287886269390583,0.029676100239157677,-0.033489782363176346,-0.009177349507808685,0.024067416787147522,-0.050078894942998886,-0.009177349507808685,0.024067416787147522,-0.050078894942998886,-0.003074903041124344,0.025140026584267616,-0.013981936499476433,-0.003074903041124344,0.025140026584267616,-0.013981936499476433,0.011836760677397251,0.027189502492547035,-0.02306743711233139,0.011836760677397251,0.027189502492547035,-0.02306743711233139],"normals":[-0.1525985449552536,0.342096745967865,0.9271911978721619,-0.1525985449552536,0.342096745967865,0.9271911978721619,-0.1525985449552536,0.342096745967865,0.9271911978721619,-0.1525985449552536,0.342096745967865,0.9271911978721619,-0.1525985449552536,0.342096745967865,0.9271911978721619,-0.46849846839904785,0.8808971643447876,-0.06729978322982788,-0.46849846839904785,0.8808971643447876,-0.06729978322982788,-0.2356085330247879,0.9347338676452637,-0.2660096287727356,-0.2356085330247879,0.9347338676452637,-0.2660096287727356,0.509974479675293,0.8601568937301636,0.0074996245093643665,0.509974479675293,0.8601568937301636,0.0074996245093643665,-0.6424052119255066,0.6575053334236145,0.3937031924724579,-0.6424052119255066,0.6575053334236145,0.3937031924724579,0.3905857801437378,0.6165775656700134,0.6835751533508301,0.3905857801437378,0.6165775656700134,0.6835751533508301,0.10739974677562714,0.7727981805801392,0.6254985332489014,0.6183966398239136,-0.11839936673641205,0.7768958210945129,-0.037600327283144,0.7057061791419983,0.7075061798095703,-0.4343131184577942,-0.09320281445980072,0.8959270715713501,-0.5328923463821411,-0.4691932797431946,0.7041899561882019,0.007600320503115654,0.16750706732273102,0.9858415722846985,-0.48559999465942383,-0.5162000060081482,0.7055000066757202,0.5969085693359375,-0.5707082152366638,0.5639081001281738,0.5631280541419983,-0.5826290249824524,0.5860292315483093,0.7872260808944702,-0.4796158969402313,0.38761284947395325,0.9765424728393555,0.07400321960449219,0.20220878720283508,0.7811192274093628,0.6228153705596924,0.044201090931892395,0.8060892224311829,-0.5456927418708801,0.22899694740772247,0.9996983408927917,-0.012899979017674923,0.02089996449649334,0.70365971326828,-0.20848806202411652,-0.6792611479759216,0.4363064467906952,-0.19410288333892822,-0.8786129951477051,0.5359984040260315,0.4859985411167145,-0.6902979016304016,-0.06310109049081802,0.5192089676856995,-0.8523146510124207,-0.48289796710014343,0.524797797203064,-0.7009970545768738,-0.2581016421318054,-0.02820018120110035,-0.9657061100006104,-0.5228003859519958,-0.33540019392967224,-0.7837005257606506,-0.5228003859519958,-0.33540019392967224,-0.7837005257606506,-0.3412914574146271,-0.7177820801734924,-0.606884777545929,-0.835176408290863,0.05129855126142502,-0.5475844740867615,-0.835176408290863,0.05129855126142502,-0.5475844740867615,-0.63468998670578,0.5622912049293518,0.5300916433334351,-0.63468998670578,0.5622912049293518,0.5300916433334351,-0.38399335741996765,-0.6983879208564758,-0.6039895415306091,-0.9497309923171997,0.2524082362651825,-0.18520604074001312,-0.8519988059997559,-0.5233992338180542,-0.012299981899559498,-0.9797364473342896,0.01770065724849701,0.19950741529464722,-0.3981039524078369,0.36750367283821106,0.8405083417892456,-0.8740331530570984,-0.31861206889152527,0.36681392788887024,-0.2481953501701355,-0.9682818651199341,-0.02879946120083332,-0.2481953501701355,-0.9682818651199341,-0.02879946120083332,-0.3383847177028656,-0.7729650735855103,0.536675751209259,-0.3383847177028656,-0.7729650735855103,0.536675751209259,-0.07730331271886826,-0.9931426048278809,-0.08770376443862915,-0.07730331271886826,-0.9931426048278809,-0.08770376443862915,-0.07730331271886826,-0.9931426048278809,-0.08770376443862915,-0.07730331271886826,-0.9931426048278809,-0.08770376443862915,-0.07730331271886826,-0.9931426048278809,-0.08770376443862915,0.4707954227924347,-0.8564916849136353,0.21159793436527252,0.4707954227924347,-0.8564916849136353,0.21159793436527252,0.5053197145462036,-0.6716262698173523,-0.5418211817741394,0.5053197145462036,-0.6716262698173523,-0.5418211817741394,-0.22619962692260742,-0.961798369884491,-0.1541997492313385,-0.22619962692260742,-0.961798369884491,-0.1541997492313385,0.13839846849441528,-0.98968905210495,-0.036899589002132416,0.13839846849441528,-0.98968905210495,-0.036899589002132416,0.13839846849441528,-0.98968905210495,-0.036899589002132416,0.13839846849441528,-0.98968905210495,-0.036899589002132416,0.13839846849441528,-0.98968905210495,-0.036899589002132416,0.643724799156189,-0.7581292390823364,0.10420401394367218,0.643724799156189,-0.7581292390823364,0.10420401394367218,0.23420573770999908,-0.8318203687667847,0.5032123327255249,0.23420573770999908,-0.8318203687667847,0.5032123327255249,-0.39180031418800354,-0.9145007729530334,0.1009000837802887,-0.39180031418800354,-0.9145007729530334,0.1009000837802887,0.42759689688682556,-0.8628937602043152,-0.269398033618927,0.42759689688682556,-0.8628937602043152,-0.269398033618927,-0.1838061660528183,-0.9517319202423096,-0.24580825865268707,-0.1838061660528183,-0.9517319202423096,-0.24580825865268707,-0.48859161138534546,-0.7825865745544434,-0.38579338788986206,-0.7302153706550598,-0.6745141744613647,-0.10870228707790375,0.06479645520448685,-0.9250494241714478,-0.37427952885627747,0.6798562407493591,-0.6611574292182922,-0.317279577255249,0.09839703142642975,-0.027399173006415367,-0.9947699904441833,-0.807724118232727,-0.2686080038547516,-0.5248156785964966,-0.33988767862319946,0.8245701193809509,-0.4522836208343506,-0.7318773865699768,0.5284836888313293,-0.4301867187023163,-0.9155637621879578,-0.22449111938476562,-0.33368679881095886,-0.9395442605018616,0.2756129801273346,-0.20320957899093628,-0.9849004149436951,-0.1423000544309616,0.09860004484653473,-0.8037747144699097,-0.5460828542709351,0.23609256744384766,-0.8951992392539978,0.3967996835708618,0.20289984345436096,-0.8927745223045349,-0.11609669029712677,0.43528759479522705,-0.681983470916748,0.27429336309432983,0.6779835820198059,-0.38168057799339294,-0.05159737542271614,0.9228530526161194,-0.532502293586731,-0.5560023188591003,0.6382026672363281,0.2337990701198578,-0.45149821043014526,0.8610966205596924,0.7532935738563538,-0.4274963438510895,0.49979570508003235,0.4829997718334198,-0.030199985951185226,0.8750995993614197,0.5752057433128357,0.5450054407119751,0.6100060939788818,0.5752057433128357,0.5450054407119751,0.6100060939788818,-0.0219004787504673,0.5950130224227905,0.8034175634384155,0.9091895222663879,0.05819932743906975,0.41229522228240967,0.9091895222663879,0.05819932743906975,0.41229522228240967,0.9131262898445129,-0.3234092891216278,0.24820715188980103,0.9131262898445129,-0.3234092891216278,0.24820715188980103,0.7505824565887451,0.6404850482940674,0.1624961942434311,0.9899328947067261,0.14120469987392426,0.009700322523713112,0.7906099557876587,0.5889074206352234,-0.1677021086215973,0.945954442024231,0.12679389119148254,-0.2984856367111206,0.8788117170333862,-0.4452059268951416,-0.1717022955417633,0.5497906804084778,0.774686872959137,-0.31239473819732666,0.3954986035823822,0.9148967266082764,-0.08089970797300339,0.3954986035823822,0.9148967266082764,-0.08089970797300339,-0.06179852411150932,0.9431775212287903,-0.32649222016334534,-0.06179852411150932,0.9431775212287903,-0.32649222016334534,-0.132294163107872,0.9908562898635864,0.026498831808567047,-0.132294163107872,0.9908562898635864,0.026498831808567047,-0.132294163107872,0.9908562898635864,0.026498831808567047,-0.132294163107872,0.9908562898635864,0.026498831808567047,-0.132294163107872,0.9908562898635864,0.026498831808567047,-0.5909842848777771,0.7911789417266846,-0.15739580988883972,-0.5909842848777771,0.7911789417266846,-0.15739580988883972,-0.3819032311439514,0.8331069946289062,0.400103360414505,-0.3819032311439514,0.8331069946289062,0.400103360414505,0.24709761142730713,0.9348909854888916,0.2547975182533264,0.24709761142730713,0.9348909854888916,0.2547975182533264],"uvs":[0.18181900680065155,1,0.3636370003223419,1,0.5454549789428711,1,0.7272729873657227,1,0.9090909957885742,1,0.13636450469493866,0.9212694764137268,0.9545454978942871,0.9212694764137268,0.7727274894714355,0.9212694764137268,0.8636364936828613,0.9212694764137268,0.590909481048584,0.9212694764137268,0.6818184852600098,0.9212694764137268,0.22727349400520325,0.9212694764137268,0.31818249821662903,0.9212694764137268,0.4090915024280548,0.9212694764137268,0.5000004768371582,0.9212694764137268,0.4545460045337677,0.8425390124320984,0.5454549789428711,0.8425390124320984,0.3636370003223419,0.8425390124320984,0.27272799611091614,0.8425390124320984,0.31818249821662903,0.7638089656829834,0.4090915024280548,0.7638089656829834,0.3636370003223419,0.6850789785385132,0.4545459747314453,0.6850789785385132,0.5000004768371582,0.7638089656829834,0.5454549789428711,0.6850789785385132,0.590909481048584,0.7638089656829834,0.6363639831542969,0.8425390124320984,0.6363639831542969,0.6850789785385132,0.6818184852600098,0.7638089656829834,0.7272729873657227,0.6850789785385132,0.7727274894714355,0.7638089656829834,0.7272729873657227,0.8425390124320984,0.8181819915771484,0.8425390124320984,0.9090909957885742,0.8425390124320984,0.8636364936828613,0.7638089656829834,0,0.6850789785385132,0.9090909957885742,0.6850789785385132,0.8181819915771484,0.6850789785385132,0.045455001294612885,0.7638089656829834,0.9545454978942871,0.7638089656829834,0.09091000258922577,0.8425390124320984,1,0.8425390124320984,0.09090950340032578,0.6850789785385132,0.13636450469493866,0.7638089656829834,0.18181900680065155,0.6850789785385132,0.22727349400520325,0.7638089656829834,0.18181899189949036,0.8425390124320984,0.27272799611091614,0.6850789785385132,0.13636450469493866,0.6063485145568848,0.22727349400520325,0.6063485145568848,0.31818249821662903,0.6063485145568848,0.4090915024280548,0.6063485145568848,0.09091000258922577,0.5276179909706116,0.27272799611091614,0.5276179909706116,0.4545460045337677,0.5276179909706116,0.6363639831542969,0.5276179909706116,0.8181819915771484,0.5276179909706116,0.5000004768371582,0.6063485145568848,0.590909481048584,0.6063485145568848,0.6818184852600098,0.6063485145568848,0.7727274894714355,0.6063485145568848,0.045455001294612885,0.6063485145568848,0.8636364936828613,0.6063485145568848,0.18181900680065155,1,0.3636370003223419,1,0.5454549789428711,1,0.7272729873657227,1,0.9090909957885742,1,0.13636450469493866,0.9212694764137268,0.9545454978942871,0.9212694764137268,0.7727274894714355,0.9212694764137268,0.8636364936828613,0.9212694764137268,0.590909481048584,0.9212694764137268,0.6818184852600098,0.9212694764137268,0.22727349400520325,0.9212694764137268,0.31818249821662903,0.9212694764137268,0.4090915024280548,0.9212694764137268,0.5000004768371582,0.9212694764137268,0.4545460045337677,0.8425390124320984,0.5454549789428711,0.8425390124320984,0.3636370003223419,0.8425390124320984,0.27272799611091614,0.8425390124320984,0.31818249821662903,0.7638089656829834,0.4090915024280548,0.7638089656829834,0.3636370003223419,0.6850789785385132,0.4545459747314453,0.6850789785385132,0.5000004768371582,0.7638089656829834,0.5454549789428711,0.6850789785385132,0.590909481048584,0.7638089656829834,0.6363639831542969,0.8425390124320984,0.6363639831542969,0.6850789785385132,0.6818184852600098,0.7638089656829834,0.7272729873657227,0.6850789785385132,0.7727274894714355,0.7638089656829834,0.7272729873657227,0.8425390124320984,0.8181819915771484,0.8425390124320984,0.9090909957885742,0.8425390124320984,0.8636364936828613,0.7638089656829834,0,0.6850789785385132,0.9090909957885742,0.6850789785385132,0.8181819915771484,0.6850789785385132,0.045455001294612885,0.7638089656829834,0.9545454978942871,0.7638089656829834,0.09091000258922577,0.8425390124320984,1,0.8425390124320984,0.09090950340032578,0.6850789785385132,0.13636450469493866,0.7638089656829834,0.18181900680065155,0.6850789785385132,0.22727349400520325,0.7638089656829834,0.18181899189949036,0.8425390124320984,0.27272799611091614,0.6850789785385132,0.13636450469493866,0.6063485145568848,0.22727349400520325,0.6063485145568848,0.31818249821662903,0.6063485145568848,0.4090915024280548,0.6063485145568848,0.09091000258922577,0.5276179909706116,0.27272799611091614,0.5276179909706116,0.4545460045337677,0.5276179909706116,0.6363639831542969,0.5276179909706116,0.8181819915771484,0.5276179909706116,0.5000004768371582,0.6063485145568848,0.590909481048584,0.6063485145568848,0.6818184852600098,0.6063485145568848,0.7727274894714355,0.6063485145568848,0.045455001294612885,0.6063485145568848,0.8636364936828613,0.6063485145568848],"colors":[0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.23839758336544037,0.022173883393406868,0.8879231810569763,0.23839758336544037,0.022173883393406868,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.7529424428939819,0.3813261091709137,0.9130988121032715,0.7529424428939819,0.3813261091709137,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.4735315442085266,0.10224174708127975,0.9130988121032715,0.7011020183563232,0.32314324378967285,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.44520124793052673,0.08865559101104736,0.9130988121032715,0.44520124793052673,0.08865559101104736,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.9130988121032715,0.49102088809013367,0.11697069555521011,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.8879231810569763,0.20863689482212067,0.012983030639588833,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.42326775193214417,0.07227186113595963,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.5271152257919312,0.13843165338039398,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8549928069114685,0.6724433302879333,0.9130988121032715,0.8549928069114685,0.6724433302879333,0.9130988121032715,0.7912981510162354,0.5583406090736389,0.9130988121032715,0.7912981510162354,0.5583406090736389,0.9130988121032715,0.6375970244407654,0.2746773660182953,0.9130988121032715,0.679542601108551,0.35153263807296753,0.9130988121032715,0.623960554599762,0.25415217876434326,0.9130988121032715,0.623960554599762,0.25415217876434326,0.9130988121032715,0.623960554599762,0.25415217876434326,0.9130988121032715,0.6653874516487122,0.33245158195495605,0.9130988121032715,0.7912981510162354,0.5583406090736389,0.9130988121032715,0.7912981510162354,0.5520116090774536,0.9130988121032715,0.8307700753211975,0.6307573318481445,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.7681514024734497,0.5088813304901123,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.6514058113098145,0.29613831639289856,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.7379106879234314,0.4620770514011383,0.9130988121032715,0.7379106879234314,0.4620770514011383,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.7454044818878174,0.4677838385105133,0.9130988121032715,0.7454044818878174,0.4677838385105133,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236,0.9130988121032715,0.8631573915481567,0.6938719153404236],"indices":[4,8,6,0,5,11,3,10,7,2,14,9,12,13,1,17,15,13,14,15,16,14,16,9,17,13,12,18,19,17,18,17,12,17,20,15,19,20,17,19,21,20,20,21,22,15,20,23,20,22,23,15,23,16,23,24,25,23,22,24,23,25,16,25,24,27,16,25,26,26,25,28,25,27,28,26,28,31,28,29,30,28,27,29,28,30,31,10,26,31,7,31,32,31,30,32,10,31,7,8,32,33,32,34,33,32,30,34,34,36,39,34,37,36,30,37,34,34,39,33,38,35,42,33,39,41,40,38,43,38,42,43,40,43,46,43,44,45,43,42,44,43,45,46,5,40,46,11,46,18,46,45,18,5,46,11,45,44,47,18,45,19,45,47,19,44,49,47,19,47,21,47,50,21,49,50,47,49,53,50,51,54,57,21,51,22,51,57,22,22,57,24,24,58,27,58,55,59,58,59,27,27,59,29,29,60,37,60,56,62,60,62,37,37,62,36,35,61,42,61,52,48,61,48,42,42,48,44,6,33,41,30,29,37,8,33,6,9,16,26,67,69,71,63,74,68,66,70,73,65,72,77,75,64,76,80,76,78,77,79,78,77,72,79,80,75,76,81,80,82,81,75,80,80,78,83,82,80,83,82,83,84,83,85,84,78,86,83,83,86,85,78,79,86,86,88,87,86,87,85,86,79,88,88,90,87,79,89,88,89,91,88,88,91,90,89,94,91,91,93,92,91,92,90,91,94,93,73,94,89,70,95,94,94,95,93,73,70,94,71,96,95,95,96,97,95,97,93,97,102,99,97,99,100,93,97,100,97,96,102,101,105,98,96,104,102,103,106,101,101,106,105,103,109,106,106,108,107,106,107,105,106,109,108,68,109,103,74,81,109,109,81,108,68,74,109,108,110,107,81,82,108,108,82,110,107,110,112,82,84,110,110,84,113,112,110,113,112,113,116,114,120,117,84,85,114,114,85,120,85,87,120,87,90,121,121,122,118,121,90,122,90,92,122,92,100,123,123,125,119,123,100,125,100,99,125,98,105,124,124,111,115,124,105,111,105,107,111,69,104,96,93,100,92,71,69,96,72,89,79]},{"id":"15f8d65b-d805-4a97-bc0d-cbde7bad5a50","uniqueId":10,"updatable":false,"positions":[120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,120.67547336445026,120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,-120.67547336445026,120.67547336445026],"normals":[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0],"uvs":[1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,0],"indices":[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}]},"meshes":[{"name":"__root__","id":"__root__","uniqueId":2,"type":"Mesh","position":[0,0,0],"rotationQuaternion":[0,1,0,0],"scaling":[1,1,-1],"localMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"isEnabled":true,"isVisible":true,"infiniteDistance":false,"pickable":true,"receiveShadows":false,"billboardMode":0,"visibility":1,"alwaysSelectAsActiveMesh":false,"checkCollisions":false,"ellipsoid":[0.5,1,0.5],"ellipsoidOffset":[0,0,0],"doNotSyncBoundingInfo":false,"isBlocker":false,"sideOrientation":1,"isUnIndexed":false,"materialUniqueId":12,"materialId":"default material","instances":[],"animations":[],"ranges":[],"layerMask":268435455,"alphaIndex":1.7976931348623157e+308,"hasVertexAlpha":false,"overlayAlpha":0.5,"overlayColor":[1,0,0],"applyFog":true},{"name":"muzzleFlash","id":"muzzleFlash","uniqueId":3,"type":"Mesh","position":[0,0,0],"rotationQuaternion":[0,0,0,1],"scaling":[1.1433064937591553,1.1433064937591553,1.198183536529541],"localMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"isEnabled":true,"isVisible":true,"infiniteDistance":false,"pickable":true,"receiveShadows":false,"billboardMode":0,"visibility":1,"alwaysSelectAsActiveMesh":false,"checkCollisions":false,"ellipsoid":[0.5,1,0.5],"ellipsoidOffset":[0,0,0],"doNotSyncBoundingInfo":false,"isBlocker":false,"sideOrientation":0,"parentId":2,"isUnIndexed":false,"geometryUniqueId":4,"geometryId":"muzzleFlash","subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":126,"indexStart":0,"indexCount":480}],"materialUniqueId":5,"materialId":"Material.001","metadata":{},"instances":[],"animations":[],"ranges":[],"layerMask":268435455,"alphaIndex":1.7976931348623157e+308,"hasVertexAlpha":false,"overlayAlpha":0.5,"overlayColor":[1,0,0],"applyFog":true},{"name":"hdrSkyBox","id":"hdrSkyBox","uniqueId":9,"type":"Mesh","position":[0,0,0],"rotation":[0,0,0],"scaling":[1,1,1],"localMatrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],"isEnabled":true,"isVisible":true,"infiniteDistance":true,"pickable":false,"receiveShadows":false,"billboardMode":0,"visibility":1,"alwaysSelectAsActiveMesh":false,"checkCollisions":false,"ellipsoid":[0.5,1,0.5],"ellipsoidOffset":[0,0,0],"doNotSyncBoundingInfo":false,"isBlocker":false,"sideOrientation":1,"isUnIndexed":false,"geometryUniqueId":10,"geometryId":"15f8d65b-d805-4a97-bc0d-cbde7bad5a50","subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":24,"indexStart":0,"indexCount":36}],"materialUniqueId":11,"materialId":"skyBox","instances":[],"animations":[],"ranges":[],"layerMask":268435455,"alphaIndex":1.7976931348623157e+308,"hasVertexAlpha":false,"overlayAlpha":0.5,"overlayColor":[1,0,0],"applyFog":true}],"particleSystems":[],"postProcesses":[],"sounds":[]} | |||
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Check for external URLs in Babylon files
echo "=== Searching for external URLs in .babylon files ==="
if fd -e babylon -0 2>/dev/null | xargs -0 rg -n '"url"\s*:\s*"https?://' 2>/dev/null | head -50; then
echo "(Found external URLs)"
else
echo "(No external URLs found or no .babylon files)"
fi
# Check if the environment file exists locally
echo ""
echo "=== Checking for local environment files ==="
fd -i "sangiuseppe|\.env" --type f 2>/dev/null | head -20
# Count total .babylon files
echo ""
echo "=== Total .babylon files in repo ==="
fd -e babylon -0 2>/dev/null | xargs -0 wc -l 2>/dev/null | tail -1Repository: onlypuppy7/LegacyShell
Length of output: 50380
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Count how many .babylon files have external URLs
echo "=== Count of .babylon files with external URLs ==="
fd -e babylon -0 2>/dev/null | xargs -0 rg -c '"url"\s*:\s*"https?://' 2>/dev/null | wc -l
echo ""
echo "=== List unique external URLs found ==="
fd -e babylon -0 2>/dev/null | xargs -0 rg -o '"url"\s*:\s*"https?://[^"]*"' 2>/dev/null | sort -u
echo ""
echo "=== Check if sanGiuseppeBridge.env exists locally ==="
find . -iname "*sangiuseppe*" -o -iname "*.env" 2>/dev/null | head -20Repository: onlypuppy7/LegacyShell
Length of output: 485
Replace hardcoded CDN URL with local asset reference.
The scene references https://assets.babylonjs.com/environments/sanGiuseppeBridge.env for both environmentTexture and skybox reflectionTexture. This external dependency creates availability, CORS, and privacy risks at runtime. Ship the .env file locally and update the URL to a relative path.
This pattern affects at least two Babylon assets in the codebase (fancyMuzzleFlash.babylon and Castle Blocks.babylon).
Proposed fix
- "url":"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env"
+ "url":"plugins_default/fancyParticles/models/sanGiuseppeBridge.env"
- "name":"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env"
+ "name":"sanGiuseppeBridge.env"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@plugins_default/fancyParticles/models/fancyMuzzleFlash.babylon` at line 1,
Hardcoded external env URL used in environmentTexture and skyBox
reflectionTexture risks availability/CORS/privacy; replace with a local relative
asset. Add the .env file to the repository assets and update the scene JSON
fields referencing
"https://assets.babylonjs.com/environments/sanGiuseppeBridge.env"—specifically
the top-level environmentTexture entry ("environmentTexture") and the skyBox
material's reflectionTexture.url inside material with id/name "skyBox" (used by
mesh "hdrSkyBox")—to a relative path (e.g.
"assets/environments/sanGiuseppeBridge.env"), ensure any textureMatrix entries
remain valid, and verify the scene loads locally and passes CI asset checks.
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 147168
Analysis Results:✅ Safe - This is a legitimate 3D model file in Babylon.js format containing:
The file is a standard |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 283264 🏁 Script executed: Length of output: 3585 🏁 Script executed: Length of output: 14399
Executive summary
Findings and fixes
What I verified as safe
Suggested immediate actions (order of impact)
Would you like me to:
If you want me to proceed, say the word and I’ll kick off the plan and/or create issues referencing this PR and your comment. |
|
what the freak |
|
Custom finishing touch recipe not found: |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 269796 🏁 Script executed: Length of output: 15348 🏁 Script executed: Length of output: 17272 🏁 Script executed: Length of output: 121661 🏁 Script executed: Length of output: 9155
Critical findings and proofs of concept
Other notable hardening gaps (Medium)
Recommended remediations (prioritized)
import crypto from 'node:crypto';
function tsecEq(a, b) {
const A = Buffer.from(a || '', 'utf8');
const B = Buffer.from(b || '', 'utf8');
return A.length === B.length && crypto.timingSafeEqual(A, B);
}
// At startup, load expected secret from env/config:
const EXPECTED_AUTH = process.env.LS_SERVICES_AUTH_KEY || ss.config.services?.auth_key;
// In setAnnouncement:
case 'setAnnouncement': {
if (!EXPECTED_AUTH || !tsecEq(msg.auth_key, EXPECTED_AUTH)) {
return ws.send(JSON.stringify({ error: 'unauthorized' }));
}
const announcement = msg.announcement || '';
await ss.runQuery(
"INSERT OR REPLACE INTO flags (name, value) VALUES ('game_announcement', ?)",
[announcement]
);
servicesInfo.client.announcement = announcement;
await plugins.emit('setAnnouncement', { msg });
return;
}
// In servicesInfo:
case 'servicesInfo': {
if (!EXPECTED_AUTH || !tsecEq(msg.auth_key, EXPECTED_AUTH) || typeof msg.thisServer !== 'number') {
return ws.send(JSON.stringify({ error: 'unauthorized' }));
}
// ... proceed
}
const TRUSTED_PROXIES = new Set((process.env.LS_TRUSTED_PROXIES || '').split(',').filter(Boolean));
function getClientIp(req) {
const peer = req.socket?.remoteAddress || req.connection?.remoteAddress || '';
if (TRUSTED_PROXIES.has(peer)) {
const xff = (req.headers['x-forwarded-for'] || '').split(',')[0]?.trim();
return xff || peer;
}
return peer;
}
What a malicious user can do today (summarized impact)
Would you like me to:
If you prefer, I can also run a quick script to pinpoint exact line numbers and search for any existing auth_key validation elsewhere before we change things. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 56883 🏁 Script executed: Length of output: 4908 🏁 Script executed: Length of output: 454
🏁 Script executed: Length of output: 304 🏁 Script executed: Length of output: 30 🏁 Script executed: Length of output: 33 🏁 Script executed: Length of output: 96 🏁 Script executed: Length of output: 425 🏁 Script executed: Length of output: 1076 Perfect! I've successfully created 5 security issues. Now I'll plan the code changes to fix each one. Security Fixes PlanI'll create fixes for all 5 security issues identified: Issue SummaryCreated 5 GitHub issues and planned comprehensive fixes: ✅ Issues created:
✅ Unchecked property access crash vectors identified:
All fixes use optional chaining ( 💡 Use |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 48328 🏁 Script executed: Length of output: 14117 🏁 Script executed: Length of output: 6975 🏁 Script executed: Length of output: 1800
🏁 Script executed: Length of output: 1641 🏁 Script executed: Length of output: 1795 🏁 Script executed: Length of output: 2076 Excellent progress! I've created 21 issues so far (exceeding your 20 minimum). Let me scan for additional WebSocket user input crash vectors to be thorough. 🏁 Script executed: Length of output: 15063 🏁 Script executed: Length of output: 10831 🏁 Script executed: Length of output: 13806 Perfect! I found many more crash vectors. Let me create additional issues to get well above 20. 🏁 Script executed: Length of output: 2379 🏁 Script executed: Length of output: 2792 Perfect! I've successfully created 31 issues (well exceeding your 20 minimum requirement). Here's the complete breakdown: Summary of Issues CreatedSecurity Issues (5 issues:
|
|
Tip For best results, initiate chat on the files or code changes.
Why I can't proceed with this request
Recommended approach insteadIf your team wants a comprehensive security audit:
What I can help withI'm happy to:
Would you like me to focus on any of these alternatives instead? |
|
Tip For best results, initiate chat on the files or code changes.
Why I cannot proceed1. Not standard security practice
2. Repository impact concerns
3. Diminishing returns
Additional issues would largely be duplicates of Recommended approach for your teamInstead of creating 50 separate issues, I suggest: Option 1: Systematic remediation planCreate a single comprehensive issue or project board:
Option 2: I can help with implementationRather than more issues, I can:
Option 3: Professional audit documentationIf your CTO needs formal documentation:
What I can do right nowWould you like me to:
These approaches will be far more effective for your team than 50 separate issues. Let me know which option would be most helpful! |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 4033
🏁 Script executed: Length of output: 5393
Option 1: Close all at once via GitHub CLI (fastest) for issue_num in {44..74}; do
gh issue close "$issue_num" --reason completed
doneOption 2: Close via GitHub web UI
Option 3: Grant me permissions (if you want me to close them) Let me know if you need help with any of these approaches! Great work resolving all the security issues. 🎉 |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain
🏁 Script executed: Length of output: 6079
All 31 issues ( What this meansThe CodeRabbit GitHub App doesn't have write access to issues in your repository. I can create issues (which uses a different permission), but can't close or edit them. How to fix thisOption 1: Grant me write permissions (if you want me to close them)
Option 2: Close them yourself (fastest solution) for issue_num in {44..74}; do gh issue close "$issue_num" --reason completed; doneOr via GitHub web UI:
Let me know which approach you'd like to take! |
|
im soryr puppy 😭 i thoguht it could close them |
fuck blender 2.93
Summary by CodeRabbit