SkyInk - Convert Text to Autonomous Flight Missions

SkyInk - Convert Text to Autonomous Flight Missions

I’ve developed a tool that converts text into autonomous flight missions for PX4 and ArduPilot. It generates QGroundControl .plan files that make drones trace out letters in the air.

Overview

SkyInk takes any text string and generates waypoint missions where the drone traces out the letters - essentially aerial skywriting. Perfect for New Year’s celebrations, events, or demonstrations!

Example: “HAPPY NEW YEAR” Mission


These screenshots show the tool generating a “HAPPY NEW YEAR” mission - seemed fitting to share this on New Year’s Eve!


Key Features

  • Hershey Stroke Fonts - Single-line font rendering (no complex path extraction needed)
  • Douglas-Peucker Simplification - Optimizes waypoint count while preserving letter shape
  • Smart Path Planning - Minimizes transition distance between letters
  • Interactive Web GUI - Real-time map preview with adjustable parameters
  • Multiple Export Formats - .plan, KML, CSV, GeoJSON, .waypoint
  • Configurable Parameters - Acceptance radius, flight altitude, speeds, fonts

Installation & Usage

# Install
pip install skyink

# Web GUI
skyink-gui

# Or CLI - try it with your own New Year's message!
skyink "HAPPY 2026" --lat 47.397 --lon 8.545 --alt 30

Technical Details

  • Uses pymap3d for accurate ENU-to-GPS coordinate transformation
  • Generates MAVLink waypoint missions compatible with PX4 and ArduPilot
  • Configurable parameters: rotation, font style, simplification, flight altitude, speed
  • Altitude-separated transitions between letters for clean paths

Safety Considerations

Always test in SITL simulation first. This tool generates autonomous flight paths. Users are responsible for:

  • Thorough testing in PX4 SITL before real flights
  • Compliance with local regulations
  • Safe operation and risk assessment
  • Proper failsafe configuration

Links

Feedback and contributions are welcome on GitHub. Happy New Year to the PX4 community! :fireworks:

5 Likes