O3DE rendering a ground plane from a camera spawned programmatically inside a headless Docker container

From Unity to O3DE: Multi-Camera Streaming at 1080p in a Headless Docker Container

Exploring whether O3DE can replace Unity as the render engine for a drone simulation that streams multiple 1080p camera feeds via GStreamer. From first scaffold to three live RenderToTexture pipelines in a single session.

April 16, 2026 · 6 min · Pavel Guzenfeld
PX4 SIH running on real flight controller hardware with Unity visualization

Running PX4 SIH on Real Hardware: Custom Firmware for In-the-Loop Flight Simulation

Getting PX4’s Simulation-In-Hardware (SIH) module running on a production flight controller — discovering the firmware doesn’t include SIH, building a custom PX4 with flash-trimming, fan-out routing serial MAVLink to both the simulator and ground station, and connecting it all to the Unity visualization pipeline.

April 14, 2026 · 16 min · Pavel Guzenfeld
Procedural settlement with OSM buildings, roads, and entities in a headless Unity simulation

Procedural Settlement: Generating 3D Buildings, Roads, and Entities from OpenStreetMap in Unity

How I replaced a proprietary terrain bundle with a fully procedural environment generated from open-source data — hundreds of buildings with window textures from OpenStreetMap, terrain-hugging roads, satellite-driven vegetation, and multiple ground and air entities — all built at runtime in a headless Unity Docker simulation.

April 13, 2026 · 10 min · Pavel Guzenfeld
Scripted Hardware Testing for PX4

Scripted Hardware Testing for PX4 — MAVLink Shell, Docker, and pymavlink

How to script PX4 hardware verification using pymavlink’s SERIAL_CONTROL protocol over a USB connection — download CI firmware, flash from the command line, and run NSH commands programmatically. No QGroundControl required.

April 7, 2026 · 7 min · Pavel Guzenfeld
Satellite imagery comparison: 15m vs 0.13m resolution in headless Unity simulation

The Satellite Tile Hunt: From 15m Blobs to 13cm Resolution in an Air-Gapped Simulation

A practical guide to finding, downloading, and fusing satellite imagery and elevation data for an air-gapped Unity simulation. Covers every free tile provider (ESRI, Bing, Google), every free DTM source (SRTM, Copernicus, Mapzen), how to stitch thousands of tiles into Unity-ready textures, and the dead ends along the way.

April 5, 2026 · 13 min · Pavel Guzenfeld
FPS optimization pipeline for headless Unity simulation

From 21 to 25 FPS: Profiling and Optimizing a Headless Unity Simulation Pipeline

A detailed technical walkthrough of profiling and optimizing a headless Unity simulation from 21 to 25 FPS — covering NVENC GPU encoding, batch camera rendering, GPU instancing, static batching, and the failed URP migration. Every measurement, every dead end, every lesson.

April 4, 2026 · 8 min · Pavel Guzenfeld
Satellite terrain and natural sky in headless Unity simulation

Natural Skies and Satellite Terrain in a Headless Unity Simulation

How I replaced flat brown terrain and solid-color sky in a headless Unity 6 Docker simulation with real satellite imagery, SRTM topography, and a custom panoramic skybox — all fully air-gapped, no runtime network dependency. Includes NVENC GPU encoding, custom shaders, and every dead end along the way.

April 4, 2026 · 12 min · Pavel Guzenfeld
From Magenta to Desert: Fixing Unity Terrain in Docker

From Magenta to Desert: Fixing Cross-Platform Unity Terrain Rendering in Docker

A detailed account of fixing terrain rendering in a headless Unity 6 Docker simulation — from magenta buildings and gray streaming cameras to textured villages with working RTSP feeds. Covers cross-platform asset bundle shader mismatches, runtime material conversion, texture recovery from broken materials, and every dead end along the way.

March 27, 2026 · 13 min · Pavel Guzenfeld
Contributing to ROS 2 — A Practical Guide

Contributing to ROS 2 — A Practical Guide from Four Accepted PRs

Everything I learned submitting four pull requests to ROS 2 core repositories — from finding issues and building in Docker to passing DCO checks, handling OSRF’s AI disclosure policy, rebasing across distro branches, and running the full test suites. A warts-and-all field guide.

March 22, 2026 · 15 min · Pavel Guzenfeld
PX4 Autopilot: A Practitioner's Guide

PX4 Autopilot: A Practitioner's Guide to Troubleshooting, Debugging, Building, and Testing

Everything I learned contributing 6 PRs to PX4-Autopilot in a single session — from Docker-based builds and sanitizer workflows, through uXRCE-DDS session debugging and MAVLink signing analysis, to SITL integration testing. Real bugs, real fixes, real build output.

March 22, 2026 · 14 min · Pavel Guzenfeld