5 ms·
Nice, much better than the old website which was basically unusable. I've been strongly attracted to Vulkan since it was announced in 2015. Being annoyed by th
by rossant 3y ago
Nice, much better than the old website which was basically unusable.
I've been strongly attracted to Vulkan since it was announced in 2015. Being annoyed by the limitations of OpenGL for scientific visualizations, it seemed like a significant improvement. When the specification was released, I was both fascinated and terrified by its extreme complexity. I understood mostly nothing at first. I took it as a personal challenge to learn it and do something with it.
After dozens of times reading the documentation and experimenting with the code (tutorials were scarce at the time), I started to understand the most basic functionality. I spent much of the Covid lockdowns playing with Vulkan and developing prototypes of a scientific visualization library in C [1].
In the process, I wrote a thin wrapper in C on top of Vulkan to make it less painful to use [2]. It turns out this wrapper is quite similar to WebGPU. I'll explore interoperability avenues later.
Datoviz is still an experimental project. I'm actively working on the next version of Datoviz which I hope to release in a few months.
[1] https://cyrille.rossant.net/datoviz/ https://cyrille.rossant.net/datoviz/
[2] https://datoviz.org/howto/standalone_vklite/ https://datoviz.org/howto/standalone_vklite/
- fusslo 3y agovery cool! I've been using pyQtGraph for real-time data coming out of microcontrollers. learning to use it was an uphill struggle, and I can't imagine how difficult it must have been to make datoviz The way I've been working with pyQtGraph, I have an object reading data from a serial port. That object parses the raw data and sends it to a buffer. The pyQtGraph runs in a separate thread, which consumes the buffer, generates a new frame, then displays that frame. How does datovis handle real time data streaming? It seems like your digital signals example is similar
- kaycebasques 3y agoWhat was unusable about the previous site? (I'm a technical writer, not affiliated with Vulkan, just trying to get data points on what generally makes good / bad docs sites)
- rossant 3y agoI think it was just a huge single HTML page spanning hundreds of pages, that took minutes to load and systematically crashed my browser.
- bsder 3y agoWhile better websites are nice, what people need is lots better sample code. Everything Vulkan currently is contaminated with C++ Object-itis Global State which makes everything look like old-school OpenGL code in spite of the fact that's not the way anyone uses these modern APIs. With Vulkan, especially, this is a real crime since the C API is incredibly well done. (This is especially infuriating in the case of the Vulkan Memory Allocator which requires C++). For example, timeline semaphores in Vulkan simplify so much, yet very little of the sample code uses them because they are relatively new. Dynamic state, similarly. Subpasses need to die unless you are on mobile and are verifiably GPU performance bound.
- pjmlp 3y agoI for one, am more that pleased that Khronos has finally joined the 21st century and started offering C++ bindings to their specifications.
- pjmlp 3y agoKhronos also had to accept Vulkan is unsable for visualization folks, hence ANARI. Have you looked into it?