Math Departmental Study
Description:
Below is a collection of small projects I did for my senior year math departmental study in high school, focusing on applications and exploration of mathematics in computer science. A slideshow with graphics and demos is linked at the bottom.
Project 1 focused on fluid simulation. I implemented an Eulerian model in Python that followed the standard four step structure used in many academic references. I added forces to the grid, advected quantities through the velocity field, diffused dye and pressure, and applied a pressure correction step to enforce incompressibility. The code ran slowly at any reasonable resolution, although speed was never the objective. The project gave me practice translating mathematical operations into working numerical code and helped me rebuild fluency with Python based scientific computing.
Project 2 explored cellular automata. I started with classic grid based systems such as Conway’s Game of Life and Wolfram’s elementary automata. I then moved into continuous variants such as Smooth Life and Lenia. These systems replace discrete rules with convolution based updates and growth mappings. I experimented with kernels, growth functions, and stability constraints. I used fast Fourier based convolution to keep the simulations efficient. The project gave me a deeper understanding of how simple local rules or continuous analogues can generate complex global behavior.
Project 3 is covered in the project page for Fluid Bed Roaster
Project 4 focused on shader programming and atmospheric scattering. I used Shadertoy to practice GLSL and wrote small projects such as wave interference patterns and Mandelbrot renderers. I then implemented an atmospheric scattering model based on an NVIDIA reference. The method required integrating along view rays and accounting for wavelength dependent scattering. I optimized the approach by using precomputed optical depth values, which reduced the number of calculations per pixel. Both the full and optimized versions ran smoothly. The project strengthened my understanding of GPU based computation and light transport models.
These projects covered numerical methods, convolution based systems, control theory, and shader mathematics. They required me to translate mathematical ideas into functioning code and to work across several domains with different computational constraints.
Tools:
All the tools that I used in this project:
Python GLSL Shadertoy