Morten Vassvik
banner
vassvik.bsky.social
Morten Vassvik
@vassvik.bsky.social
Simulation and rendering nerd. Co-founder and CTO @JangaFX

Working on EmberGen and more.

Discord: vassvik @vassvik@mastodon.gamedev.place
Pinned
Never to late for an introduction post, eh

Hi I'm Morten. I work at JangaFX, where I primarily work on EmberGen, but I occasionally work on our other tools as well.

I hope to eventually start posting more fluid sim and graphics content, hopefully even blogposts and some code too.
New laptop arrived.

Curse of awful laptops broken?
November 7, 2025 at 2:26 PM
Reposted by Morten Vassvik
New blog post! Behind the scenes of some of the techniques involved in making our last PC demo 💫 gboisse.github.io/posts/this-i...
November 5, 2025 at 9:15 PM
November 6, 2025 at 8:15 PM
Reposted by Morten Vassvik
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
November 4, 2025 at 6:02 PM
Reposted by Morten Vassvik
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...
October 30, 2025 at 1:24 PM
Reposted by Morten Vassvik
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
Optimized Wireframe Rendering: Part III
Detailed technical breakdown of precision pitfalls, clipping logic, and geometry shader implementation for high-quality wireframe rendering.
fauder.github.io
October 21, 2025 at 4:43 PM
How do ye vote?
October 19, 2025 at 7:47 PM
Combustion tests with the new ground, 640M active voxels
October 19, 2025 at 12:16 AM
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.
October 16, 2025 at 8:22 PM
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.
October 14, 2025 at 10:15 AM
Finally adding ground collisions
October 12, 2025 at 8:57 PM
Reposted by Morten Vassvik
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
October 3, 2025 at 8:51 PM
Reposted by Morten Vassvik
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
October 3, 2025 at 2:29 PM
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?
September 27, 2025 at 9:49 PM
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!
September 25, 2025 at 7:05 PM
🤔🫣🫠
September 16, 2025 at 4:53 PM
Reposted by Morten Vassvik
August 28, 2025 at 4:13 PM
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...
August 27, 2025 at 8:36 PM
Working on a small primer on frustum grids.

The most common approach is to distribute the depth-slices in an "exponential" manner between a near and far plane, which is probably more appropriately named "geometric" since it relies on a geometric progression.

www.desmos.com/geometry/qd1...
August 25, 2025 at 10:56 PM
Reposted by Morten Vassvik
I had a student who did my university raytracing course in Odin, now they've sent me an image made by their raytracer and I'm dying
August 24, 2025 at 8:18 PM
Reposted by Morten Vassvik
Today I was reminded of a cool fact that at first glance looks decidedly bizarre.

Midpoint quadrature — split your interval into n equal subintervals, add up the (smooth!) integrand evaluated at the midpoints and multiply by the width of a subinterval — is of course only second order accurate, 🧵
August 21, 2025 at 8:35 PM
Random @desmos.com doodle on frustum side-plane inside-out testing: www.desmos.com/geometry/8l6...

Uses direct references to objects in the viewport (which are visually disambiguated using colors), and dynamically coloring the test point based on whether it's inside or outside the frustum
August 20, 2025 at 10:02 AM
Post-Siggraph inspiration: Working out the math of frustum grids is fun
August 19, 2025 at 10:43 AM
🛫➡️SIGGRAPH today.

Nice and quiet in Schiphol
August 9, 2025 at 11:54 AM
Simple Desmos 3D implementation of ttnghia.github.io/pdf/Quadrati...: www.desmos.com/3d/857tn8jhjl

Roughly a 5 years old paper by now, but seems awfully relevant still. By a former student of @cemyuksel.com, who I believe is at Nvidia now.
July 31, 2025 at 11:29 PM