A Canadian software engineering student who enjoys programming, music, math, precision platformers, and factory games!
My main language. I have created many things with Rust, including a basic bytecode compiler and runtime for a custom scripting language, a bytebeat mini language, runner, and visualiser (explained in the Bytebeat section), a specialised Vulkan-based renderer (with an included system for VGA text mode-like graphics), an asynchronous communication application between a web client and a Minecraft turtle, a basic factory game system, multiple half-finished recreations of the game Just Shapes and Beats, a cellular automata Margolus ruleset executor, an indexer and labeller for Geometry Dash music that is not regularly available, an image pixel sorter, a reverse engineering framework, a joint web/game/chat server, a clickbot audio synthesizer, a Windows implementation of `/dev/audio`, an image corruptor, an NES ROM corruptor, a university grade calculator, and many more tiny or unfinished miscellaneous projects.
Miscellaneous projects, my main language before I learnt Rust. This is what I used to create the first version of the data collection app for our high school robotics team, using Xamarin (the Dart section will go into detail about this). I also used C# to create games, though most were never truly finished. The unfinished games include a Celeste-inspired platformer where platforms are only active when lit, and a recreation of Fruit Ninja. One small game I have finished is a recreation of an excerpt of the final part of Limbo, a level in the game Geometry Dash.
I learned Dart for our high school robotics team, the year after the C#/Xamarim app was created. As competitions restricted the use of wireless communication, I created a specialised application using Dart and Flutter to track data for each match, serialising data into QR codes which were scannable into a Google spreadsheet. This application replaced the paper-based approach that the team had done in previous years, and massively enhanced the accuracy and ergonomics of the collected data.
I most commonly use Python for extremely high-level purposes. For productive use, I have used it in a university assignment to create data plots and perform calculations with uncertainties, and for my work I have used it to automate what would've been a gruelling task: downloading over one thousand articles in the form of web pages from an old information base, updating their content to achieve a look fitted better for the company, and reuploading them to a modernised hosting service. Not only did the program meet the requirements, I created a web page to generate content to create a much more functional layout than what was possible in the editor, which included a generator for a paragraph with an icon vertically centered next to it, as well as flexible headers that expanded to fill the width of the article, forming a flexible layout, and as it replaced PNG images, the size of the documents were massively cut down. I am roughly familiar with many common Python libraries, like Beautiful Soup, matplotlib and numpy.
These three are roped together due to their interlinkage; the only independent usage I have of these languages is JavaScript, which I have used to modify behaviour in the game Mindustry. Otherwise, all three have been a factor in developing my website. Front-end development is not my strong suit, and I have never had any experience with frameworks like React, Angular, Vue, Svelte, etc., as I prefer to create websites with raw HTML, CSS, and JS. Sass and TypeScript are as far as I have gone regarding preprocessors. I have made a few creations, notably small web pages created for work, as they can be shared between computers without the need for any installation. I have also implemented affine transformations in JavaScript and have used them to create many interesting things out of raw HTML elements, such as a spinning donut using only span elements and the CSS `translate` property. Other than that, I have pretty basic experience.
I am familiar with both typesetting languages, and have used them for university lab reports. The uses of these are much more specific to school, though I am working on an article in Typst that debunks the common saying that computers cannot generate truly random numbers.
I am very familiar with C++ and understand many concepts of the language, but I oftentimes prefer other languages. My most fruitful creations using C++ are mostly wrappers over C APIs, such as OpenGL. My other creations are mostly formatted like C, but using a few C++ features to make development more ergonomic. Many projects end up being recreated in other languages, notably Rust. I have created an application that uses OpenGL and Dear ImGui to create a simple vertex shader editor for dataless point primitives.
I most commonly use C for bytebeat kernels, operating system development, or for fiddling around with very low-level APIs, such as XLib, WinAPI, or the POSIX API. When these projects grow from small experiments to sustained projects, more often than not they will turn into C++ projects due to the comparative ease of abstraction.
I usually use CUDA for graphical applications, such as Nonane, my program that uses WinGDI and CUDA to iteratively apply various fun effects to the screen using a simple double-buffering system. Since CUDA is proprietary to NVIDIA processors however, I prefer to use open-source APIs, such as Vulkan, which I am in the process of learning.
I mostly use Lua for modding, most notably for Factorio mods. I haven't produced anything worth much, but I have become familiar with the language. I have passively used Lua while experimenting with turtles and computers in ComputerCraft: Tweakedand OpenComputers, both of which are Minecraft mods that add Lua-based computers.
I have used TypeScript for a few small projects, including a program that allows communication between Minecraft turtles (see the Lua section). It is also my preferred language when developing websites, as I enjoy strong type systems.
I have mentioned bytebeat multiple times, so I will describe it here. Bytebeat is the generation of audio through pure functions instead of through more complex music production methods. I have experimented with bytebeat formulas, but one script I am the most proud of (which, as with many bytebeat formulas, contains high volumeand extremely coarse sounds) can be found here. While it is not a language itself, projects such as the SthephanShi's bytebeat editor and imageboard, viznut's IBNIZ, and a couple of my own projects are centered around the production and visualisation of bytebeat.