Apoorva Joshi reposted
Apoorva Joshi
Apoorva Joshi
@apoorvaj.io
Computer graphics, systems programming, general methods. Working on graphics at Unity. Formerly Playdead, NVIDIA, Microsoft. apoorvaj.io 📍Copenhagen
880 followers214 following76 posts
I'm working on vector editing in @papaya.io, and it's not as snappy as I'd like to be. So optimization time! I built a profile capture mechanism: An in-browser shortcut toggles profiling, then pings the local server which converts it into the Tracy format, writes to disk, which I view in the GUI.
Apoorva Joshi reposted
Slides for SIGGRAPH 2026 Advances in Real-Time Rendering in Games course's talk on Adaptive Tessellation and Subdivision by John Hable are now online - enjoy!! advances.realtimerendering.com/s2026/index....
Apoorva Joshi reposted
This is a super fun feature. You can just paste in most ShaderToy effects. What's a better way to add bling to your graphics programmer CV than literally add a shader in there, and then just export to PDF? 😅
papaya.io now has shader layers, so you can create all kinds of custom effects. Supports a whole bunch of ShaderToy shaders out of the box, plus you can declare uniforms to get UI controls like sliders or color selectors. Also supports multi-pass effects like Gaussian blurs.
github.com/jj-vcs/jj is a shiny new thing that's calling to me, but I'm not sure that it solves problems that I actually have.
Apoorva Joshi reposted
Apoorva Joshi reposted
At #SIGGRAPH2026, I presented "points as tori" (PAT) for fast pointwise evaluation of signed distance for point clouds. Some code (Python w/ C++ extensions) and demo up: github.com/nzfeng/point... Contributions from people/LLMs welcome. Explainer thread below for the project: 🧵
Apoorva Joshi reposted
Hey everyone. A reminder that the deadline for graphic article proposal for GPU Zen 5 is approaching quickly. Sharing knowledge is the best way to learn!
🎮Graphics Programmers! Ready to shape the future of advanced rendering? Submit your proposal for GPU Zen 5, the next volume in the acclaimed GPU ZEN series, today! 📅 Deadline: July 5, 2026 📩Submit to: gpuzen@theforge.dev 🔗 gpuzen.blogspot.com #GraphicsProgramming #Rendering #GameDev #Authors #GPU
Apoorva Joshi reposted
papaya.io ships new features all the time 🚀 Help us prioritize what comes next. You can now drop feedback right from the toolbar on the left. Takes 10 seconds. We read every word.
Apoorva Joshi reposted
Added rich text editing to papaya.io, powered by the excellent Skribidi library. :) This was a joy and a challenge to implement, and I'm sure there are still rough edges.
Apoorva Joshi reposted
The alpha version of my new book "Optimal Transport for Machine Learners" is out, with in particular an online version with interactive figures www.gpeyre.com/ot4ml/
Still having fun building papaya.io. Just implemented a pretty nifty compressed export feature, with swipe to compare. Supports JPEG, WebP and PNG compression for now.
I'm trying out zed.dev since they announced v1.0. It feels like a real labor of love, and had no rough edges in my first day of using it. Comes with batteries included, and things Just Work. Feels more suited to my agent-heavy workflow than VS Code.
Apoorva Joshi reposted
(🧵 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/
Zig 0.16.0 is out, including the new IO interface, and a strong step towards incremental compilation: ziglang.org/download/0.1...
Implemented some fun stroke dynamics based on mouse speed in papaya.io in an evening.
Apoorva Joshi reposted
Apoorva Joshi reposted
oh that is awesome, well deserved! congrats @ocornut.bsky.social
Le Prix d'Honneur revient à Omar Cornut, créateur du logiciel open source ImGui qui est utilisé par toute l'industrie du jeu vidéo
I just vibe-coded a tax calculator: taxman.dk Here's a blog post about it: apoorvaj.io/vibe-coding-...
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.
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 🔥.
Apoorva Joshi reposted
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”.
New blog post: Stop over-engineering static websites apoorvaj.io/stop-overeng...
Apoorva Joshi reposted
https://mitchellh.com/writing/zig-builds-getting-faster
Insanely well-made video on EUV photolithography: www.youtube.com/watch?v=B248...
Holy crap, #ziglang 0.14 -> 0.15.1 is quite the breaking change. This is literally 5% of @papaya.io's Zig codebase.
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. ...
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.
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! :)
Apoorva Joshi reposted
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...
Apoorva Joshi reposted
Zig's New Async I/O https://kristoff.it/blog/zig-new-async-io/
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...
Mikko and I added MacOS-style keyboard navigation to the Skribidi text library. github.com/memononen/Sk...
*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.
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 'ö'.
Got simplified Chinese and FreeType variable font rendering to work in papaya.io.
Multi-script rendering in papaya.io is starting to come together. Here's glyph caching and retrieval across several fonts (including an emoji font)!