Realized that the OpenGL library I'm using looks up the size of the elements in the array for every access when writing to a vertex attribute array. Wrote my own version of this that caches the size and now my renderer is cooking (I have a large vertex attribute array that I use for instancing).
This is definitely good enough for me for now, as I'm now drawing millions of entities per second, which is Just Fine™️ for 2D rendering. 🔥
I am now in the exciting time immediately following porting a library to a new language: the “why is everything so slow and how do I make it faster???” phase. 😅🔥
Time to spend some quality time with the profiler and the compiler docs. 🎉
OMG I just happened to look at my uBlock Origin extension and it has blocked 5.238 MILLION elements since install. 🤯
I mean, I guess I'm not surprised, but that's definitely more than I was expecting. But then again, with some sites having over 200 tags on a single page, perhaps I should be surprised it's not higher.
@jeffpalmer Yes, you know I'm a bit of a naive/optimistic/humanist, it must be an unconscious survival reflex to keep living among my fellow human beings. A tendency to embellish my reality to feed my slim hope in the human race.
gah Spent my entire morning recovering from a brew upgrade of libgccjit which broke my emacs installation. "Oh I'll recompile then, I guess." Nope, the version of emacs I use breaks with this new version of libgccjit, and of course you can't downgrade because that's apparently against the homebrew ethos. Had to force all of the recipes to a previous version via git so that things would compile and install, which only took like 2 hours of googling to figure out. Jesus what a mess. 😭
@bostonaholic It's nice because it allows you to create a "known good" configuration snapshot that you can always recreate using 'straight-freeze-versions' 🎉
👋 If you’re in the Bay Area come check out the College of San Mateo student art show May 4th and 5th in Half Moon Bay. There will be a lot of great work by my fellow CSM students on display/available for purchase. Hope to see you there!
Thanks to the CSM Student Arts Club for coordinating and Nuance Fine Art for hosting! 🙏
@GramrgednAngel Interesting. Generally I'm a little surprised by how poorly things like this get communicated to business owners. I would have expected to be contacted directly when this requirement came to be. 🤷♂️
I finally bowed to the bread gods and bought a seed heating mat to warm my sourdough starter and help my dough rise in my cold Northern California house. 😅
Is this ridiculous? Perhaps. Does it work? Yes, definitely. 🎉
@webanck I was using the microwave as a warming box. I heated up a glass of water and then closed everything in the microwave. Running the microwave would definitely be bad!
Great article from @larswander on adding text metadata to PNGs, which is something that I've needed for a long time in my generative art practice. Thank you! 🙏
@jeffpalmer@larswander I've been saving source code on the PNG metadata at times (as I mainly work with Python, this was my main hack https://github.com/villares/villares/blob/77e93c60003e003cfc1f9d02523d417bbbab536b/helpers.py#L152 ), then I made a tool that shows diffs between the images... But more recently I was trying to generate folders with variations so I can compare sketches with SVG and GIF outputs... Anyways, I feel traditional source control with commits doesn't help me find my way back to unexplored avenues.
@villares@larswander I hear you. I created this script to help me manage this, but it’s still not perfect. I’m much better off now, but it’s still a bit of a hassle. 🤷♂️
👋 I’ve been relatively quiet here lately because I’ve been spending a decent amount of time AFK IRL. Specifically I’ve been taking a watercolor painting course at my local college, and it’s been a blast. I’m still learning and experimenting, but I’m looking forward to finding ways to use this in my work going forward.
Here’s a little experiment I did a couple of days ago (because I ❤️ typography).
Lately I've been digging into a bunch of new technologies in order to upgrade my creative coding toolset. I've spent a bunch of time with both Rust and WebGPU, and I have to say that I really like the design of both of them. I don't think that Rust is really an appropriate foundation for my type of work (I vastly prefer REPL-based environments for this) but I really like the design of the Rust language itself. Feels very comfortable. WebGPU feels similar. I especially like WGSL. 🔥
@jeffpalmer The WebGPU API is very close to Metal which is nice. WGSL is my least favorite part of the WebGPU stack. Too many hard edges and overly explicit for a shading language. WGSL could use a little more syntax sugar and be less strict about explicit data type conversions. I read that WGSL wasn’t originally supposed to be handwritten which explains the hard edges.
I haven't really used WGSL in anger yet, so I suppose those feelings are in my future. The verbosity of the entire WebGPU API is taking a little bit to get used to, but I generally write a wrapper once and never look at it again, so we'll see how I feel in a week or two. 😅