Some projects I have contributed (code) to:
list
- RustySynth - A MIDI / SoundFont library written in Rust
- Photon - Frontend for Lemmy social media platform
- Symphony - Music player for Android
- RetroMusicPlayer - Music player for Android
- GMF2 Tools - Blender extension for .gm2 models from No More Heroes 1 and 2. Built on top of my GMF2 parser.
- Countdown - Event tracker for linux desktop
Also, have a look at the things I've built myself:
Markdown editor for Linux desktop.
Rust • GTK/libadwaita • Linux (Windows, macOS maybe planned)
A MIDI / SoundFont player. It's built on top of RustySynth, but uses a custom sequencer that supports features like seeking. I really need to package this.
See also: Soundfont Compiler
Rust • egui / eframe • Linux (Windows, WASM planned)
A work-in-progress NES emulator.
Rust • egui / eframe • Linux, WASM
A project that explores emulation and inner workings of a computer. I built this during and after the computer organization course at university. This was my first Rust program and I didn't have much experience in general, so the codebase is pretty rotten.
Rust • egui / eframe • Linux
I decided to explore building a web app. Social media client. Very unfinished.
TypeScript • Vue
I've done a few game-related projects
An unfinished spline-based terrain generator for Godot game engine.
![]() |
![]() |
![]() |
|---|
GDScript, C# • Godot Engine
Small shoot-em-up that can only be played with a Wii Balance Board. Very early and unfinished, listed here solely because because I think the balance board integration is cool.
https://peertube.wtf/w/sDymfoD2HkUMn8cMEXLqXQ
C++ • Godot Engine, WiiUse
How do games even work?
Screenshot |
|
|---|---|
![]() |
A chunk (open world piece) viewer for Saints Row 2. The game uses custom asset formats that I reverse-engineered myself. I originally got interested upon learning that Volition, the game studio, had documented some of their file formats for players mess with. Unfortunately it seemed that no one there wanted to touch the chunk format with the longest pole. It's a massive blob with dependencies in other files, loaded by a complex rube goldberg machine in multiple passes. They got rid of the format in subsequent games. Rust (previously C#), Godot Engine |
![]() |
A 3D model viewer & archive explorer for these old No More Heroes games for Nintendo Wii. The games use custom asset formats that I reverse-engineered myself (except for the RSL archive format). C++ (not my finest), Godot Engine |
![]() |
Scripts for processing NMH asset files. Python |
![]() |
My first model tool. A Blender import addon for Metal Gear Solid 4 .mdn files. The game uses custom asset formats that someone else had reverse-engineered before me. Python, Blender |
Just less important things that I may not have the source code for anymore.
| State machine AI system for two unfinished attempts at building a game. | |
| https://github.com/user-attachments/assets/97b84145-440b-446f-bb0d-8186cdd1704a | Weekend project: Sims AI ➜ https://github.com/sevonj/life |
| https://github.com/user-attachments/assets/fd19be87-8d7e-4d54-8281-6bdc93a785fe | One-day project: Streaming open world system in Godot. Orange: Unloaded chunk. Green: Loaded chunk. Yellow: Loaded, but candidate for being dropped if a new chunk is loaded. It's not very smart or polished; for example, unloading should prioritize chunks in the opposite direction of the to-be-loaded one. |
life-demo.mp4
streaming-open-world-2500.mp4
https://peertube.wtf/videos/embed/sDymfoD2HkUMn8cMEXLqXQ
I made an Android app with Flutter. I was going to publish it on Play Store, but gave up when I realized I had spent more time navigating developer account bureaucracy than developing the app itself.
Dart • Flutter • Android, Linux, web
















