We build ARU, a platform for flying drone missions and turning what comes back — video, telemetry, aerial imagery — into maps people can actually work with. Most of that system is now public: the client, the API, the Rust workers that chew through multi-gigabyte rasters, and the infrastructure that runs the whole thing.
An operator plans a mission in the client and watches the telemetry and video arrive. What comes back is large — archives and rasters measured in gigabytes — so the server never processes it inline. It puts a job on the queue, and Rust workers stream the data through decompression, transcoding or inference and write the result to object storage. TiTiler serves the rasters back as tiles, and the map in the browser fills in.
The whole stack runs either from a single Compose file (ARULITHIC) or on EKS (k8s + terraform).
| Aru-Client | The operator's web front end — mission planning, live video and telemetry, then annotation and digitisation of what comes back. | TypeScript |
| Aru-Server | API and real-time backend: auth, mission lifecycle, stream coordination, and the pipeline that turns deliverables into map layers. | TypeScript |
| ai-oxide | Rust workers for archive decompression, GeoTIFF handling, transcoding and ONNX inference. Built to stream, not buffer. | Rust |
| vod-transcode | Drone video in, HLS rendition and thumbnail out. GStreamer under the hood. | Rust |
| ARULITHIC | Docker Compose stack that brings the whole system up at once. | Docker |
| k8s | Kubernetes manifests for AWS EKS, with KEDA scaling workers off queue depth. | YAML |
| terraform | The VPC, the EKS cluster and its add-ons. MPL-2.0, not MIT. | HCL |
| monai_label | Human-in-the-loop tree detection — correct DeepForest's boxes by hand, then fine-tune on your corrections. | Python |
| AI_computer-_vision | Four years of computer-vision experiments on aerial imagery, published for reference. | Python |
| FintechMapApp | A prototype putting loan demand and supply on a map instead of an application form. | TypeScript · Go |
| backend_assignment | Our take-home for back end candidates. Read the task before you apply — the tests define the contract. | TypeScript |
Languages Rust · TypeScript · Python · Go · HCL
Geospatial Cloud-Optimised GeoTIFF · TiTiler · deck.gl · Mapbox GL · DeepForest · ONNX Runtime
Platform Node.js · Express · React · Vite · Expo · FastAPI · MongoDB · Redis · PostgreSQL · RabbitMQ · MinIO and S3 · GStreamer
Infrastructure Docker Compose · Kubernetes · KEDA · AWS EKS · Terraform
Three repositories are easier to pick up than the rest:
- vod-transcode — the smallest self-contained service here. One job, one queue, one output, readable end to end in an afternoon.
- monai_label — a complete tool with a desktop interface, so you can see what a change does.
- ai-oxide — if you write Rust and
like streaming problems. The default branch lags; work happens on
dev.
Every repository has a CONTRIBUTING.md covering local setup and what we look
for in a pull request.
- These are published as they are used internally, so some default branches lag behind where work actually happens. The README says which, where it matters.
- Keep pull requests focused. One change, one reason, a description that says why rather than what.
- Everything is MIT except
terraform, which is MPL-2.0 because it began from HashiCorp's EKS example. - Model weights are licensed separately from code. Where a repository ships
weights it did not train, its
NOTICEfile states the terms — some of those are research-only. - For a vulnerability, don't open a public issue. Every repository has a
SECURITY.mdwith the reporting address.
Kesowa Infinite Ventures · India · kesowa.com · Directory of open repositories