she/her
hey! i'm alice, a person who occasionally does things online. i'm a programmer, knowledge enjoyer, and all-around reality improvement enthusiast
i'm super interested in programming languages, especially in improving safety, clarity, and performance. i could go on and on about argument labels, algebraic effects, first-class types, and tons of other stuff (seriously, hit me up somtime!)
i also like learning non-programming languages (日本語, русский, Clong), reading (Cradle, Mother of Learning), playing video games (Outer Wilds, Factorio, The Last Clockwinder), anime (Dr. STONE, Made in Abyss, Wonder Egg Priority), skiing, rock climbing, learning, and teaching
a ROM-hacking tool for the Nintendo DS game Fossil Fighters. the game has a small cult following, and a bunch of unique file formats, which i've contributed pretty heavily to reverse-engineering
a custom ray-tracing engine written from scratch using Metal! i was inspired by this video, and found that writing a custom ray-tracer is a super fun way to dive into graphics programming
it supports emissive, reflective, and colored surfaces, plus a way to import custom meshes. the GitHub page has some pretty renders, check 'em out!
a wiki for various Fossil Fighters file formats. it explains the high-level purpose and detailed byte layout for each one
i was inspired by this GDC talk about Noita to make a falling sand game engine that can run in parallel on a GPU. i liked the idea of having a 'speed of light', and designed an algorithm around a principle of locality
the result is a simulation that comfortably runs at 300fps on my 4480×2520 M1 iMac, for a total of over 3.3 billion pixel-ticks per second >:)
i got fed up with there not being an official RSS feed (or JSON Feed) for Minecraft snapshots, so i made one myself! it uses a Discord bot that follows the changlog announcements on the official Minecraft Discord server
there's a bit of a delay before new snapshots are added to the feed (a few hours), but otherwise it's pretty solid. feel free to use it for yourself, and definitely let me know if you have any issues with it
a trakt client I've been working on in various forms for a while. maybe it'll be released someday :)