select any#674
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces multi-dimensional slicing and custom axis mapping to the Zarr store and visualization components, allowing users to map arbitrary dimensions to the X, Y, and Z axes. It adds a comprehensive set of DimSlicer UI components, updates data fetching and chunk copying logic to support arbitrary slicing, and updates shaders to GLSL 3.0 syntax. The review feedback highlights a critical issue where zDimIndex defaults to -1 when unmapped, breaking 3D rendering, as well as several bugs in MetaDimSelector.tsx where parsing inclusive slice stop indices (especially when the index is 0) fails to handle the exclusive nature of Zarr slices correctly.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
|
do we revert again? and find a different approach for transformations? or is there a solution for this issue while keeping the textures approach ? |
|
I'll look now. There was never any error message posted and I haven't gotten around to looking at FF. |
|
it needs NaNs, that's why my screenshots are for transpiration. In all browsers? Firefox included? |
|
That image is FF. I don't have access to safari. |
|
Ok, that shows what the issue is. I looked, and apparently Firefox (And chrome for that matter) on iOS isn't even firefox. It's just a wrapper around Safaris webkit so it's compiled differently from Windows/Linux firefox. https://adactio.medium.com/web-browsers-on-ios-b120a9a75cce So yet another annoying variable to mess with. |
|
Does it only not work on Transpiration? That error tells me it should fail on any variable |
indeed, it fails also for other variables. |
yes, but we need to make sure it works in as many browsers as possible, after all this is |
|
Okay, I think we had an issue very similar to this before with texture order. I'll do a little research. |
|
You could start from the solution. Which is the Array - idx approach, which is making sure there are no such issues. |
|
Can you verify if this happens in all shaders: points, sphere, sphere blocks, flat, flat blocks |
|
using or, will this also pose issues? Gemini's diagnosis: This comes down to a strict limitation in how WebGL (the underlying rendering engine used by Three.js) and its shader language (GLSL) handle memory compared to Javascript. Here is why each of those pieces is critical: 1. The Number
|
|
So does it not work in every render method? I want to understand the problem fully before implementing a fix. |
|
no consistently. Sometimes if you are lucky the only one working is point clouds. And other times not even that one works. |
what's is wrong with that? Sometimes dates will contain hours/minutes, hence start/end don't fit in the same row, so I move the other one to a new row. That was intentional. Suggestions? centered doesnt look better. |
|
Okay, great to know I am understanding what is happening. When we talked, I had mentioned it and you said it was fixed so I didn't think this was intentional. I guess we were talking about two different things. I would just let them overflow and hide it. Maybe drop the font down 1pt as well. |
|
please verify this:
if so, propose/push a commit solution. |
|
I can't verify and don't see any increase in VRAM with extra array lengths. I think maybe they are just pointers then. Alright, let's go with the |






I'm satisfied with the current status. And it does the job. I tried to tackle all corner cases, and see that everything works, but for sure there must be some hidden bug or use case I didn't catch. I used Gemini to find solutions and possible bugs in this transition.
NaN webgpu compute enhanced.
UI sliders update.
Pull Request Summary (by Gemini, but is accurate)
This pull request introduces a significant round of updates focusing on a major new workflow for multidimensional variable selection, layout responsiveness, rendering performance with WebGPU/WebGL, data handling for Zarr stores, and general UI/UX improvements across the core components.
Major Highlight: Multidimensional Variable Selection
DimSlidercomponents workflow. This new system allows users to intuitively slice, filter, and select variables at will from complex, multidimensional datasets. It fundamentally improves how users navigate and visualize multi-variable Zarr data.Key Features & Performance
TimeComboboxandMetaDimSelectorwith windowing and scrolling improvements. This dramatically increases performance when handling datasets with a massive number of input dates.GetArray,dataFetchers, andutilsto handle packed chunks, flat datasets (isFlat), and 2D variables.NaNandInfinityvalues were propagating incorrectly during 1-variable and 2-variable statistics computation.UI & Layout Refinements
Attributes,Variables, andColorbardetails to useDialogcomponents (especially on mobile) while retainingPopoveron desktop when appropriate.Plotbutton to the right for a better layout flow.Rendering & Plotting (WebGL/WebGPU)
glsl3and specialized vertex shaders for specific rendering use cases (vertex.glsl,LandingVertex.glsl, etc).AxisLines,FlatMap, andSpheremapping to correctly pass the right indices and coordinate rules.Changed Files Breakdown
MetaDimSelector.tsx,TimeCombobox.tsx,Variables.tsx,MetaData.tsx,Colorbar.tsx,PlayButton.tsxPlot.tsx,FlatMap.tsx,AxisLines.tsx,WGSLShaders.ts,webGPU.ts, multiple*.glslfiles.GetArray.ts,dataFetchers.ts,utils.ts,GlobalStore.ts