Pema99 (@pemathedev) header
Pema99 (@pemathedev) profile picture

Senior Graphics Engineer, Lighting @Unity. Opinions my own. Check out https://xitter.cf/t.co/o89V9xPc3X Love graphics, VR, language dev and functional programming

0xFFFA - 0xFFFB
Joined May 2009
Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)Photo by Pema99 (@pemathedev)
Recently I've been working on an HLSL interpreter, which can execute shader code entirely on the CPU github.com/pema99/HLSLInterp… I used it to make a cute little interactive debugger demo. You can try it yourself at pema.dev/hlsl/ More info on Bsky: bsky.app/profile/pema99.bsky…
4
24
1
249
17,110
Pema99 retweeted
Writing code is so fun
48
94
7
1,238
18,842
Replying to @aarteminn
Thanks for this amazing meme! "Wumpus" doesn't deserve this fate - the Discord crew just might. While you are here, please consider getting my new book - a spiritual sequel to All Tomorrows... Thank you all so much. I am blessed to have y'all! :)
4
23
1
456
6,813
So I'm considering releasing my VRChat fluid simulation on Booth. I've ported it into Udon so it is faster and is easier to use. I used the Radix Sort from my 3DGS plugin, allowing me to do a true SPH sim without approximations. I'd love to head what you'd want to do with it 😄
59
422
41
2,981
218,935
I'm continuing to work on the path tracing renderer for KOTOR 1/2 using the reone rewrite. This time I've integrated DLSS 4.5 RR - and honestly I'm blown away! Its an orders of magnitude better denoiser than NRD, not to mention it even upscales really well.
1
4
40
3,215
It somehow manages to transform an equivalent of unusable garbage into something that looks fine, even though there is at best 1 sample per 100 pixels. Leviathan especially suffered from this as it didnt have many point lights authored, most of light was texture emission
2
1
3
1,526
I've been slightly nerdsniped today making a cool demo shader out of the @hackeriet logo I've made with @KatDotSoftware and @pemathedev last week in the space. I love path tracing shiny stuff😍 Shadertoy: shadertoy.com/view/73SSWc
2
17
2,256
Pema99 retweeted
Box3D is now public & open-source. 🎉 We've used it as our 3D physics engine for the past year, for a Sandbox game where players can build whatever they imagine, or developers can build any game - Box3D handles anything thrown at it. Open development like this makes games better for everyone. Congrats to @erin_catto on the release. box2d.org/posts/2026/06/anno…
40
289
19
3,436
276,216
you’ll get mad at me for saying this…but cloud gaming is so obviously more economically efficient than physical hardware I think it’s going to be the default soon. your home console / pc is idle 90%+ of the day. meanwhile, data centers targets what, 5%, maybe at worst 10% idle. every second a cloud gamer isn’t gaming, that hardware is being used for someone else, training, etc. I think there should be a new measurement, something like cost-per effective FLOP hour that takes into account the TCO + effective utilization. If a gamer spends $500 on a GPU, uses it for 3 years, but it’s only fully active ~5% of that period…the cost-per relative FLOP hour is crazy high! Meanwhile, a $50,000 datacenter GPU might have a *LOWER* cost-per FLOP hour just because the effective utilization is 90+%.
46
276
2
8,250
201,595
Macro photography + 3DGS is awesome. Some of the coolest splats I've seen in a while.
A Strawberry. 90 stacks, 88 photos each. 2M splats. @Michael_Moroz_ helped out with training it. 👇
1
3
287
Replying to @croloris
The world if 7% of software projects had actually adopted Zig in 2021
1
19
972
"Nobody reviews compiler output, why review AI code?" Wrong. We do review compiler output. Godbolt exists. Disassemblers exist. Anyone doing serious performance work reads what the compiler produced. The premise is false. But the analogy itself is flawed. It compares two things that aren't comparable. A compiler takes a formal language as input. Languages with grammars and semantics defined precisely enough that "what does this code mean" has only one answer. An LLM takes natural language as input. Natural languages are ambiguous. "Write me a function that handles user input safely" has a thousand valid interpretations and a thousand more invalid ones. The LLM picks one. You don't know which. Unless you look at the code. Compilers are built from specifications and designed to meet them. The output is the result of a defined translation. When the output violates the spec, it's a bug. LLMs are built from whatever was in their training data. There is no spec. There can't be one, natural languages have no defined semantics that map to code. Compilers are semantically deterministic. The same input produces output with the same behaviour, every time. LLMs are not. Partly by design and partly due to hardware variance, batch size, inference order, and floating point operations (and no setting temperature to zero does not address those). All of which can push the same prompt to produce different code. Compilers complain loudly when the input is nonsensical. LLMs fail silently, producing plausible-looking, but wrong code. We trust compiler output because the trust was earned across decades of use, with millions of engineers using the same tools. Early compilers were reviewed heavily. Hand-written assembly was the default because trust hadn't been earned yet. We're at the hand-written assembly stage with AI. We may never get to the trust-the-output stage for the reasons explained above. If you’re a software developer, you should own what goes to production. The compiler analogy is a way of skipping that responsibility.
57
143
22
1,081
51,708
I made an experimental "GPU mode" in my toy shader debugger (pema.dev/hlsl/). Runs the shader on the GPU with WebGPU by transpiling to WGSL with the Slang compiler. You can click on a pixel to drop into the interpreter and start debugging. Also added image previews.
2
22
2
208
21,459
And tabs vs spaces? Who cares. Use clang fmt or rust fmt or whatever. Stop fighting about things that don't matter.
6
2
147
6,030
Competition drives improvement. If your main agenda is to criticize an engine for lack of improvements, you should not call competitors "tragic waste" of dev time. You want competition to drive improvement and keep licensing feeds reasonable. No real dev wants an engine monopoly.
Threat Interactive thinks Unreal alternatives like Unity and Godot are a “tragic waste” and that “it needs to stop”. You would think a guy like him would understand the basic concept of competition, and why it’s important for the consumer. But nope, they are a “tragic waste”
16
21
2
456
38,942
I've implemented a Gaussian Splatting renderer in VRChat! It was tricky, but turned out to be feasible. I've also made a public gallery with 12 splats you can check out: vrchat.com/home/launch?world… By the way the renderer is open source! github.com/MichaelMoroz/VRCh…
8
114
15
442
46,135
Pema99 retweeted
Light Volumes 2.0 will support baked 3D shadows for point and spot lights, and that's how it can be used! Thanks to @pemathedev for implementing this feature!
11
168
5
972
40,602
I recently added a useful feature to Filamented for light volumes - a "surface bias" setting. This pushes the sampling position for the light volume away from the surface of the object. For static objects, this is super useful, as it avoids ugly self-shadowing artifacts! #vrchat
1
19
2
155
7,243