Projects

RipHangar

RipHangar started from a simple frustration: great GoPro moments too often lived one watch on the card and then disappeared into the pile. RipHangar is a desktop media app for action cameras and the workflows around them: import straight from the camera over USB without pulling the SD, keep photos and video in one library, and cut long files down to the good parts without touching originals. Non-destructive slow motion and rotation, tags and filenames that still make sense in Finder or on a drive, and flexible browse, filter, and share to local or removable storage. For hangars and always-on displays, Endless Clips turns your library into a recap reel that keeps updating as new imports land, and you can optionally blend in external HLS streams when you need more than file-based sources.

https://nikko.mamallo.com/riphangar

Grid It

Grid It is a video review tool for formation skydiving. Play a clip, drop an FAI grid on top, and quickly check if a frame might be griddable.

It is not judging software. Exports include the frame with timecode, file name, and grid info burned in so it can be reviewed and verified later.

You can zoom in with a loupe, adjust grid color for contrast, set markers and in and out points, and save your setup so you can come back and keep working without starting over.

https://nikko.mamallo.com/grid-it

Sky God

Sky God is a live, room based game night app built around skydiving culture. A host runs the show from one machine while players join on their phones, answer prompts, vote, and play short skill rounds together. The mix includes trivia, party style writing and voting, and hands on mini games tied to real world ideas like exit spacing, loading order, wing loading, and landing accuracy.

On the software side it pairs a small Node server with Socket.io so timing, scores, and reveal moments stay in sync for everyone. Game state and content live in a local SQLite database, which keeps sessions self contained and easy to ship with a desktop build. The stack also uses Express for static assets and light APIs, sessions for host flows, and optional pieces like map tiles and uploads where the UI needs imagery beyond plain text.

From a design angle the product splits cleanly between a host surface (bigger type, countdowns, audio stingers, “show” pacing) and jumper phones (quick inputs, clear states, low friction reconnection). Map based rounds and short visualizations add variety without turning every question into a long form read. The goal is a social game that feels like a polished TV show you control, tuned for a niche audience that still expects tight pacing and readable UI under real party conditions.

On Radio

On Radio is an iOS app for training skydiving instructors and instructor candidates in radio guidance before working with real students. It helps build skill in judging distance, location, and timing turns during canopy approaches.

It is built in Swift using ARKit and SceneKit to overlay a canopy and ground cues on the live camera feed. Core Location and compass data can align a virtual drop zone with the user’s real orientation.

Wind affects canopy drift and approach behavior in a controlled way to simulate decision making. Inputs like turns and flare include short delays so control feels human rather than perfectly mechanical. Each landing is scored using miss distance, turn accuracy, and flare timing, with results saved to a local leaderboard.

The app supports multiple scenarios with real time feedback, making it useful for instructor training and evaluation. It is designed to build judgment and awareness in radio guidance without any real world risk.

UPT Vector Website

I built a custom WordPress plugin for UPT Vector that runs a full training and certification workflow in one place. It connects candidates and staff, manages courses, handles documents, runs online tests, and produces the final paperwork. The goal is simple: replace scattered spreadsheets and email with a single system that tracks each step.

On the backend, it uses custom PHP modules, secure AJAX endpoints, and strict role checks. The UI blends admin screens with front end JavaScript for tools like course views, test flows, and dashboards.

It covers the full lifecycle. Examiners can create courses, manage candidates, update evaluation documents, and track progress. Candidates can join courses, upload files, take tests, and see results. Staff handle final approval, ID assignment, and payment tracking. The system also supports ratings, renewals, email, and PDF generation.

The focus is clarity and control. Workflows stay readable even with a lot of data, access is locked to the right roles, and the system can adapt as rules and forms change.

SkyLight

Skylight is an end to end system for coordinated lighting and effects in the air and on the ground. It combines custom hardware, embedded firmware, and a desktop animation tool into one pipeline: design a show once, export it, and play it back reliably across many devices without needing the editor during execution.

The system includes custom PCBs for airborne units, an optional ground base station, and a multi channel pyrotechnic breakout. Air units support high density RGB LEDs and discrete pyro outputs, designed to scale to large fleets of individually addressable nodes. Pyro control is fully isolated from logic power with hardware interlocks, a master enable, and a dead man style safety chain so firing is only possible in explicitly safe and armed states.

Firmware runs bare metal on SAMD21 class microcontrollers and is built for precise timing rather than general purpose computing. Units stay synchronized over a deterministic LoRa mesh using scheduled communication and versioned protocols, so mixed firmware fleets degrade safely instead of drifting out of sync. Shows are stored on SD cards in a versioned binary format, with playback focused on fast streaming of precomputed cues rather than on device computation.

The desktop application is a 3D show editor with a timeline based workflow. It supports keyframed motion, layered cue logic, music sync, and predictable preview behavior that matches final export. The export process resolves timing and spatial logic up front so embedded devices can run high frame rate playback with minimal processing.

Across the system, safety, timing, and synchronization are the core design constraints. Hardware defines what can happen, the mesh defines when it happens, and the editor defines how it is authored.

Scroll to Top