Design is not just what it looks like and feels like. Design is how it works.
I am less interested in the various ways you can orient typography & layout, and more interested in navigation hierarchies (or lack thereof), gestures, transitions, and UI view architectures.
Many of these may not be as flashy as you might expect, there aren't any floating cards, grids, or design systems.
My focus with UI engineering is more about the code that drives how you interface with something. With transitions, animations, gestures, and flow creating a cohesive experience that feels natural for the user.
The code driving these prototypes is far more important than what you might see, in the same way the iPhone X gesture system might seem like a simple drag up, but involves more than just a gesture
IMG_0897-ezgif.com-gif-to-mp4-converter.mp4
Presents a fluid, native, auxiliary view attached to a ContextMenu preview. I built this out of frustration mainly, because I could not figure out why no application existed that utilized a native Swift context menu while presenting something like the iMessage tapback view. My approach uses the actual native CxtMenu UI component, spring, friction and all, while hooking into the layered gesture control to continue selecting a button in the Auxiliary View without having to lift a finger. Tap, Hold, Drag while retaining the feel of native fluidity.
DominicGo has a really great open source package that allows you to hook into the UIContextMenu presenter delegate and attach a view to a leading or trailing edge. I tweaked it a bit to allow more customization with margin controls from the edges of the screen.
Screen_Recording_2025-10-03_at_12.10.38.AM.mp4
Internally known as "LemonadeView", this was Apple’s first attempt at removing the
idea of traditional tabs. Built using UIKit and SwiftUI, it relies on nested
ScrollViews, something Apple’s HIG usually discourages.
- Allow smooth scrolling into a nested ScrollView from an outer ScrollView while
retaining inertia and gesture recognition. - Allow users to abort or scroll out of the inner ScrollView without jank.
- Coordinate locking and unlocking scroll offset's based on a single gesture.
- & Many other edge cases.
This was probably the most difficult thing to build and at the same time the most
compelling. By crafting a clever way for scrolling to go infinitely in either
direction while still having designated break points via bounce, you get the "feel"
of segmentation within an app, without the abrupt context switching of traditional
tabs.
I also see a place for this type of interface as the perfect foundation for a more
idealistic chat interface. Sidebar's feel archaic and antithetical to the primary
goal of a chatbot, which is to make the user feel as if they are having a long
standing conversation with something intelligent.
To quote someone from OpenAI
Most people do not even know the sidebar exists.
When you have a conversation with a person, you are never "opening a new tab" when
you want to shift the topic to something else. Ideas naturally ebb and flow as the
conversation evolves. Context switching is natural when going human <->
human, and should feel as such going human <-> machine. You can imagine an
effortless gesture dragging down to reveal past conversations rendered as custom
views.
The challenge of knowing when to "refresh" context should be handled by the model
itself in most cases.
screen_recording_2025-10-03_at_12.25.52.am.1080p.mp4
Rethinks the side-to-side navigation of apps like Twitter or Threads. Tapping a
thread animates it vertically into view, sliding up or down like a drawer, and
threads can be stacked and restored interactively.
- SwiftUI handles state and transitions using MatchedGeometryEffect and
ObservableObject. - UIKit manages heavy view rendering for better performance.
Screen_Recording_2025-10-03_at_12.32.47.AM.mp4
An interaction model that lets users "leave their mark" on a track or album.
Each swipe direction produces a different keyframe animation synced with Metal
shaders.
- Swipe left: "Heartbreak" animation with ripple shader (via Janum Trivedi’s
Wave package). - Swipe right: "Heartbeat" animation with dynamic keyframes.
Includes a retargeting method and custom Metal ripple effect inspired by WWDC’s
Metal Shader demo.
Screen_Recording_2025-10-03_at_12.42.07.AM.mp4
A Metal-driven holographic sticker effect. Uses the Vision API to:
- Trace image contours and draw white strokes around them.
- Extract contour data directly for dynamic edge highlighting.
Explores how Metal shaders can drive realistic, depth-rich animations instead of
simple gradient tricks.
Screen_Recording_2025-10-03_at_12.50.33.AM.mp4
A liquid, morphing interface inspired by the Dynamic Island, created before Apple’s
own "Liquid Glass". Built entirely in SwiftUI using the Canvas API (not Metal).
Acts as a tab bar replacement, with fluid, glass-like animations resembling
Apple’s later LiquidGlass in SwiftUI.
Screen_Recording_2025-10-03_at_12.53.04.AM.mp4
A card deck paging view with subtle tilt and rotation effects. Designed to fix
clipping artifacts common in stacked card interfaces.
Smooth transitions and dynamic depth achieved through custom geometry and
animation timing.
Screen.Recording.2026-01-09.at.11.37.02.PM.mov
Attempt at recreating MetroUI's beautiful Turnstile animation/transition in SwiftUI/UIKit.
The key trick to the effect is how Microsoft designers approached making the cells appear as if they were flipping inside singular 3D space, without actually needing to render a 3D view. Each cell's leading-center edge is anchored to the leading edge of the container screen, not anchored to itself. Without this, you get an effect where the cells appear to flip out towards the screen in a very jarring POV perspective, rather than appearing as if they are flipping within a singular space.
There is also a variability to the stagger as each cell flips out of view one by one, to give some naturalism to the effect. I tried my best to get it to feel as 1:1 as possible but I am still mising finer grained values. I do believe this interface was far ahead of it's time, especially in terms of simplicity.
Ref: https://matthiasshapiro.com/basic-windows-phone-7-motion-design/
attaches an AuxiliaryView to a UIContextMenu, the main code responsible for
attaching the view is thanks to DominicGo - surprisingly it doesn't use any
private api's
the slightly annoying part was hooking into the native context menu gesture to
allow a user to be able to simply hold and drag without lifting a finger to select
something. keeps the natural friction spring physics intact without needing to
manually add another gesture on top
Screen_Recording_2025-10-03_at_12.37.48.AM.mp4
Recreates the iridescent shimmer seen in bird feathers, a port of KhronosGroup’s
physical model. Implemented in Metal and rendered with SceneKit on a 3D ellipsoid.
Originally designed as a profile card (inspired by Artifact’s medallion UI).
Supports engraving of text or shapes via CoreImage filters and Objective-C headers.
Screen_Recording_2025-10-03_at_12.44.33.AM.mp4
Swift port of the Python circlify library. Generates Apollonian circle packings
algorithmically for layout or data visualization.
Random sketches...