<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DroneLab Blog]]></title><description><![CDATA[DroneLab Blog]]></description><link>https://dronelab.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 02:06:28 GMT</lastBuildDate><atom:link href="https://dronelab.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Building a 3D simulator and visualizer for drones in C++: Dynamics, GUI, replay features, and project roadmap]]></title><description><![CDATA[Hi! In the past few months, I’ve been developing DroneLab: a 3D simulator, visualizer, and replayer for drones, built in C++. It integrates rigid-body dynamics, GNC (Guidance, navigation, control) modules, visualization tools, and a user-friendly GUI...]]></description><link>https://dronelab.hashnode.dev/building-a-3d-simulator-and-visualizer-for-drones-in-c-dynamics-gui-replay-features-and-project-roadmap</link><guid isPermaLink="true">https://dronelab.hashnode.dev/building-a-3d-simulator-and-visualizer-for-drones-in-c-dynamics-gui-replay-features-and-project-roadmap</guid><category><![CDATA[C++]]></category><category><![CDATA[drone]]></category><category><![CDATA[simulation]]></category><dc:creator><![CDATA[Rodrigo Rosa]]></dc:creator><pubDate>Thu, 13 Nov 2025 18:35:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1763053013532/0683d883-4845-4998-a016-2a1b794d5cda.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi! In the past few months, I’ve been developing DroneLab: a 3D simulator, visualizer, and replayer for drones, built in C++. It integrates rigid-body dynamics, GNC (Guidance, navigation, control) modules, visualization tools, and a user-friendly GUI that allows easy configuration editing. Above all, it features a replayer that lets the user load and visualize past sessions on demand.</p>
<p>The main purpose of this simulator is to provide a lightweight and smooth procedure to explore entry-level drone dynamics and drone experimentation. The planned introduction of external interfaces like MAVLink will also enable testing and experimentation with external flight controllers in both SITL and HITL modes.</p>
<p>Context: My interest in aerospace vehicle dynamics and software systems led me to create DroneLab. During my latest work experience, I helped implement a GPS/GNSS receiver prototype, which deepened my curiosity about drone dynamics. I wanted to explore further by building a tool that combines modular design, a node-based actor system, and custom graphics — all while maintaining control over the architecture and avoiding unnecessary bloat<em>.</em> This project features graphics using OpenGL and a UI based on the popular Dear ImGUI library.</p>
<p>Some of the key features in DroneLab, at this early version, include:</p>
<p><strong>Simulation and Control:</strong></p>
<ul>
<li><p>Configurable Editor: Load, save, and tweak flight parameters, environment settings, sensors, and estimators.</p>
</li>
<li><p>Flight Modes: Waypoint following, return-to-launch (RTL), with additional modes planned.</p>
</li>
<li><p>Simulation Control: Pause, slow, and speed up simulation; switch between drone orbit mode or free mode.</p>
</li>
</ul>
<p><strong>Visualization and Interaction:</strong></p>
<ul>
<li><p>Live Interaction: Add waypoints on screen, disable/enable sensors (e.g., GPS or Magnetometer).</p>
</li>
<li><p>Visual Outputs: Real-time and replayable telemetry, plots, minimap, 3D trajectory trails, ghost drone estimates, and more.</p>
</li>
</ul>
<p><strong>Core Functionality:</strong></p>
<ul>
<li><p>Quadcopter GNC &amp; Flight Controller Core: Rigid-body dynamics integration, discrete Extended Kalman filter for state estimation, and cascade PID controllers.</p>
</li>
<li><p>Replay &amp; Storage: Load any previous run and replay at the given moment of the flight as if it were live.</p>
</li>
</ul>
<p>A live showcase is displayed here: <a target="_blank" href="https://ridrik.github.io/DroneLabShowcase/">DroneLab Showcase</a></p>
<p>This software is currently in development. The roadmap, as of now, includes:</p>
<p><strong>Immediate Work</strong></p>
<ul>
<li><p>Backend simulation mode</p>
</li>
<li><p>UDP communication with MAVLink for SITL and HITL usage</p>
</li>
<li><p>Actuator ESC modes (open-loop and closed-loop)</p>
</li>
<li><p>Sensor adjustments</p>
</li>
</ul>
<p><strong>Future Plans</strong></p>
<ul>
<li><p>Add vehicle modes (currently features quadcopter in X configuration)</p>
</li>
<li><p>Multi-vehicle support</p>
</li>
<li><p>Batch simulations</p>
</li>
<li><p>Enhanced 3D visualization tools</p>
</li>
</ul>
<p>I’ll share updates on new features that get introduced and make their way into preview/demo releases.</p>
<p>Let me know what you think of this, and what features you typically miss from a simulator that could help your own applications. If you are interested in trying out a demo version, I’ll be happy to send an invitation to a release demo preview version over GitHub! You may also contact me on <a target="_blank" href="https://www.linkedin.com/in/rodrigo-rosa-4547b115b/">LinkedIn</a>.</p>
]]></content:encoded></item></channel></rss>