iOS Apps

Pixellate Camera Screenshot

Pixellate Camera

Camera app that recreates the Game Boy Camera aesthetic from 1998, with full metadata and GPS support.

Mar. 2025 - present
Point To: Custom Compass Screenshot

Point To: Custom Compass

A compass that points wherever you want. Syncs custom locations between iPhone and Apple Watch for standalone use. Started as a personal tool, ended up adopted by the Northeast Rail Feed Association for aligning radio antennas.

Feb. 2024 - present
Recall: Moving Gallery Screenshot

Recall: Moving Gallery

Shows random Live Photos and videos from your library, auto-cropped to subjects. Built to surface unexpected memories you forgot you had.

Jun. 2025 - Sep. 2025
Booklyt: RSS Reader Screenshot

Booklyt: RSS Reader

WIP

Simple RSS reader with all on-device processing. No accounts, no sync servers. Just your feeds across the Apple ecosystem.

Jun. 2025 - present

Open Source

Godot Engine

Godot Engine ⧉ is a free and open-source game engine used to create 2D and 3D games across all major platforms. It has received donations from Microsoft, Meta Reality Labs, Epic Games, Mozilla, and JetBrains. Parts of its code have been used by Tesla, Sega, and Electronic Arts.

8-Year-Old Daylight Savings Bug

Fixed OS.​get_time_zone_info() returning incorrect UTC offset on Windows during DST. The implementation didn't account for DaylightBias—e.g., Mountain Daylight Time returned -420 minutes (UTC-7) instead of -360 (UTC-6). Bug existed since the initial Win32 implementation in 2014. Required understanding the Windows timezone API's distinction between standard and daylight bias values, fixed by applying the correct values.


Before my change, "Is it currently daylight savings?" was hard coded to "No" on Windows.

iOS/Android App Lifecycle Notifications

Implemented NOTIFICATION_​APPLICATION_​PAUSED and NOTIFICATION_​APPLICATION_​RESUMED on iOS by wiring Godot's MainLoop to application​Did​Enter​Background / application​Will​Enter​Foreground UIKit delegates. Also exposed NOTIFICATION_​APPLICATION_​FOCUS_​IN/OUT on both platforms for consistency. Enables reliable autosave within iOS's 5-second background execution window.

iOS Gesture Bar Settings

Added project settings for iOS status bar visibility (prefers​StatusBar​Hidden), home indicator hiding, and edge gesture deferral (preferred​Screen​Edges​Deferring​System​Gestures). The "double-swipe" protection used by commercial games. Previously required engine recompilation to change. Implemented by exposing UI​View​Controller preference overrides through Godot's iOS display layer.

iOS "ProMotion" (120Hz) Display Support

Enabled ProMotion refresh rates above 60Hz on iOS by removing the hardcoded 60fps CADisplayLink cap in godot_view.mm, and setting CA​Disable​Minimum​Frame​Duration​On​Phone in the export plist. Apple requires both the plist key and explicit frame duration configuration. Affects iPad Pro (2018+), iPhone 13 Pro (and newer), iPhone 17 (and newer).

Bug Fixes

  • Fixed Display​Server.​screen_​get_​refresh_​rate() returning 120Hz on ProMotion devices even when Low Power Mode throttles to 60Hz. (#85026)
  • Fixed 2-year-old bug where MovieWriter recorded incorrect resolution/aspect ratio when using Window Size Override with Viewport stretch mode. Output was being captured from the wrong render target dimensions. (#104334)

Godot 3.x Legacy Support

Backported iOS interface controls, ProMotion support, and mobile lifecycle notifications from 4.x to 3.x, enabling legacy projects to use modern features without migrating. Required adapting implementations to 3.x's different display server architecture.

Games

Northward Game Demo Screenshot

Northward Demo

A demo made as an independent study in game design. Playable in web browser, see details on the itch.io page.

Oct. 2021 - May 2022

Experiments

Live Activity for Dominos Screenshot

Live Activity for Dominos Pizza

An experiment in generating an iOS live activity for Dominos Pizza, which works on actual orders when a phone number is entered.

Feb. 2024
Base4096 Image

Base4096

An experiment in data compression for when character count matters more than total bytes. Useful for sending small pieces of data on character-capped platforms such as X and Discord.

Feb. 2025
PhotoStat Image

PhotoStat

A small project that can show stats of how many photos the user has taken by months or years, accessing iCloud Photos on macOS.

Aug. 2025
Discord Bot

Discord Apple Stock Checker

A Discord chat-bot that monitored in-store availability of the Apple Studio Display and notified users when it came in stock.

Spring/Summer 2022
← Back to home