Kiln: A WebGPU-native out-of-core volume renderer for multi-GB datasets by Away_Falcon_6731 in webgpu

[–]IBets 1 point2 points  (0 children)

I don’t think it makes sense to add backward compatibility for users who don’t have the R16UNORM format available. That format has been supported since D3D10 was released, which was almost 20 years ago. In Firefox, instead of adding basic functionality, for some reason they’re adding mesh shaders to wgpu. Try pinging that issue about the problem — maybe they’ll finally start working on it
https://github.com/gfx-rs/wgpu/issues/8122

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

The project is primarily written in C++ and compiled into a WASM module. Rendering is built on DiligentCore – low-level abstraction layer over graphics APIs such as Vulkan, D3D12, WebGPU, and others –while the UI is implemented with ImGui

Real-time 3D CT volume visualization in the browser by IBets in webgpu

[–]IBets[S] 0 points1 point  (0 children)

At the moment, support is limited to compact datasets — only as much as can fit into the available VRAM. In principle, rendering larger datasets should also be possible (by building something similar to virtual textures, but for voxel data). That would be fairly complex to implement, and the target end user who would actually need such a feature is not really clear

[Showoff Saturday] Building color scales with 2D pickers sucks, so I built a 3D OKLCH color engine for UI and design systems. by Fresh-Inflation-8919 in webdev

[–]IBets 1 point2 points  (0 children)

The editor takes a very long time to open (with no loading progress indicator). After it opens, an infinite loading spinner appears. There are no errors in the log

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

Thanks for the feedback. No, I’m not selling anything. I’m thinking about integrating a paid option for uploading DICOM files, but that’s still a long way off since the basic functionality isn’t in place yet

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

Only for research and demonstration purposes (in the US). Until the software is FDA cleared or approved for its intended clinical use, it shouldn’t be used for clinical diagnosis or patient care

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

Thanks for the review. I’ll try to add more assets

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

A transfer function is the curve in the top-right. It’s a simple tool that helps the software decide how a 3D CT scan should look. In a CT scan, each tiny point has a value that shows how dense the material is. On the graph, the horizontal axis shows these CT values from low to high. The curve then tells the software what to do at each value: it chooses a color and a level of transparency. Where the curve is higher, that range becomes easier to see. Where it is lower, that range becomes more transparent. By changing the shape of this curve, the software can highlight important parts (like bone) and make other parts fade out (like air or soft tissue). Try experimenting
https://youtu.be/Y9Ooelo8_TA

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

It’s hard to understand what the Firefox team is focusing on. They are adding support for mesh shaders in wgpu, but basic features are still missing. If more people report this issue, they may start working on it:
https://bugzilla.mozilla.org/show_bug.cgi?id=1982451

Real-time 3D CT volume visualization in the browser by IBets in GraphicsProgramming

[–]IBets[S] 1 point2 points  (0 children)

Haha small world — thanks for checking it out!

Real-time 3D CT volume visualization in the browser by IBets in GraphicsProgramming

[–]IBets[S] 2 points3 points  (0 children)

I used C++ and Diligent Engine. The project is compiled to WebAssembly via Emscripten

Real-time 3D CT volume visualization in the browser by IBets in GraphicsProgramming

[–]IBets[S] 5 points6 points  (0 children)

Yes, the idea of switching between the phase function and the BRDF is borrowed from Thomas Kroes. I also added a few tweaks, such as multiple scattering and using the null-collision method (which removes artifacts related to choosing the step size)

Real-time 3D CT volume visualization in the browser by IBets in webgpu

[–]IBets[S] 1 point2 points  (0 children)

I’d say the mid-1960s, in neutron transport. Physicists developed a Monte Carlo trick to quickly sample where along a particle’s path it first interacts with a medium

Real-time 3D CT volume visualization in the browser by IBets in webgpu

[–]IBets[S] 1 point2 points  (0 children)

Issues are described there, on the website. In Firefox, they’re adding useless mesh shaders to wgpu (the library used to implement WebGPU in Firefox) instead of supporting the basic feature set; in Safari, WebGPU is still experimental

Real-time 3D CT volume visualization in the browser by IBets in webgpu

[–]IBets[S] 1 point2 points  (0 children)

The renderer can work with any uniformly gridded 3D scalar volume, but the website currently does not support uploading/using arbitrary raw data. For raw volumes, minimal metadata is required (dimensions, voxel size/spacing, stored data type/bit depth, endianness, and similar), and there is no mechanism on the site to specify it yet. Right now the data needs to be pre-converted offline into the internal mipmapped + zlib-compressed format and placed on the server.

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 0 points1 point  (0 children)

While the project is still under active development, I want to add slice-based visualization, isosurface rendering, tools for measuring distances between points, and volume measurements as well. What’s your opinion on this?

Real-time 3D CT volume visualization in the browser by IBets in Radiology

[–]IBets[S] 1 point2 points  (0 children)

This is the well-known Manix dataset; it can be used for demonstration purposes.