New week, new Rust! What are you folks up to?
Working on a new rendering routine FlowBetween. I've used whatever is built-in to the windowing system (ie, Quartz, Cairo, canvas) before but those are quite slow. The new version is based on lyon and whatever hardware API is most convenient - I've got Metal and OpenGL working so far. Here's how it's looking rendering in Gtk+ + OpenGL vs the original code running in canvas in Firefox:
The hardware renderer doesn't cache bitmaps of the layers as it's fast enough to just draw the whole scene every time (so there'll be no need for limitations on how many layers there can be). Gtk seems to have issues rendering the image on high-DPI monitors, which reduces how smooth the application is.
Working on adding 'sprites' to the canvas library and the various rendering implementations, which are essentially just pre-recorded rendering instructions. The hardware layer can just re-render the same vertex buffers repeatedly, and they're also a way to avoid sending a lot of drawing instructions over the web socket for the in-browser version. (Lyon is definitely fast enough but for things like drawing 1000 control handles or a preview of a complicated shape when resizing, skipping the tessellation phase makes the application a lot smoother)
I want to use this for off-screen rendering for generating the final animation eventually - I've not really been able to find an off-screen 2D rendering library that really fits my needs.
Working on a Rust program to replace Nicecast for my university's radio station. I'll be using WASM so people can safely broadcast from home!
I just started learning Rust from Python and wrote a blog post about it. How are blog posts on This week in Rust get picked up? Are there any differences for posts written in foreign languages, say Vietnamese?
I just released the 1.0.0 of broot after weeks of freezing all changes to be sure it's stable.
I thus expect to have to work on surprise issues, as is tradition.
I have to parallelize (using rayon) and add the missing features (node mass, edge weight, scale, finish overlapping prevention, adaptive speed).
It's at least hundreds of times faster than cythonized python2-forceatlas2, as expected (but some features are missing). I will try benchmarking against cythonized python-fa2 and Gephi (Java).
I'd also like to try it in 3D (the implementation works for n dimensions)...
The engine is very young at this point and one of my main focuses while working on my small game is to identify areas where the engine API is lacking documentation so that I can contribute with descriptions and examples that I would have found helpful.