Skip to content

Stabilize first-person flight recordings in the NETSPHERE - #1

Merged
bitdeep merged 1 commit into
mainfrom
feat/stabilized-first-person
Sep 12, 2026
Merged

bitdeep merged 1 commit into
mainfrom
feat/stabilized-first-person

Conversation

@bitdeep

@bitdeep bitdeep commented Sep 12, 2026 •

Copy link
Copy Markdown
Owner

A fly living in the NETSPHERE

Watch the stabilized 60-second video · 720p · 30 fps · Download the physical take and validation evidence

Frames from the continuous first-person recording inside the NETSPHERE

The previous first-person camera followed instantaneous flight velocity, so rapid wingbeat motion produced distracting gaze oscillations at video rate. This change makes comfort the default first-person mode: yaw follows the tangent of the smoothed, measured head path; pitch and roll stay level.

The eye still occupies the integrated head position in every exposure sample. The renderer filters only viewing direction and never feeds back into the simulation. Both recordings use identical physical states and the same collidable world.

Changes

  • Add offline, symmetric Gaussian gaze smoothing (σ = 0.25 s), with --stabilization legacy available for comparison.
  • Record the actual rendered camera basis and source hashes; extend acceptance checks for a level horizon, finite unit gaze vectors and bounded yaw acceleration.
  • Document the updated district and camera, with an English measurement report and Docker commands to verify or re-render the published take.

Validation

The complete take was re-rendered from the saved GPU simulation and independently checked across all 1,800 frames.

Measure Result
Continuous physical time / decoded video 60.000 s / 60.000 s
Physics steps / controller steps 1,200,000 / 300,000
World contacts / episode resets / solver overflow flags 0 / 0 / 0
Distance flown / minimum conservative body clearance 12.014 m / 8.44 mm
Yaw acceleration RMS, previous → comfort 1,624.89 → 45.89 °/s² (97.18% lower)
Pitch acceleration RMS, previous → comfort 1,469.42 → 0.00 °/s²
Physical state and model hashes Unchanged
  • Six-second preview and complete 60-second take passed verify_take.py in Docker.
  • Python byte-compilation, shell syntax and dependency-lock hash coverage passed in the existing Docker image. No dependencies were added.
  • GitHub CI passed: byte-compilation, shell syntax, lockfile hashes and applying the local patch to the pinned upstream flybody source.
  • All eight release assets were downloaded without authentication and matched their local SHA-256 hashes.
  • The video asset is the exact validated MP4; its SHA-256 is b7b88f119f66ceaf782f92d5bcbedbe7b3b22d258d8416f0bd260323e60786f7.

The angular comparison reconstructs the old gaze from saved velocities and measures the new gaze from recorded OpenGL camera directions. It describes this take, not a perceptual comfort study. The new validator checks yaw acceleration RMS below 150 °/s², head attachment and world visibility alongside the existing physical gates.

Scope

This is an offline human viewing camera, using neighboring recorded states. It does not model compound-eye perception or a connectome. Navigation remains geometric, using the known world to command the flybody flight controller. The updated BLAME!-inspired 3D district is already in the base branch; this PR documents it and improves the recording camera.

Read the full English report and replay instructions. The preview release is pinned to this PR's commit and includes the states, compiled model and machine-readable evidence; the existing stable release is preserved.

@bitdeep
bitdeep merged commit 4f07be7 into main Sep 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant