VTK issueshttps://gitlab.kitware.com/vtk/vtk/-/issues2024-03-01T17:42:32-05:00https://gitlab.kitware.com/vtk/vtk/-/issues/19115OpenXR Remoting: Hologram stability2024-03-01T17:42:32-05:00Lucas GandelOpenXR Remoting: Hologram stabilityImprove hologram stability according to https://learn.microsoft.com/en-us/windows/mixed-reality/develop/advanced-concepts/hologram-stability.
From the Microsoft HolographicRemoting example, we identified that depth reprojection (XR_MSFT...Improve hologram stability according to https://learn.microsoft.com/en-us/windows/mixed-reality/develop/advanced-concepts/hologram-stability.
From the Microsoft HolographicRemoting example, we identified that depth reprojection (XR_MSFT_composition_layer_reprojection) has the most effect on Hololens stability.<br/>
To support depth reprojection mode, improvements to the DirectX-OpenGL interop must be made to support sharing depth textures.<br/>
Using infinite far distance in the camera projection could also be an easy thing to try.Lucas GandelLucas Gandelhttps://gitlab.kitware.com/vtk/vtk/-/issues/19114OpenXR Remoting: Scene understanding - Depth occlusion2024-03-01T17:43:08-05:00Lucas GandelOpenXR Remoting: Scene understanding - Depth occlusionAdd support for [XR_MSFT_scene_understanding](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_MSFT_scene_understanding) to query the mesh of the environment and perform depth occlusion.<br/>
This allows for occluding VT...Add support for [XR_MSFT_scene_understanding](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_MSFT_scene_understanding) to query the mesh of the environment and perform depth occlusion.<br/>
This allows for occluding VTK scene objects with the real world.https://gitlab.kitware.com/vtk/vtk/-/issues/19113OpenXR: Add support for XR overlays2024-03-01T17:42:27-05:00Lucas GandelOpenXR: Add support for XR overlaysAdd support for XR_EXTX_overlay extension as originally stated in the master issue (#18302).Add support for XR_EXTX_overlay extension as originally stated in the master issue (#18302).https://gitlab.kitware.com/vtk/vtk/-/issues/19112OpenXR Renderer: always warn "Not renderer" at the startup2024-03-04T12:02:46-05:00Lucas GivordOpenXR Renderer: always warn "Not renderer" at the startupEven if the OpenXR renderer is correctly setup, VTK will always trigger a warning `Not renderer` which is often not meaningful and should be ignored in such context.
You can reproduce this issue with the example named `TestOpenXRRemotin...Even if the OpenXR renderer is correctly setup, VTK will always trigger a warning `Not renderer` which is often not meaningful and should be ignored in such context.
You can reproduce this issue with the example named `TestOpenXRRemotingInitialization`, follow steps described in this [readme about openXRRemoting](https://gitlab.kitware.com/vtk/vtk/-/tree/master/Rendering/OpenXRRemoting?ref_type=heads#vtk-openxr-holographic-remoting) to be able to compile/run this example.
FYI @LucasGandelKitwarehttps://gitlab.kitware.com/vtk/vtk/-/issues/19111Add missing VTK Readers/Writers in https://docs.vtk.org/en/latest/supported_d...2023-09-27T13:32:26-04:00Spiros TsalikisAdd missing VTK Readers/Writers in https://docs.vtk.org/en/latest/supported_data_formats.htmlAdd missing VTK Readers/Writers in https://docs.vtk.org/en/latest/supported_data_formats.html
cc: @christos.tsolakis @jcfrAdd missing VTK Readers/Writers in https://docs.vtk.org/en/latest/supported_data_formats.html
cc: @christos.tsolakis @jcfrSpiros TsalikisSpiros Tsalikishttps://gitlab.kitware.com/vtk/vtk/-/issues/19110XR: Add option to pick all actors2023-09-27T07:59:01-04:00Mathieu Westphal (Kitware)XR: Add option to pick all actors**Story**: As a ParaView user, I would like to grab or pick all objects of the scene at once instead of one at a time.
**Suggestion**: Investigate the possibility to grab or pick all objects at once (e.g. using a checkbox in the menu?)....**Story**: As a ParaView user, I would like to grab or pick all objects of the scene at once instead of one at a time.
**Suggestion**: Investigate the possibility to grab or pick all objects at once (e.g. using a checkbox in the menu?).
Add a modifier button to provide a modified version of the original grab/pick.https://gitlab.kitware.com/vtk/vtk/-/issues/19109VR: vtkMolecule are not displated correctly in VR2023-09-27T07:37:30-04:00Mathieu Westphal (Kitware)VR: vtkMolecule are not displated correctly in VR**Description**: **Molecules** (`vtkMolecule` type) are not displayed correctly in VR mode (see picture where atoms are not scaled properly).
![BadMoleculeRendering](/uploads/bdf6391d50e2a4694c9d1633a6f877dc/BadMoleculeRendering.png)**Description**: **Molecules** (`vtkMolecule` type) are not displayed correctly in VR mode (see picture where atoms are not scaled properly).
![BadMoleculeRendering](/uploads/bdf6391d50e2a4694c9d1633a6f877dc/BadMoleculeRendering.png)https://gitlab.kitware.com/vtk/vtk/-/issues/19108VR: Investigate possibilities to test interactions and rendering2023-09-27T06:21:56-04:00Mathieu Westphal (Kitware)VR: Investigate possibilities to test interactions and renderingInvestigate solutions for rendering and interactions CI with VR:
- Monado: https://monado.dev/
- PerceptionDevice: https://learn.microsoft.com/en-us/windows/mixed-reality/develop/advanced-concepts/perception-simulation-standaloneInvestigate solutions for rendering and interactions CI with VR:
- Monado: https://monado.dev/
- PerceptionDevice: https://learn.microsoft.com/en-us/windows/mixed-reality/develop/advanced-concepts/perception-simulation-standalonehttps://gitlab.kitware.com/vtk/vtk/-/issues/19107TestAvatar: Move to VR module2023-09-27T06:03:32-04:00Mathieu Westphal (Kitware)TestAvatar: Move to VR moduleTestAvatar is not specific to OpenVR, should be moved to VR moduleTestAvatar is not specific to OpenVR, should be moved to VR modulehttps://gitlab.kitware.com/vtk/vtk/-/issues/19106vtkOpenXRUtilities: Make it a namespace instead of a class2023-09-27T05:50:15-04:00Mathieu Westphal (Kitware)vtkOpenXRUtilities: Make it a namespace instead of a classvtkOpenXRUtilities should be a namespace instead of a classvtkOpenXRUtilities should be a namespace instead of a classhttps://gitlab.kitware.com/vtk/vtk/-/issues/19105OpenXR: Display controller model2024-03-01T17:42:16-05:00Mathieu Westphal (Kitware)OpenXR: Display controller modelAdd support for displaying controller model using OpenXR.Add support for displaying controller model using OpenXR.https://gitlab.kitware.com/vtk/vtk/-/issues/19104VR: Improve vtkVRControlsHelper/vtkVRModel doc2023-09-27T05:39:21-04:00Mathieu Westphal (Kitware)VR: Improve vtkVRControlsHelper/vtkVRModel docvtkVRControlsHelper and vtkVRModel documentation is very sparse, improve itvtkVRControlsHelper and vtkVRModel documentation is very sparse, improve ithttps://gitlab.kitware.com/vtk/vtk/-/issues/19103XR: Rework interaction mechanism to avoid duplication of logic and .json file2024-03-01T17:42:44-05:00Mathieu Westphal (Kitware)XR: Rework interaction mechanism to avoid duplication of logic and .json file - Create a mechanism to generate .json file as needed, either at runtime or compile time
- Create a generic .json file for any unknow headset to fallback on
Was:
```
Create a generic binding .json to fallback for all other controlle... - Create a mechanism to generate .json file as needed, either at runtime or compile time
- Create a generic .json file for any unknow headset to fallback on
Was:
```
Create a generic binding .json to fallback for all other controllers
Implement a generic way of handling actions (action paths, action updates/processing, etc.)
```
```
**Description**: When using VTK or ParaView with OpenVR or OpenXR, a given controller brand does not always have the same button mappings for the same action. This is also the case between different controllers, which makes it confusing to interact in XR.
**Objective**: Unify controller bindings in the JSON files for **(i)** all controllers, for **(ii)** VTK and ParaView, as well as for **(iii)** OpenVR and OpenXR.
Ideally, try to use:
- Joysticks for movement (left for movement, right for elevation)
- Triggers for trigger actions
- Grip buttons for grip actions (else use buttons)
- Right controller button for opening the menu
```https://gitlab.kitware.com/vtk/vtk/-/issues/19102vtkVRRenderWindowInteractor: Implement InternalCreateTimer/InternalDestroyTimer2023-09-27T04:56:01-04:00Mathieu Westphal (Kitware)vtkVRRenderWindowInteractor: Implement InternalCreateTimer/InternalDestroyTimer`vtkVRRenderWindowInteractor::InternalCreateTimer` and `vtkVRRenderWindowInteractor::InternalDestroyTimer` are missing, let's implement them`vtkVRRenderWindowInteractor::InternalCreateTimer` and `vtkVRRenderWindowInteractor::InternalDestroyTimer` are missing, let's implement themhttps://gitlab.kitware.com/vtk/vtk/-/issues/19101inflating a part of an object in VTK2023-09-27T04:35:01-04:00kimia ghodoosiinflating a part of an object in VTKHi everyone!
How can I inflate a part of an object by getting an input from user in VTK using C++?(something like what I attached here)
![Screenshot_2023-09-27_114125](/uploads/732010c00a3b8ac8d59966e8063d49dc/Screenshot_2023-09-27_1141...Hi everyone!
How can I inflate a part of an object by getting an input from user in VTK using C++?(something like what I attached here)
![Screenshot_2023-09-27_114125](/uploads/732010c00a3b8ac8d59966e8063d49dc/Screenshot_2023-09-27_114125.png)https://gitlab.kitware.com/vtk/vtk/-/issues/19100Unnecessary dependency on MPI for VTK2023-10-19T00:23:51-04:00Andrew MacleanUnnecessary dependency on MPI for VTKThis MR https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10519/diffs?commit_id=0db77868f013b6e6f896a20e27cca85d3df31980 is causing this error when VTK is configured:
```cmd
CMake Error at CMake/vtkModule.cmake:1075 (message):
The ...This MR https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10519/diffs?commit_id=0db77868f013b6e6f896a20e27cca85d3df31980 is causing this error when VTK is configured:
```cmd
CMake Error at CMake/vtkModule.cmake:1075 (message):
The VTK::FiltersSources module (enabled via a `WANT` setting (via
`VTK_GROUP_ENABLE_StandAlone`)) requires the disabled module
VTK::ParallelMPI (disabled due to the VTK::mpi module not being available
(via `VTK_USE_MPI`)).
Call Stack (most recent call first):
CMakeLists.txt:410 (vtk_module_scan)
```
The reason is that not all machines install MPI.
The build occurs OK if the line:
```cmake
VTK::ParallelMPI
```
is removed in `Filters\Sources\vtk.module`.
This is forcing an unnecessary dependency on MPI for VTK.Charly BollingerCharly Bollingerhttps://gitlab.kitware.com/vtk/vtk/-/issues/19099Easier data access for parallel VTK formats2023-09-26T13:06:26-04:00Boonthanome NouanesengsyEasier data access for parallel VTK formatsIt would be useful for users if there was an easier method to fetch data from parallel VTK formats. Currently, a user will need to step through all the pieces of a multipiece dataset, and fetch the arrays individually. Then there are als...It would be useful for users if there was an easier method to fetch data from parallel VTK formats. Currently, a user will need to step through all the pieces of a multipiece dataset, and fetch the arrays individually. Then there are also issues like ghost cells and points that need to be taken into account.
So it would be good to have a method to fetch a cell or point data array that
- contains all data over all partitions
- returns data in a consistent manner
- takes into account ghost cells or ghost points
Another way to phrase this is "give me the data as if this was a serial dataset". We've discussed it with Kitware, and some method in the Numpy VTK integration sounds like a natural fit.
@patchett2002 @cory.quammen @berkgevecihttps://gitlab.kitware.com/vtk/vtk/-/issues/19098IO Improvements Proposal: Documentation, Safety, Performance, Input/Output Re...2023-09-26T10:38:37-04:00Spiros TsalikisIO Improvements Proposal: Documentation, Safety, Performance, Input/Output ResourceThe VTK IO directory as a whole could potentially be improved in various ways:
1. Documentation:
1. Current Status: https://docs.vtk.org/en/latest/supported_data_formats.html lists the formats that are currently supported by VTK.
...The VTK IO directory as a whole could potentially be improved in various ways:
1. Documentation:
1. Current Status: https://docs.vtk.org/en/latest/supported_data_formats.html lists the formats that are currently supported by VTK.
2. Problem: This list is located at https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/docs/supported_data_formats.yaml, and since it's manually generated, it's easy to forget to update it. Many people choose libraries based on if their file formats are supported or not, and omitting to update this list could be critical.
3. Suggested Solution: This list could potentially be scraped by looking
1. vtk.module related information that could include file extensions supported, and format documentation
2. the classes ending with Reader/Writer and get the list of classes
3. and the brief description of each class
2. Safety:
1. Current Status: various readers when reading a file, they assume that the file is properly written.
2. Problem: Files are usually properly written, but if they are not, VTK (and the applications using VTK) may crash. Also, various readers/writers use C functions, such as ``atoi``, that are not memory safe which can lead to other types of crashes.
3. Suggested Solution: use C++ functions that perform error checking and make sure that every call of them checks for errors.
3. Performance:
1. Almost all readers/writer are using C functions or C++ streams
2. Problem: These C functions are slow and not safe, and streams are super slow.
3. Suggested Solution: Develop functions for converting string from/to values libraries such as ``fast_float``, ``fmt``. An example is ``vtkValueFromString``.
4. Input/Output Resource:
1. Current Status: Various Readers/Writers can read from a file, and some can read also from strings
2. Problem: Most readers (with the exception of the complex ones that read one Meta files to read specific files) should support reading from any type of resource such as files, or strings, or something else in the future. ``vtkResourceStream`` started this work to support various resources, but it's now only for reading, not writing too, and it was integrated into only 3 readers (PLY, OBJ, glTF).
3. Suggested Solution: Make ``vtkResourceStream`` bi-directionally and expand its usage to all readers/writers possible.
P.S. Feel free to edit the above description if you have further ideas or edits.
KUS: @ben.boeckel @christos.tsolakis @cory.quammen @berkgeveci @will.schroeder
KEU: @mwestphal @alexy.pellegrini
Others: @wascott @patchett2002 @acbauerSpiros TsalikisSpiros Tsalikishttps://gitlab.kitware.com/vtk/vtk/-/issues/19097WASM: Run C++ tests in webassembly environments2024-03-26T20:21:01-04:00Jaswant Panchumarti (Kitware)WASM: Run C++ tests in webassembly environmentsCurrently, VTK C++ tests are run only on x86_64 desktops. VTK advertises support for the wasm32-emscripten architecture and there is a CI build job which ensures that VTK continues to compile with emscripten, which is great, but not enou...Currently, VTK C++ tests are run only on x86_64 desktops. VTK advertises support for the wasm32-emscripten architecture and there is a CI build job which ensures that VTK continues to compile with emscripten, which is great, but not enough because there are folks who use vtk.wasm in production. It is currently impossible to know whether a merge request breaks something in wasm without someone sitting down to code up a test case manually. This is pointless because there are already a large number of C++ tests in VTK.
So far, we've been able to identify and fix:
1. regression introduced by https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10356 (fixed by https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10521)
2. regression introduced by https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10403 (fixed by https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10466)
3. https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10503 could've easily been caught in a unit test.
4. Somebody broke vertex visibility and the feature to render vertices as spheres. Still don't know when/where it occurred.
In all the above cases, we could have saved a lot of time and resources if the C++ unit tests in VTK source ran automatically in the browser too. It's not really all that complicated or new and emscripten has been doing it for a long time.
After looking at emscripten's [automated workflows](https://app.circleci.com/pipelines/github/emscripten-core/emscripten/30669/workflows/4e4b1434-6a1a-402e-8640-e183830e6fde), here's some ideas:
1. Have two test jobs for now. (firefox, chromium) Can be expanded to include nodejs for pure compute and wasmtime for wasi based tests.
2. Since the priority is rendering, the focus is on browsers. It's best to not use the OS provided browsers, as we do not wish to pollute user data directory. So, download firefox, chrome tarballs and set the `BROWSER` environment variable to something like:
```sh
# For firefox
export BROWSER="/root/firefox/firefox -headless -profile /root/tmp-firefox-profile/"
# For chromium
export BROWSER="/root/chrome-linux/chrome --enable-unsafe-webgpu --no-first-run -start-maximized --no-sandbox --user-data-dir=/root/tmp-chromium-profile --enable-experimental-web-platform-features --remote-debugging-port=1234 --enable-experimental-webassembly-features --js-flags=--experimental-wasm-memory64 --experimental-wasm-stack-switching --experimental-wasm-type-reflection --media-cache-size=1 --disable-application-cache --incognito"
```
3. Write a python script (`vtkBrowserTestDriver.py`) to launch browser and run the wasm tests. This script can use the builtin `webbrowser` python module to open browser windows. `ExternalData_add_test` in `vtkModuleTesting.cmake` could run this python script with the remaining test arguments.
```sh
python vtkBrowserTestDriver.py --executable vtkRenderingCoreCxxTests.js --args -D ... -V ... -T ...
```
I'm currently optimizing the memory usage in VTK OpenGL ES polydata mapper. As it could potentially break a number of things which are hard to test manually, I plan to come up with basic testing infrastructure as outlined above soon.https://gitlab.kitware.com/vtk/vtk/-/issues/19096Internal faces are not correctly detected with degenerated cells2023-09-26T01:05:48-04:00Florian MaurinInternal faces are not correctly detected with degenerated cellsHere is a cube filled with some generated cells.
![image](/uploads/d166a435c92cd3f674863bc120e39e42/image.png){width=50%}
When playing with transparency, one can note that all the internal faces are not properly marked.
[Degenerated_c...Here is a cube filled with some generated cells.
![image](/uploads/d166a435c92cd3f674863bc120e39e42/image.png){width=50%}
When playing with transparency, one can note that all the internal faces are not properly marked.
[Degenerated_cube.vtu ](/uploads/936765c149242f6c0646ddb382113fbf/Degenerated_cube.vtu)
Edit:
I have reduced the problem to two linear Lagrange hexahedra
![image](/uploads/8dd32ed1b00eb47432b5fc279266bb6c/image.png)
[TwoDegeneratedLinearLagrangeHexes.vtu](/uploads/7311473fcdd69755b6916f28efe1792c/TwoDegeneratedLinearLagrangeHexes.vtu)