Skip to content
View Lauriethefish's full-sized avatar

Block or report Lauriethefish

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Lauriethefish/README.md

Hi, I'm a developer working on several open-source projects you might be interested in :)

Do check out a few highlights below.

Open source projects I've worked on

Zephyr RTOS

I'm currently pursuing an internship at Arm Ltd, where I have been working on contributions to Zephyr RTOS on the Arm Cortex-M architecture. These patches are linked (some directly, some indirectly) to the goal of stabilising the implementation of the USE_SWITCH context switching primitive.

CIRCT - Circuit IR Compilers and Tools

CIRCT is an experimental project aiming to provide an open-source platform for electronic design automation. My contributions extended the frontend to support various SystemVerilog testing constructs, including more complicated assertions and support for dynamic queues.

Stuff I maintain

usb-i2c

USB-I2C is a nice little project I made last year that implements a USB to I2C adapter using an STM32F103 microcontroller. The chip is programmed to generate I2C transactions from specially formatted USB bulk packets. This is paired with a Linux I2C driver, which presents the normal I2C bus API to applications and internally communicates with the adapter. I learnt really quite a lot while working on this project - it was a good dip into bare-metal embedded programming, and taught me all about hardware initialisation, the need to check hardware errata, how to link a bare-metal application, how to write a bootloader, etc.

ModsBeforeFriday

ModsBeforeFriday (or MBF, to be extra confusing) is a modding tool for Beat Saber on Meta Quest headsets. Its aim is to streamline the process of mod installation, such that you can get your modded game up and running in only a couple of clicks!

MBF automatically downgrades the game, installs the modloader and all the core mods that you need to get started. It runs entirely within a web browser, so you don't even need to install anything on your PC. It's written with a Rust backend, and TypeScript + React frontend, and accesses your Quest via WebUSB.

QuestPatcher

In the early days of Gorilla Tag modding, I make a small tool for modding il2cpp applications on the Oculus Quest and Oculus Quest 2. This is QuestPatcher. It has now reached over 900,000 downloads.

The QMOD format used in QuestPatcher was later adopted by BMBF (which is now defunct) and MBF, seen above. QMOD files can be easily manipulated using the QuestPatcher.QMod NuGet package.

QuestPatcher is now mostly used by Beat Saber mod developers who need a convenient desktop interface for mod installation.

NandroidFS

NandroidFS is a filesystem for Windows which allows Android devices connected to your PC via the Android Debug Bridge to be mounted as though they were a regular drive connected to your PC. (with a drive letter for each device) This is in contrast to the Windows Explorer MTP integration, which is slow and clunky, and doesn't allow other applications to treat the Android device as a regular drive (it's just for GUI file management).

NandroidFS is not a kernel mode driver, but instead uses Dokan to allow filesystem-in-user-space.

Other cool things I've made

OCR ERL Interpreter

OCR Exam Reference Language (ERL) is a pseudocode language used for the OCR GCSE exam in Computer Science. Despite being "pseudocode", the language is fairly formally defined, so it is possible to write an interpreter that can run ERL code.

My ERL interpreter isn't quite fully featured, but focuses on performance, using a stack-based VM to achieve very efficient execution.

Factorio Computer

A bit random, but a while back I made a computer in the video game Factorio, alongside a compiler that can be used to write programs for the computer in a high level language called LFL. (Laurie's Factorio language).

Here it is, if you're interested.

Pinned Loading

  1. ModsBeforeFriday ModsBeforeFriday Public

    Beat Saber Mods Before Friday

    Rust 202 34

  2. QuestPatcher QuestPatcher Public

    Generic il2cpp modding tool for Oculus Quest (1/2/3) apps.

    C# 382 394

  3. quest-mod-template quest-mod-template Public

    Template for creating Beat Saber mods for the Oculus Quest. (BMBF/QuestPatcher mods)

    PowerShell 28 31

  4. Technicolour Technicolour Public

    Yes, colour with a U

    C++ 3 2

  5. nandroidfs nandroidfs Public

    The sequel to androidfs - this dokan user-space filesystem allows an ADB device to be mounted as a drive in windows. WIP

    C++ 6 2

  6. ocr-erl ocr-erl Public

    Interpreter for OCR Exam Reference Language

    Rust 1