Sign in

Morten Vassvik

@vassvik.bsky.social
1.9K followers 1.7K following 972 posts

Simulation and rendering nerd. Co-founder and CTO @JangaFX Working on EmberGen and more. Discord: vassvik @vassvik@mastodon.gamedev.place

PostsRepliesMedia
Morten Vassvik @vassvik.bsky.social · 25/09/2026
Finally got this in a good spot without a big performance penalty: Removing sparse grid artifacts that comes from a bad/no tile initialization, without resorting to excess padding. Left to right: - Full tile dilation, init - Half dilation, init - Full dilation, no init - Half dilation, no init
1170
Morten Vassvik @vassvik.bsky.social · 20/08/2026
Rational photometric blackbody radiation approximations: www.shadertoy.com/view/ffcSRl
1132
Morten Vassvik @vassvik.bsky.social · 11/08/2026
Perfect blackbody color gradient temperature range: [798K, 5772K] Perfect blackbody luminance reference temperature (to declare Y = 1): 1640.2347K
130
Morten Vassvik @vassvik.bsky.social · 21/07/2026
160
Morten Vassvik @vassvik.bsky.social · 09/04/2026
tfw an idea you've been theorizing for years actually works
180
Morten Vassvik @vassvik.bsky.social · 03/03/2026
Von Neumann's elephant: > With four parameters I can fit an elephant, and with five I can make him wiggle his trunk. Extrapolate to 2026 and with 1 trillion parameters you can effectively answer any question in the world and solve almost any problem.
110
Morten Vassvik @vassvik.bsky.social · 10/02/2026
Claude Opus 4.6 made a big change in how the "thinking" is configured and controlled, and a lot of people are seeing it being really greedy with tokens across the board, some times filling the entire context (and making it impossible to use on a Pro sub) with very few prompts.
100
Reposted by Morten Vassvik
Theo Sanderson @theo.io · 08/02/2026
I made a map of 3.4 million Bluesky users - see if you can find yourself! bluesky-map.theo.io I've seen some similar projects, but IMO this seems to better capture some of the fine-grained detail
bluesky-map.theo.io
Bluesky Map
Interactive map of 3.4 million Bluesky users, visualised by their follower pattern.
66572502154
Morten Vassvik @vassvik.bsky.social · 03/02/2026
A colleague sent me this: www.youtube.com/watch?v=8jVo... No further comments needed, it's **very** good. I've seen some of his videos in the past, but I missed this one. Glad I saw it.
youtube.com
Pushing Simulation to the Limit to Find Order in Chaos
YouTube video by Drew's Campfire
12510
Morten Vassvik @vassvik.bsky.social · 01/02/2026
Working on documenting frustum grids, rebuilding it piece by piece with Claude based on an earlier version that unfortunately got mangled by overly aggressive self-review: gist.github.com/vassvik/1ed6... Still quite a bit missing, but getting there
1151
Reposted by Morten Vassvik
Morten Vassvik @vassvik.bsky.social · 30/01/2026
One example that I explored today: Spherically distorted Frustum Grids gist.github.com/vassvik/6a14... In the end it requires a bit of effort to get the documents sufficiently fully fleshed, but you can ask it to review itself, to various degrees of thoroughness, which works quite nicely.
051
Morten Vassvik @vassvik.bsky.social · 30/01/2026
Spent about a week with Claude Code (Opus 4.5) now. Still sort of skeptical of any tangible benefits to its coding capabilities for any of the production work I do, but I have found some things that seem to work really nicely: Exploration, testing and analysis.
170
Morten Vassvik @vassvik.bsky.social · 26/01/2026
Short conclusion of this Weekend project using Claude Code: It currently feels like it's going to be more like this for the majority of people for at least the nearest future, butchering the lovely graphic from @mjwhansen.com:
4175
Morten Vassvik @vassvik.bsky.social · 24/01/2026
Played around a bit more with it today. Most of yesterday's wow factor is gone, and it's been almost a uniquely frustrating experience. Almost everything I tell it gets done wrong, and it keeps fumbling, and the lack of visual debugging is really frustrating
2160
Morten Vassvik @vassvik.bsky.social · 23/01/2026
Spent some time today finally trying Claude Code (Opus 4.5). Tried to task it to make a simple 2D Stable Fluids implementation from scratch, which it truly fumbled no matter what suggestions I made to improve it. There should be lots of examples in its training data, so that was a but disappointing
2131
Morten Vassvik @vassvik.bsky.social · 17/01/2026
Current progress on my Bitonic sort obsession, compared against GPUSorting's OneSweep implementation (github.com/b0nes164/GPU...) as a reference 32-bit keys only. Tried to pick the best tuning parameters for the OneSweep reference to steelman the comparison On my Blackwell Pro 5000 Mobile laptop
3271
Reposted by Morten Vassvik
Mike Turitzin @miketuritzin.bsky.social · 06/01/2026
I just released my video about the engine (and game) I've been working on. The engine is based on dynamic SDFs, and the video describes how it works and what it makes possible. Link in the reply! This is my first YouTube video and it took forever - please repost!
1229055
Reposted by Morten Vassvik
Daniel Wilson @helsig.bsky.social · 05/12/2024
Introduction. Since 2014 I've been using Excel to create math art. Post-processing in Krita.
3D Phi spiral with golden cubes.Star spiral rose progression.Ornamental knots created through trigonometric parameterization.Edwards-venn diagram.
512819
Morten Vassvik @vassvik.bsky.social · 01/01/2026
Found an interesting paper with an unexpected twist www.semanticscholar.org/paper/On-the...
070
Morten Vassvik @vassvik.bsky.social · 30/12/2025
"Welcome to the CUDA Core Compute Libraries (CCCL) where our mission is to make CUDA more delightful." I've never been more upset than trying (and failing) to get one of the CUB examples to build Massive failure of a trillion dollar company simply where it's a pain and a chore to use their thing
130
Morten Vassvik @vassvik.bsky.social · 23/12/2025
Have recently been obsessed with (again) optimizing my "low-mid size" bitonic GPU sorter even more than it was. The current state summerized in the images below for a 7900 XTX for the red team and a 4090 for the green team. For once the former handedly beats the latter across the board!
4271
Morten Vassvik @vassvik.bsky.social · 22/12/2025
Nobody: Me: I'm very proud of this 1µs optimization, it was definitely worth it to spend a day on it.
2181
Reposted by Morten Vassvik
Amélie Heinrich @dispatchgraph.bsky.social · 20/12/2025
-- JOB SEARCH POST/RT APPRECIATED -- Hello everyone! I am available for work (full time position/internship) anywhere in the world with priority going to the EU, starting June 2026. 🧵
23817
Morten Vassvik @vassvik.bsky.social · 20/12/2025
Ever seen one of these, and wondered *why* they work? 🧵 This is a so-called Bitonic sorting network, and the illustrations show the two common ways to implement them. From an implementation point of view the two methods are effectively the same, so which one you pick just comes down to preference.
23910
Morten Vassvik @vassvik.bsky.social · 19/12/2025
Manually writing simple svg files for making illustrations turns out to be surprisingly simple and neat. Getting motivated to do a full deep dive into Bitonic sorting networks and how to use them well on the GPU now. Maybe it'll happen over the christmas holidays.
7230
Morten Vassvik @vassvik.bsky.social · 19/12/2025
test
270
Morten Vassvik @vassvik.bsky.social · 10/12/2025
It's roughly 4 years since I started to work on the 3D sparse fluid solver for what will ultimately become EmberGen 2.0. A quick look at the current performance state of the solver. A previous retrospective thread from a couple years ago on that other place: x.com/vassvik/stat...
x.com
1234
Reposted by Morten Vassvik
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
Morten Vassvik @vassvik.bsky.social · 08/12/2025
Final version for the 2D Morton decode functions. Fairly happy with the structure in general. A 64-bit version should be easy enough to produce, by just using the 32-bit version twice and combining the results.
1374
Morten Vassvik @vassvik.bsky.social · 05/12/2025
I can't really recall the last time I actually read a paper/article for the sake of learning something, or for staying up to date, and I can barely muster the motivatation to skim new research papers even on topics I genuinely like. Anything that isn't explicitly "mine" is really hard to focus on
1100
Reposted by Morten Vassvik
Mike Turitzin @miketuritzin.bsky.social · 04/12/2025
I've settled on using a simple utility that wraps D3D's SetStablePowerState to stabilize GPU clock rate when profiling using in-app timers. This simple program does the trick: github.com/milkru/gpu_c... This should even work when profiling, e.g., WebGPU apps in browser! [cont]
github.com
GitHub - milkru/gpu_clock_stabilizer: Simple GPU clock stabilizer for consistent profiling
Simple GPU clock stabilizer for consistent profiling - milkru/gpu_clock_stabilizer
184
Morten Vassvik @vassvik.bsky.social · 05/12/2025
Some random Morton Code tricks: If you've worked with Morton codes you've probably seen something like the this GLSL code to decode a Morton code, which end up at roughly 27 integer operations to generate the equivalent 2D position. Code transcribed from fgiesen.wordpress.com/2009/12/13/d...
4455
Morten Vassvik @vassvik.bsky.social · 07/11/2025
New laptop arrived. Curse of awful laptops broken?
250
Reposted by Morten Vassvik
Guillaume Boissé @gboisse.bsky.social · 05/11/2025
New blog post! Behind the scenes of some of the techniques involved in making our last PC demo 💫 gboisse.github.io/posts/this-i...
111438
Morten Vassvik @vassvik.bsky.social · 06/11/2025
0141
Reposted by Morten Vassvik
Freya Holmér @freya.bsky.social · 04/11/2025
I feel like I need to split up my blackboard scribbles/notes for #half-edge into multiple files bc it's quite a lot to deal with an 8000x14000 px document lol
a big collage/blackboard of drawings/notes for various things Freya has been trying to figure out for Half-Edge (her upcoming 3D modeling tool)
2634018
Reposted by Morten Vassvik
Christoph Peters @momentsingraphics.bsky.social · 30/10/2025
Ray marching is a common approach to GPU-accelerated volume rendering, but gives biased transmittance estimates. My new #SIGGRAPHAsia paper (+code) proposes an amazingly simple formula to eliminate this bias almost completely without using more samples. momentsingraphics.de/SiggraphAsia...
A cloud rendered using jackknife transmittance estimation and the formula used to do so.
413928
Reposted by Morten Vassvik
Burak Canik @octocamo.bsky.social · 21/10/2025
Finished documenting work on optimized wireframe rendering: precision, clipping & math details for stable, performant edges in OpenGL. Includes an analysis of NVIDIA’s wireframe paper & fixes its issues. fauder.github.io/posts/2025/1... #GraphicsProgramming #Rendering #OpenGL #ShaderDev #GameDev
fauder.github.io
Optimized Wireframe Rendering: Part III
Detailed technical breakdown of precision pitfalls, clipping logic, and geometry shader implementation for high-quality wireframe rendering.
15311
Morten Vassvik @vassvik.bsky.social · 19/10/2025
How do ye vote?
7130
Morten Vassvik @vassvik.bsky.social · 19/10/2025
Combustion tests with the new ground, 640M active voxels
190
Morten Vassvik @vassvik.bsky.social · 16/10/2025
Spent some time trying to do conservative culling of geometry for distance function evaluation. Turns out I ended up reinventing something like GJK (which I really have no clue about or experience with) with exact bounds.
4266
Morten Vassvik @vassvik.bsky.social · 14/10/2025
Fixed a bug and tried beefing up the voxel count: 1.275B active voxels, 3072x3136x1312 bounding box. Realtime capture in the viewport on 4090. The projection struggles a bit on this scale, so I brute forced it a bit, so it's a bit slower than it has to be. FMG to initialize should help a lot here.
080
Morten Vassvik @vassvik.bsky.social · 12/10/2025
Finally adding ground collisions
2410
Reposted by Morten Vassvik
Topotoy Labs @topotoylabs.bsky.social · 03/10/2025
Extended my topology libs to work on non-Euclidean domains (spherical, toroidal, etc.) by turning mesh edges into geodesics. Below: Bridson's Poisson disk sampling across different domains. #indiedev #gamedev #computergraphics #computationalgeometry #topology
2477
Reposted by Morten Vassvik
Gil Damoiseaux @gaxil.bsky.social · 03/10/2025
Some progress on the VAT export in #illugen. Complex mesh animations can be imported in game engines ... (made with an internal build) #VFXFriday #realtimevfx #vfx
0172
Morten Vassvik @vassvik.bsky.social · 27/09/2025
Some tests I did with hacking in mixbox (github.com/scrtwpns/mix...) support today Left: RGB blending Right: Mixbox blending Interestingly I there's a lot to take from this for smoke scattering, which generally has an absorption component, so subtractive color mixing makes sense I think?
1270
Morten Vassvik @vassvik.bsky.social · 25/09/2025
Singly linked lists? Doubly linked lists? On the GPU? I use 27-way linked lists on the GPU, and it's good and highly appropriate!
2120
Morten Vassvik @vassvik.bsky.social · 16/09/2025
🤔🫣🫠
2130
Reposted by Morten Vassvik
Jasper Bekkers @jasper-bekkers.bsky.social · 28/08/2025
Tickets are up! graphicsprogrammingconference.com/tickets/
1259
Morten Vassvik @vassvik.bsky.social · 27/08/2025
Frustum Grids Primer Part 2: This time instead of having a fixed depth-slice count (which is common for games for a variety of reasons) we'll instead focus on trying to maintain a uniform and non-elongated froxel shapes, which results a variable slice count www.desmos.com/geometry/yl5...
1284