Let prospective clients see the exact show in their venue, at real scale, in augmented reality, before they sign. No more imagining. No more "that's not what I expected."
Experience drone shows in AR. From your venue, event space, or anywhere.
Upload your file, see it validated, get a private QR. Try the first half without an account.
.skyc (Skybrush, default export), .zip (CSV bundle, one file per drone), .mat (MATLAB), or .jsdm (JSON show file). Max 500 MB.Your intellectual property stays yours. SkyRender never claims ownership of uploaded show files. See our Privacy Policy.
Free during beta. Includes 12 months of QR hosting and unlimited revisions inside this project.
From show file to closed deal in three steps.
Drop in your .skyc (Skybrush default export), .zip (per-drone CSVs), .mat (MATLAB), or .jsdm (JSON show file). We unpack and store it securely, ready for the next step in seconds.
SkyRender verifies the data, then generates a private QR code tied to that show. It's yours. Send it to the prospect to win the booking, or to the client to lock in approval.
They scan the QR in the SkyRender app and see the entire drone show at true scale, in their real venue. Approve, iterate, or sign before a single drone takes off, and again after the event.
Built for drone show companies, event producers, and production teams who want to close more deals and ship cleaner shows.
Stop selling with slides. Hand the prospect a QR code, let them walk their venue with the show running in front of them, and watch them commit. Decisions happen on-site, not after another meeting.
No more "that's not what I pictured." Your client previews the real show at real scale before sign-off, so when launch night comes, they get exactly what they approved.
Each project covers unlimited uploads and versions. Swap in new choreography, fix that one transition, the QR your client already has stays the same. Designers and producers share a single AR reference instead of decks and descriptions, so decisions land in one round, not five. Adjust scale, height, rotation, and tilt in real-time.
Drop the QR on event signage or in a post-show email. Audiences scan to relive the show in AR, anywhere, any time. Every guest becomes a share, and your work keeps generating impressions long after the lights go down.
SkyRender turns your show file into a shared AR experience for prospects deciding whether to book, for clients signing off on design, and for audiences who'll want to see it again. One QR code. Real scale. Real venue. Real confidence on both sides.
Be one of the first 10 drone show companies to join SkyRender as a Founding Partner. Free during beta. No credit card. No catch.
Apply for Free Access →Available now on iOS. Android coming soon.
SkyRender accepts four formats. Pick whichever your tooling exports — they all produce the same .bin under the hood.
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.
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).
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.
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).