Apoorva Joshi's Avatar

Apoorva Joshi

@apoorvaj.io

Computer graphics, systems programming, general methods. Working on robotics and AI at a startup in Copenhagen. Formerly Unity, Playdead, NVIDIA, Microsoft. apoorvaj.io πŸ“Copenhagen

866
Followers
206
Following
63
Posts
16.12.2023
Joined
Posts Following

Latest posts by Apoorva Joshi @apoorvaj.io

oh that is awesome, well deserved! congrats @ocornut.bsky.social

06.03.2026 08:10 πŸ‘ 64 πŸ” 13 πŸ’¬ 4 πŸ“Œ 0
Preview
taxman.dk - Danish tax calculator Calculate your salary after tax in Denmark. Free Danish tax calculator with municipality tax rates, pension, interest deductions and more.

I just vibe-coded a tax calculator: taxman.dk

Here's a blog post about it: apoorvaj.io/vibe-coding-...

13.02.2026 22:40 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

This was also my experience with Steve Yegge's Gas Town (steve-yegge.medium.com/welcome-to-g...). Total jank, but there's a kernel of a really powerful idea in there.

09.02.2026 21:32 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Tried OpenClaw to eval the hype. It's janky af; couldn't get it to work in an hour of troubleshooting in Docker.

Pure vibes coding is still a trash fire, but someone's going to build a very smooth version of this, and it's going to be πŸ”₯.

09.02.2026 16:24 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 1

Nope. 😁

26.11.2025 15:59 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

This is my last week at Unity. Next week, I'm joining an early-stage startup working on robotics foundation models and their fine-tuning.

After working in GPGPU and then graphics, I'm now looking forward to learning an entirely new field. I hope it's going to be a fun ride! 🀞

25.11.2025 13:37 πŸ‘ 16 πŸ” 1 πŸ’¬ 3 πŸ“Œ 0

I watch @smartereveryday.bsky.social ’s video on the nuclear power plant and there was one offhand comment by someone who works there about how β€œnuclear radiation” (specifically Cherenkov radiation) is blue, but β€œeveryone thinks it’s green”.

12.11.2025 10:32 πŸ‘ 3 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0
Stop over-engineering static websites

New blog post: Stop over-engineering static websites

apoorvaj.io/stop-overeng...

04.10.2025 17:16 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Zig Builds Are Getting Faster – Mitchell Hashimoto https://mitchellh.com/writing/zig-builds-getting-faster

https://mitchellh.com/writing/zig-builds-getting-faster

04.10.2025 11:58 πŸ‘ 8 πŸ” 2 πŸ’¬ 0 πŸ“Œ 1

i.e. the median Zig programmer is better than the median JS programmer.

01.10.2025 22:40 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I feel that Claude Code + Sonnet writes way more tasteful Zig code than it does JavaScript. JS is littered with dumb defensive programming, with null checks or conditions where here should be asserts.

My theory is that this is because of the delta in the quality of Zig vs JS human training data.

01.10.2025 22:39 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
How are Billions of Nanoscopic Transistors Made into a Microchip? EUV Photolithography πŸ› οΈβš™οΈπŸ€―
How are Billions of Nanoscopic Transistors Made into a Microchip? EUV Photolithography πŸ› οΈβš™οΈπŸ€― YouTube video by Branch Education

Insanely well-made video on EUV photolithography: www.youtube.com/watch?v=B248...

22.09.2025 21:02 πŸ‘ 8 πŸ” 5 πŸ’¬ 0 πŸ“Œ 0
Testing that works

New blog post: Testing that works

apoorvaj.io/testing-that...

18.09.2025 21:48 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Making Software: What is a color space? In which we answer every question you've ever had about digital color, and some you haven't.

This is a relevant read: www.makingsoftware.com/chapters/col...

26.08.2025 15:04 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

This was an easy one to implement.

Then I started on white balance, fell into a rabbit hole of black body radiation and color spaces, and then noped out for a bit.

25.08.2025 20:46 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

Holy crap, #ziglang 0.14 -> 0.15.1 is quite the breaking change. This is literally 5% of @papaya.io's Zig codebase.

21.08.2025 19:14 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

5. Papaya uses Harfbuzz and FreeType for high quality rendering.

6. Text rendering is done in a worker WASM thread. So it is async and faster than JS.

Text rendering is hard, and literally half of all commits to papaya.io so far. So please let me know when you find bugs! :)

15.08.2025 22:31 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

3. This is where @mikkomononen.bsky.social 's excellent Skribidi library came to the rescue. This might be the first WASM implementation of Skribidi in the wild. I was able to make some upstream contributions.

4. Papaya supports Arabic, Chinese-Japanese-Korean, Hebrew, Latin and 20 more scripts.

15.08.2025 22:31 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I'm really proud of this.

1. Unlike many other web-based image editors, papaya.io rasterizes text in WebAssembly. This means that text rendering looks the same across browsers or OSes.

2. This means that I had to re-implement a text box, which was not fun.

...

15.08.2025 22:31 πŸ‘ 6 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
A plot comparing the original PCA and a simpler approximation. Accurate (red) and approximate (orange) first principal components are shown. The approximation seems close to the original based on this experiment. The shown directions are aggregated over five random trials.

A plot comparing the original PCA and a simpler approximation. Accurate (red) and approximate (orange) first principal components are shown. The approximation seems close to the original based on this experiment. The shown directions are aggregated over five random trials.

A new article on my site: Approximate first principal component

It describes simple trick to estimate the direction of most spread of a bunch of points without running a full PCA. Includes my Python re-implementation and plots of some quick tests.

30fps.net/pages/approx...

17.07.2025 17:56 πŸ‘ 32 πŸ” 6 πŸ’¬ 1 πŸ“Œ 0
Preview
Zig's New Async I/O | Loris Cro's Blog https://kristoff.it/blog/zig-new-async-io/

Zig's New Async I/O

https://kristoff.it/blog/zig-new-async-io/

13.07.2025 00:35 πŸ‘ 13 πŸ” 5 πŸ’¬ 0 πŸ“Œ 3

Hey Mikko, it's basically impossible for me to find your email address anywhere. Any chance you could DM/email me? My email address is on my website.

06.07.2025 18:00 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Zig Roadmap 2026
Zig Roadmap 2026 YouTube video by Zig SHOWTIME

The Zig 2026 roadmap is absolute fire. Andrew and team are playing the long game, and it's really starting to pay off big timeβ€”incremental compilation, async await, cross compilation, fuzzing, and more. www.youtube.com/watch?v=x3hO...

04.07.2025 22:47 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Add MacOS-style caret jumping on command+left/right, command+up/down, and option+left/right by ApoorvaJ Β· Pull Request #58 Β· memononen/Skribidi Added some text editor navigation that feels native to MacOS: Command+left/right acts like home and end Command+up/down jumps to the beginning and end of the whole text. Option+left/right jumps to...

Mikko and I added MacOS-style keyboard navigation to the Skribidi text library. github.com/memononen/Sk...

29.06.2025 20:35 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Post image Post image

*Tin foil hat* Has Google added a special case for Google Docs in Chrome to show the MacOS accent menu in the right spot? It renders out of the window in Firefox, which is what you'd expect to happen when using a hidden textbox to get input. I cannot find a web API do this. Looks like an inside job.

20.06.2025 20:31 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Video thumbnail

Still long way to go, but got the beginnings of IME text composition working in papaya.io. I'm super impressed that @mikkomononen.bsky.social's Skribidi library even has this feature. Here's a video of me typing in 'βŒ₯-u' and then 'o' on Mac, which results in 'ΓΆ'.

15.06.2025 22:35 πŸ‘ 3 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I'm using Skribidi for emoji, FreeType for everything else. :)

12.06.2025 21:18 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Uh, bsky's image upscaling makes it look weird. But at native res, it's absolutely *chef kiss*

12.06.2025 21:16 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

If you've ever worked with font rendering, then you'll know that it's the most impressive to get the fonts looking good at low sizes, because then hinting comes into play, which is where FreeType shines over other simpler libraries.

12.06.2025 20:51 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

Got simplified Chinese and FreeType variable font rendering to work in papaya.io.

12.06.2025 20:48 πŸ‘ 2 πŸ” 1 πŸ’¬ 1 πŸ“Œ 0