2025-01-31
{{ image(src=“/voronoi_example.png”, alt=“voronoi noise”, style=“border-radius: 8px;width: 100%;”) }}
Detail your experiments with voronoi noise.
{{ figure(src=“/voronoi/voronoi_example.png”, style=“width: 100%;”, caption=“Example noise”, caption_style=“font-style: italic;”) }}
2024-04-18
An implementation of Harmonic Coordinates for Character Articulation. I wrote a mock paper about it.
I first implemented a 2D version of this algorithm in CSC 486B (Geometric Modeling) with Teseo Schneider. This was accomplished in python using numpy and meshplot.
When I needed a final project for CSC 473 (Fundamentals of Computer Animation) with Brandon Haworth, I decided to implement the algorithm in 3D. This implementation is written in rust, using eframe for windowing/ui and wgpu for rendering.
One thing I enjoyed while working on this project was optimizing the code. The most computationally-intensive step involves smoothing values over a grid. I chose it implement this using one thread, a thread for each CPU core, and a thread for each cell on the GPU. In the paper, the single-threaded algorithm is the most performant. This is followed by the multi-threaded and GPU algorithms.
Almost immediately after turning in the paper, however, I found a stupidly simple optimization for my CPU-parallel algorithm. The multi-threaded algorithm is now the most performant by far!