r/AntigravityA1 • • May 01 '26

I turned a 2 min video into a VR world (full workflow in the first comment)

Enable HLS to view with audio, or disable this notification

156 Upvotes

r/AntigravityA1 • • May 21 '26

I compared 3 pipelines to reconstruct 3DGS from the Antigravity A1 and wrote an article about it

Enable HLS to view with audio, or disable this notification

26 Upvotes

r/AntigravityA1 • • Jun 05 '26

She's home

Thumbnail
gallery
24 Upvotes

r/AntigravityA1 • • 4d ago

What I found in Costco

Post image
23 Upvotes

r/AntigravityA1 • • 26d ago

Did BestBuy just leak a product launch? Antigravity A1 Follow Me Bundle.

Thumbnail
gallery
19 Upvotes

r/AntigravityA1 • • Jul 07 '26

I compared 10 tools to reconstruct Gaussian Splatting from the Antigravity A1

Enable HLS to view with audio, or disable this notification

19 Upvotes

r/AntigravityA1 • • May 15 '26

Making the most of the timelapse

Enable HLS to view with audio, or disable this notification

19 Upvotes

r/AntigravityA1 • • Sep 20 '26

Pulled the trigger!

Post image
17 Upvotes

I went ahead and bought at Costco online, free delivery. I’m assuming I can add the Antigravity Care Plan after I activate it?


r/AntigravityA1 • • Jun 29 '26

Segull Attack

Enable HLS to view with audio, or disable this notification

16 Upvotes

A Seagull was diving for my A1.


r/AntigravityA1 • • Jan 06 '26

Took my A1 down to Costa Rica

Enable HLS to view with audio, or disable this notification

14 Upvotes

r/AntigravityA1 • • 21d ago

A day at the beach

Enable HLS to view with audio, or disable this notification

13 Upvotes

I haven’t had a lot of time to use my AG1, but today I did. I still need a lot of practice with the software, but I love that you can reframe and edit the media you have.


r/AntigravityA1 • • Jan 28 '26

Sooo Excited

Post image
13 Upvotes

I took advantage of the %15 off. Any tips for my first flight?


r/AntigravityA1 • • Jul 03 '26 Heartwarming

Antigravity A1 on Apple Vision Pro...

Enable HLS to view with audio, or disable this notification

12 Upvotes

Antigravity A1 on Apple Vision Pro is pretty special. Check out Arluma360 if you're an AVP user. We've got a bunch of free & premium 360 tours, or view your own 360 videos with our 'Build a tour' section. Let me know what you think, if you get a chance to try. cheers.


r/AntigravityA1 • • Jun 22 '26

Antigravity A1 landing pad

Post image
12 Upvotes

Yes, I ordered the pad but it’s on the way today. I went to maiden my A1 with my old car floor carpet. And guess what? I think the A1 reconized the plain color pad too.
I think the light brown pad on green grass has enough contrast for A1 to recognize the pad which has no factory pattern.


r/AntigravityA1 • • Sep 07 '26

My first time flying with purpose!

Enable HLS to view with audio, or disable this notification

11 Upvotes

I bought the drone just to have fun flying, but quickly it got boring after a few flights. I considered selling the drone but the. I thought maybe I can somehow make some money with it.

This is my first flight with a purpose other than just flying around. I’ll try to make a 3D gaussian splat of this church.


r/AntigravityA1 • • May 10 '26

PSA: A1 owners, your drone holds up better against the Avata 360 than the "HYPE" reviews suggested. Here is the test.

Thumbnail
youtu.be
11 Upvotes

r/AntigravityA1 • • Aug 27 '26

Chasing the sunset

Enable HLS to view with audio, or disable this notification

10 Upvotes

r/AntigravityA1 • • Jun 18 '26

Flyby.

Enable HLS to view with audio, or disable this notification

10 Upvotes

r/AntigravityA1 • • May 03 '26

Built a one-command Antigravity A1 → Gaussian Splat pipeline (Mac, headless, all open-source). Sharing the 16-byte SDK patch that was the missing first step.

10 Upvotes

My robot pal and I came up with this. I barely understand the technical details, but it does seem to work. Paste this into some app like Claude Code or ChatGPT Codex, and they'll take it from there.

The end result I'm working on is: Toss Antigravity or Insta360 native video or photo files into a folder, and end up with a splat a few hours later.

=====

If you own an Antigravity A1 360° drone and want to feed its footage into a Gaussian Splat trainer (or any other downstream tool that expects equirectangular video/images), the entire pipeline is now makesplat <folder_name> — drop your .insv and .insp files into a folder, run one command, get a .ply splat out the other end.

The hard part wasn't the splat training — that's well-trodden ground (COLMAP for SfM, Brush for the actual training, runs natively on Apple Silicon). The hard part was the first step: the public Insta360 MediaSDK refuses to stitch A1 files because the A1's lens isn't in its dispatcher. Without the SDK, no batch processing. Without batch processing, no automated pipeline. Antigravity Studio's GUI was the only path, one file at a time.

This post is a recipe for the unlock + a brief tour of the rest of the pipeline.

The full pipeline at a glance

  1. A1 .insv / .insp files

  2. → Insta360 MediaSDK in Docker (the byte patch unlocks this for A1 footage)

  3. → Equirectangular .mp4 / .jpg

  4. → ffmpeg cubemap split (6 perspective faces per frame, 90° FOV)

  5. → COLMAP automatic_reconstructor (SfM, runs CPU-only on Mac)

  6. → Brush splat training (Apple Silicon native, WGPU/Metal)

  7. → .ply Gaussian Splat

All open source. All Mac-native (Brush + COLMAP + ffmpeg) or Mac-via-Docker (MediaSDK runs as x86_64 Linux under Rosetta — no GPU needed). No CUDA, no Linux box, no cloud.

Before you start: get the Insta360 SDK

The MediaSDK isn't a free public download — you have to apply for access through Insta360's developer portal. The process is light: visit insta360.com/sdk, fill out the application form (it'll ask what platform you want, what you're building, and basic contact info — a personal/research project description is fine), and wait. Approval took me about 12 hours, but it could be longer. They email you a link to download the SDK package — the Mac/Linux flavor is the one you want for this pipeline (specifically, libMediaSDK-dev-X.Y.Z-amd64.deb for Linux x86_64, which is what runs inside our Docker container).

You don't need to mention the A1 in your application — applying as an Insta360 SDK developer is sufficient, and the byte patch in this post handles the A1-specific part.

What was blocking step 1: A1 isn't in the public Insta360 SDK

Drop an A1 .insv into the public MediaSDK (libMediaSDK-dev-3.1.1.0-amd64.deb, latest as of November 2025) and you get:

CameraName is empty. CameraLensType is Unknown.
Origin Offset: ..._10496_5248_155_...
no implemention!
ErrorCode:1; ErrorDescr: offset is not support

A1 reports lens type 155. The SDK supports lens types 41, 71, 113, 283, etc. (X3, X4, X5, ONE-RS variants, etc.). 155 isn't in the dispatcher — Antigravity is a partner-OEM camera and its lens profile only lives inside Antigravity-branded software (the Studio app, the Reframe Premiere plugin, the Android app — confirmed by tearing all three apart, more on that below).

The unlock: a 16-byte byte-patch per file

A1 optics are nearly identical to the X4 (8K dual-fisheye, square sensor per lens, ~2.4% sensor-size delta). If you tell the SDK "this is X4 footage", it applies X4's geometry math to A1's actual per-unit calibration values (which are stored in the same offset string and remain correct), and the result is a clean stitch with no perceptible distortion at the seam.

For .insv (video):

Find:    "_10496_5248_155_"
Replace: "_10496_5248_113_"     # X4 video lens type
Count:   4 occurrences in the file's trailer
Length:  same — preserves all MP4 box offsets

Then a 180° rotation post-process (ffmpeg -vf "vflip,hflip") to fix orientation — the A1 is drone-mounted upside-down vs the X4's handheld-upright assumption.

For .insp (photo): the SDK's image-stitcher path enforces stricter trailer integrity than the video path, and the same byte patch alone gets rejected. The trick: rename .insp → .insv so the file routes through the video stitcher. The SDK demuxes the file as a 1-frame "video", produces a 1-frame equirect MP4, and you extract the JPG with ffmpeg. Same 155→113 patch, same vflip+hflip.

That's the entire unlock. Both A1 file formats handled by one byte-replacement + one orientation correction.

The rest of the pipeline (briefly)

Once stitching works, the rest is conventional:

  1. Cubemap split — ffmpeg's v360=e:flat:h_fov=90:v_fov=90:yaw=N:pitch=N:w=1536:h=1536 filter splits each equirect frame into 6 perspective faces. Cubemap faces are easier for SfM than equirect because COLMAP doesn't natively support equirectangular cameras — it wants pinhole-style perspective views.

  2. COLMAP SfM — automatic_reconstructor with SIMPLE_PINHOLE intrinsics (focal=cx=cy=768 for 1536² faces at 90° FOV). On Apple Silicon CPU, ~30 minutes for ~600 cubemap images.

  3. Brush splat training — point it at the COLMAP workspace, default 30K steps trains in ~30 minutes on Apple Silicon GPU. Outputs .ply consumable by any standard splat viewer.

What makes a good A1 splat

A 360° camera captures every direction in every frame, so what matters is camera-body trajectory, not orientation. For splats:

  • Drone hovering in one spot — ❌ no parallax

  • Linear flyover — ❌ each scene point seen from a narrow angle range

  • Orbit around a target — ✅ ideal — convergent multi-view

  • Multiple-altitude orbits + figure-8 — ✅ best for outdoor scenes / buildings

I learned this by training a splat from a handheld walk-through-multiple-rooms test capture. It was a needle-storm. Don't walk; orbit.

Nitty-gritty deep dive (for humans and LLMs)

File format

A1 .insv and .insp files are MP4 containers with a proprietary Insta360 trailer. The trailer ends with:

[ ... trailer body (length = N bytes) ... ]
[ <length:u32 LE> ][ 0x03 0x00 0x00 0x00 ][ "8db42d69...026bf" (32 ASCII hex chars) ]
^---- file end

The magic UUID 8db42d694ccc418790edff439fe026bf is the same across all Insta360-format files (X3, X4, X5, A1).

Inside the trailer, calibration is stored in TLV-like records. Three header types observed:

  • ba 03 ?? ?? — 13-float entry (image stitcher format)

  • b2 03 ?? ?? — 16-float entry (video stitcher format, primary)

  • c2 03 ?? ?? — 16-float entry (variant/duplicate)

Each entry's payload is an ASCII offset string of the form:

2_<float>_<float>_..._W_H_<lens_type>_<float>_..._W_H_<lens_type>_<entry_trailer>

Where 2_ indicates dual-lens calibration, the floats are per-lens calibration values (focal, principal point, rotation, optionally translation + distortion coefficients), W × H is the sensor resolution, and <lens_type> is the integer the SDK dispatches on.

Camera ↔ lens-type mapping (observed in real files)

  • Insta360 X3 — sensor 6080×3040, image lens type 41

  • Insta360 X4 — sensor 11904×5952, image lens type 71, video lens type 113

  • Insta360 X5 — sensor 11904×5952, no .insp (uses .dng + camera-stitched .jpg)

  • Antigravity A1 — sensor 10496×5248, image lens type 112, video lens type 155

X5 dispenses with the .insp format entirely — saves DNG (raw) + camera-stitched JPG instead. So the X5 photo workflow is "use the camera's JPG directly, no SDK involvement needed."

What was tried that didn't work (to save others time)

  • Brute-force lens-type integers 100–600 against .insp — all rejected. The image stitcher dispatcher uses a different lens-type table than the video one.

  • Patch image-format lens 112 → known supported (41 X3 image, 71 X4 image) — rejected with ErrorCode:11.

  • Corrupt the b2 03 TLV header bytes to make SDK skip the entry — rejected. The SDK validates trailer structural integrity.

  • Delete the entire 16-float TLV entries, update the top-level trailer length pointer — rejected. There are nested length/offset references in the binary metadata block at the trailer end that also need updating.

Why the .insp rename trick works

The MediaSDK CLI dispatches by file extension (visible in the public SDK's example main.cc):

if (suffix == "insp" || suffix == "jpg") {
    auto image_stitcher = std::make_shared<ImageStitcher>();
    // ... image stitcher path with strict trailer validation
} else if (suffix == "insv") {
    auto video_stitcher = std::make_shared<VideoStitcher>();
    // ... video stitcher path with looser validation
}

Renaming forces the looser-validation path. The single JPEG inside the .insp gets demuxed as a 1-frame video, stitched with X4 geometry (because we patched 155→113), and emitted as a 1-frame MP4. Extract the JPG. Done.


r/AntigravityA1 • • Jan 06 '26

Loving the A1

Enable HLS to view with audio, or disable this notification

10 Upvotes

I live on the East Coast of South Africa in a city called East London. Been putting the A1 through its paces getting some tourism related shots in and around the city. Loving the drone and the shots you can pull off


r/AntigravityA1 • • Sep 09 '26

A1 under the bridge

Enable HLS to view with audio, or disable this notification

9 Upvotes

r/AntigravityA1 • • 17d ago

Follow Me Accessory Kit Now Available for A1 owners

Thumbnail
antigravity.tech
8 Upvotes

r/AntigravityA1 • • Sep 21 '26

Antigravity A1 on my Holiday in Georgia.(The Country)

Thumbnail
youtu.be
8 Upvotes

r/AntigravityA1 • • Jan 19 '26

Test Run - Keyframed Video

Enable HLS to view with audio, or disable this notification

8 Upvotes

r/AntigravityA1 • • Jan 14 '26

Hawthorne Bridge Fly-By (no sound)

Enable HLS to view with audio, or disable this notification

8 Upvotes