Portfolio
Godot 3 Patch for Doomsday Paradise
- Operating System
- Linux, Windows
- Languages
- C++
- APIs
- Godot 3.5
- Tools
- SCons, Git, GNU Debugger (gdb)
- What
- I fixed Godot 3.5's line breaking implementation for Traditional Chinese and Japanese text in the
RichTextLabel and Label nodes, making it handle CJK and mixed language text correctly. I also ensured the default functionality could be restored with a toggle. - How
- I debugged Godot 3.5's source code with
gdb, tracing macros by hand, and patched it without any external libraries to avoid extra hassle. - Why
- Lemonade Flashbang hired me to get their game ready for Bitsummit and Steam. I fixed their problem inside of 17 hours to meet the tight deadline for their demo.
Megatech-Vulkan Dispatch
- Operating System
- Linux
- Languages
- C++20, Python3, XML
- APIs
- Vulkan
- Tools
- Meson, Git, GNU Debugger (gdb)
- What
- I built a C++ dispatch library to preload Vulkan command pointers, offering index and hash access, plus a Python package to generate custom command sets from Vulkan’s XML specification. It’s lean compared to Volk at around 50KiB and it builds without a dependency on Vulkan.
- How
- I wrote a Python3 script to parse the XML and generate a tailored command list while checking feature dependencies. Then I wrote a C++20 library to create compile-time tables from the generated lists.
- Why
- I wanted a cleaner, smaller, and more configurable alternative to Volk for my own Vulkan projects (like Megatech-Vulkan).
Fractal Renderings
- Operating System
- Linux
- Languages
- C++20, GLSL, JavaScript
- APIs
- OpenGL 4.5, SDL2, WebGL 2
- Tools
- Meson, Git, GNU Debugger (gdb)
- What
- I wrote three C++ programs to render the Mandelbrot set, Burning Ship fractal, and animated Julia sets using OpenGL 4.5 and SDL2, plus a WebGL 2 version of the Julia sets embedded in my blog.
- How
- I rendered each fractal using GLSL fragment shaders. I implemented panning and zooming by scaling and offsetting the generated fractal. In the case of the animated Julia sets, I also iterate a complex constant to create the animated effect.
- Why
- I wanted to dig into real-time graphics with something tangible, then expanded it to include Julia sets and the Burning Ship.
Megatech-Assertions
- Operating System
- Linux
- Languages
- C++20
- Tools
- Meson, Git, GNU Debugger (gdb)
- What
- I wrote a C++20 library to replace standard assertions with thread-safe versions that support formatted messages using
std::vformat_to or std::vsnprintf, plus precondition and postcondition checks. - How
- I built it with no dependencies beyond the C++ standard library, using mutexes and condition variables for thread safety and a fixed-size thread-local buffer to handle formatting without allocation risks.
- Why
- I got tired of basic asserts without runtime messages or formatting and wanted a cleaner way to debug my own projects with detailed failure output.
Sunset 76 Customer Landing Page
- Operating System
- Linux
- Languages
- HTML, CSS, JavaScript
- Tools
- LiteSpeed Web Server, cPanel, Git
- What
- I built a static and responsive web page for an auto repair business with contact info, business hours, and other information all in HTML and CSS with media queries.
- How
- I wrote the HTML and CSS from scratch and iterated the design with the client. Then I wrestled Turbify’s hosting and LiteSpeed setup to serve the page cleanly while maintaining uptime.
- Why
- Sunset 76 hired me to replace a flaky old site that had been causing customers to call in asking about hours and services.