Voronoi Noise

{{ 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;”) }}

Harmonic Coordinates

A low-poly rat model in a cage of quads which is deformed to follow a sine wave.

An implementation of Harmonic Coordinates for Character Articulation. I wrote a mock paper about it.

A bar graph of computation time.

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!

Katherine Smith Awesome Site :: Mead Forest :: by Katherine Smith