How to prepare your show file

SkyRender accepts four formats. Pick whichever your tooling exports — they all produce the same .bin under the hood.

🛩️ .skyc — Skybrush show file (recommended)

The default export from Skybrush Studio. No conversion needed — just drag the file Skybrush produces straight into the uploader. Trajectories (cubic-Bezier waypoints) and LED programs are both read directly from the archive.

Coordinate convention is whatever you set in Skybrush; altitude maps to the vertical axis in the player. Source rate is sampled at 30 fps internally; output runtime is 6 fps to match the iOS app.

📦 .zip — one CSV per drone

Bundle every per-drone CSV into a single zip. Naming examples: Drone 1.csv, drone_42.csv, 1.csv (any name with a digit before .csv works). Drones in nested folders are fine.

Each CSV must have this header and one row per frame at 30 fps (33 ms intervals):

Time [msec],x [m],y [m],z [m],Red,Green,Blue
0,14.34,-13.40,84.85,152,149,141
33,14.34,-13.40,84.85,152,149,141
66,14.36,-13.40,84.88,160,149,141
99,...

x/y/z in meters. RGB columns are 0–255 and optional — if missing, drones default to black (0, 0, 0).

📐 .mat — MATLAB show file

Required variables: x, y, z — each a num_drones × num_frames matrix of floats. Optional: r, g, b (same shape, 0–255). Source sample rate: 30 fps.

% MATLAB example — 500 drones, 9000 frames (5 min @ 30 fps)
x = randn(500, 9000);   % size: [num_drones × num_frames]
y = randn(500, 9000);
z = abs(randn(500, 9000));
r = uint8(255 * ones(500, 9000));
g = uint8(  0 * ones(500, 9000));
b = uint8(  0 * ones(500, 9000));
save('show.mat', 'x', 'y', 'z', 'r', 'g', 'b');

NaN positions are allowed for "not yet active" drones — we forward-fill from the first real frame.

🎯 .jsdm — JSON show file

A JSON-based drone show description. Export directly from your design tool — no edits needed. We parse planeCount + frameCount and walk pointFrames / channelFrames in time order.

{
  "planeCount": 1200,
  "frameCount": 6600,
  "pointFrames": [
    { "time": 0, "points": [
      { "no": 1, "x": 0, "y": 0, "z": 0 },
      { "no": 2, "x": 1.5, "y": 0, "z": 0 }
    ]},
    { "time": 30, "points": [ ... ] }
  ],
  "channelFrames": [
    { "time": 0, "channels": [
      { "no": 1, "c1": 255, "c2": 0, "c3": 0 },
      { "no": 2, "c1":   0, "c2": 255, "c3": 0 }
    ]}
  ]
}

no is 1-indexed drone number. c1/c2/c3 are R/G/B (0–255).

Note: Have a different file format? Email it to support@skyrender.io and we'll add it to the system.

Before you upload

  • Max file size: 500 MB.
  • Source rate: 30 fps (33 ms / frame). The runtime .bin is downsampled to 6 fps, matching the iOS app.
  • Axes: x = horizontal, y = depth, z = vertical (up). The 2D player shows x × z (audience view).
  • The 2D preview lets you trim takeoff / landing before generating the QR.
  • Drones not yet active (NaN or zero) are skipped until their first valid frame.
Step 01 · Upload
Drop your drone show file
Supported: .skyc (Skybrush), .zip (CSV bundle), .mat (MATLAB), or .jsdm (JSON show file). Max 500 MB.

Your intellectual property stays yours. SkyRender never claims ownership of uploaded show files.

Step 02 · Validate
Checking your show…
Reading drone positions, frame rate, color channels, and timing.
✓ Unpacking archive
✓ Parsing drone tracks
✓ Validating frame timing
✓ Computing summary
✓ Show looks valid.
Drones
—
Duration
—
Keyframes
—
FPS
—
We couldn't read that file.
Step 03 · Preview & trim
Check the show. Trim takeoff & landing if needed.
Drag the cyan handles to set the start and end. The QR delivered to your client will play only the trimmed range.
0:00 / 0:00
Trim start: 0:00 Trim end: 0:00 Final length: 0:00
Step 04 · Claim
Where should we send the QR?
We'll email you a 6-digit code to confirm.
Step 05 · Confirm
Verify and confirm Add to a project
Code sent to you@company.com. Enter it to create your project.
Upload as a new version of an existing project, or create a new one.
Enter the 6-digit code from your email.

Free during beta. Includes 12 months of QR hosting and unlimited revisions inside this project.

Step 06 · Done
Your show is live 🎉
The same QR stays valid through every revision you upload to this project. Hosting included for 12 months.
filename: —