
Flight Planning
A planner for three aircraft, from a December 2019 take-home task: today's plans beside one map, every crossing shown, only the close ones in time a conflict.
- Year
- 2019
- Track
- design
- Category
- case-study
Tools
- Adobe XD
- Adobe InDesign
- Claude Design
Three aircraft, one plan each, one day at a time. This is a planner for the fleet manager who supervises them: today's three plans in a list beside one map, every place two routes cross marked on it, and only a crossing the two aircraft reach within 15 min of each other called a conflict. A conflict is counted in the top bar, named in a banner and ringed on the map, and nothing stops the screen to say so. It began as a take-home design task for a flight-planning app in December 2019. Nothing shipped. The screens on this page are the planner as a working desktop and tablet prototype, made in a Claude Design canvas. I directed it and Claude built it.
Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
See it running, at the foot of this page, opens the planner at its own size in a new tab.
The brief
The brief asked for "a simple application for planning flight paths" for in-office, multi-tasking fleet managers. The user has three aircraft and cannot add or remove one, and each aircraft flies one plan a day. Then came seven things the app had to do, and one line I kept in front of me: "Don't design more than you feel is needed to appropriately convey your ideas." The seven are below, each linking to the part of the planner that answers it.
Three aircraft, one flight plan each per day. None can be added or removed. The app had to:
Show each flight on a map, with its distance in km and where it starts and ends.
Crossing or conflictList every flight for one aircraft in a table: date, distance, start and destination.
Past and futureList all three aircraft's flights for one day in a table.
Crossing or conflictLink every row in a table to that flight on the map.
Past and futureShow past flights and future ones.
Past and futureLet future flights be changed.
Editing a routeSay when two aircraft's paths cross on the same day, on the map, in the tables, or somewhere more global.
Crossing or conflict
Reading it
I read the brief into one priority before I drew anything. My note from December 2019, as I wrote it: "Briefing dictates that the user of the app is going to get three flight plans and there will be one flight path for each aircraft. I have interpreted this as everyday user opens up the app s/he will supervise three flights for the day. The app is going to allow managing future and past plans, yet I thought it might be separated from home screen since supervising three flights each day is no. one priority."
The sheet is the brief redrawn in pen, one doodle per requirement: only three flights, one plan a day, a table and a map with a question mark between them, three paths crossing under "Collision Warning?" in red, a car for past and future, a pencil for editing. It is here as I drew it.

Today first
The architecture follows from the note. Two roots, in my 2019 definitions: "Flight Plans: The app is going to welcome the user with this screen, that will consist of three plans both in tabular and map views integrated to the same screen." And "Schedule: This will be accessed with a button in the first screen to access all flight plans in the future and past and will allow metadata search." In the planner, Flight Plans is the Day tab and Schedule is the tab beside it.

Flight Plans
The home. Today's three plans, in a table and on a map, on one screen.
Table Map
Plan 1 Plan 2 Plan 3
Schedule
Behind a button on the home. Every plan, future and past, with a search.
Future Flights Past Flights Search
Wireframes
Pen again, in four sets, each strip under the note I wrote for it. The first set puts three colour-coded cards over a map that grows and shrinks. In the planner the three plans are a list beside a map that always fills the rest, so there is one reading direction and the map never competes with the cards for room. The second set asks for two things at once: that the system restrict the user, and that it keep after them until the issue is resolved. The planner keeps the second and not the first. A fleet manager is doing several things at once, and a signal that stays put is worth more than a screen that stops. The last two sets, editing inside the planning view and a table for the past and the future, are what the planner does further down.

The Flight Plan UI. This UI system shows both tabular information in color coded cards and corresponding flight paths on the map. Map can be expanded or minimized to reveal flight destinations of each aircraft. 
The Collision Issue. When a collision issue arises, system restricts user actions and persistently try to get user's attention to make the issue resolved as soon as possible. 
Editing Flight Paths. System allows path editing in the flight plan UI in any case user is in. Map can be expanded, minimized, all flights selected, it works within the map structure, the change actions can be undone and has to be confirmed upon exit. 
Tabular UI. In order to scan flights from the future or past, user can opt in to all tabular system that is connected to the planning UI. In addition, system provides metadata search.
Crossing or conflict
The brief asked for feedback whenever two paths intersect. Geometry alone is not the risk: two routes can cross hours apart. Time is what makes a crossing dangerous, so the planner shows every crossing and calls only the close ones a conflict. On Wednesday 14 October, the prototype's today, the three routes cross three times. Atlas and Borealis near Brussels, four hours apart. Borealis and Cirrus near Frankfurt, more than three hours apart. Atlas and Cirrus near Paris, 7 min apart. One conflict. The routes are drawn as gentle curves between airports and the time at a crossing is taken along the leg, so this is a planning picture and not flight dynamics.
Near Brussels
Atlas 07:55, Borealis 12:03
4 h 08 min apart, a crossing.
Near Paris
Atlas 08:13, Cirrus 08:20
7 min apart, a conflict.
Near Frankfurt
Borealis 12:29, Cirrus 08:50
3 h 39 min apart, a crossing.
A conflict is said in four places and blocks none of them: a count in the top bar on every screen, a banner for the day, a chip on each affected row, and a ring on the map with the gap as its label. Review opens both aircraft on one time line and offers the smallest changes that clear it, a delay for one or an earlier departure for the other, each previewed on hover before Apply and each with Undo after. Or edit the route.
A conflict




Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
The brief allowed something more global than the map and the tables. The count in the top bar is that: it adds up conflicts from today onward, lists them, and each row jumps to its day. The calendar marks the same days with a dot.
Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
Editing a route
Editing happens beside the map, in a panel. The origin is locked, because an aircraft starts the day where it ended the one before. Stops can be changed, added or removed, and the departure stepped by minutes. Every airport in the search is previewed on the map before it is chosen. Checks run as the route changes: which crossings it makes, which conflict it resolves or causes, and whether it still ends where tomorrow's plan starts, since a route that strands the aircraft is a planning error too. Review puts planned against edited in one table. Save, and a toast offers Undo.
Edit, review, save




Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
Past and future
Days before today have been flown and are read-only, each plan marked Flown. The arrows and the calendar move between days. The Schedule is every plan for the fleet in one table, grouped by day, with a range of upcoming, past or all, a filter to one aircraft, which is the brief's table per plane, and a search across airport, city, aircraft and date. Every row opens its day on the map with the plan in focus.
Flown and planned




Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
The walkthrough is silent: forty-nine seconds from today's conflict to a saved route, Friday's conflict and the schedule.
Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
On a tablet
The planner is laid out for a desk first. The same parts sit at touch density on a tablet: controls grow from 36 px to 44 px, and text fields to 16 px so Safari does not zoom in on them. The tablet prototype opens in its own tab too.
Tablet




Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
Clearway
The prototype runs on a small token layer made for this project, Clearway. It is not any company's design system. Blue-black neutrals, Geist and Geist Mono, a colour for each aircraft and one alarm colour, so red means one thing. Dark only. The ratios below are worked out from the hex values, not typed in, and every pair clears its floor.
- surface.canvas#090C11The ground of the whole app, and the sea on the map.
- surface.panel#0E1217The plan list and the panels beside the map.
- map.land#151B23Land on the map, under the routes.
- alert.tint#2A1D21The conflict banner and alert rows.
- text.primary#E4E8EDNames, times and headings. Also the focus ring.15.27:1 on surface.panel, AA14.07:1 on map.land, AA for a mark
- text.secondary#A3ACB6Supporting lines, and distances on the map.8.17:1 on surface.panel, AA
- text.tertiary#848D98The quietest level of text.5.59:1 on surface.panel, AA
- line.strong#616A75The outline of a text field.3.42:1 on surface.panel, AA for a mark
- aircraft.atlas#3899E2Atlas's route, badge and time bar.5.63:1 on map.land, AA for a mark
- aircraft.borealis#B199F4Borealis's route, badge and time bar.7.20:1 on map.land, AA for a mark
- aircraft.cirrus#5BDFB7Cirrus's route, badge and time bar.10.46:1 on map.land, AA for a mark
- alert.base#F66D67The conflict ring on the map, and the tick on a time bar.6.02:1 on map.land, AA for a mark
- alert.text#FB9890Words on the conflict banner and alert rows.7.71:1 on alert.tint, AA
Prototype.
The components, from the same board: a plan row closed and open, the day banner, the crossing card, a suggested fix, the checks, the airport search, the chips, the issues pill and the toast.










Prototype. The fleet, its schedule and its times are invented. Only the airports are real.
More case studies

Solo
A social app for guitar tones, shipped on iOS and Android. Every pedal and amp is drawn, and the studio knob is rebuilt live on this page.
case study · 2019 · read it
Course Companion
I pitched a course page nobody asked for. It became a funded mission and went live as an A/B test. Sixteen states of what a page may say, flip them here.
case study · 2026 · read it
Soothe
A native iOS proof of concept that pats you until your stop is near, then wakes you kindly. A 2026 rebuild of my 2020 case study. Every ride is simulated.
case study · 2026 · wip · read it


