2025
2024
Projects
LineDrawer (2025/05-Present) | C++
The main point of this project was to solve my issue with AudioTracer. AudioTracer depends on files
including coordinates for lines (representing walls). I manually typed these files, which easily becomes
unbearable. Thus I developed LineDrawer to draw lines instead of typing them in.
I describe in the Github repo that there's a significant difference between this graphics editor and its
precedent, Tick-Rate-Map-Maker, which lies in their vector/raster nature. LineDrawer's increased complexity
is simply an opportunity for improvement. It's a chance to look back and say "how can I do better?" It's
a step ahead of where Tick-Rate-Map-Maker is, and it proceeds to grow in complexity, as I hope to make
this a functional, distributable software.
I think that LineDrawer is my most complete project so far, because it's specifically intended to become
a distributable app. I currently don't have much left in mind to add to the project, other than adding
options for changing export settings and specifying colours for the lines. These features shouldn't take
too long, as I have previous experience developing text-fields and colour palettes. The former I learned
in a past project, SpeedTyper, which is a typing game akin to MonkeyType. The latter I learned from
Tick-Rate-Map-Maker, where I think I last worked on a functional colour palette. I should mention
that the only available "colours" at the time were "green" and "erase".
What may be of interest to you is the purpose of developing a colour palette for LineDrawer, as it relates once again to the development of
AudioTracer. Essentially, in my pursuit to translate modern light ray-tracing advancements to
sound ray-tracing, I hope to replicate a sort of PBR (physically-based rendering). PBR in light
ray-tracers considers the "physical" qualities of materials to determine the reflection/absorption of light,
which results in the beautiful variety of textures which we see in real life. This effect is just as well
replicated by sound, as observed in the auditoy differences between a mountain range and a recording studio:
one is echo-ey, the other is not. These differences stem from physical differences in material, and so I
think it would be beneficial to implement.
AudioTracer (2025/03-Present) | C++
My favourite project so far. I felt ambitious thinking about this project, which employed advanced algorithmic
and mathematical knowledge. Ray-tracing was beyond my experience, let alone audio ray-tracing, but I
was eager to get this idea started.
Why audio? First off, it sounds cool (pun intended). Second, it's something new, and I needed something to stand
out. Much attention has already been paid to light ray-tracing, which has advanced immeasurably in the past few years.
It was about time that sound got some appreciation, because auditory immersion can be just as fascinating
as visual immersion. Have you ever watched Transformers? The transformations are intricately composed, yet I never
appreciated its beauty until recently. That and other examples of beatiful sound design drove me to build this
audio ray-tracer.
NoiseGenerator (2024/01-2025/07) | C++
This project (along with other projects, but this one especially) brings good memories.
When I first began developing NoiseGenerator, I was diving into the realm of
procedural generation,
specifically, procedural map generation. Popular games like Minecraft use it,
so I, in pursuit of experience in Game-Development, thought of implementing a procedural-generation algorithm.
Algorithms like such utilize "noise", Perlin Noise,
most recognizably, so I prioritized developing that algorithm. Development involved a lot
of time researching how the algorithm works, as I read online articles, watched Youtube videos,
and scoured through Stack Ovoerflow in order to realize how my algorithm should work.
It got to the point that I started working on this project during breaks at school.
Some of my friends would pass by and I would tell them about it. Checking in occasionally,
they would see how development was going, and I would have the chance to explain what
the program did and why I was doing it. Unsurprisingly, this developed my own
understanding, now that I had to put the abstract knowledge into words.
This project, being both an opportunity to learn and to connect, is important to me, for
that exact reason; the project brought about fond memories to me.
The photos below are samples resulting from the library, along with tweaking of certain colors.
"output" is a basic example of procedural map generation, as it uses Perlin Noise
along with parameters to determine what "biome" (presented with colors) the area would be.
Green -> Grass, Blue -> Water, Grey -> Stone, White -> Snow. The data for the photo is all
floating-point numbers, but when you turn them into familiar colors, they can easiliy represent
a full map. I enjoy graphics so much ;-;


