• software engineering
  • hardware

SkateController

I and my teammate, Royal, built the Skate Controller as our hackathon project for GSU's Hacklanta, 2026.

What it does

The Skate controller lets you use skateboard movements as an input device to control your computer . The most obvious use case of this is for video games, our game of choice used in all our demos is a fan-made mod of EA's Skate. (2025), running on PC.

Our invention let's users practice their balance and landings on a real skateboard while doing it in a fun, interactive way.

Fig. 1 — David on the SkateController

Inspiration

Skateboarding: the culture of skateboarding, video games, and 3D design in general. We’ve always had an appreciation for skateboarding, and we wanted to make this project a love letter to all of those things. I personally got into skateboarding from watching skate videos on youtube, and we felt this idea was perfect for the creative track because it was such an innovative concept. We’re happy with how it turned out.

How we built it

We used a Raspberry Pi, a nano 1080p live webcam, and an MPU-6050 mounted on a skateboard.

Fig. 2 — Top view of SkateController

SkateController uses Python for hardware access and game input, Svelte and TypeScript for the live interface, and Tauri’s Rust shell to package everything as a desktop app. Python gave us straightforward access to sensor, networking, and controller libraries, while Svelte kept the UI responsive. On the skateboard, a Raspberry Pi reads an MPU-6050 accelerometer and gyroscope over I²C and streams the readings to the laptop as JSON over UDP through Wi-Fi. The laptop processes those readings and sends live telemetry to the UI over WebSockets.

Fig. 3 — SkateController close-up

Left and right lean

We tested the mounted sensor to identify which axis tracked sideways lean. Its accelerometer’s Y axis gave us a consistent signal: negative readings relative to neutral indicated left lean, and positive readings indicated right lean. We calibrated the rider’s resting position, added a dead zone to ignore small balance adjustments, and used separate thresholds to activate each direction. The laptop holds the corresponding steering key until the board returns to center or changes direction.

Fig. 4 — Testing accelerometer values on SkateController during development

Ollie detection

We recorded examples of real pops alongside ordinary movements and identified a distinctive back-foot rotation followed by a rebound in the gyroscope readings. A timed detector with a cooldown recognizes that sequence and triggers Space, which our virtual Xbox controller bridge converts into the right-stick motion the game expects.

Fig. 5 — The pattern across 15 pops on the skateboard
Fig. 6 — SkateController UI for key mapping and live 3D mirroring

Challenges we ran into

We had sensitivity issues with the accelerometer, such as it being too responsive, and it was very hard to actually categorize motion. The first time we read the values from the accelerometer, we weren’t even sure which axis was which; we had to plot graphs to visualize them and do a lot of playing around with the calibration before we got it right.

Accomplishments that we’re proud of

We’re proud of the entire project, honestly. We’re proud that we made something we would actually use in real life, that we were able to finish it, that it came out exactly how we wanted, and that we did it in such a short amount of time

Fig. 7 — Royal on the SkateController

What we learned

We learned a lot about hardware and how to use it. Even in the process of generating the idea, we learned that sometimes the best ideas come when they need to come. Sometimes the right answer is hidden in plain sight.

What’s next for SkateController

Making more use of the live camera system, since seeing your POV was such a cool part of the project. Because it’s a prototype and we didn’t have much time, we’d also like to build a more secure harness for all the tech so it doesn’t break easily. We’d also like to create 3D representations of the scenes the webcam captures, so people can go back and relive their sessions. Ultimately, we would love to see this turned into an actual product that’s accessible to people.

Fig. 8 — Close-up of DeckCam
Fig. 9 — Deck cam of SkateController

All the source code is on GitHub.

Our Devpost submission is here: https://devpost.com/software/skatecontroller

  • software engineering
  • 3d
  • design + art direction

ROV

ROV is a creative studio based in Atlanta.

Fig. 1 — Engraved ring 3D animation for ROV Studios’ website, 2025

ROV needed something to introduce them to the world. My task was clear: 1. find out what that was, and 2. make it.

To find that “thing”, I had to do some brainstorming. What do they represent as a creative agency? What feeling do they want potential clients to have, discovering them for the first time?

After I sort of had an impression of their vibe – the things that first pop up when I close my eyes and think of them – I knew what I wanted to do to inch them closer to the “goal”. A storyboard was made to represent what I had in mind.

Fig. 2 — The first storyboard I made for ROV

Brainstorming over, time for the hard part: the 3D stuff.

The majority of 3D visual projects can be broken down into 4 main parts: 1. Modelling, 2. Texturing, 3. Animation, 4. Rendering + Post Processing.

Each of these stages has certain quirks that make it a pain in the ass in its own way.

Fig. 3 — Constructing the SpaceGlove model from 2D patterns in CLO3D
Fig. 4 — AstroGlove 3D model in Blender, for ROV
Fig. 5 — Color grading the 3D render for ROV

When that was done, I also took the final and put it into their home page. The scroll trigger was really fulfilling, and I think it came out cool. Comparing the final storyboard to the final product is always really satisfying.

Fig. 6 — Final ROV trailer, made under my direction
  • research + development
  • software engineering
  • 3d

Geometry Research - MIT

The Summer Geometry Initiative: a six-week research program in geometry processing, hosted by MIT

Fig. 1 — Application of the inverse geometric locomotion framework, courtesy of the MiniRo Lab at the University of Notre Dame

In 2025 I was an SGI Fellow at the Summer Geometry Initiative (SGI), a six-week summer research program that introduces undergraduate and graduate students to geometry processing. It’s the field behind a lot of the 3D tools used in computer vision, additive manufacturing and scientific computing, and its algorithms pull ideas from differential geometry, topology, physical simulation, statistics and optimization.

The first week is hands-on tutorials on the theory and practice of geometry processing, with no background expected. For the rest of the program, you work in small teams on research projects led by faculty and research scientists in the field, with a new project every week or two, while attending talks from visiting researchers.

Inverse geometric locomotion

The project I’ve highlighted here is one of my favourites from the internship. It was led by Quentin Becker and Oliver Gross and built on their work on inverse geometric locomotion. The question: how does a snake-like robot move using nothing but changes in its own shape, with no wheels and no legs, and what happens when some of its joints break?

“Inverse” means working backwards from a goal, like reaching a point, turning, or getting around an obstacle, to find the sequence of shapes that gets the robot there. We treated it as an optimization over shape changes alone. In Python, we defined the joint angles, integrated them forward into a trajectory, and used gradient descent to nudge the angles toward the target. Obstacles were described as implicit functions, positive outside and negative inside, so the planner could keep the robot in the safe region.

Fig. 2 — Snake robot simulation, visualized in 3D

Disabling joints made the gait less efficient, and some joints mattered a lot more than others, but re-running the optimization with those joints locked let the robot keep moving. In simulation, it re-planned its slither around obstacles of different shapes. The shape sequences were then put to work on a real snake robot from the MiniRo Lab at the University of Notre Dame, the one at the top of this page.

You can read our full write-up on the SGI blog.

I’m really grateful to Justin Solomon for giving me the chance.

  • software engineering

CresCuts

I helped build crescuts.com, the booking and automation software for service-based businesses.

Fig. 1 — Testing our sign-up logic on the crescuts.com homepage

Working on Cres taught me basically everything I know about building useful software: problem identification, creating MVPs, product design, frontend and backend development, system design and cloud engineering. I was involved in every step of the development process, and working on it daily exposed me to a lot of languages and technologies, many of which have become favourites in my stack: SvelteKit, Spring, Gradle, Docker, AWS (VPC, EC2, ECS, S3) and Cursor, the AI code editor.

The last project I worked on before I left automated SMS and email outreach to potential leads. I moved an existing system we had in n8n into our codebase, and wrote web scrapers to find the names of potential leads behind the business websites we pulled from the Google Places API.

Taking it a step further, I combined structured output from an LLM with tool calls to build an agent that gathered as much publicly available information (legally) as it could about each lead in our database, so we could send each one a personalized outreach message.

  • design + art direction

AxDFlicks

AxDFlicks is a photography collaboration between me and Ade.

Fig. 1 — Little Five Fest, edited magazine-style for AXDFLICKS, 2026

Ade and I were friends before we found out we were both into photography, so instead of competing, we put our skills together. Nobody was really documenting street style in Athens, so we started AxDFlicks on Instagram. What started off as a creative experiment and a side hustle turned into something bigger than we expected.

Over several months we shot mostly around our Athens campus and the Atlanta area: events, portraits and sessions, plus editorial pieces like the ones here.

Fig. 2 — ‘Boring (ASL)’ for AXDFLICKS, 2026

Fits of the Week

Our signature series was “Fits of the Week”. We spotted students around campus with flamboyant styles and showcased their looks on our page, and the very first post hit over 1,300 likes.

Fig. 3 — Photo from our viral "Fits of the Week" series

Within four months of launching, we’d built a following of over 1,000 people, photographed countless events, portraits and sessions, and made a series that really resonated with our campus community. It even got us featured in the local newspaper, The Red & Black.

Fig. 4 — Elisha for Bold Magazine, shot under AXD, 2026

Working on AXD has helped me improve my photography, editing and art direction skills immensely. Photography, at the heart of it, is art.

And if you’re thinking about starting something of your own: you don’t have to be an expert or have everything figured out to start. Just begin, and learn along the way like we did.

  • 3d
  • design + art direction

UWA

Cover art for UWA, a Toronto-based Afrofusion artist.

Fig. 1 — Cover art for UWA’s unreleased track ‘Pronto’

Each cover pulls together design, art direction and 3D to bring the song to life. I try to get the vibe of the track into every one; it’s one of the ways I get to express my creativity.

Fig. 2 — Cover art for UWA’s single ‘Gbon Gbon’, 2025
0% loading content…