Sign in

Pema99

@pema99.bsky.social
362 followers 280 following 68 posts

Senior Graphics Engineer, Lighting Team @unity.com. Check out my stuff at github.com/pema99 and pema.dev Interested in all things graphics, VR, language dev and functional programming. @pemathedev on Twitter/X.

PostsRepliesMedia
Pema99 @pema99.bsky.social · 20/08/2026
Ah, I didn't actually realize it was permissively licensed. That's something
110
Pema99 @pema99.bsky.social · 20/08/2026
So I guess Gigi is dead? :(
110
Reposted by Pema99
Aura/Moom @moomanibe.bsky.social · 20/08/2026
windows 10 users who refuse to upgrade club wins again
21632143
Pema99 @pema99.bsky.social · 21/06/2026
Common pi W
020
Pema99 @pema99.bsky.social · 03/06/2026
I don't disagree, but the same thing applies to most engines which ship with a shading/material system, no?
100
Pema99 @pema99.bsky.social · 23/05/2026
good luck!
020
Reposted by Pema99
Tobias A. Franke @thefranke.bsky.social · 01/05/2026
I am very good at this, please hire me
Text of an Apple position mentions that successful candidates "deliver undefined behavior"
6414
Pema99 @pema99.bsky.social · 27/04/2026
ez 👏
010
Pema99 @pema99.bsky.social · 27/04/2026
epic
010
Pema99 @pema99.bsky.social · 26/04/2026
That said, most of the setups I know for stepping through shader code either require doing a frame capture or being connected to a live GPU. I think it's kind of neat to be able to just plop in an HLSL function and start stepping for quick/ad-hoc experimentation.
000
Pema99 @pema99.bsky.social · 26/04/2026
The test framework was my main focus. I haven't seen any 'nice' ways to do that kind of thing before. The fact that I could also use the interpreter to power a debugger, I consider a cool bonus, and a neat way to show off the project :P
100
Pema99 @pema99.bsky.social · 26/04/2026
(2/2) I wanted to match the semantics of HLSL as closely as possible. Also, I imagine this setup doesn't really work for stuff like ddx/ddy or wave intrinsics where you need to simulate multiple threads. Or what?
000
Pema99 @pema99.bsky.social · 26/04/2026
(1/2) Very pragmatic approach, I imagine it works well for a lot of shader code :D Part of this project is definitely just me having fun writing compiler-y code. There are some semantic and syntax differences between the languages which you can probably just try to avoid when using your approach.
110
Reposted by Pema99
Pema99 @pema99.bsky.social · 26/04/2026
I made an experimental "GPU mode" in my toy shader debugger (pema.dev/hlsl/). It 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 when you hover variables. :)
2338
Pema99 @pema99.bsky.social · 26/04/2026
I managed to get something working with Slang: bsky.app/profile/did:...
010
Pema99 @pema99.bsky.social · 26/04/2026
You may be wondering: How do you ensure that the interpreter's behavior matches the GPUs behavior? To be honest: Thoughts and wishes. It's never gonna match 100%, both due to vendor differences and the myriad of bugs I am sure are still lingering around. Still pretty cool, though, I think! :D
130
Pema99 @pema99.bsky.social · 26/04/2026
I made an experimental "GPU mode" in my toy shader debugger (pema.dev/hlsl/). It 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 when you hover variables. :)
2338
Pema99 @pema99.bsky.social · 24/04/2026
It doesn't have an HLSL backend, only an HLSL frontend ;)
110
Pema99 @pema99.bsky.social · 24/04/2026
It's mostly a proof of concept though, not really meant as a serious tool. And I don't have enough hubris to claim that the behavior will match real GPU execution, I'm sure there are a ton of bugs and discrepancies looming.
000
Pema99 @pema99.bsky.social · 24/04/2026
"Yes" but with some caveats: I only wrote an interpreter, no capturing from real GPU execution, so the only way to get your code into a debuggable state would be to copy paste it. I could see it being useful for debugging individual functions/modules with specific inputs.
210
Pema99 @pema99.bsky.social · 24/04/2026
If I find the motivation, maybe I'll get nerdsniped into trying this. For now, the website is mostly meant as a proof of concept.
010
Pema99 @pema99.bsky.social · 24/04/2026
That's a neat idea. Would require some way to run HLSL on the web, though. WebGL uses GLSL and WebGPU uses WGSL, so I don't see a way to do this without some kind of transpiler step.
110
Pema99 @pema99.bsky.social · 24/04/2026
Looks like that account is a bot
020
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 6/6) Aside from testing, the library doesn't assume a use case. It can be used in any case where you want to (slowly!) execute fragments of HLSL without a GPU. Static analysis, maybe? 🤔 I probably wouldn't use this in production - it's very W.I.P. But it's been a cool experiment to tinker with!
030
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 5/6) Full overview of the testing features on the readme: github.com/pema99/HLSLI... Depending on the kind of programmer you are, you probably either find this extremely cursed or extremely cool. Sorry-not-sorry to anyone in the former camp 😅
230
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 4/6) Since this is a source-level interpreter, I can even support advanced test framework features like parametric test generation (left image) and mocking of resource types (right image). When compiling with a real shader compiler, all of this code becomes a no-op.
150
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 3/6) You can either write these tests in separate files, or directly inline in existing shaders. Just slap the [Test] attribute on a function, and the framework will pick it up. I'm (ab)using the fact that shader compilers ignore attributes they don't know about, to make my up my own ones.😁
150
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 2/6) If you work with shaders a lot, you probably know how tricky they can be to test and debug. One of the main goals of this project is to enable better testing of shader code. The library includes a framework that lets you define tests directly inside a shader. Here's an example.
150
Pema99 @pema99.bsky.social · 23/04/2026
(🧵 1/6) Recently I've been working on an HLSL interpreter, which can execute shader code entirely on the CPU github.com/pema99/HLSLI... I used it to make a cute little interactive debugger demo. You can try it yourself at pema.dev/hlsl/
56824
Reposted by Pema99
onion person @junlper.beer · 19/04/2026
genuinely one of the best songs of all time, it’s unbelievable that its almost 60 years old
tidal.com
The Velvet Underground - Heroin
Listen to Heroin on TIDAL
4282953
Reposted by Pema99
orels1 @orels1.bsky.social · 24/12/2025
I just pushed out v7.0.0 of my shaders, and while I wanted to do a full on fancy trailer and a bunch of other promotion stuff - I didnt want to delay it any further. So it is live now! 350+ commits, hundreds of lines of changelog, all free shaders.orels.sh Happy Holidays! ❤️ #unity3d #shaders
05718
Pema99 @pema99.bsky.social · 23/11/2025
You are cool cat
010
Pema99 @pema99.bsky.social · 30/09/2025
block (singular) game
030
Reposted by Pema99
orels1 @orels1.bsky.social · 29/09/2025
Its been a month since i started using @gingerbill.org 's Odin language, so I feel compelled to finally write something about that For context: I'm working on a little steamvr overlay tool in my free time. The goal is to learn more about steamvr and to write something lower level than i usually do
1152
Pema99 @pema99.bsky.social · 25/09/2025
12 angry men (1957)
010
Pema99 @pema99.bsky.social · 02/09/2025
Remember what they took from us
000
Reposted by Pema99
Zekk @zekk.dev · 19/08/2025
🔷I've just released my soft outline shader!🔷 Do bloom-like effects on your avatar without post processing or screen effects! Vid has examples! 15% off for the first 48 hours!⬇️Link Below!⬇️ I am also doing a giveaway, like❤️, repost 🔁, and follow to enter! #VRChat #ZekkDev
717252
Pema99 @pema99.bsky.social · 10/08/2025
pretty
000
Reposted by Pema99
Alex Mueller @lexdev.net · 06/08/2025
We are looking for a Vulkan engineer to join our render team at IOI! Available locations are Copenhagen, Malmo and Barcelona. Feel free to reach out if you are interested or have question 😄 ioi.dk/careers?pane...
ioi.dk
IOI Careers
Welcome to IOI Careers. Explore open jobs, and dive into our five unique studios across Copenhagen, Malmö, Barcelona, Istanbul, and Brighton.
0125
Reposted by Pema99
wunk @wunk.bsky.social · 03/08/2025
📐 #art
12602196
Reposted by Pema99
tupper @dtupper.com · 30/07/2025
lmao
3124053
Pema99 @pema99.bsky.social · 29/07/2025
010
Reposted by Pema99
RED_SIM @sim.red · 01/07/2025
Light Volumes 2.0 will support baked 3D shadows for point and spot lights, and that's how it can be used! Thanks to @pema99.bsky.social for implementing this feature!
1014640
Reposted by Pema99
Lionel Lemarié @hikey.org · 27/06/2025
Want to do a quick photon mapping test, but it's a slow start because I spent most of the time so far playing with the debug rays instead. It does immediately show that the basic GPU hash rand I used is no good. #metalrt #rendering
Photons are shot from two point lights (a blue and a red one). They are recorded in a buffer, then added to the scene BVH as spheres and thin cylinders, with emission from the flux.Photons are shot from the area light. The distribution is horrendous and needs a little work.Photons are shot from the area light. The distribution is tweaked a bit but still bad.
0161
Pema99 @pema99.bsky.social · 26/06/2025
(Tarkus, 1972, Emerson Lake and Palmer)
010
Pema99 @pema99.bsky.social · 26/06/2025
What album or artist would you say profoundly reshaped the way YOU perceive music?
Tarkus, Emerson, Lake and Palmer, 1971
220
Reposted by Pema99
RED_SIM @sim.red · 08/06/2025
Area Light Volumes... Thanks to @pema99.bsky.social for implementing and contributing such an amazing feature to VRC Light Volumes! I can already imagine people using it as studio softboxes for photography!
1638
Reposted by Pema99
d4rkpl4y3r @d4rkpl4y3r.bsky.social · 20/05/2025
I made my fluid sim particles got towards the nearest light from the light volumes. youtu.be/i8PFoagQhP0
youtu.be
Particle gravity towards VRC Light Volume light direction
YouTube video by d4rkpl4y3r
052
Reposted by Pema99
passivestar @passivestar.bsky.social · 02/03/2025
reflection probe any% world record
721912
Reposted by Pema99
mjp @mjp123.bsky.social · 14/04/2025
In today's new blog post, I try to provide some intuition and clear up some misconceptions about early Z cull behavior on desktop GPUs. Have a read if that interests you! therealmjp.github.io/posts/to-ear...
therealmjp.github.io
To Early-Z, or Not To Early-Z
Depth In The Logical Rendering Pipeline Where Does Early-Z Fit In? When Does Early-Z Have To Be Disabled? Discard/Alpha Test Pixel Shader Depth Export UAVs/Storage Textures/Storage Buffers Forcing Ear...
317055