Lead Design Engineer & Hardware Artisan • Accessibility & Haptics
Welcome! I’m a maker, developer, and Lead Design Engineer with over a decade of experience turning ideas into working physical things: custom stage hardware, interactive installations, accessible tools, and rapid prototypes. You can explore some of my builds on YouTube.
Commission me like an artist, for hardware: Just as someone commissions an illustrator for a custom painting, you can commission me for bespoke physical hardware. Whether you need a non-invasive visual alert device (like the Deaf Ringbell Detector), custom wearable haptics, motion-reactive ambient lighting, or a one-of-a-kind embedded prototype, I design, solder, 3D print, and calibrate hardware to order in my lab. Invoiced securely via Square, with local Oregon installation available.
As a Deaf technologist and interface designer, sensory agency is the foundation of everything I build. My ongoing work on the Haptic Petting Zoo was recently honored with a $96,000 Creative Heights award from the Oregon Community Foundation, translating acoustic frequencies and spatial resonance directly into tactile vibrations felt through skin and bone.
Like many nerds, I've picked up a bunch of high-tech hobbies such as laser cutting and 3D printing! I'm good at a lot of things, but taking pictures isn't one of them.
You can find many of my other projects on YouTube; most of my shorts are just me screaming until the neighbors call the police, but some are pretty neat!
Lasered Artworks
Lasered metal sheets
My laser cutter can engrave extremely detailed images onto metal sheets. Its maximum resolution is 1000 DPI. See the video playlist below along with pictures.
It turns out my laser cutter works great on rocks, ceramics, and more!
Chladni Patterns
These patterns appear when you play sound against a metal plate. I generated images of them and then lasered them out!
ASL clock
Lasered out an American Sign Language clock, and installed a clock kit! Is there anything laser cutting can't do?
Fan arts
I've gotten really good at lasering detailed artworks out on wood!
Signs
I've been making signs for items on sale!
Gold Foil
My laser cutter works pretty amazingly with thin foil glued to pieces of wood!
Vent System
Safety is important when laser cutting! My laser cutter is in a corner in my lab, and I've found that having a venting system that pulls all air away from my laser cutter massively improves the machine's outputs while protecting my lungs.
ASL Dice Game
Made a wooden dice game quickly for ASL game night at the Deaf Cafe.
View Game Rules & Gameplay Examples
The rules are as follows:
FingerSpelling
Picture: Hand shapes for each letter of the alphabet.
Challenge: The player must finger spell a word given by another player. The word can be anything from simple (like "cat") to complex (like "university"), depending on the skill level.
Everyday Phrases
Picture: Illustrations of common phrases like "Hello," "Thank you," "How are you?" etc.
Challenge: The player must correctly sign the phrase that corresponds to the image. Other players verify the accuracy.
Action Signs
Picture: Illustrations of actions like running, jumping, cooking, etc.
Challenge: Mime the action, have others guess, then sign a sentence using the action.
Emotions
Picture: Faces showing different emotions like happy, sad, angry, surprised, etc.
Challenge: The player must sign the emotion depicted and then use it in a sentence. For example, if the emotion is "happy," they might sign "I am happy today."
Animal Signs
Picture: Various animals like a dog, cat, bird, fish, etc.
Challenge: The player must sign the animal shown and use it in a sentence or a short story. For example, "The dog is playing in the yard."
Story Time
Picture: A scene from a story, such as a park, a school, or a kitchen.
Challenge: The player must create a short story or sentence using signs to describe what's happening in the scene. Creativity is encouraged, and players can elaborate as much as they like.
Example of gameplay:
1 Dice
Player 1 rolls the dice...
Fingerspelling: Player 2 signs Shrek
Player 1 fingerspells Shrek
2 Dice
Player 1 rolls the dice...
Fingerspelling: Player 2 signs Shrek
Action Signs: Man jogging
Player 1 fingerspells Shrek, then signs about Shrek jogging
3 Dice
Player 1 rolls the dice...
Action Signs: Man falling
Scene: Coffee cafe with two ladies
Emotion: Disgusted
Player 1 rearranges dice into scene - action - emotion
Signs about a pair of girls out front of a cafe. A plumber exits the cafe carrying a bucket filled with slime... The plumber trips and falls over, splattering the girls with slime. The girls are disgusted!
4 Dices
Let there be chaos
Short notes:
The fingerspelling side is like a wildcard, it can become anything affecting the entire story when more than one dice is rolled. It builds up signers' confidence in their fingershaping abilities.
3D printed Artworks
3D Painting
I've been getting really into 3D painting! It's like making stained glass art but without the headaches of handling molten glass or mixing dyes.
Chladni Patterns
These patterns come out nicely when 3D printed!
Magnetized 3D arts
Magnets are the solution!
Masks
Masks Masks Masked Masks Masks for Masks MASKS
Renders
I've been practicing making 3D models of spaces. Currently, the images below are of my bathroom! This is more useful than a map... Try getting lost in there with this in your hand!
Signs
Turns out that 3D printers are really good for making signs with! It's slower than my laser cutter, but still, it's a cool option.
Misc/unsorted
Embrace the chaos.
A Door Between Pages
Some books are not meant to be read.
Past Works
Haptic Zoo
Think petting zoo, but instead of goats and chickens, it’s a bunch of hacked-together machines that poke, buzz, rumble, and squish in strange ways. I set up a room full of different haptic devices so people could walk around and touch sound: bass thumps you can feel in your chest, fingertip buzzers that tickle like carbonated water, and low-frequency shakers that make tables feel alive. The goal was to explore how many ways we can send information through skin and bones instead of ears.
Project Lineage & Evolution:
August 30, 2024 (CymaSpace Proof of Concept): Premiered at CymaSpace's ASL Woodstock Cafe featuring vibrating piano benches, GELU bracers, and multi-vest RF transmission.
I helped design and build GeLu for Universal Music Design at CymaSpace. It is a pair of wearables for gesture input, fingertip haptics, and audio-reactive light so Deaf folks can perform and feel music. We premiered it at NIME 2024. Download the research paper (PDF) or read on NIME.
GeLu v2 was the final version created under UMD. From GeLu v3 onward, all design and development have been conducted independently by me using my own resources.
I met Andrew at the Control+H hackerspace, and we got talking about the GeLu and my future plans for GeLu. I'll eventually be taking this to crowdsupply! Many other engineers was impressed by how seamlessly the GeLu improved their awareness of the room. It was awesome talking to Andrew! He indirectly made many things in my life easier, especially related to open-sourced hardwares!
This was during the Teardown2025 event, where I met many engineers and made new connections. I had a great time!
Video capture of the 3D studio radiance field dataset
An interactive WebGL xRweb experience utilizing 3D Gaussian Splatting rendered via Three.js. Captured with Postshot and exported into high-density PLY point splat radiance fields, this project brings photorealistic 3D volumetric environment reconstruction directly to modern browsers.
Todd Fadel launched a contest for PatchXR, with winners judged on best use of AR, AI, or physics, plus a “kindest overall Ecategory. PatchXR is an important tool for the Deaf community, providing accessible, modern music-making environments and a quick way to collaborate remotely. I designed and built custom award pieces for the winners.
Each award was based on the PatchXR logo, with the “XR Eportion mounted to a motor that spins when it detects a loud enough sound. I integrated n00ds (flexible LED filaments) on the motor to mimic PatchXR’s in-app glowing signal wires. Under the “Patch” letters, I installed addressable LED strips programmed to map brightness to loudness level and color to frequency. This mirrors the signal-mapping concept that’s core to PatchXR’s design.
Bill of Materials
Note: Amazon links are for reference only; pricing is inflated.
The packages was wrapped up with duct tape after I added a little Shrek figure. Pirateship have made this extremely affordable for everyone!
Universal Music Design
One of the works I did with Universal Music Design was building their website, but not just a regular music site. I wired it up with the Web Audio API so it could run live FFT analysis on any audio playing. The result? A reactive fog simulator that changes color and intensity based on the frequency and volume of the music.
High notes bring a purple haze. Deep bass rolls in with red. The sidebar becomes a visual translation of the music, letting Deaf and Hard of Hearing users experience sound in a more tangible way.
For me, it’s not just about visuals. It’s about making music more accessible. Confluence, one of the first recording studios founded by a Deaf music producer, sums it up perfectly: “We take pride in pushing boundaries, creating an environment where innovation thrives, and where sound is not just heard but felt.”
That’s exactly what I aimed for with this build: turning audio into a shared sensory experience.
You can also check out some of the Confluence workshops I’ve led for the Universal Music Design group over the years.
STEM kits for Oregon Museum of Science and Industry
OMSI reached out to CymaSpace about its Oregon Science Festival, then CymaSpace reached out to me. I was given a specific budget, so I did my best to make a kit that fits the budget. A lot of corners was cut, but I managed to pull together something pretty neat!
CymaSpace's basic STEM kit, designed for all age!
The Micro Bit V2s are pre-flashed with Microblocks, which makes reprogramming it possible and easy with any devices capable of running chrome, including smartphones! I was able to secure a bulk deal to get 30 kits within the budget.
The controllers have sensors and outputs built right into it, ready to be played with out of the box without any soldering or assembly required. The other parts in the box are extras, confirmed to work. The OLED screen is an unique addon because the Micro Bit V1s did not have the capacity to run OLED screens. If all goes well, CymaSpace will be stocking those kit boxes at the Woodstock Cafe year-round and eventually have me to design add-on kits for the core kit, each with their own themes, lights, motors, sensing, etc.
LED Controller Workshop
I ran a workshop at CymaSpace’s Woodstock Cafe where participants built and programmed their own LED controllers using MicroBlocks flashed onto ESP32 SuperMinis.
The fun part? These specific ESP32 boards can be bought in bulk for under two dollars each. MicroBlocks makes them accessible to complete beginners while still being powerful enough for serious projects. Unlike Arduino C++, there’s no IDE to install, any device that can run Chrome can also program a MicroBlocks-compatible board, either by USB or over Bluetooth if the hardware supports it. That includes smartphones and tablets! (Horrible experience, but still...!)
I also 3D-printed the shells for the LED strips and demonstrated just how much physical abuse LED strips can take before failing, and how to repair them when they do. Nearly every part of the kits was 3D-printed, except for the LEDs and controllers.
Video of the workshop happening! This was possible thanks to Meagan Bogard and Harris Miller for volunteering as interpreters!
BLE Input Switcher
A dedicated hardware input switcher engineered around the dual-core Raspberry Pi Pico 2W (RP2350) and a WeAct 2.9" tri-color (Black/White/Red) SPI E-Ink display (SSD1680).
The Pico advertises over Bluetooth Low Energy (BLE 5.2) and listens for switching commands from a companion Flutter Android mobile app. When an input is triggered, the firmware arbitrates GPIO output lines with mutual exclusivity and refreshes the partial-update E-Ink panel to show the active channel status with zero standby power draw.
Portland Community College invited me to visit their advanced Interface Design class (MUC 262) on March 3 2025. I haven’t taken any of PCC’s wearable tech courses by then, but they still called my session a masterclass, which felt like a huge compliment!
I brought in GeLu and a few other prototypes to show how I approach rapid prototyping for accessibility, especially using haptics to make music and sound more tangible. We spent the session testing different feedback patterns, talking through build decisions, and exploring how interface design changes when you focus on feel instead of just sight or sound.
A bespoke commercial landing page and conversion platform built for Paladin Waste Consulting LLC, a firm specializing in identifying commercial waste contract overcharges and negotiating shared enterprise savings.
Features a clean dark-mode toggle, responsive typographic hierarchy, ROI savings breakdown, and a frictionless audit intake workflow designed to instill executive trust and drive client acquisition.
This is a demonstration page for an STM32H743IIT6 development board project I built for a client. The actual device performs cable testing with analog reads, continuity checks, and reporting features. Due to client confidentiality, further technical details are under wraps, but the demo page showcases example code categories and UI patterns used in the project.
It’s a Gatsby front end, with a headless wordpress on the backend, and a Disqus comment system… Ah, yes, and a google sheet contact form! Hosted on Netlify! I put everything together with the goal of keeping the monthly costs close to free as possible, and ease of use for Mark.
Why Gatsby?
Gatsby is a static site generator. The static sites it outputs is unmatched in speeds, due to everything being compressed down much as possible, far beyond what’s normally done with a hand-crafted website from ten years ago! This makes it so the website downloads and displays on people’s devices faster.
One of the many ways Gatsby achieves its speed is to pull in all of the contents it’ll be using from all over the place via GraphQL when it’s generating a static website, and merge all of the files that makes up the website into a single file with a minimum amount of white spaces in it!
A normal hand-made website from before Gatsby’s time would have a lot of files that needs to be downloaded one at a time… Styles, pages, pictures, javascript, etc. When people’s devices are downloading files, there is a bit of lag between files, which can easily add up to seconds before the website is finally completely loaded.
It’s faster to download a single file than many files, even if the single file is bigger than all of the other files put together!
And oh boy, there’s the plugins… Long story short, there’s a bunch of black magic going on out of sight deep within Gatsby’s guts. Goat sacrifices, cultist chanting, elder gods stirring in their slumbers, etc. I’m still not quite sure what’s going on, but I like it! I’ll be using Gatsby more often down the road.
Why WordPress?
WordPress have a smartphone app for posting posts from, and is much easier to pull data from than twitter or facebook. I figured that this would be the best option for Mark. Install the smartphone app on his phone, and have his nurses to make posts, with pictures, videos or whatever! Poke the app, make post, text away, post and done!
WordPress have a bunch of drawbacks if you’re also using it as the front end for your website… Slow load speeds, due to each visitors needing to download many, many files before the website displays. There’s a lot of moving parts on the server side too!
WordPress also doesn’t allow you to have custom styles unless you sign up for a monthly plan, among other numerous limits.
Chopping the head off (Headless CMS!) solves a lot of those issues. Each time the Gatsby front end is rebuilt, it pulls all posts from WordPress. The power of the WordPress, and the speed of Gatsby, folded into a single entity!
Why Disqus?
Somehow linking up comments between wordpress and the gatsby front end was an option, but it turned out to be much easier to just throw a Disqus comment widget into the blog page, and have different threads to be loaded for each selected posts.
Disqus is also designed just for comments… So they have more support for comments. In WordPress’s case, it’s like being a jack of all trades, master of none. Using Disqus’s comment system instead of WordPress’s comment system also makes it much easier to display comments in real time rather than requiring the website to be destroyed and rebuilt each time someone posted a new comment.
Google Sheets? Are you crazy!?
A bit! My initial plan was to just use Netlify’s form system to handle the contact form, but it turned out that there was a limit to the number of forms the system would accept for a free account! 100 submission a month!
This work-around I implemented adds a lot of flexibility in that area. As it is now, messages sent though the contact form gets passed to a google script web app that appends the google sheet with the name, email and message then email Mark’s Gmail with the information, along with a link to the google sheet so he won’t miss a single thing! Cool thing about this, in the gmail window, he’ll be able to just click on the email address to start writing an email to them right away! That wouldn’t had been possible with Netlify’s system!
Why Netlify?
Netlify is one of the two options out there (Heroku is the other). I went with Netlify because for months, I’ve heard nothing but praise from my nerdy friends about how easy Netlify makes everything.
I’m blown away! Netlify is a match made in heaven for Gatsby, because of the webhooks Netlify provides. Attach those hooks to something, and when that something changes, the hook’ll get tugged on which trigger an action… In this case, a rebuild of the gatsby website! Soon as a new wordpress post is made, WordPress tugs on the webhook I dragged over from Netlify into wordpress’s guts to trigger a rebuild of the Gastby front end!
Total Montly Costs?
And in the end, I've managed to keep the monthly cost at zero for this set-up!
The sweetest thing is, if any part suddenly goes up into flames. Like, google dissolving somehow, easy as pie for me or any other nerds that have a vague understanding of what's going on here to pop out the burning parts and plug in a different part! Take the comment system, for example, there's like ten other options out there! (And even more ways to craft one out of nothing... Like using google sheets!)
Wordpress goes down into flames? Find a new content management service and chop off the head then attach Gatsby over the bloody stump!
Nettlify goes nuclear? Heroku!
Everything but Gatsby melts down somehow? Self-hosting!
Presenting Crossroad University — a project I tackled to revamp a website tailored for Mental Health Counselors seeking continuing education. Despite reaching a point where further collaboration wasn't pursued by the client, I successfully implemented significant improvements, including a massive SEO upgrade and modern features.
Alexis, the owner of shakeitoffcatgroomz, is a deaf entrepreneur who is passionate about bringing joy to pets and their owners through her services. As a fellow member of the deaf community, I was honored to work with Alexis and help her bring her vision to life.
Alexis approached me with a clear vision of what she wanted for her online storefront at MoeGo. She needed a simple yet stylish website that could be quickly loaded and personalized to her liking. Working within her budget, I was able to leverage the latest technologies to create a website that not only met but exceeded her expectations.
The website has a clean and modern design, with a user-friendly interface that allows visitors to navigate with ease. Alexis wanted the website to be visually appealing, and I made sure to incorporate high-quality images that showcase her products in the best possible light.
Although the website is currently in its early stages, there is enormous potential for growth. Alexis is delighted with the website's current state, but we have discussed plans to expand it in the future. As her business grows, we will add more features and functionality to the website to keep it up-to-date and relevant to her customers.
Update:
Regrettably, like many other startups, Alexis' business struggled to attract enough clients and eventually had to cease its operations. It's always disheartening to witness such setbacks, especially for a passionate entrepreneur like Alexis, who had a remarkable vision. While her business journey took an unexpected turn, we can still appreciate the effort and dedication she put into it. Entrepreneurship often involves ups and downs, and there's no doubt that Alexis will carry the valuable lessons learned into her future endeavors.
Video Recording Platform
A local-first hub for filming with a handful of phones at once. They share a Wi-Fi network, stay on the same clock, and write a disc-golf scorecard while they record. A laptop on that network collects the slices and lines the angles up. No cloud account required to shoot. The download is a clean setup for another machine, without recorded video or scorecards.
A rebuild of Maximize Your Tech, LLC. The GoDaddy site is kept as a before-copy, with a written autopsy of what was failing. The new shop states the offer, the price, and where a quote goes.
Personal projects, doodles, ideas and notes to self.
VoxGame (Custom 3D Game Engine)
A bespoke browser-based voxel 3D game engine engineered from scratch with WebGL, custom physics, level transitions, and collision detection. Watch the Gameplay Demo on YouTube.
Controls:WASD Move · Mouse Look · Spacebar Jump · E Next Level
A 3D architectural visualization of this entire repository. Every file becomes a skyscraper, with height reflecting data size and color denoting technology stack.
Dynamic Mapping: Uses a custom PowerShell engine to crawl the filesystem and generate real-time city layouts.
SEO Integration: The same engine that powers the 3D map also maintains the site's sitemap.xml for search engine optimization.
An immersive, interactive 3D spatial interface experiment designed to make browsing my past embedded projects and AI swarms completely natural. The visualizer maps 62 real microcontroller repositories I've written in the past alongside 20 autonomous hardware startup blueprints synthesized by Claude Code AI swarms during the Oregon Hackathon. By mapping project metrics to shelf coordinates and volume thickness, it creates a cozy, 3D bookcase browse environment—similar in spirit to the Universe 3D skyscraper city visualizer.
A real-time WebGL and Three.js visual installation suite tailored for deaf DJs and live projection mapping. Features 10 sound-reactive shaders driven by full 20Hz (Crimson Red) to 20,000Hz (Violet/Air) FFT spectrum decomposition, tactile beat-sync metronomes, transient flash indicators, and interactive 4-point corner pinning for angled stage facades.
Real-time low-resolution Gaussian splats generated from MediaPipe face and hand landmarking. Splat point clouds are positioned around a virtual 3D turntable in 3-second capture loops, dissolving back into powder on tap or Spacebar hit.
Ever wanted to 3D print a custom hand sculpture without losing your mind in Blender? This tool uses MediaPipe's hand tracking to capture your hand pose from a webcam and converts it directly into a printable STL file. Multiple artistic styles available: solid bones, winding ribbons, crystalline formations, and organic metaball blobs.
Perfect for making custom jewelry displays, ASL letter sculptures, or just freezing a gesture in time without modeling skills.
My pre-flight battle plan for a high-intensity hackathon. The original strategy was simple: gear up an autonomous swarm of AI agents, burn through every drop of the sponsor's complimentary LLM and cloud credits in a blaze of glory, and promptly walk out the door.
Turns out the organizers were one step ahead and had implemented strict per-key credit throttling. Didn't stop me from hoovering up a bounty of extra API tokens and testing out RISC-V LED engine pipelines before vanishing into the night!
An interactive laboratory for procedural geometric rendering. Built with HTML5 Canvas and mathematical shaders, it computes Signed Distance Fields (SDF) and multi-octave simplex noise in real time to generate flowing topographic waves, organic textures, and generative vector-ready patterns.
An automated data crawler and interactive explorer built to retrieve public file extracts from the SAM.gov contract opportunities directory. It features a Python recursive crawler backend with a rate-limited traversal engine, and a frontend user interface styled like a classic comic book, offering instant search and hierarchical path navigation.
An interactive laboratory mapping acoustic frequencies into tactile dimensions. Uses Greenwood's function to space analysis bandpass filters logarithmically.
Features a real-time Hoxel JavaScript scripter to translate envelopes into haptics, scrolling telemetry, and a vocoder simulator for CI audio feedback.
An interactive exploration of Particle Swarm Optimization (PSO). This project visualizes how individual agents (particles) cooperate to find the global "best" solution.
The swarm dynamically reacts to your mouse movements, illustrating complex emergent behavior through simple mathematical rules.
A dark gothic comic showcase and web-based simulator for an audio-reactive Art-Net LED pixel driver. Sends raw DMX packets over Ethernet to power up to 32 universes (1,250+ pixels per port) with low-latency FFT spectrum analysis, Node.js Express control panel, and dynamic visualizer presets.
A cross-platform multi-protocol signal router that forwards MIDI, OSC, Art-Net/DMX, and audio levels over Bluetooth (BLE) to ESP32 devices and network endpoints.
Trigger physical actuators, haptics, and lights directly from VR headsets, instruments, DAW software, or live audio inputs.
I used to design 3D models entirely by hand, but I have found that building out parametric models is far more superior. Crafting models using code and parameters feels like a return to the original ancient magic, where math, logic, and structure define form. The same approach works for circuit boards: an interactive configurator builds, routes, and compiles custom WS2812B LED light strip arrays in the browser with TypeScript, Three.js, and tscircuit.
An interactive, visual catalog exploring 50 distinct web aesthetics and design systems. It covers everything from Neobrutalism's high-contrast borders and Swiss editorial typography grids, to nostalgic Windows 95 retro desktops, vaporwave sunsets, and claymorphic 3D surfaces. Each aesthetic is a fully-realized layout highlighting the harmonious pairing of curated typography, color palettes, and motion design.
An interactive service tier and custom quote overview page for Codafest production services. Built in a mobile-friendly Forest Art Deco aesthetic, showcasing DJ/VJ setups, 40 Woojer haptic vests, projection mapping rigs (1x-5x), WLED lighting, Starlink connectivity, and optional managed livestreaming.
The Apocalypse Deck is my response to the SOFTER Global open call for a cyberdeck residency in Copenhagen. It explores the intersection of DIY hardware, decentralized computing, and tactical aesthetics.
Built to demystify complex systems, this project focuses on reclaiming agency through homemade computing and playful, participatory design.
A highly popular experiment in mobile interaction. This project leverages the smartphone's camera and motion sensors to create a tactile feedback loop.
Users can feel textures and motion directly through their device, pushing the boundaries of how we perceive digital content on the go.
I became very interested in ThreeJS when I discovered that the library had support for VR gears. I thought, why not make a personal world instead of a personal website, like in those weird japan animes? This "Hello World" experiment with ThreeJs showed me that the learning curve with this library is very gentle. It's easy to do anything with ThreeJS, just read the documentions! It's very well documented, and there's PLENTY examples to reverse-engineer for whatever you need!
This project was an exercise in dynamic programming. The goal was to make something that would change based on the choices the user makes. I went way overboard by deciding to turn an .ebook into easily parseable JSON for a javaScript engine I made to work with text adventure books! It will work with any text adventure book long as the input is the JSONified book.
For the book I selected, it was pretty fun finally "playing" the book after porting it over. I didn't read a single thing in the book when figuring out how to easily jsonifity it. If I had to redo the project, there is a ton of things I would be able to do better. Sadly, an adventure book parser/player thingy isn't THAT cool!
Custom assistive tools designed for Baxter peritoneal dialysis tubing and cap operations. Engineered for weak grip strength, zero-slip leverage, and direct 3D printing on Bambu Lab A1 machines. This project directly informed our peer-reviewed research on Tactile Access Knobs.
A creative accessibility hack to bring Live Captioning to Discord and other meeting platforms that lack native support.
It uses an OBS virtual camera and routed audio to "hijack" Chrome's robust built-in captioning engine, providing a real-time transcript for any video or audio meeting.
A client-side Windows 95/98 themed log visualizer and text analyzer. Users can drag and drop custom text/JSON log files, search and highlight matching log lines, sync simulated contacts with a mainframe directory, and export parsed archives into clean text formats.
A Firefox extension that turns any hovered link or image into an instant QR code. Press Ctrl+Shift to spawn a floating panel at your cursor, click to copy the PNG, or let it fade after three seconds.
Unlike the original userscript, the QR generator is bundled inside the extension; no CDN fetch on every page load.
A lightweight Windows system tray application that continuously monitors Wi-Fi link parameters, gateway latency jitter, and automated bandwidth speed tests. Proactively detects speed collapse anomalies, attributes culprit background socket consumers, and includes a 1-click network stack repair toolkit.
A background system tray companion that tracks and visualizes daily Gemini API token limits. It decodes nested protobuf records, manages delta scan updates, and maps data center water footprint metrics to personal hydration limits.
I was playing with Google's grasshopper app the other day, and was somewhat impressed by how easy it was to animate SVGs using JavaScript's D3 package... And decided to play around with that idea on my desktop.
A random nerd challenged a room filled with nerds to take a string and arrange all of the letters so the block of letters appears as a perfect block. Many nerds came up with random approachs to this random challenge. Below are my answer to the challenge.
I was inspired by a random ransomware attack and annoying website pop-ups to see how irritating I could make them. I came up with a pop-up that starts running around the screen as soon as it spawns, making it very frustrating to close.
One big thing I learned from this mini project is that pop-ups can only be triggered by user actions and are limited to one pop-up per action, so you can't, for example, make thousands appear from a single click.
I found a few ways to completely lock up the browser so that the task manager is needed to kill it. Because that vector of attack is so annoying, I'm not posting it here! The version I'm sharing is harmless—you can stop the moving pop-up by closing the page that spawned it.
2025 update - I was just looking at this dusty script again, and remembering how far browsers have came. I was likely one of the reasons for the current policies blocking the old script from working! Good times. I've added a modernized evil redo... It's somewhat evil.
Outcomes of my college courses are posted here if they're interesting enough!
MathInArts - Experiments
A collection of mathematical visualizations developed for my Math in Arts course.
Unmasking: An interactive experiment in Sonic Agency. Using Mediapipe for real-time face and hand tracking, I implemented a Delaunay triangulation system that generates a playable mask. Launch Unmasking (Requires Camera)
Binary Visualizer: A 3D explorer for binary data. It maps trigrams (sequences of 3 bytes) to XYZ coordinates and uses entropy to determine brightness, revealing the "shape" of different file formats. Launch Binary Visualizer
Infinity Visualizer: A performance-optimized library of audio-reactive fractal and procedural shaders, exploring the beauty of Hausdorff dimensions. Launch Infinity Visualizer
MUC-219-12826 - Sonic Construct Of Identity
Sonic Agency! For my final project, I covered deaf agency and sound as a tactile medium.
MUS-199B-26902 - Intro to Music Perc/Cog
Brain on music, this course went over how music interacts with the brain. It helped me to understand why music sometimes caused such strong emotional reactions, and further solidifed my understandings of what makes a good sound good for most people.
For my Final Project, I covered what music is for the deaf community.
Game dev algorithms
I needed something that I can iterate on quicker than Unity Engine allows me to fine-tune an algorithm for a project.
An exploration into Max/MSP and visual programming. As a deaf developer, learning Max provided a unique way to architect sound through logic and flowcharts rather than traditional auditory feedback.
These projects were highly acclaimed by my professors for their bridge between raw data and musical experience:
Weather Sonification: A Node.js integration with the National Weather Service API that transforms real-time local temperature and wind speed into generative soundscapes.
Motion-Reactive Textures: Algorithms that analyze video feeds to generate musical accompaniment based on movement intensity.
Unmasking (Original Prototype): The first iteration of the Unmasking project, driving complex FM synthesis via real-time hand-tracking data.
A grab-bag of unhinged background scripts, custom input hooks, daemon services, and tactical reference sheets that keep my daily computing life stitched together.
AutoHotkey Mouse & Key Remapper — Repurposes mouse auxiliary buttons and numpad locks into system-wide middle-click navigation.
Pixel 6a Auto-Tether Daemon — Headless background automation daemon that auto-detects USB connections and triggers high-speed Android tethering.
Antigravity History Indexer — Background session registry hook indexing conversation checkpoints across workspaces.
Interview Negotiation Playbook — Heavily redacted corporate negotiation sheet. (Protip: Typing shrek anywhere on the page unlocks the hidden reverse-interviewing side drawer.)
Our Files, Comrade! — Seize the means of permission from Windows NTFS bureaucracy!
3D Model Racing is a browser-based 3D racing game engineered in Three.js (ESM). It allows players to import custom 3D models (STL, OBJ, GLB) or race formula prototypes across procedural ribbon tracks with rolling hills, multi-lane AI competitors, dynamic day-night atmospheric lighting, drifting physics, and synthesized Web Audio sound effects.
To power the expansive outdoor terrain, the Grass Study Lab serves as a dedicated real-time meadow shader testbed. It implements high-performance instanced GLSL triangle grass (Peter Adams Ghibli technique) featuring dynamic wind turbulence, wildflower distribution, and real-time interactive vehicle trample physics where blades flatten under tires.
Grass Study Lab — Interactive real-time meadow renderer with live shader tuning
The Backrooms: Deconstructive Roguelite
An infinite 3D first-person procedural survival roguelite set across canonical Backrooms strata, built with modern Three.js (ESM) and Web Audio API synthesis. In this reality, the liminal labyrinth is not a static maze—it is a completely harvestable, destructible resource grid.
Demolish damp monosodium yellow wallpaper, fluorescent luminaires, dropped acoustic ceiling tiles, and structural subfloors to extract drywall plaster, copper wiring, ballasts, and scrap. Breach through vertical floor shafts and ceilings to descend between stratified realms—from the endless office corridors of Level 0 to the raw concrete pipe corridors of Level 1, the serene turquoise waters of Level 37 (The Poolrooms), and the subterranean vaults of Level -2. Features an improvised crafting workbench, modular scaffolding towers, drywall barricades, reality-bending perks, and autonomous AI salvage mining rovers that drill nearby structures and return with salvage.
Microcontrollers, IoT projects, and tiny computers doing big things.
Haxel: Telemetry Engine
A unified Hardware Abstraction Layer (HAL) and captive portal for linear resonant actuators (LRAs), ERMs, and solenoid drivers. Haxel features dynamic back-EMF resonance tracking, a 32-band real-time audio FFT mapping module for acoustic sensory substitution, a high-frequency WebSocket telemetry stream, and a live sandboxed web simulator.
A state-of-the-art stack-based bytecode virtual machine and Pratt-compiler for real-time LED pattern generation on the ESP32-C3. Ember features a FreeRTOS-isolated render pipeline, zero heap allocations, 10x faster Lookup-table waveforms, a real-time 8-band FFT audio analyzer, and a live sandboxed playground.
A custom-built wireless input device and haptic prototype for robotics and VR, using ESP-NOW for ultra-low latency communication. Features a combination of flex sensors and IMUs for precise gesture tracking, along with haptic feedback capabilities to receive wireless control signals from computers, other gloves, and sound.
A professional-grade hardware and software framework for tactile feedback. PULSE integrates a high-durability Haptic Saucer design with a custom ESP32 control engine, featuring real-time telemetry and a captive portal interface for seamless device configuration.
An unabashed, acid-rave styled interactive field guide and production build log for WCH's legendary 10-cent 32-bit RISC-V microcontroller (CH32V003: 48 MHz, 16KB Flash, 2KB SRAM).
Covering custom open-source toolchains (minichlink / WCH-LinkE), single-wire debug gotchas, complete bill of materials, and direct firmware architectures that drive eccentric rotating mass (ERM) motors and haptic coils from ambient audio.
Real-time audio-to-haptic mapping for the GeLu project. This system uses FFT to decompose audio frequencies and translate them into directional motor haptics, giving the user a tactile "spectral awareness" of their environment.
A real-time motion-to-light synchronizer utilizing MPU6050 IMU tracking, sub-millisecond broadcast latency, and custom haptic feedback. Energy transitions are smoothly interpolated on the follower strip using delta-time based easing.
High-performance LED animation engines built for the CymaSpace project. Optimized for the ESP32 to handle real-time FFT and complex spatial mapping for thousands of pixels.
A showcase of embedded experiments spanning robotics, wearable MIDI lighting, visual alert clocks, and presence telemetry:
MIDI LED Brace: Wearable stage performance armpiece synced over MIDI clock and note triggers to animate high-density WS2812B strips in real time. View MIDI Brace Firmware
An exploration of the ESP-NOW protocol for low-latency, peer-to-peer communication between ESP32-C3 nodes. Developed for the PCC Capstone course, featuring RFID-to-Serial integration and localized NodeJS monitoring.
High-performance MJPEG streaming for 3D printer monitoring. This project evolved into a deep dive into sensor calibration, fixing factory defects like hot pixels and pink creep using real-time O(1) algorithms in the browser.
A custom, math-based expression engine for real-time LED pattern generation. Includes a wireless web-dashboard with live code injection, allowing complex pattern iterations without ever needing to reflash the ESP32-C3.
Bridges an MPU6050 accelerometer with FastLED to create an inertia-based lighting system. Features configurable motion sensitivity, decay rates, and dynamic color-shifting that reacts to physical movement.
Exploration of the ESP32-2432S028R development board. Includes custom drivers, UI patterns with LVGL, and sensor integration demos for this all-in-one IoT display.
Transforms an ESP32-C3 and SCD4x sensor into a high-precision air quality dashboard. Built with MicroPython, it features real-time interactive graphing, local data logging to flash (with CSV export), and configurable NeoPixel alerts for high CO2 thresholds.
A MicroPython-based system that translates audio intensity from a MAX4466 microphone into dynamic motor PWM. Features a "Captive Portal" configuration page and AP-fallback, making it easily deployable without hardcoded WiFi credentials.
A diagnostic and testing utility for the INMP411 microphone. Features automated pin-scanning to identify correct WS/SCK/SD configurations and real-time PWM visual feedback for audio sanity checks.
Leverages the ESP32-C3's BLE stack to transform high-quality I2S microphones into wireless audio sources for smartphones. Optimized for live transcription and remote audio monitoring with minimal latency.
Twang
Played around with TWANG. Fixed the legacy code, and put it on modern ESP32s and managed to fit everything into a laser-cut box.
Scream-Time Clock
Better than a broken clock, this audio-reactive clock is right more than twice a day! If you scream constantly.
MicroPython Framework & tools
A self-contained automation workflow for MicroPython. Includes robust PowerShell scripts for O(1) flashing, memory erasing, and port detection. Features a sequential upload system leveraging Ampy and PlatformIO to prevent serial lockups during rapid prototyping.
A complete knowledge base for the ESP32-C3 SuperMini, a thumb-sized RISC-V powerhouse. Covers everything from hardware pinouts and PlatformIO setup to working code examples for WiFi and PWM.
Hand-crafted hardware, assistive tech, and bespoke electronic art.
COMMISSION PROCESS
How Hardware Commissions Work
Just like commissioning an artist for a bespoke painting, every piece here is custom-fabricated, hand-soldered, programmed, and calibrated in my lab. You can commission any project below, or request custom adaptations to suit your exact space. Nothing falls through the cracks:
1
Click "Commission this project!"
Pick any piece below and hit the commission button. It will open your email client (or Gmail) with a pre-filled template containing project details, unit options, and setup questions ready to send.
2
Consultation & Details
I will reply with follow-up questions to confirm your specific requirements: custom enclosure colors, mounting setup, cable lengths, or custom firmware behaviors.
3
Square Invoice
Once we finalize the specs and timeline, I will send an official, secure invoice through Square. Payment secures your build slot on the lab workbench.
4
Bench Build & Delivery
Your hardware is 3D printed, soldered, programmed, and thoroughly tested before delivery. Shipped via PirateShip with tracked USPS delivery (with in-person setup and acoustic tuning available for local Oregon residents).
A non-invasive digital bridge for visual accessibility in the home. Designed from personal necessity as a Deaf engineer, this system acoustically detects existing mechanical or electronic door chimes and broadcasts instant, zero-latency strobe alerts across rooms via wireless ESP-NOW broadcast.
100% Local & Private: This system is completely standalone. It communicates peer-to-peer directly between ESP32 microcontrollers over low-latency radio packets; no Wi-Fi credentials to configure, no cloud servers, no phone apps, no monthly subscription fees, and zero internet dependencies. It keeps running even if your home Wi-Fi or broadband is down.
How It Works: The Leader Node (Ears) mounts cleanly next to your doorbell chime and uses an I2S digital microphone calibrated with Mean Absolute Deviation (MAD) signal processing to trigger only on the chime's acoustic frequency, ignoring conversation, barking dogs, and TV noise. The Follower Node (Eyes) features a high-intensity 8x8 WS2812B matrix that strobes vividly upon trigger and maintains a gentle status heartbeat when idle.
Built-in Captive Portal: Connect to the device's temporary setup access point at 192.168.4.1 to view live 60-second acoustic waveform graphs, trigger audit logs, and tune microphone sensitivity to your specific chime.
Turnkey Starter Kit: $140.00 (1 Leader + 1 Follower, pre-paired, ready to plug into USB)
Leader Unit Only: $75.00 (Includes ESP32-C3, INMP441 mic, 3D bird enclosure, power harness)
Follower Unit Only: $65.00 (Includes ESP32-C3, 64-LED WS2812B matrix, stand & diffuser)
Cables & Invoicing: USB-C power cables always included. Invoiced via Square (Credit Card, Apple Pay, Google Pay). Shipped via PirateShip with tracking.
In-Person Setup: Philomath/Corvallis (+$50) • Portland, OR Regional Transit (+$120)
Secure Square Invoicing • Shipped via PirateShip with tracking • USB-C power cables included
Motion-Reactive Haptic Light Baton
Price: $200.00
Swing it, it vibrates and glows! The Motion-Reactive Light Baton is an expressive kinetic performance instrument integrating 6-axis motion tracking, high-torque haptic vibration feedback, and dense addressable LED diffusion. As you swing, spin, and strike, internal inertial sensors map your kinetic velocity into real-time tactile pulses and trailing chromatic wave sweeps.
Universal Parametric Core: Powered by Dillon's custom 3D parametric CAD engine, this baton is not locked to one rigid shell. It can be parametrically adapted and 3D printed around virtually any structural core; whether you prefer a flexible bamboo shaft, rigid steel rod, carbon fiber tube, or a natural tree branch.
Wireless ESP-NOW Broadcast: The baton doesn't just illuminate itself; its onboard ESP32-C3 broadcasts real-time kinetic telemetry over wireless ESP-NOW with sub-10ms latency, letting you remotely control stage lighting, room fixtures, and wearable accessories in sync with your physical movements.
Incoming Hardware Evolution: Dillon has designed and ordered a production run of custom monolithic 38×38mm SMT controller PCBs featuring 3D back-to-back component stacking, dual independent 5V haptic drivers, high-side zero-drain LED cut-offs, and auto power-path LiPo charging. All upcoming commissions will be built with these upgraded boards!
Turnkey Custom Baton: $200.00 (Fully assembled with custom core of your choice, ESP32-C3, 6-axis IMU, ERM haptic driver, addressable LEDs, LiPo battery & USB-C charging)
Custom Core Fit: Built around bamboo, steel, carbon fiber, or custom organic branches based on your desired weight balance and flex
Wireless Lighting Pairing: Pre-configured with ESP-NOW firmware to pair with remote stage lights or room follower receivers
Optional Wireless Stage Receiver Node: +$55.00 (Plug-and-play USB receiver to trigger external lighting fixtures from baton swings)
Cables & Invoicing: USB-C charging cable always included. Invoiced via Square (Credit Card, Apple Pay, Google Pay). Shipped via PirateShip with tracking.
Secure Square Invoicing • Shipped via PirateShip with tracking • USB-C charging cable included
Sound-Reactive LED Hypercube
Price: $150.00
Basically every maker has built an LED cube, but this one is engineered with organic, sound-reactive 3D ripples. Five 8x8 WS2812B matrix panels (320 individually addressable LEDs total) wrap seamlessly around a custom 3D printed chassis beneath a textured semi-translucent diffusion hood.
An onboard ESP32-C3 microcontroller samples ambient audio through an adjustable-gain MAX4466 analog microphone, translating acoustic vibrations into radial color ripples: deep crimson red for low sub-bass, shifting forward through amber, green, cyan, and vivid purple as frequencies climb.
Universal USB-C Power: Powered directly from any standard USB-C phone charger, laptop port, or portable 5V power bank, just like your smartphone (USB-C power cable included). Plug it in at your desk, studio shelf, or take it on the go with a battery pack.
Form Factor: Compact desk footprint; roughly 3.5" × 3.5" × 3.8" (~90 × 90 × 95 mm) with weighted desktop stand
Hand-Soldered Build: Intricate 5-panel internal 90° corner bus wiring with multi-point 5V power injection
Custom Options: Textured crystalline diffusion (standard), smooth milky diffusion, or custom base filament colors
Cables & Invoicing: USB-C power cable always included. Invoiced through Square (Credit Card, Apple Pay, Google Pay). Shipped via PirateShip with tracking.
Secure Square Invoicing • Shipped via PirateShip with tracking • USB-C cable included
PULSE: Haptic Ecosystem
Starting at $65.00 / $140.00 Starter Pair
The PULSE ecosystem is a professional-grade hardware and software framework for high-fidelity tactile feedback. This system uses an ESP32-based "Leader" unit to capture real-time audio via an I2S digital microphone, perform on-chip FFT frequency analysis, and broadcast synchronized commands to multiple "Follower" haptic saucers via ESP-NOW with sub-10ms latency.
The Follower units feature a rugged, parametric "sled-in-shell" mechanical design and a refined tactile response, ideal for live music performance, gaming immersion, sensory rooms, or accessibility research.
Pure Kinetic Force (Safe for Pacemakers & Cochlear Implants): Commercial haptic vests are heavy, hot, and rely on massive voice-coil magnets that emit intense electromagnetic fields; making them unsafe for people with cardiac pacemakers, ICDs, or sensitive cochlear implants. PULSE was born out of frustration with those vests. It delivers pure, direct kinetic force without heavy voice-coil magnets, generating zero dangerous magnetic radiation. Lightweight and modular, you can slip a puck into a pocket, tuck it against clothing, or set it directly on an instrument or tabletop.
Battery & USB-C: USB-C charging cable always included. Standard rechargeable LiPo yields 4 to 6+ hours of continuous vibration; the battery can be scaled even larger upon request as there is plenty of reserve room inside the pucks!
Multi-Node Bundles: Custom configurations for multi-user music, stage performance, or lab research
Invoicing & Shipping: Invoiced through Square (Credit Card, Apple Pay, Google Pay). Built to order in Philomath, Oregon and shipped via PirateShip with tracking (typical turnaround 1 to 2 weeks).
Secure Square Invoicing • Shipped via PirateShip with tracking • USB-C cable included
GeLu Bracers (Research Grade)
Starting at $110.00 (Single) / $200.00 (Custom-Tailored Bilateral Pair)
The GeLu (GestoLumina) Bracers are a wearable haptic interface born out of research dedicated to the Deaf and Hard-of-Hearing community. This is a refined version of the hardware used in my research into universal music design and environmental awareness.
These bracers have been tuned to such high fidelity that they allow the wearer to distinguish between different musical instruments through tactile feedback. It's not just a gadget; it's a sensory expansion tool.
Because capturing tactile vibrations on video is challenging, the bracer incorporates precision LED illumination that matches the exact vibration harmonics in real time. This breakthrough led directly to my first published research paper!
Custom-Tailored Fit: While originally modeled around my own wrist, each commission is custom-fitted. Simply send your wrist and forearm circumference measurements, and I will parametrically adjust the 3D-printed enclosure curvature and strap anchors specifically for your body.
Wearable Interface: Custom forearm bracer with tactile haptics and illumination
Custom Single GeLu Bracer: $110.00 (Handcrafted research-grade unit, tailored to your wrist measurements, USB-C rechargeable)
Bilateral Performance Pair: $200.00 (Set of 2 for left & right wrists with stereo frequency mapping and custom-tailored enclosures)
Custom Research Tuning: Inquire for institutional lab or performance stage integration
Cables & Invoicing: USB-C charging cable always included. Invoiced via Square (Credit Card, Apple Pay, Google Pay). Shipped via PirateShip with tracking (typical custom-tailored build turnaround 1 to 2 weeks).
Secure Square Invoicing • Shipped via PirateShip with tracking • USB-C cable included
"I Love You" ASL Hand
Price: $20.00
A solid 3D-printed ambient sculpture with no moving parts; just warm, clean light radiating gently from within. It forms the iconic "I Love You" (ILY) sign in American Sign Language. As a Deaf engineer and maker, this piece is deeply personal to me: a celebration of Deaf culture, visual communication, and the expressive beauty of sign language crafted right in my studio.
Programmed with a gentle, slow-shifting color cycle, each solid hand provides a soothing ambient glow that transitions through a curated spectrum. A beautiful desktop companion for makers, Deaf and hard-of-hearing community members, ASL learners, and anyone who appreciates the power of visual language.