Megatech


Portfolio

Mandelbrot Set Rendering

Operating System
Linux
Languages
C++20, GLSL
APIs
OpenGL 4.5, SDL2
Tools
Meson, Git
Problem
The challenge was to create a hardware accelerated program that renders the Mandelbrot set fractal using OpenGL 4.5 in real time.
Solution
I developed a custom Mandelbrot Set rendering program using SDL2 and OpenGL 4.5. I implemented a screen-space approach that offloads all of the rendering onto a dedicated GPU.
Outcome
The resulting program renders the Mandelbrot Set in real time. It also allows smooth panning and zooming, so that users can examine the fine details of the fractal.

Megatech-Vulkan Dispatch

Operating System
Linux
Languages
C++20, Python3, XML
APIs
Vulkan
Tools
Meson, Git
Problem
Truly cross-platform Vulkan applications require dynamic dispatch. However, existing solutions require relatively large header files and pollute the global namespace.
Solution
I developed an object-oriented dynamic dispatch solution for Vulkan. The library leverages a generator script written in Python which parses the Vulkan specification and extracts only the desired commands.
Outcome
The resulting library allows users to preload Vulkan command function pointers which significantly increases performance in hot code paths (compared to resolving commands as needed). The generator script allows users to create builds of the library that preload only the subset of Vulkan API versions and extensions that their application requires.

Sunset 76 Customer Landing Page

Operating System
Linux
Languages
HTML, CSS, JavaScript
Tools
LiteSpeed Web Server, cPanel, Git
Problem
Sunset 76, an auto repair business, needed to develop a new landing page for customers. The page needed to be extremely simply while maintaining a pleasant responsive look on all common devices. It was crucial that the new web page did not disrupt Sunset 76's existing IT infrastructure.
Solution
I developed a static single page solution for Sunset 76 leveraging modern CSS layouts (i.e., grids and flex boxes) to maintain responsiveness to user devices. I took care, when deploying the page, to ensure 100% uptime while working within Sunset 76's existing web hosting arrangements.
Outcome
Sunset 76 saw drastically decreased customer service calls following the deployment of the new page.

Godot 3 Patch for Doomsday Paradise

Operating System
Linux, Windows
Languages
C++
APIs
Godot 3.5
Tools
SCons, Git
Problem
Lemonade Flashbang, an independent game developer, needed to develop a patch for Godot 3.5 that fixed issues with Godot's automatic line-breaking algorithms. Godot 3.5, did not implement standard Unicode breaking algorithms for CJK (Chinese, Japanese Korean) languages. Additionally, the patch needed to be completed in time for the Bitsummit game festival in Japan.
Solution
I developed a patch for Godot 3.5 that implements two solutions for automatic line-breaking in Traditional Chinese and Japanese text. The solution uses a broader context to determine when it is grammatically correct to insert a soft line break in CJK text without negatively affecting run-time performance.
Outcome
Lemonade Flashbang was able to demonstrate their game at the Bitsummit festival as well as release the finished game on Steam later the same year.