Matrix Logarithms and Transform Interpolation: Understanding Transforms as Velocity Fields

2025-03-22

This article explores how to smoothly interpolate a transform matrix T to move a point x from its initial position to its position transformed by T. The key is using matrix exponentials and logarithms. By raising T to the power of t (T^t = e^(log(T)*t)), we can obtain the transform T(t) at time t. Interestingly, log(T) represents the velocity field of the transformation; its product with point x gives the velocity vector at that point. The article explains this mathematical principle in detail, providing an interactive example and code links demonstrating transform interpolation and visualizing a matrix as a velocity field.

Read more

Efficient 3D Mesh Smoothing: Ditching Neighbor Lookups

2025-03-16

This blog post presents an efficient algorithm for 3D mesh smoothing that avoids the need for complex half-edge data structures. Using a 'throwing vertices' approach, it directly iterates over triangle faces, accumulating neighbor vertex positions in a single pass to calculate average positions for smoothing. This eliminates neighbor lookups, boosting efficiency. The post also explores several parallelization methods, including using atomic operations and precomputing neighbor lists, comparing their performance differences. Finally, it shows how to recompute vertex normals after smoothing.

Read more
Development mesh smoothing