I’m a Christian and software engineer; I create random graphics projects and websites. Feel free to ask me for help with programming, or about my faith!

  • 4 Posts
  • 50 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle
  • https://github.com/KiranWells/corgi

    Like a lot of graphics programmers, I fell into the rabbit hole of rendering fractals. However, I never stopped - over the past couple of years I have slowly been building one of the most sophisticated Mandelbrot/Julia rendering programs that I am aware of. It has a mostly intuitive user interface, and does all of the calculations on the GPU. It has to use a bunch of mathematical tricks to get around the limits of single-point precision available in shaders. Because of the GPU rendering algorithm, I’ve managed to view fractal locations at around 10^250 times magnification with near real-time performance.

    I also built a really in-depth compositing/coloring system, allowing you to make some really crazy images and get a lot of variation even for the same location:

    A grid of 9 rendered fractals, each one with the same rendered location but drastically different coloring styles.

    Although it has only been me working on it, I think it is in a pretty mature state so far, and I would gladly take PRs/issues if anyone happens to be interested. It should support any OS if you compile it from source, but I don’t have binary releases set up yet.



  • For anyone who is confused: This is exploiting an old soundness bug in the Rust compiler that is still present. The GitHub issue page has this comment from maintainers:

    we already had a crate published on crates.io before which used this bug to transmute in safe code, see #25860 (comment).

    this issue is a priority to fix for the types team and has been so for years now. there is a reason for why it is not yet fixed. fixing it relies on where-bounds on binders which are blocked on the next-generation trait solver. we are actively working on this and cannot fix the unsoundness before it’s done.






  • For anyone who is still confused about what causes this: Firefox launches copies of itself when creating new website instances (usually when loading a website that has not already been loaded). Because of this, if it is updated in the background (through any means; I usually see this after a manual system update), Firefox has to restart when you try and load a new site because it cannot create any compatible copies of itself, since the old version is the one that is still running and the copies would use the new (updated) version.

    The solution is to only update when Firefox is closed, or restart it when it asks.









  • My computer was taking too long to start up, which I interpreted as failing to boot, but in hindsight was probably just my hard drive being slow. So, I booted into recovery mode, and ran an update. At one point, apt said “there are unnecessary packages” and would I like to remove them? I figured that apt knew better than I did (after all, maybe a package dropped a dependency), so I said yes.

    It was after I noticed the very large number of packages that I suspected I messed up. Turns out, apt uninstalled the entire desktop environment, and network manager, so I had to boot into a USB drive with Network Manager installed, chroot into my main drive, and reinstall plasma. As a bonus, I think I missed the main group for the plasma desktop and only installed only most of it, so some of my extensions just didn’t work anymore.