Sign in

Arseny Kapoulkine

@zeux.io
1.5K followers 68 following 284 posts

Independent. Previously: TF@Roblox meshoptimizer, pugixml, volk, calm, niagara, qgrep, Luau github.com/zeux zeux.io

PostsRepliesMedia
Arseny Kapoulkine @zeux.io · 5h
New blog post! In "Billions of triangles redux" we take another stab at improving various parts of clustered level of detail pipeline to make Zorah smaller and nicer! zeux.io/2026/09/30/b...
13210
Reposted by Arseny Kapoulkine
Tom Forsyth @tomforsyth.bsky.social · 28/09/2026
DASHR - Dynamically Animated Skinned Heightfield Rendering Short video for now - I might do a longer one later? youtu.be/-Su9YrcazRk But there's ALL the details in the paper, and you can always Use The Source, Luke for the really deep info. github.com/tomforsyth10...
youtu.be
DASHR - Dynamically Animated Skinned Heightfield Rendering - six minutes version
YouTube video by Tom Forsyth
1422972
Arseny Kapoulkine @zeux.io · 25/09/2026
meshoptimizer 1.3 is out! Featuring a new voxel remesher, support for normal generation, several simplification improvements and various optimizations and fixes. GitHub stars and reposts appreciated! meshoptimizer was started 10 years ago; excited for the years to come! github.com/zeux/meshopt...
29225
Arseny Kapoulkine @zeux.io · 08/09/2026
meshoptimizer turns 10 today! This blindsided me a little bit; I thought it would be later this year. So I don't have an anniversary release or post ready; I'm on a tail end of a few neat improvements that need a bit more time to work on or write about. Time flies!
2342
Arseny Kapoulkine @zeux.io · 06/09/2026
bcantrill.dtrace.org/2026/09/05/t...
bcantrill.dtrace.org
The revolt of the reader | The Observation Deck
073
Arseny Kapoulkine @zeux.io · 24/08/2026
2250
Arseny Kapoulkine @zeux.io · 06/08/2026
one more thing before I unplug for a couple weeks: nicer vertex normals!
0181
Arseny Kapoulkine @zeux.io · 29/07/2026
3120
Arseny Kapoulkine @zeux.io · 25/07/2026
0301
Arseny Kapoulkine @zeux.io · 30/06/2026
meshoptimizer 1.2 is out! Featuring support for tangent generation, a significantly faster vertex decoder for Intel/AMD CPUs, several new smaller algorithms (cluster position compression, triangle filtering, clusterlod BVH) and more. GitHub stars and boosts appreciated! github.com/zeux/meshopt...
07521
Reposted by Arseny Kapoulkine
Superluminal @superluminal.eu · 29/06/2026
We're finally bringing our powerful and user friendly CPU profiler to Linux! The beta version is now publically available, and it's free for 60 days during the open beta, so there's really no excuse not to try it out! Just download, extract, optimize. superluminal.eu/applications...
superluminal.eu
Superluminal For Linux | Fast Profiling Without The Challenges
No pages of installation guides. No Gigabytes to download and install. Just unzip, run and focus on performance issues. It Just Works™.
35421
Arseny Kapoulkine @zeux.io · 17/06/2026
New blog post! In "Zigzag decoding with AVX-512", we look at two different ways to possibly (caveat emptor) speed up various forms of zigzag decoding with AVX-512 functionality that isn't just "wider registers"! zeux.io/2026/06/17/z...
zeux.io
Zigzag decoding with AVX-512
I’ve been working on speeding up AVX-512 vertex decoding in meshoptimizer recently; in the process I stumbled upon two optimizations that I did not end up using but I thought they might be fun to writ...
0135
Arseny Kapoulkine @zeux.io · 16/06/2026
pugixml 1.16 is out! It's a nice release, but also it's the 20th anniversary release, so I wrote a few words on the history in the release notes :) but also it's a well rounded release by itself, with bug fixes, performance improvements and a couple tiny features. github.com/zeux/pugixml...
github.com
Release v1.16 · zeux/pugixml
pugixml-1.16 is out. This is an anniversary release: pugixml turns 20 this year! In early 2006, I was evaluating existing XML parsers to parse large COLLADA files quickly and nothing fit the bill; ...
0101
Arseny Kapoulkine @zeux.io · 22/05/2026
Spent some time yesterday working with a few different scenes and doing a few performance tweaks. Commits should be self explanatory, so just sharing for anyone curious :) github.com/zeux/niagara...
github.com
Commits · zeux/niagara
A Vulkan renderer written from scratch on stream. Contribute to zeux/niagara development by creating an account on GitHub.
0132
Arseny Kapoulkine @zeux.io · 21/05/2026
A list of experimental meshoptimizer APIs. When 1.0 was released in December last year, the only experimental API was marked with the green checkmark.
0160
Arseny Kapoulkine @zeux.io · 20/05/2026
Almost 10% speedup on this view from an upcoming meshopt function (1.05 => 0.96ms). Obvious omission in hindsight...
0280
Arseny Kapoulkine @zeux.io · 09/05/2026
Upcoming niagara stream! This Sunday, on May 10, at 10 AM PST (5 PM GMT), we're going to implement support for opacity micromaps using VK_KHR_opacity_micromaps extension that released yesterday. youtube.com/live/gVIHXWI...
youtube.com
niagara: Opacity micromaps
YouTube video by Arseny Kapoulkine
1192
Arseny Kapoulkine @zeux.io · 09/05/2026
who even needs triangles in the first place
3100
Arseny Kapoulkine @zeux.io · 04/05/2026
While volk always tracks the latest Vulkan version (I've automated myself), I occasionally tag new numbered versions and today is such a day! New release 1.4.350 features a number of small improvements for various edge cases as long as all the new extensions you may want. github.com/zeux/volk/re...
github.com
Release 1.4.350 · zeux/volk
A periodic tagged release of volk, matching Vulkan 1.4.350. New extensions: VK_EXT_descriptor_heap 🎉 VK_ARM_data_graph, VK_ARM_data_graph_optical_flow, VK_ARM_performance_counters_by_region, VK_AR...
0125
Arseny Kapoulkine @zeux.io · 30/04/2026
New blog post! In "Quantizing tangent frames", we look at various established methods to represent tangent frames in the vertex data, squeeze a few variants into 32 bits per vertex and look at the resulting precision. zeux.io/2026/04/30/q... Share, like and subscribe!
zeux.io
Quantizing tangent frames
I’ve been working on tangent space generation recently, and also pondering the tradeoffs between QTangent and normal-angle storage. So when, in a completely unrelated discussion, someone said “you cou...
15114
Arseny Kapoulkine @zeux.io · 28/04/2026
0220
Arseny Kapoulkine @zeux.io · 02/04/2026
meshoptimizer 1.1 is out! github.com/zeux/meshopt... Featuring two new major features, meshlet topology compression and opacity micromaps, as well as a few smaller features and improvements! More information in the infographic and release above :) Boosts and repository stars are welcome!
510335
Arseny Kapoulkine @zeux.io · 30/03/2026
Testing per vertex priority flags for simplification
1251
Arseny Kapoulkine @zeux.io · 23/02/2026
If you’re in SF the week of GDC and would like to get coffee and chat about game technology, email me! I probably won’t be at GDC proper but will be around.
060
Arseny Kapoulkine @zeux.io · 16/02/2026
Yesterday on stream we've sketched out most of the support code for descriptor heaps. If you want to see the rest of the owl, I've committed the remaining pieces after the stream. For now all of the previous descriptor code is still required to support production drivers. github.com/zeux/niagara...
github.com
Comparing f25b318a924a70ad98cb43bd6bbd5b1dd04c7780...8cf95feee3e7f37b2864795dbcbbf0acc375860c · zeux/niagara
A Vulkan renderer written from scratch on stream. Contribute to zeux/niagara development by creating an account on GitHub.
0171
Arseny Kapoulkine @zeux.io · 12/02/2026
Upcoming Niagara stream! This *Sunday* (Feb 15), at 11 AM PST (7 PM GMT), we will embark on a journey to replace all descriptor uses within the renderer with descriptor heaps. www.youtube.com/live/VXN4Gew...
youtube.com
niagara: Descriptor heaps
YouTube video by Arseny Kapoulkine
192
Arseny Kapoulkine @zeux.io · 08/02/2026
and just in case you have a spare GPU
190
Arseny Kapoulkine @zeux.io · 06/02/2026
0160
Arseny Kapoulkine @zeux.io · 31/01/2026
Still some bits to sand off but getting closer.
1130
Arseny Kapoulkine @zeux.io · 06/01/2026
The fact that the entire industry is now wasting time working on, integrating, analyzing, reviewing, and commenting on frame generation is so sad. Surely there are actually productive things we all can be doing instead.
3472
Arseny Kapoulkine @zeux.io · 22/12/2025
One more thing! A few weeks ago I wrote a post that aggregates various articles I have written on meshoptimizer over the years: zeux.io/2025/12/09/m... If you’re looking for some reading to do over the break, consider revisiting these.
zeux.io
meshoptimizer 1.0 released
A short post today. If you’re following me on any of the vast array of social accounts then you’re probably aware, but if you’re reading this blog through the ancient technology otherwise known as RSS...
1267
Arseny Kapoulkine @zeux.io · 21/12/2025
Upcoming niagara stream! Tomorrow (Sunday, Dec 21) at 11 AM PST (7 PM GMT), we will work on reducing the startup time by "cooking" the geometry and, if that gets done quickly enough, optimizing texture loading. www.youtube.com/live/d04h0sZ...
youtube.com
niagara: Cooking geometry
YouTube video by Arseny Kapoulkine
071
Arseny Kapoulkine @zeux.io · 18/12/2025
One fun feature that meshoptimizer got in the last two years that I forgot to mention in my v1 post is support for provoking vertex optimization for primitive ID rendering. Implementation is based on exploration by John Hable (thanks!) and is used by Wicked Engine meshoptimizer.org#visibility-b...
meshoptimizer.org
🐇 meshoptimizer
Mesh optimization library that makes meshes smaller and faster to render
0282
Arseny Kapoulkine @zeux.io · 12/12/2025
Tomorrow comes.
010
Arseny Kapoulkine @zeux.io · 11/12/2025
Half resolution is when you cut width and height in half, and get at best half of your rendering time back, since rarely if ever do things scale perfectly with pixel count.
0101
Arseny Kapoulkine @zeux.io · 08/12/2025
After nine years of development, meshoptimizer has reached its first major version, 1.0! This release focuses on improvements in clusterization and simplification as well as stabilization. Here's a release announcement with more details on past, present and future; please RT! meshoptimizer.org/v1
meshoptimizer.org
🐇 meshoptimizer v1.0
Mesh optimization library that makes meshes smaller and faster to render
924975
Arseny Kapoulkine @zeux.io · 07/11/2025
Do I know anyone in Poland who will be there next week and wants to get tea or whatever people drink there and chat? Schedule not too flexible but I might be in the right city at the right time :) DM me!
010
Arseny Kapoulkine @zeux.io · 10/10/2025
Is anyone still using DirectXMesh library? If so, why?
010
Arseny Kapoulkine @zeux.io · 30/09/2025
New blog post! In "Billions of triangles in minutes" we'll walk through hierarchical cluster level of detail generation of, well, billions of triangles in minutes. Reposts welcome! zeux.io/2025/09/30/b...
116655
Arseny Kapoulkine @zeux.io · 23/09/2025
Unlike Vulkan, DX12 doesn't support loading 8-bit types from byte address buffers; this seems like it would be a problem for working with 8-bit triangle indices, but don't worry, you can just
1303
Arseny Kapoulkine @zeux.io · 15/09/2025
AMDVLK is dead, long live radv: github.com/GPUOpen-Driv...
github.com
AMDVLK open-source project is discontinued · GPUOpen-Drivers AMDVLK · Discussion #416
In a move to streamline development and strengthen our commitment to the open-source community, AMD is unifying its Linux Vulkan driver strategy and has decided to discontinue the AMDVLK open-sourc...
0255
Arseny Kapoulkine @zeux.io · 13/09/2025
#ScreenshotSaturday
2271
Reposted by Arseny Kapoulkine
Ari Arnbjörnsson @flassari.bsky.social · 11/09/2025
Profile.
8795153
Arseny Kapoulkine @zeux.io · 26/08/2025
Spent some time resurrecting niagara from 2018 to test some NV_mesh_shader stuff. This was fun! - The code almost compiles and runs... needed a couple SPIRV fixes to align with latest Vulkan SDK for some reason. - This was using meshoptimizer v0.9 (17 versions ago!) - Update to v0.25 needed a...
130
Arseny Kapoulkine @zeux.io · 22/08/2025
Upcoming niagara stream! Tomorrow (Saturday, Aug 23) at 11 AM PST (6 PM GMT), we will talk about and work on simplifying Vulkan synchronization code, following recent developments in the ecosystem like unified layouts. youtube.com/live/0rqWe1M...
youtube.com
niagara: Simplifying synchronization
YouTube video by Arseny Kapoulkine
1201
Arseny Kapoulkine @zeux.io · 21/08/2025
While it's quite silly to literally run the simplifier every frame on the UI thread in the browser, it's fun to see that it can indeed work at 60 FPS!
0250
Reposted by Arseny Kapoulkine
Jason Schreier @jasonschreier.bsky.social · 21/08/2025
BREAKING: Silksong will be out on September 4. Two weeks from today. Really. Often, games that take 7+ years to make are plagued by mismanagement and painful burnout. But for Silksong? Team Cherry was having a blast. They still are. This is their story: www.bloomberg.com/news/newslet...
bloomberg.com
Why ‘Silksong’ Took Seven Years to Make
The highly anticipated indie game has been in production for so long that it’s become an internet meme
13589772957
Arseny Kapoulkine @zeux.io · 21/08/2025
@akien.bsky.social Any sense as to the timeline of 4.5 release? Did not expect 2 months of betas 😅
120
Arseny Kapoulkine @zeux.io · 20/08/2025
now I can finally relax a little 😩
030
Arseny Kapoulkine @zeux.io · 20/08/2025
meshoptimizer v0.25 is out! Featuring new simplification function that optimizes positions and attributes for appearance, experimental permissive mode to simplify faceted regions with selective seam preservation, regularization option for improved tessellation quality and deformation, multiple ...
36221