Projects

Simulation, systems programming, embedded hardware, and research.

2025–present

Digital Logic Editor

A real-time, gate-level digital logic editor and simulator written in Rust, for web (wasm) and native. Includes an RV32IMA computer that boots Linux, a simulated Arduino Uno (ATmega328P) flashable from Arduino IDE/PlatformIO, Verilog import, multiplayer lockstep editing, WASM user components, and an MCP server for AI control.

  • Rust
  • Bevy
  • Cranelift JIT
  • wasmtime
  • WebAssembly
  • axum/tokio
Open the editor ↗

Desktop only · loads a large (~15 MB) WebAssembly app.

TODO: Hero screenshot, Linux-boot video, and a preloaded demo circuit URL.

2024

Tactile Digital Logic Exhibits (MS thesis)

A framework for rapidly prototyping tactile digital-logic exhibits on a distributed architecture. Simulated I/O hardware (buttons, LEDs, etc.) can be swapped for real hardware one part at a time via an abstracted implementation and a distributed communication protocol. Demonstrated with a CPU exhibit.

  • Interactive exhibits
  • Distributed systems
  • Embedded hardware
  • Education

TODO: Photos of the CPU exhibit and an architecture diagram.

Two relation cubes being joined in VR
Figure from the authors’ paper, Proceedings of the Future Technologies Conference (FTC) 2022, Springer LNNS vol. 560, doi:10.1007/978-3-031-18458-1_42. © Springer Nature Switzerland AG.

2022

ImmersiveDB: Database Query Execution Through Virtual Reality

A Unity VR tool for building and running relational database queries with hand or controller gestures. Tables appear as "relation cubes", and grabbing two cubes runs a JOIN. Published at FTC 2022 (Springer LNNS vol. 560).

  • Unity
  • C#
  • VR (Oculus Rift S)
  • SQL
  • HCI research
Multiplayer Maze title screen

2019

Multiplayer Maze

A networked multiplayer maze game built in Godot. Players join a dedicated server and race through a maze; the title screen spells "logan b" in maze walls.

  • Godot 3.2
  • GDScript
  • Client/server networking

TODO: Gameplay recording with two clients.

Terminal session: mkfs, mount, write, ls, unmount

2020

ltbfs: a FUSE filesystem in Rust

A VSFS-style filesystem written from scratch in Rust on FUSE, with its own mkfs, inode and data bitmaps, directories, and file read/write. It mounts as a real Linux filesystem.

  • Rust
  • FUSE
  • Filesystems
  • Systems programming
Top-down render of the ornament PCB

2019

CPHE-200 LED Ornament PCB

A custom 2-layer circuit board for a holiday ornament: 21 LEDs in a radial pattern around a central socketed microcontroller, with SMD passives and a USB connector, designed for an engineering course.

  • PCB design
  • Autodesk EAGLE
  • Embedded hardware

TODO: Photo of the assembled ornament.

Architecture: Python client to Arduino over Wi-Fi, UART to Create 2

2018

Wi-Fi control for iRobot Create 2

Arduino (WiFi101) firmware that bridges TCP to the iRobot Create 2 Open Interface over UART, plus a Python client library for driving and reading sensors (bumpers, encoders, distance/angle, buttons, IR, 7-segment display).

  • Arduino C++
  • WiFi101
  • UART
  • Python
  • Robotics

TODO: Photo of the robot. Repo is private.