Here's Tangerine, my main personal project: https://github.com/aeva/tangerine
This is a CSG system built around composing signed distance functions in Racket. These are translated to an evaluator that can be ran on the CPU, and generated shaders for fast rendering. Models can be rendered in real time, or exported to common file formats for other purposes like 3D printing.
Yet another reason why people REALLY need to stop piling plugins and frameworks together to make sites.
It's far too easy to hide something malicious in piles of illegible code.
Seeing everyone posting yellow & green squares for their Wordle guesses had me wondering just how much of a spoiler they could be. A short program later, and I discovered these patterns of info limit the possible words to just a single pair each:
Suppose I should try taking sequential guesses into account as well...
We have now started work on the 2nd issue of our zine! If you would like to help fund it, consider picking up the first one featuring articles and a bundle of tabletop and video games by people in Michigan
Physical (comes with digital code):
When There Is No More Snow is a low res visual novel made in ZZT. It's a semi-autobiographical story about a bunch of 8th graders in Mayville, Michigan in 1995.
Ukrainian studio Frogwares (Sherlock Holmes) has received a grant from Epic Games, which it will use to relocate staff to safer regions:
A glimpse of revamped global illumination in my toy #rustlang #vulkan renderer `kajiya` 👀 Lots more ReSTIR, new meshless irradiance cache, much larger worlds 🎉
Around 11ms/frame here on a Radeon 6800 XT at 1080p, pending some optimizations 😛
Lighting: sun + emissive materials.
We're going to be streaming some Cassette Beasts gameplay this Friday at 09:00 PDT / 17:00 BST exclusively on our Discord! Come and watch!
Made a repo for simple GPU starter files. MIT license.
Currently OpenGL with Glad, GLFW, SDL2 (C++) and WebGL (vanilla JS)
Current state will be refined, and WebGPU and Vulkan will be added, but yeah, first is not in final state and second will take some time. Maybe OpenCL as well.
a related problem to the pixel aliasing: I *really* want to have nice immaculately smooth surfaces. However, because ray marching can't solve the exact surface distance, you get error banding based on your value of epsilon. Pick a value too high and you get banding. Pick a value too low and you need more iterations to solve the surface.
I'm wonder if maybe epsilon should scale with the current distance from the camera, and/or be proportional to the gradient eg dot(raydir, gradient)
I'm a graphics programmer working for a AAA studio on secret AAA stuff. For fun, I work on a SDF renderer and other whimsical side projects.
Mastodon server focused on game development and related topics.