General

Hello, my name is Matthew. I am currently a senior attending UIUC. I am a student and a researcher that does a lot of work in bringing high performance to the many applied fields that demand it.

I got into tutoring and teaching through my first foray into programming with AP Computer Science A. Near the end of second semester of my high school sophomore year, I started tutoring and I realized how much I enjoy helping people in regards to programming. In university, I was a Course Assistant, and then became a formal undergraduate faculty member (Course Associate) for introductory computer science for that semester.

Game development led me to get into 3D; which has branched out into its many sub-specialties. I also have had the wonderful opportunity to lecture on (procedural) 3D graphics for an ACM SIG on campus a few times; as well as become a board member.

I am a programmer for high performance applications- such as heavily integrated 3D rendering for fluid dynamics, 3DFX, procedural graphics for both games and offline renderers, NMR (nuclear magnetic resonance) processing, realtime MRI displaying and data conversion, 3D molecular modelling, some embedded development, and research in quantum chemistry (density functional theory).

Programming

I am doing currently a lot of work when it comes to visual computational models for continuum material simulation, quantum chemistry, and realtime data processing for medical applications. Primarily, I utilize C, C++, Julia, CUDA C++, C#, GLSL, and HLSL. I have also used Java, Kotlin for Android, Odin, Python for Blender and some scientific data processing, JavaScript/TypeScript, and to a smaller extent- Lua.

Graphics wise, I commonly use Vulkan, including with interop in CUDA. I have also used OpenGL and OpenCL. I have built a ground-up raytracing engine using OptiX and C++.

In terms of language adjacent experience, I have used HTML and CSS especially in the context of ASP.NET, and have also used SQL, JSON, BSON, binary formats (both custom and domain specific, such as OpenVDB, NanoVDB, and NIFTI [for MRIs]) with data management. I also have a lot of experience with using CMake and Powershell in aiding complicated build processes for C++.

I have extensive experience in Unreal Engine, Unity, homebrew engine development, and writing specific tooling to bridge the gap between art and programming teams.

I have been both programming and art lead for the ACM SIG GameBuilders on campus, and am currently serving as an exec for GameBuilders and am also co-leading a small team for an upcoming RTS called Pathogenesis in game development, art, and design.

alt text

3DCG

I currently have over 5 years of experience in 3D modelling, simulations, animation, programming, addon scripting for domain specific scientific visualization, sculpting, and both building and using particle systems.

Main Renderer, Modelling Software

My primary toolset is with Blender with some addons for hard surface. I also work in Fusion 360, and have a bit of experience with Maya and 3DS Max. I also have used Unreal Engine for realtime rendering before as well.

Texturing & Materials

For texturing, I use Substance Painter, Substance Designer, as well as Quixel Mixer; particularly for environment scenes. I also have been using my own procedural materials much more heavily for both models and volumetrics.

Simulation

On the simulation side, I build software for both toolchains with standards and custom high performance renderers that use Julia as an embedded scripting language.

I use JangaFX’s suite of software; mainly EmberGen and VectorRayGen. I also have used Blender’s built-in Mantaflow, particle systems, and geometry nodes. I have been using Blender’s geometry node system in many contexts to create mathematical simulations of certain math and physics computations, such as vector fields and showing beam characteristics of the Rayleigh Criterion for lasers.

Simulation Research

I have written fluid mechanics software in CUDA C++ under research at UIUC that does driver level interop in Vulkan to mitigate memory copying and to allow for significantly more granularity in visualization with much less effort.

I additionally am currently doing research in CG through a SIGGRAPH organization to do more expressive and modularized volumetric animations for fire and smoke.

alt text

I am also doing quantum mechanics research for the purposes of protein folding and molecular dynamics/mechanics. The current project is implementing novel approaches to density functional theory.

My current research is in particle system to volumetric (voxel) field discretization in real-time on the GPU using the industry standard NanoVDB specification. The research uses a hand-rolled NanoVDB specification that encapsulates all aspects of in-place field construction and mutation; including diffing in animated scenarios.

Game Programming (Notable)

In Unity, I have simulated visually ray transfer matrix analysis and Burst compiled signed distance field discretization in conjunction with HLSL compute shaders to display Gaussian beams with Unity’s particle system.

Unity

I have also done an entire ground-up approach to entirely randomized procedural levels for Ariadne’s Blessing. It uses a KD-tree like structure that uses extremely performant multi-threading, highly contiguous accesses, on demand UV unwrapping, and a hand-rolled adjacency matrix implementation of custom dynamic pathing algorithm for enemies.

With the Pathogenesis RTS (real-time strategy game), it is using Unity’s ECS system; with a custom C# Attribute system that helps to compose component types.

Post

In terms of my workflow for touching up renders, I have been using Photoshop for still images, and Premiere Pro in video renders. I do make use of Blender’s compositing workspace and OptiX denoising quite often.

Addons

My addons of note are almost all for hard-surface operations, and they are:

Boxcutter

HardOps

Decal Machine

BY-GEN

Cablerator

I have also made a Blender addon specifically for visualizing molecules directly from Chemdraw; that includes material presets, subdivision granularity, and has specific structural structuring.

Contact

GitHub

ArtStation

Fun Facts

I listen to all kinds of music, but I mostly enjoy abrasive hip-hop, metal, and EDM. My favorite contemporary composer is Hiroyuki Sawano, and my favorite classical artist is Niccolo Paganini. My top artists are JPEGMAFIA, Ski Mask the Slump God, Denzel Curry, Rico Nasty, JID, Tyler, The Creator, ScHoolBoyQ, and Kendrick Lamar.

I love animation of all kinds, and I have a soft spot for action animation. One of my personal favorite animators is Yutaka Nakamura!

I currently use a Drop ENTR keyboard with NPKC Blue Gradient PBT keycaps with Halo True switches.

I was Top 500 in Pokemon Showdown in National Dex AG with 3 legendaries with the highest BST being 700 on a Mega-Salamence. I quickly fell, but I still got on the top ladder with my dignity intact.