sekaikx

otto

I build the software I wish existed. Right now that’s Lifeline, which works out how to get supplies to places the roads no longer reach: by truck, by drone or by parachute.

See Lifeline GitHub

The hills around Gorkha, Nepal, where Lifeline’s worked example runs. Relief and streams from AWS Terrain Tiles, roads and villages from OpenStreetMap.

Lifeline

A desktop planner for disaster response. Pick a place and it loads the real terrain, roads and wind forecast, compares truck, drone and airdrop for every request, and writes a schedule a planner can defend.

Rust engine, Tauri desktop app and a command line. Free for Windows, macOS and Linux, MIT licence, no account or telemetry.

Download Lifeline Read the source

Lifeline planning seven deliveries around Gorkha: truck routes, a drone flight and an airdrop on real terrain, with the plan summary on the right.
Seven deliveries around Gorkha. The panel on the right leads with how much of the demand arrives, then whether the critical requests make their deadlines.

Truck, drone or airdrop, compared for every request

Every request gets a truck, a drone and an airdrop option, each with its time, number of trips, chance of arriving intact and cost. The scheduler serves requests by priority and deadline, and takes the cheapest option that is safe enough and on time. If none is, it takes the earliest, then the safest. It’s a rule a person can follow and argue with, not a black box.

Danger is part of the terrain model. Mark a checkpoint or hostile position and Lifeline works out what it can see from the ground, at drone height and at drop height, and routes around it.

How each delivery mode is planned
PathLimited by
TruckOpenStreetMap roads, off-road legs where no road reachesRoad class, gradient, closed roads
DroneStraight or detoured flight over the terrainBattery, wind, radio line of sight
AirdropAircraft track to a computed release pointWind, release timing, drop zone size

Finding floods in satellite images

Lifeline reads a month of Sentinel-2 images, decides which pixels are water and subtracts the water that is always there. What’s left is new water, and trucks can’t cross it.

A small U-Net I trained on hand-labelled flood scenes runs on the device through ONNX. On scenes it never saw, it beats the standard water index, and it holds up in a region it wasn’t trained on.

Water IoU on held-out, hand-labelled scenes. Higher is better.
DetectorTest setBolivia, unseen
Water index0.7280.611
Water index, tuned0.7870.703
U-Net0.8580.811

The same engine on the command line

The default Gorkha scenario has seven requests, three observed areas over the paved roads, a washed-out crossing and the live wind forecast. Planning it takes well under a second.

$ lifeline plan -s gorkha.json

id   request                                kg priority  mode      trips  arrives    due P(arrive)
R1   Field clinic, Pandrung                350 critical  Truck         1     2:07   3:00     99.3%
R2   Water point, Kyamuntar               6000 high      Truck         2     2:31  10:00     91.9%
R3   Shelter site, Parajuli Gaun          2500 routine   Truck         1     7:10  24:00     99.3%
R4   Blood and vaccines, Birenchok          12 critical  Drone         1     0:09   1:30     99.8%
R5   School kitchen, Srinathkot            900 routine   Truck         1     6:11  18:00     99.3%
R6   Relay post                             25 high      Drone         2     0:04   4:00    100.0%
R7   Mountain village                     1500 critical  Aircraft      1     0:44   1:30     99.2%

expected delivered 10764 of 11287 kg (10764 kg on time), critical on time 3/3, last arrival 7:10, cost 9520

Under it: drone power from momentum theory, parachute descent integrated with RK4 through the standard atmosphere, risk-weighted routing over the road graph, and 76 tests that check the physics against exact solutions.

Side projects

What I make between Lifeline releases. Some are finished, most are how I learn something new.

Games

Small games in Godot, from quiet places to wander around in to physics toys and a strategy prototype.

Godot, GDScript

Software

Desktop and command-line tools I wanted for myself. If I do a chore twice, I usually end up writing the program that does it.

Rust, TypeScript, Tauri

Websites

Sites for my own projects and for people I know. Mostly hand-written HTML and CSS that loads fast.

HTML, CSS, JavaScript, Vercel

Reverse engineering

Taking apps, file formats and web APIs apart to see how they really work, then rebuilding the parts I need.

Whatever the target was built with

Get in touch

If you work in disaster response or logistics and want to try Lifeline on a real area, or you just want to build something together, write to me.

sekaikx@gmail.com

github.com/sekaikx